여러가지 regularization 기법

1. regularization

 

generalization이 잘 되게하고자 학습을 방해하는 요소를 추가하여 학습뿐만 아니라 test에도 잘 동작하는 모형을 만드는 방법

 

여러가지 방법들 모두 시도해보면서 잘 되면 좋고 아님 말고…

 

 

2. Early stopping

 

Early stopping은 iteration이 증가할 수록 test error는 증가하니 증가하기 전에 멈추자는 원리

 

그림1. iteration에 따른 error의 일반적인 분포

 

특히 test data는 학습 과정에서 사용하면 안되니까 train data의 일부인 validation set으로 평가했다는 점이 주목할만 하다.

 

 

3. Parameter norm penalty

 

Parameter norm penalty는 네트워크의 parameter가 크기면에서 너무 커지지 않았으면 하는 바람에서 나온 것

 

L1, L2 regularization 기법이 대표적

 

모든 parameter의 제곱합을 cost에 더함

 

parameter의 항이 많아질수록 함수가 부드러워지며(고차함수가 되니까)

 

함수가 부드러울수록 generalization이 더 높을 것이라고 가정함

 

그림2. L2 regularization 기법에 대한 cost 함수식

 

4. Data augmentation

 

data augmentation은 데이터가 무한하면 언제나 좋다는 생각에서 나왔다.

 

전통적으로 small set인 시대에는 전통적인 머신러닝이 딥러닝보다 성능이 좋다

 

실제로 데이터 셋이 적으면 딥러닝 성능이 좋지않다

 

그러나 이제 데이터가 많아지면서 데이터가 많을수록 딥러닝 성능이 좋다는 사실이 알려졌다.

 

그림3. data에 따른 ML, NN, DL 기법 성능 비교

 

그런데 문제는 데이터는 한정적이다

 

어떤식으로든 데이터를 늘리고자하여 여러가지 방법이 등장했다.

 

 

 

4-1) label preserving augmentation

 

그림4. 라이언 이미지를 여러 각도로 변화시킨 모습

 

위와 같이 원래 라이언인 데이터는 45도 90도 30도 15도 돌려도

 

여전히 그 label은 라이언이지만 데이터가 약간 다르다고 말할 수 있다

 

image의 경우 label을 바꾸지 않은 선에서 회전변환으로 적절하게 데이터를 늘릴수 있다.

 

 

4-2) Noise Robustness

 

Noise Robustness는 왜 잘되는지는 모르겠지만

 

입력값이나 가중치에 noise를 주면 학습이 잘되더라

 

그림5. 데이터에 noise를 추가하여 여러 데이터로 복제함

 

4-3) label smoothing

 

label smoothing은 이미지 데이터를 적절하게 섞어 label이 혼합된 이미지 데이터를 만드는 방식

 

그림6. 여러가지 label smoothing 기법 비교

 

5. dropout

 

dropout은 학습 중 일부 weight를 랜덤하게 0으로 바꾸면서 각각의 neuron이 robust하게 만든다.

 

수학적으로 좋다고 증명된 것은 아니지만 실험적으로 학습에 좋다고 증명되었나보다

 

그림7. dropout에 대한 그림

 

6. Batch normalization

 

batch normalization은 적용하고자하는 모든 layer의 statistic을 정규화시키는 기법이다.

 

예를 들면 모든 layer의 batch의 평균을 0 분산을 1로 만든다.

 

도입하고자 했던 이유인 'covariate shift'에 대해 논란이 좀 있지만

 

확실한 부분은 보통 batch normalization을 쓰면 성능이 좋아지긴 한다고 한다

 

이것 이후로 layer normalization, group normalization 등이 나왔다.

 

그림8. 여러가지 normalization

 

TAGS.

Comments