Chapter 15. 향후 학습 방향#
향후 학습 방향
여러분들이 목표로 하고 있는 것이 그 무엇이든, 어떤 방향으로 어떤 것을 학습하면 될지 방향을 잡는데 보탬이 되고자 준비하였다.
인공지능#
인공지능, 머신러닝, 딥러닝과 같은 기술들이 여러분들의 일상생활에 밀접하게 다가와 있다는 것을 느낄 것이다. 인공지능 분야를 여러분의 전공과 접목시키기 위해서는 인공지능이 무엇인지 먼저 알아야 한다.
인공지능이란 기계가 학습과 추리를 통해서 인간의 지능과 비슷한 작업을 수행하는 것을 의미한다. 어떠한 작업을 수행할 수 있냐면 예를들어, 글자나 말의 의미를 인식한다던지, 어떠한 내용을 학습한다던지, 얼굴 표정을 인지한다던지 즉, 인간만이 할 수 있다고 생각했던 기능을 컴퓨터가 수행하는 것이다.
이러한 인공지능은 아래 그림에서와 같이 컴퓨터과학, 수학, 생물학, 물리학, 뇌과학, 철학, 심리학, 의학, 언어학 등 다양한 분야에서 연구되고 있고 적용될 수 있다.

인간이 할 수 있는 일을 기계가 하게 하려면 어떻게 해야 될까? 기계가 일을 하도록 가르쳐야 한다. 기계에게 뭔가를 가르치는 것을 머신러닝(기계학습)이라고 한다. 이 말은 기계에게 공부 즉, 학습을 시키겠다는 것이다.
예를 들어 어떤 편의점 주인이 아르바이트생을 고용을 했다고 가정하자. 주인은 아르바이트생에게 처음 몇번은(최소 한번은) 일하는 방법을 알려준다. 마찬가지로 사람이 하는 일을 기계가 하게 하려면 기계에게 하는 방법을 알려줘야 한다.
사람은 말을 하고, 하는 방법을 보여주면 따라할 수 있지만 기계는 어떻게 학습을 시켜야 할까? 기계는 바로 데이터에 대한 수학적 분석모델을 가지고 학습시킨다. 이게 바로 머신러닝이다.
이러한 머신러닝중에서도 인식분야에 해당하는 딥러닝이 가장 활발하게 성과를 내고 있다. 딥러닝은 인공신경망 기반의 인공지능 기법을 말한다. 말이 어려운데, 사람이 가지고 있는 신경망과 동일한 형태의 네트워크를 만들어서 인공지능으로서 배우게끔 만드는 것이 바로 딥러닝이다.
머신러닝은 기계가 배우도록 교육을 시키는 것이라면, 딥러닝은 공부할 거리를 잔뜩 주고 ‘알아서 공부해’ 했더니 알아서 공부하더라는 것이다. 데이터과학과 빅데이터 분야에서도 이러한 머신러닝이나 딥러닝의 기법들이 많이 사용되고 있다.


인간처럼 행동하는 시스템#
기계가 인간처럼 행동하려면 어떤 일을 해야 할까?
사람이 하는 말이나 사람이 쓴 글을 알아 들어야 하고 읽을 수 있어야 하니까 자연어처리가 필요하다.
사람이 하는 말을 듣고 이게 무엇을 의미하는지 판단할 수 있어야 하므로 자동추론이 필요하다.
사람이 하는 말을 인식할 수 있어야 하므로 음성인식이 필요하다.
어떤 작업에 대한 학습을 해야 하므로 머신러닝이 필요하다.
또한 기계가 배우려면 글이나, 이미지나, 상황을 봐야하는데 그게 바로 컴퓨터 비전이다.
컴퓨터가 보고, 분석한 후, 액션을 취하려면 스스로 움직일 수 있어야 하는데 그게 바로 로보틱스 기술이다.
컴퓨터가 사용할 수 있도록 수많은 데이터들을 가공하고 표현하는 것이 지식표현이다.
인간처럼 행동하는 시스템을 만들기 위해서 다양한 분야에서 이와 같은 연구가 이루어지고 있다.

현재까지의 학습 상황과 향후 학습 방향#
인공지능 관련 라이브러리는 아래 그림과 같이 무수히 많다. 아래 그림은 여러분들이 향후 어떠한 모듈을 공부해야 하는지 보여주는 중요한 그림이라고 볼 수 있다. 그림을 보면 가장 아래 파이썬이 있다. 즉, 여러분의 전공을 인공지능과 접목시켜서 공부해보려면 가장 기본이 되는 파이썬을 알아야 한다는 것이다.

