'머신러닝(Machine Learning)'이라는 용어는 아서 사무엘(Arthur Lee Samuel)이 1959년에 IBM의 R&D 저널에서 처음 사용했다.(IBM Journal of Research and Development, “Some Studies in Machine Learning Using the Game of Checkers”)(https://en.wikipedia.org/wiki/Machine_learning)
https://www.freepik.com/free-photo/3d-render-robot-with-books_1166338.htm, Designed by kjpargeter 머신러닝 정의
명확한 정의가 없는 인공지능과는 달리 머신러닝은 정의(definition)가 있다. 머신러닝 용어를 만든 아서 사무엘의 1959년 정의와 톰 미첼의 1998년 정의가 있으며, 최근에는 톰 미첼의 정의가 많이 쓰인다.
아서 사무엘(Arthur Lee Samuel)은 머신 러닝을 "컴퓨터가 명시적으로 프로그램되지 않고도 학습할 수 있도록 하는 연구 분야"라고 정의했다.(Andrew Ng 교수, Coursera Machine Learning 강의 Lecture 1, https://www.coursera.org/learn/machine-learning/)
Machine Learning: Field of study that gives computers the ability to learn without being explicitly programmed. (1959, by Arthur Lee Samuel)
일반적인 컴퓨터 프로그램은 "A 입력에 B 조건이 성립하면 X를 동작시킨다"를 인간이 작성하는 반면, 머신러닝에서는 A라는 정보를 입력할 때 대답이 X가 되는 조건 B를 찾도록 기계를 학습시킨다.( “구글에서 배우는 딥러닝” 닛케이 빅 데이터 著, 서재원 옮김, 영진닷컴, 28p)
곱하기를 계산하는 프로그램을 예로 들면, 일반적으로 사람이 프로그램을 작성할 때는 입력 숫자와 곱하기 연산자를 활용하여 결과 값을 계산하지만, 머신러닝에서는 입력값 A와 정답 X를 활용하여 스스로 학습하여 조건 B를 찾는다.
“인공지능, 기계학습 그리고 딥러닝” 강의자료 15p 일부 변경, https://www.slideshare.net/JinwonLee9/ss-70446412
다음, 카네기 멜론 대학의 머신러닝 교수인 톰 미첼(Tom Mitchell)은 "만약 어떤 작업 T에서 경험 E를 통해 성능 측정 방법인 P로 측정했을 때 성능이 향상된다면 이런 컴퓨터 프로그램은 학습을 한다고 말한다"라고 프로그램의 학습을 정의하였다.(Andrew Ng 교수, Coursera Machine Learning 강의 Lecture 1)
A computer program is said to learn from experience E with respect to some task T and some performance measure P, if its performance on T, as measured by P, improves with experience E. (1998, by Tom Mitchell)
예를 들어, 필기체 문자를 인식하는 경우, 작업 T는 필기체 문자 인식, 성능 P는 필기체 인식의 정확도, 경험 E는 정답이 표시된 필기체 문자의 입력이 될 것이며, 이 경우 정답이 표시된 필기체 문자를 입력하여(경험 E를 통해) 성능 P가 향상된다면 이 프로그램은 학습된다고 할 수 있다.
“인공지능, 기계학습 그리고 딥러닝” 강의자료 15p 일부 변경, https://www.slideshare.net/JinwonLee9/ss-70446412
머신러닝의 종류
머신러닝은 지도학습, 비지도학습과 강화학습의 세 가지 종류가 있다.
(기본 내용) “인공지능, 기계학습 그리고 딥러닝” 강의자료 16p, (도표) Andrew Ng 교수, Coursera Machine Learning 강의 Lecture 1, 2, (학습모델) 인공지능, 머신러닝, 딥러닝 입문, 김의중, 위키북스
지도학습은 입력값과 함께 결과값(정답 레이블)을 같이 주고 학습을 시키는 방법으로, 분류/회귀 등 여러가지 방법에 쓰인다. 지도학습의 구체적인 학습모델은 SVM(Support Vector Machine), 결정트리(Decision Tree), 회귀모델 등이 있다. 위 오른쪽 첫번째 그래프는 선형 회귀분석을 이용하여 아파트 가격을 예측하는 지도학습을 보여준다.
비지도학습은 결과값 없이 입력값만을 이용하여 학습을 시킨다. 위 오른쪽 두번째 그래프는 소셜 네트워크 데이터를 활용하여 사람들 사이의 친소(親疎) 관계를 예측하는 비지도학습을 보여준다.
강화학습은 결과값 대신 어떤 일을 잘했을 때 보상(reward)을 주는 방법으로 학습을 시킨다. 위 오른쪽 마지막 사진은 강화학습을 통해 기계 팔에게 탁구를 가르치는 장면이다. 강화학습은 현재의 상태(State)에서 어떤 행동(Action)을 취하는 것이 최적인지를 학습하는 것이다. 행동을 취할 때마다 외부 환경에서 보상(Reward)이 주어지는데, 이러한 보상을 최대화 하는 방향으로 학습이 진행된다. 강화학습에서는 당장의 보상값이 조금은 적더라도, 나중에 얻을 값을 포함한 보상값의 총합이 최대화되도록 행동을 선택해야 하며, 플레이어는 어떤 행동을 해야 보상값의 합이 최대화되는지 모르기 때문에, 미래를 고려하여 가장 좋은 선택이 뭔지 여러 방식으로 수행하며 행동을 고민해야 한다. 좋은 선택이 뭔지 행동을 찾는 것을 탐색, 지금까지 나온 지식을 기반으로 가장 좋은 행동을 찾아 그것을 수행하는 것을 활용이라고 하며, 강화학습 알고리즘은 이 둘 사이의 균형을 어떻게 잡아야 할지에 초점을 맞춘다.(https://namu.wiki/w/강화학습)
여기서 딥러닝(Deep Learning)은 지도학습/비지도학습/강화학습 중 어디에 속하는지 문득 궁금한 사람이 있을 것이다. 딥러닝은 특정한 하나의 모델이라기 보다는 머신러닝에 속하는 대표적인 방법론으로서 지도학습과 비지도학습 및 강화학습 모두에 이용될 수 있다. 먼저, 딥러닝에 지도학습을 적용하여 손으로 쓴 숫자를 인식하는 프로그램을 만드는 예제는 흔하게 찾을 수 있다. 딥러닝에 비지도학습을 적용한 것은 2012년 구글에서 앤드류 응(Andrew Ng) 교수가 했던 이미지 인식 실험이 있다. 당시 딥러닝에 정답 레이블이 없는 유튜브 동영상 캡처 영상 1000만개를 입력하여(비지도학습) 고양이, 사람 등의 인식에 성공한 사건은 유명하다. 강화학습에 적용한 사례로는 심층강화학습(Deep Reinforcement Learning)이 있다. 강화학습에서 딥러닝은 특정 상태에서 액션을 수행했을 때 기대되는 보상의 총합을 계산하는 함수를 구하는데 사용된다.
http://blog.ncsoft.com/?p=29996)
머신러닝 예제
주택가격을 예측하는 프로그램을 작성할 때, 전통적인 프로그래밍과 머신러닝(지도학습 중 선행 회귀regression)를 이용하는 방법을 비교해보자. 아래 왼쪽 전통적인 프로그램을 보면 주택이 위치한 지역에 따라 평당 가격(price_per_sqft)을 다르게 책정하고, 방의 숫자(num_of_bedrooms)에 따라 최종 가격을 적절히 조정하도록 프로그램이 작성되어 있다. 만약 지역, 크기, 방의 숫자 등이 결과에 미치는 비율을 알 수 있다면 아래 오른쪽과 같은 수식을 사용하여 주택가격을 예측할 수 있을 것이다. 머신러닝은 각 요소값과 최종 가격 데이터로부터 각 요소가 결과에 미치는 비율값을 계산할 수 있으며, 머신러닝의 결과값은 각 요소값이 결과에 미치는 비율값(가중치weight)이다.
https://medium.com/@ageitgey/machine-learning-is-fun-80ea3ec3c471 일부변경
실제 회귀분석을 위한 머신러닝 과정을 살펴보자. 아래는 도시 인구에 따른 푸드 트럭(Food Truck)의 이윤(profit)을 예측하는 선형 회귀분석 문제이다. 비용(Cost Function)이 최저가 되는 파라미터값(세타θ 1, 2)을 찾는 과정이 머신러닝 과정이며, 머신러닝의 결과는 도출된 파라미터값인 세타 1, 2값이다. 이를 예측함수(Hypothesis) h에 적용하면 인구수에 따른 푸드 트럭의 수익 예측치를 구할 수 있다. 즉, 머신러닝 과정은 ① 비용함수(J)가 최저가 되는 예측함수의 파라미터 값(세타θ)을 찾는 단계와 ② 최적의 파라미터 값을 적용한 예측함수를 활용하여 실제 예측값을 구하는 단계의 2단계로 구성된다.
Andrew Ng 교수, Coursera Machine Learning 강의 Programming Exercise 1, Lecture 2
강화학습 사례는 영상으로 볼 수 있어 그 과정을 좀 더 쉽게 파악할 수 있다. 아래 탁구를 가르치는 강화학습 영상을 보면 머신러닝을 어떻게 이용하는지 감이 잡힐 것이다.
프라이팬의 팬케익을 뒤집는 로봇 팔을 만드는 강화학습 영상 역시 참고.
통계학과 머신러닝의 관계
글을 마치기에 앞서 통계학과 머신러닝의 관계를 잠깐 살펴보겠다. 일반적으로 머신러닝을 설명하는 여러 글에서 가장 먼저 드는 사례가 선형 회귀분석이다. 회귀분석 사례를 볼 때마다 "회귀분석은 통계에서 나오는 개념인데 왜 머신러닝의 대표적인 사례로 언급되는가?"라는 의문이 들었다. 현재의 인공지능 방법론은 통계, 예측분석, 딥러닝, 머신러닝, 자연어 처리 등 여러 방법론을 복합적으로 활용한다.
"인공지능, 현대적 접근"이라는 책에도 이런 내용은 언급되어 있는데, 1987년부터 인공지능이 통계 등 과학적인 방법론을 채택했다고 되어 있다. (“Artificial Intelligence A Modern Approach” 3rd Edition 25p)
AI adopts the scientific method(1987~)
AI was founded in part as a rebellion against the limitations of existing fields like control theory and statistics, but now it is embracing those fields
머신러닝과 통계학은 같은 내용에 대해서 다른 용어를 사용한다. 즉, 분류, 예측, 군집 등의 기술, 모델과 알고리즘을 이용하여 문제를 해결하는 것을 컴퓨터 과학의 관점에서는 '머신러닝'이라고 하고, 통계학의 관점에서는 '데이터 마이닝'이라고 한다. 아래 표와 같이 사용하는 용어 또한 다르다.
인공지능, 머신러닝, 딥러닝 입문, 김의중 지음, 위키북스(77p, 100p) 머신러닝과 통계학은 비슷하지만 차이점이 존재하는데, 머신러닝은 정확한 예측에 집중을 하는 반면 통계학은 사람들이 왜 그러한 선택을 하는지를 분석하는 학문이다.
Coursera Data Science 강의, https://www.coursera.org/learn/data-science-course/ 지금까지 머신러닝의 정의, 종류, 예제 그리고 통계와의 관련성을 살펴보았다. 다음번에는 인공신경망에 대해서 살펴보겠다.
[인공지능 이야기 시리즈]
인공지능 개념(AI) | 인공지능 정의, 유형. 분야, 역사
머신러닝 개념(Machine Learning) | 머신러닝 정의, 종류, 예시, 통계와 비교
머신러닝, 기계가 학습한다는 의미 | 머신러닝 과정에 구체적으로 무슨 일이 일어나는가?
인공신경망 개념(Artificial Neural Network) | 생물학적 신경망, 인공신경망, 퍼셉트론, MLP
딥러닝 개념(Deep Learning) | 딥러닝 등장 3대 사건, 기본 개념, CNN, RNN, 장단점
인공지능에 대해서 더 궁금하시면, 제가 쓴 아래 책을 참고하세요.
http://www.yes24.com/Product/Goods/110044822