본문 바로가기

ML with Caltech SURF

Big data Analysis 섬머스쿨 - Supervised Learning

JPL-Caltech Virtual Summer school - Big data Analysis(2)

강의 링크 : https://class.coursera.org/bigdataschool-001/wiki/Day_1


전체 주제 : Supervised Learning


지도학습은 무엇인가? correct result를 아는 sample을 learning process에 사용하는 방식을 supervised learning이라고 부른다.

보통 classification 이나 regression에 사용된다.


Training data 는 training example 들로 구성된다.

D= (x1,y1),(x2,y2),...,(xn,yn) 

이때 x1,...,xn: input parameters (feature vector) 이고, y : output value(target vector)이다. 

이 training data를 통하여 traget function을 구현하는게 목적이다.

f(xi) = yi (function to learn, unknown) < 즉 이는 이상적인 함수이다. 이를 구하기 위하여 우리는 hypothesis를 이용한다.

g(xi) = yi (approximate f, known) 즉 러닝알고리즘을 통하여 점점 hypothsis g(x)는 개선되고 final은 ideal한 target function과 비슷해진다.

Learning model의 도식화


이는 KDD 모델에 그대로 적용할 수 있다. (KDD 모델은 이전 포스트를 보면 알 수 있다.)

data를 select해서 feature vector로 만들고 이를 learning model에 넣어서 validation을 확인한다. 그리고 final model을 도출한다.


Learning Set은 세가지로 나눌 수 있다.

1. training set 2.validation set 3. test set  세개의 data set은 independent하다.


Training set

->a set of examples used for learning where the target value is known

Learning algorithm은 training set을 통하여 accurate prediction을 하는게 목적이다 

하지만, training set 에대한 결과물이 잘나온다고해서, 일반적으로 좋은 모델이라는 것은 아니다. 이를 확인하기위해 validation set을 활용한다.


Validation Set

-> set of examples used to tune the architecture of a classifier and estimate the error 

이는 어떤 모델이 가장 좋을지 결정할 때 사용된다. 일반적으로 어떻게 작동하는지 확인하는데 사용된다.

어떻게 구할까? 

그냥 새로운 데이터를 구하거나, 처음부터 training set과 랜덤하게 스플릿하기도 한다. 또한 Cross-validation tech이 사용되기도한다.


Cross-validation

C-V 테크닉은 모델이 얼마나 좋은지 확인하는데 사용된다. Validation set을 구하는 방식이다.

완전한 교차검증 방식에는 LOOCV(하나를 남기고 cross-validation 작업 즉 validation set은 처음부터 완전 독립), LPOCV(p개를 validation set으로 남기고 사용) 이 있다.

비완전 교차검증에는 k-fold cross validation 과 repeated sub-sampling validation이 있다.

k-fold cross-validation : 전체 데이터 집합을 k개의 서브집합으로 나눈뒤에 각 집합을 한번씩 validation set으로 설정하여 테스트한다.  

Final accuracy = avg(sum of accuracy)

k-fold CV의 도식화


Repeated random sub-sampling

이는 각 스텝마다 data-set을 두개의 traing과 validation으로 나눈다. 

그리고 validation error를 측정후에 전체 평균을 취한다.

장점은, 데이터셋의 비율이 fold 수에 독립적이라는 것이다.

단점은 어떤 데이터는 영원히 또는 validation으로 사용되지 못할수도있고, 어떤데이터는 엄청많이 사용될 수도 있다.


Test set

Test set은 트레이닝이 완료된 classifier의 performance를 확인하기 위하여 사용된다.

trainig session에서는 절대로 사용되지 않는다. traing set은 unbiased error를 확인 할 수 있다. 


Overfitting : A common problem

함수자체를 사용하는게 아니라 트레이닝 셋을 이용하기 때문에, 일반적인 함수가 안구해질수도 있다. 

트레이닝 셋엔 완벽하게 나오지만, 새로운 데이터에는 제대로 적용되지 않을 수가 있다.

어떻게 오버피팅을 피할까? C-V, early stopping, regularization,Bayesian Priors,model comparasion등의 방법이 있다.

왼쪽부터 제대로 학습안된 모델(언더피팅), 제대로 학습된 모델, 오버피팅의 예시

오버피팅을 피하기위한 테크닉 : early stopping

만약에 발리데이션 에러가 늘어나기 시작하면 멈춤, 어차피 트레이닝셋의 에러는 점점 줄어드는데 발리데이션 에러가 늘어난다면 여기서부터 오버피팅이 진행된다는 뜻이기 때문에 이타이밍에 멈추면된다.