본문 바로가기
Study/IT Issue

Machine Learning

by 꼬부기가우는소리 2016. 6. 14.
728x90


참고 사이트 :


관련 뉴스 : 

[IT News] 구글 무인자동차, 인공지능으로 경적 사용법 학습 중 (2016-06-04)

[CIO] 자율주행 자동차, 2035년 2100만 대 규모 (2016-06-08)

[IT News] 윅스, 인공지능 기반 자동화 웹 디자인 서비스 시작 (2016-06-10)

[CIO] '언제 어디에 어떤 콘텐츠를...' 마케팅 고민 머신러닝으로 푼다 (2016-06-10)

[CIO] "2025년 109% 보급"... 자동차 AI 시스템 진화 방향은? (2016-06-15)

[IT News] 애플, 새로운 인공지능 알고리즘 '차등 사생활(differential privacy)' 기술 도입 (2016-06-18)



Machine Learning

머신 러닝(machine learning) 또는 기계 학습(機械 學習)은 인공 지능의 한 분야로, 컴퓨터가 학습할 수 있도록 하는 알고리즘과 기술을 개발하는 분야를 말한다. 1959년, 아서 사무엘은 기계 학습을 "컴퓨터에게 배울 수 있는 능력, 즉 코드로 정의하지 않은 동작을 실행하는 능력에 대한 연구 분야"라고 정의하였다. 기계 학습에서의 일반화는 훈련 이후 새롭게 들어온 데이터를 정확히 처리할 수 있는 능력을 말한다.


기계학습은 기계, 즉 컴퓨터를 인간처럼 학습시켜 스스로 규칙을 형성할 수 있지 않을까 하는 시도에서 비롯되었다. 주로 통계적인 접근 방법을 사용하는데 이는 인간이 하는 추론 방식과 유사하고 매우 강력하다.

기계학습의 발전으로 인해 현재의 거의 모든 시스템(인공지능, 검색엔진, 광고, 마케팅, 로봇, 인사활동, 등등)은 기계학습의 방법론 없이는 정상적으로 가동되지 않게 되었다.



기계학습과 데이터 마이닝

기계 학습은 훈련 데이터(Training Data)를 통해 학습된 알려진 속성을 기반으로 예측에 초점을 두고 있다. 반면, 데이터 마이닝은 데이터의 미처 몰랐던 속성을 발견하는 것에 집중한다. 이는 데이터베이스의 지식 발견 부분의 분석 절차에 해당한다.




Data Mining

데이터 마이닝(data mining)은 대규모로 저장된 데이터 안에서 체계적이고 자동적으로 통계적 규칙이나 패턴을 찾아 내는 것이다. 다른 말로는 KDD(데이터베이스 속의 지식 발견, knowledge-discovery in databases)라고도 일컫는다. 




선수 과목

기계학습을 공부하고자 하면 기본적으로 컴퓨터과학과에서 다루는 대부분의 수학 과목을 필요로 한다. 대표적으로 이산수학, 미적분학, 확률론, 통계학개론, 선형대수학 등이 있다. 또, 기계학습 알고리즘을 배웠을 때 그것을 구현하는 데 필요한 프로그래밍 언어도 알아야 한다. 



기능

기계학습으로 할 수 있는 기능엔 크게 두 가지가 있다.


(1) 분류 (Classification)

주어진 입력 x의 레이블 y를 추정해내는 것이다. y는 1/0의 이진값이거나 혹은 확률이거나 실수값으로 주어질 수 있다.


(2) 군집화 (Clustering)

주어진 입력 x와 비슷한 입력들의 군집(cluster)을 추정해내는 것이다.



학습 방법

기계학습의 학습 방법엔 크게 3가지가 있다.


(1) 지도 학습 (Supervised Learning)

