1. 지도 학습(Supervised Learning)
[ 지도 학습(Supervised Learning) ]
지도학습에 대한 정의를 먼저 알아보기 전에 지도학습의 예시가 되는 것들에 대해서 익히고 가도록 하겠습니다. 아래와 같은 그림에서 처럼 집의 가격에 대해 예측을 해본다고 가정합시다. 수집한 데이터 집합(Data Set)에 따라 작성한 그래프는 가로 축이 집의 크기이며, 세로축은 집들의 가격이라고 합시다. 이러한 상황에서 어떤 사람이 750 feet 의 집을 판매한다고 가정할 때 얼마를 얻을 수 있는지에 대해 우리에게 물어보았다고 합시다. 우리는 이 문제를 해결하기 위해서
① 각각의 값들을 선형으로 근사하게 잇는 알고리즘을 떠올릴 수 있는데, 데이터집합에 대해 선형 함수를 만들어서 750 feet의 크기라면 대략 150 정도를 얻을 수 있음을 알 수 있습니다.
② 하지만 선형으로 만드는 알고리즘은 비효율적이기에 2차 함수로 만드는 알고리즘 등을 더 떠올릴 수 있습니다. 이를 이용한다면 약 200정도를 얻을 수 있습니다.
이러한 것들은 지도학습의 예시가 되는데, 지도학습의 정의가 아래와 같기 때문입니다.
특정 입력(Input)에 대하여 올바른 정답(Right Answer)이 있는 데이터 집합이 주어지는 경우의 학습
위의 예시에서 각각의 집은 크기(Input, data)에 대한 가격(Output, Label)이 주어졌고 Supervised Learning은 이러한 입력들을 기반으로 학습하여 새로운 집에 대한 가격을 알아내는 알고리즘을 개발하고 그 가격을 제시합니다. 즉 프로그램은 이러한 정보들을 바탕으로 Input과 Output에 대한 관계를 유추하여 올바른 해답(Right Answers)을 제시하게 됩니다. 그리고 지도 학습에는 유추된 알고리즘을 통하여 연속적인 값을 예측하는 회귀분석(Regression)과 어떤 종류의 값인지를 표시하는 분류(Classification)라는 개념이 등장합니다.
[ 회귀분석(Regression) ]
Regression은 Continuous한 연속적인 값을 찾는 것입니다. 위의 예제에서 처럼 Output은 이산적이고 스칼라 값일 수 있지만 Input에 대응하는 Output을 분석하여 연속함수를 찾는 과정이 바로 Regression 입니다. 위의 예제에서 집의 크기(Input)에 해당하는 적절한 집의 가격(Output)을 찾는 것이 Regression의 예시가 되겠습니다.
조금 더 쉬게 풀어서 Regression은 어떤 데이터들의 특징(Feature)을 기준으로 연속된 값(Continuous value)을 예측하는 문제입니다. (연속된 값이란 그래프를 생각하면 됩니다.)
주로 어떤 패턴이나 트렌드, 경향을 예측할 때 사용되며, 일반적으로 집의 크기에 대해 매매 가격을 예로 듭니다.
Q. 강남에 30평대 아파트면 집값이 어느 정도야?
A. 강남에 30평대 아파트면 OO억정도 입니다.
[ 분류(Classification) ]
분류에 대한 예시 역시도 아래의 그림을 참고하여 설명하도록 하겠습니다. 아래의 그래프는 특정한 종양의 크기에 대하여 그 종양이 악성인지 양성인지를 진단하는 그래프입니다. 이때 4~5 사이의 모호한 종양 크기가 악성인지 양성인지를 구한다고 할 때 결국에 우리가 원하는 결과도 양성이거나 아니거나의 이산적인 값으로 표현이 되는데, 이것이 바로 Classification의 예시입니다.
즉, Classification이란 Input에 대응하는 Output을 분석하여 Discrete(이산적인) 값을 찾는 것입니다. 물론 Output이 반드시 0과 1로 표현되는 이진 분류 문제들만이 Classification 문제가 아니고 0, 1, 2, 3, 4 등과 같이 Discrete한 Output을 내는 것 역시도(다중 분류) Classification 문제입니다.
하지만 단순히 종양의 크기만으로 진단을 내리는 것은 위험하며 같은 크기의 종양이라고 하더라도 나이가 많으면 더 위험할 수 있습니다. 그래서 종양의 크기와 나이 그리고 악성인지를 나타내는 빨간 색의 X와 양성인지를 나타내는 파랑색의 O의 3가지 속성을 이용한 그래프를 활용하여 판단을 내린다고 합시다. 여기서 학습 알고리즘(Learning Algorithm)은 하나의 직선을 그어 양성과 악성을 구분하여 특정 위치의 종양은 양성일 확률이 높음을 판단 할 것입니다. 물론 실제 문제들에서는 2가지 이상의 특징들이 주어질 것이며 무한한 특징들(Features)을 다룰 수 있다는 것은 학습 알고리즘의 흥미로운 점입니다.
분류에 대한 좀 더 쉬운 설명은 다음과 같습니다.
먼저 분류(Classification)는 주어진 데이터를 정해진 카테고리에 따라 분류하는 문제를 말합니다.
최근에 많이 사용되는 이미지 분류도 Classification 문제 중에 하나입니다.
darknet YOLO의 network architecture는 GoodLeNet for image classification를 이용하여 이미지를 분류하고 있습니다.
예를 들어 스팸메일을 예측한다고 가정했을 경우 해당 메일이 스팸인가? 스팸메일 / 일반 메일로 라벨링 될 수 있을 것입니다. 이처럼 예, 아니오로 구분될 수 있는 분류를 Binary Classification이라고 부릅니다.
하지만 문제는 예, 아니오로 구분되지 않을 수 있습니다. 예를 들어 이 동물이 무엇일까?라고 했을 때 강아지, 고양이, 나무늘보 등으로 예측하는 상황이 있습니다. 이러한 분류를 Multi-label Classification이라고 합니다.
Supervised Learning모델로 Regression과 Classification을 주로 사용하는 알고리즘인 SVM(Support Vector Machine)은 컴퓨터가 무한한 Feature들을 다룸에도 메모리가 부족하지 않게 해주는 깔끔한 수학적인 트릭이 있음을 알려줍니다.
*Feature
머신러닝은 어떤 데이터를 분류하거나, 값을 예측(회귀)하는 것입니다. 이렇게 데이터의 값을 잘 예측하기 위한 데이터의 특징들을 머신러닝/딥러닝에서는 "Feature"라고 부르며, 지도, 비지도, 강화학습 모두 적절한 feature를 잘 정의하는 것이 핵심입니다. 엑셀에서 attribute(column)라고 불려지던 것을 머신러닝에서는 통계학의 영향으로 feature라고 부릅니다. 과거에 딥러닝 이전의 머신러닝에서는 Raw데이터를 feature엔지니어가 직접 적절한 feature를 만들고, 머신러닝 모델의 결과로 아웃풋을 냈었는데, 딥러닝 이후로 Raw데이터를 딥러닝 모델에 넣어주면 모델이 알아서 feature를 알아내고 아웃풋을 내는 형식으로 발전하게 되었습니다. (머신러닝 모델이 feature를 알아서 찾아준다고 하여도 여전히 전처리 작업은 중요합니다.)
예를 들어 고양이, 강아지 사진은 분류한다고 하면 고양이는 귀가 뾰족하다 거나 눈코입의 위치, 무늬 등이 feature가 됩니다. 키와 성별을 주고 몸무게를 예측한다고 하면 키와 성별이 feature가 됩니다.
Feature는 Label, Class, Target, Response, Dependent variable 등으로 불려집니다.
2. 비지도 학습(Unsupervised Learning)
[ 비지도 학습(Unsupervised Learning) ]
특정 입력(Input)에 대하여 올바른 정답(Right Answer)이 없는 데이터 집합이 주어지는 경우의 학습
저번의 내용을 통해서 지도학습은 Input에 대해 Right Answer를 가지는 경우의 학습이라는 것을 배웠습니다. 이번에 배울 비지도 학습은 주어지는 데이터들, Input이 Output에 대한 Right Answer을 가지고 있지 않을 때, Data Set를 Cluster로 분리하는 학습입니다. 아래의 그림에서는 1개의 데이터 집합이 2개의 클러스터로 구성된다고 판단을 하고 1개의 데이터 집합을 2개의 클러스터로 분리 할 것입니다. 그리고 이것을 비지도 학습 중 하나인 Clustering Algorithm이라고 부릅니다. 실제로 구글 뉴스는 수많은 기사들을 보고 분석하여 같은 주제를 가진 기사들을 하나의 클러스터로 만드러 함께 보이게끔 이 알고리즘을 사용하고 있습니다. 즉, Unsupervised Learning은 Supervised Learning과 다르게 Right Answer이 주어지지 않습니다. 그러므로 잘못된 Prediction Result에 대해서 Feedback을 받고 교정을 할 수 없습니다. 이러한 알고리즘은 페이스북에서 특정 집단의 사람들을 그룹화하거나, 천문학에서 은하가 어떻게 탄생했는지 분석하기 위해 별들을 모으는데 사용되곤 합니다.
참고 블로그