欲速不達

일을 급히 하고자 서두르면 도리어 이루지 못한다.

Fantastic AI, Fantastic World

DS | Data Science/ML | Machine Learning

[DL Basic] Optimization 최적화 - 3 : Regularization

_껀이_ 2022. 10. 4. 22:05
728x90
반응형

1. Regularization

1-1) Early Stopping

Early stopping는 앞선 최적화 - 1에서 언급한 Generalization 문제에서 Generalization gap에 대한 방법이다. iteration이 커질수록 test error는 줄어들다가 어느 지점에서 다시 상승하는 모양을 보일 수 있고, 이렇게 되면 gap이 다시 커지는 걸 볼 수 있다. 이때 gap을 유지하기 위해서 iteration을 멈추는 방법이 Early Stopping이다.

Early Stopping 예시

 

 


1-2) Parameter Norm Penalty

Parameter Norm Penalty는 목적함수가 되는 loss function에 parameter norm penalty를 추가하여 모델의 크기 등을 제한하는 것에서 나오는 아이디어이다. 방법으로는 Weight Decay라고도 부르는 L2 Regularization과 모델 parameter의 사이즈를 제한하는 L1 Regularization이 있다.

L2 Regularization
L1 Regularization

 

 

 

1-3) Data Augmentation

Data Augmentation은 한정된 데이터량을 보유했을 때 데이터의 다양성을 보장하기 위해 생각된 아이디어이다. 이미지의 경우에 하나의 이미지에서 feature는 손상시키지 않는 범위에서 rotation, flip 등의 변환을 통해 다양성을 보장하는 것이 가능하다.

 

 

 

1-4) Label Smoothing

Label Smoothing은 Hard label을 Soft label로 전환하는 것을 의미한다. Hard label은 One-Hot 벡터로 정답은 1, 나머지는 0으로 구성된 것을 말하며, Soft label은 라벨이 0~1 사이 값으로 구성된 것을 말한다. 

Label Smoothing의 방법으로는 Mixup, Cutout, CutMix이 있다. Mixup은 label을 smoothing한 만큼 이미지를 fade하여 겹친 이미지를 input으로 사용하며 label 또한 smoothing되어 0~1사이의 값을 가진다. Cutout은 label은 그대로지만 이미지의 일부를 떼어내어 사용하고, CutMix는 Cutout처럼 이미지를 떼어낸 곳에 다른 이미지를 접합시켜 새로운 이미지를 만들어 사용한다. 이때 label 값은 이미지의 할당비율만큼 조절하여 0~1 사이의 값을 가지게 한다.

 

 

 

1-5) Dropout

Dropout은 모델 안의 Weight를 무작위로 일정 개수를 선택하여 학습에서 제외하는 것을 말한다. Weight를 전체적으로 업데이트하는 것이 아니기 때문에 Dropout을 적용한 모델은 적용하지 않은 모델보다 overfitting될 위험이 줄어든다.

위의 그림과 같이 Dropout을 적용하는 수만큼 서로 다른 모델을 구성한 것과 같은 효과를 가질 수 있다. 즉, 100개 neroun 중에 10개를 drop한다고 가정하면 총 90개의 neroun을 사용하는 여러개의 모델이 학습한 결과를 하나의 모델에서 구현할 수 있게 된다. 이는 Ensemble 모델과 유사한 효과를 가져오므로 overfitting될 위험을 줄일 수 있다.

 

 

 

1-6) Batch Normalization

Batch Normalization은 간단하게 말하면, 각 batch에 대하여 평균과 분산으로 normalization하는 것이다. normalization은 원래 데이터 전체에 대하여 계산되는 것이지만 머신러닝 모델에서는 주로 mini-batch 단위로 학습을 실시하기 때문에 mini-batch 단위로 normalization을 실시하게 된다. normalization을 적용하는 단위나 대상에 따라 변할 수 있지만 기본적인 아이디어는 통계학에서 말하는 normalization과 같다.

Batch Normalization은 보통 non-linear 함수(activation function) 앞에 배치되며 NN 내부에 포함되기 때문에 역전파를 통해 학습이 된다. 

 

 

 

이미지 출처 : 네이버커넥트 부스트캠프 AI Tech 강의자료, 구글링 등

728x90
반응형