사람이 교사로써 각각의 입력(x)에 대해 레이블(y)을 달아놓은 데이터를 컴퓨터한테 주면 컴퓨터가 그것을 학습하는 것이다. 사람이 직접 개입하므로 정확도가 높은 데이터를 사용할 수 있다는 장점이 있다. 대신에 사람이 직접 레이블을 달아야 하므로 인건비 문제가 있고, 구할 수 있는 데이터양도 적다는 문제가 있다. 크게 분류(Classification)과 회귀(Regression) 으로 나눌 수 있다.


- 분류 (Classification) : 레이블 y가 이산적(Discrete)인 경우. 즉, y가 가질 수 있는 값이 [0, 1, 2...]와 같이 유한한 경우 분류, 혹은 인식 문제라고 부른다. 일상에서 가장 접하기 쉬우며, 연구가 가장 많이 되어있고, 기업들이 가장 관심을 가지는 문제 중 하나다.


- 회귀 (Regression) : 레이블 y가 실수인 경우 회귀문제라고 부른다. 데이터들을 쭉 뿌려놓고 이것을 가장 잘 설명하는 직선 하나 혹은 이차함수 곡선 하나를 그리고 싶을 때 회귀 기능을 사용한다. 데이터는 입력(x)와 실수 레이블(y)의 짝으로 이루어져 있고, 새로운 임의의 입력(x)에 대해 y를 맞추는 것이 바로 직선 혹은 곡선이다.


(2) 비지도 학습 (Unsupervised Learning)

사람 없이 컴퓨터가 스스로 레이블 되어 있지 않은 데이터에 대해 학습하는 것. 즉 y없이 x만 이용해서 학습하는 것이다. 정답이 없는 문제를 푸는 것이므로 학습이 맞게 됐는지 확인할 길은 없지만, 인터넷에 있는 거의 모든 데이터가 레이블이 없는 형태로 있으므로 앞으로 기계학습이 나아갈 방향으로 설정되어 있기도 하다. 군집화(Clustering)이 대표적인 예다.


- 군집화 (Clustering) : 데이터가 쭉 뿌려져 있을 때 레이블이 없다고 해도 데이터간 거리에 따라 대충 두 세개의 군집으로 나눌 수 있다. 이렇게 x만 가지고 군집을 학습하는 것이 군집화이다.


- 분포 추정 (Underlying Probability Density Estimation) : 군집화에서 더 나아가서, 데이터들이 쭉 뿌려져 있을 때 얘네들이 어떤 확률 분포에서 나온 샘플들인지 추정하는 문제이다.


(3) 강화 학습 (Reinforcement Learning)

강화학습은 현재의 상태(State)에서 어떤 행동(Action)을 취하는 것이 최적인지를 학습하는 것이다. 행동을 취할 때마다 외부 환경에서 보상(Reward)이 주어지는데, 이러한 보상을 최대화 하는 방향으로 학습이 진행된다. 그리고 이러한 보상은 행동을 취한 즉시 주어지지 않을 수도 있다(지연된 보상).



알고리즘

굉장히 많은 종류의 알고리즘이 존재한다. 아래는 간략한 관련 주제들이다.


(1) 확률 기반 : Naive Bayes Classifier (NBC), Hidden Markov Model (HMM)

(2) 기하 기반 : K-Means Clusering, K Nearest Neighbors (KNN), Support Vector Machine (SVM)

(3) 인공신경망 : Perceptron, Multi Layer Perceptron (MLP), Deep Learning



코멘트 : 

현재 많은 뉴스에서 '인공 지능'이란 주제가 쏟아져 나오고 있다. 막연히 어느 미래에 가능하게 될 것이라 여겨지던 인공 지능이 '알파고' 이후로 급격히 떠오르게 된 것이다. 이와 더불어 '인공 지능'의 바탕이 되는 '머신 러닝' 역시 핫한 주제로 떠오르고 있다. 실제로 대기업에서부터 앞다투어 이를 적용한 다양한 상품들이 줄줄이 출시되고 있는 것으로 확인할 수 있다. 이제 곧 사람이 하게 될 일들을 로봇이 하게 되는 시대가 올 것이다. 그것이 더 이상 막연한 미래가 아님을 누구든 쉽게 추측할 수 있을 것이다.




댓글