여러분이 배운 파이썬 주제와 차후 컴퓨팅 핵심에서 다루는 주제는 아래와 같다.
컴퓨팅핵심에서는 기초에서 다루었던 파이썬 스킬을 배양하면서 자료구조와 알고리즘에 집중한다.
파이썬 프로그래밍#
컴퓨팅 기초 |
컴퓨팅 핵심 |
|
---|---|---|
파이썬 설치 및 환경 |
파이썬 설치 및 환경 |
|
연산식, 데이터 타입 |
연산식, 데이터 타입 (내용⬆, 난이도 ⬆) |
|
데이터 입출력 |
데이터 입출력(내용⬆, 난이도 ⬆), 부록:문자열 메소드, 부록:문자열 포맷팅 |
|
조건문 |
조건문 (난이도 ⬆) |
|
반복문 |
반복문(난이도 ⬆) |
|
리스트, 튜플, 셋, 딕셔너리 |
리스트, 튜플, 셋, 딕셔너리(내용 ⬆, 난이도 ⬆) |
|
함수 |
함수(내용 ⬆, 난이도 ⬆) |
|
재귀함수 |
||
객체와 클래스 |
||
추상 데이터 타입 |
||
정렬 알고리즘 |
||
탐색 알고리즘 |
||
분할정복 |
||
numpy(수치데이터처리) |
자료구조와 배열(내용 ⬆) |
|
pandas(데이터분석) |
데이터 수집 관련 모듈#
컴퓨팅 기초 |
||
---|---|---|
urllib.request |
웹 상의 url을 파이썬이 인식할 수 있도록 하는 모듈 |
|
requests |
Python용 HTTP 라이브러리 |
|
beautifulSoup |
웹페이지 크롤링 라이브러리 |
|
Selenium |
동적 웹페이지 크롤링 라이브러리 |
|
re |
정규표현 처리를 하기 위해 표준 라이브러리 |
시각화 관련 모듈#
컴퓨팅 기초 |
||
---|---|---|
Matplotlib |
기본 그래프 모듈 |
|
Seaborn |
고급그래프 모듈 |
|
Folium |
지도활용 |
주요 라이브러리 소개#
NumPy
Numerical Python의 약자
파이썬 기반 수치해석 라이브러리
선형대수 연산에 필요한 다차원 배열과 배열연산을 수행하는 다양한 함수를 제공
빅데이터 처리에 효율적
SciPy(사이파이)
과학용 연산에 필요한 다양한 패키지를 모아 놓은 라이브러리
미적분, 선형대수, 행렬연산, 방정식 계산 등에 필요한 함수를 지원
설치 : pip install scipy
참고 사이트: https://scipy.org/install.html
SymPy
기호 계산을 위한 오픈 소스 파이썬 라이브러리
StateModels
데이터를 탐색하고 통계 모델을 추정하며 통계 테스트를 수행 할 수있는 Python 패키지
Scikit-learn
현재 파이썬으로 구현된 라이브러리 중에서 머신러닝 교육 및 실무용으로 가장 많이 사용되고 있는 오픈소스 라이브러리
회귀분석, 분류, 군집 등 실무에서 적용하는 대부분의 머신러닝 모형을 제공
Keras
딥러닝을 쉽게 구현할 수 있도록 해주는 라이브러리
오픈 소스 신경망 라이브러리
Tensorflow
구글에서 개발하여 공개한 딥러닝/머신러닝을 위한 오픈소스 라이브러리
텐서(tensor)는 다차원 데이터 배열을 의미, 플로우(flow)는 흐름을 의미
영상, 음성, 자연어까지 모두 처리 가능한 프레임워크임
딥러닝연산을 수행하기 위해 필요한 기본적인 API제공
딥러닝모델을 만들때 많이 사용
공개 데이터 저장소#
공공데이터 포털: https://www.data.go.kr/
서울 열린데이터 광장: https://data.seoul.go.kr/
Kaggle: 예측모델로 경쟁하는 플랫폼의 선두자
데이터 분석 및 머신러닝에 대한 학습 플랫폼
경쟁할 수 있는 플랫폼
2019년 google에서 인수
기업, 기관 또는 특정 사용자가 데이터를 첨부해서 문제를 제출하면 Kaggle 사용자 누구나 문제에 대한 답을 제출
방대한 양의 데이터 제공
기업에서 데이터를 주고, 전세계 참여자들이 팀이나 개인으로 문제를 해결
http://www.google.com/publicdata/directory, 구글이 제공하는 공개된 데이터 저장소,
Amazon Web Services: 아마존 웹 서비스가 제공하는 공개된 데이터 저장소, https://aws.amazon.com/ko/datasets/
re3data: 데이터 저장소들 검색할 수 있는 사이트로 요약된 정보와 분류 제공, http://www.re3data.org/
figshare: 연구자들이 보관하고 공유할 수 있는 데이터 저장소, http://figshare.com/
reddit r/datasets: reddit에서 공유한 데이터 저장소, https://www.reddit.com/r/datasets/
datahub Open Knowledge: Foundation에서 제공하는 무료 데이터 관리 플랫공폼, https://datahub.io/
Quandl: 숫자 데이터 검색 엔진, https://www.quandl.com/
enigma: 기업, 회사, 조직에서 공개한 기록 검색 엔진, https://www.enigma.com/
마무리#
한 학기 동안 정말 고생많으셨습니다!!
여러분들이 향후 컴퓨팅 분야와 융합되는 그 어떤 분야에 있던지 이 강좌가 디딤돌이 되길 바랍니다. 항상 여러분의 앞날을 응원하겠습니다!!