본 게시물은 "모두를 위한 딥러닝 2" 강의 수강을 바탕으로 작성된 포스트이다.
머신러닝이란, 일종의 "SOFTWARE", 즉 "PROGRAM"이다.
입력을 바탕으로 데이터를 보여주는 "EXPLICIT programming"이라 할 수 있다.
기존에는 개발자가 미리 모든 경우에 대해 대비해 각 도출 결과를 작성해야 했기에 모든 경우를 예측하기 어려웠다. (ex. 스팸 필터, 자율주행)
이에, 일일히 프로그래밍하지 말고 현장에서 자동으로 학습하는 프로그램인 ML 개발.
이미 정해져있는 data, 즉 labeling이 완료된 training set을 바탕으로 학습하는 것이다. 대개의 LEARNING이 여기에 속한다고 보면 된다.
Un-labeled data를 학습하는 것으로, data를 보고 스스로 학습하는 종류이다.
(ex. 뉴스를 분류하는 것, 유사한 단어를 묶는 것)
SUPERVISED Learning이 기본적으로 ML에서 가장 일반적인 유형이다. 예시를 보는 것이 가장 직관적이므로 다음 경우들을 확인해보자.
Supervised Learning에서 train의 대상이 data set. 즉, ML에 넣는 Labeling이 완료된 data set이다. 이 training data set을 넣어서 학습을 시킨다고 보면 된다.
우리가 잘 알고 있는 알파고를 예로 들어보자. 알파고는 기존 모든 바둑기법 data를 학습한 ML이다.
알파고의 경우, 기존 바둑기법들이 training data set이 된다.
training data set은 일종의 함수다. 학습 대상이 있고, 그 결과가 있다.
결과값이 0~100 등 실수 범위처럼 많은 유형
결과값이 P/F 처럼 둘 중 하나인 유형
결과값이 A부터 F의 등급처럼 여러개로 한정되는 유형