기록하는삶
[딥러닝/DL Basic] 최적화(Optimization) 관련 용어 정리 (3) _ Regularization 본문
[딥러닝/DL Basic] 최적화(Optimization) 관련 용어 정리 (3) _ Regularization
mingchin 2022. 2. 8. 00:43Regularization은 기계학습에서 과적합을 방지하기 위한 여러 제한적 수단으로, 일종의 학습을 방해하는 행위다. 학습 자체를 방해하고자 하는게 아니라, train data에'만' 너무 잘 동작하는 모델이 되지 않도록 하는 방법들을 말한다.
1) Early Stopping
test data외에 validation dataset을 구축하고, 해당 데이터셋에 대해 error가 더이상 줄어들지 않는 시점에 학습을 조기 종료하는 것을 말한다. n번의 epoch 학습 동안 모델 성능이 나아지지 않는다면 학습을 종료하는 방식으로 설정해줄 수 있다.
2) Parameter Norm Penalty(Weight Decay)
각 weight들이 너무 커지지 않게 제한을 두는 것을 말한다. 이는 함수에 smoothness를 더해줄 수 있고, 더 smooth한 함수가 보다 잘 generalize 될 것이라는 가정을 바탕에 둔다. Weight Decay라고도 하며, Ridge Regression, Lasso Regression 등이 이를 활용한 예이다.
3) Data Augmentation
충분한 데이터셋의 크기는 DL의 필수요건이다. 경우에 따라 데이터가 충분하지 못할 수 있는데, 이때 활용할 수 있는 것이 Augmentation이다. 대표적으로 이미지의 화질을 바꾸거나 회전, 확대축소, 좌우 반전시키는 등의 변화를 준 데이터들을 학습에 활용하는 것이 그 예이며 이는 Label Preserving Augmentation이라 부르기도 한다.
4) Noise Robustness
의도적으로 학습 데이터 혹은 weight들에 random noise를 더해주는 방법이다. Noise를 추가한 이미지를 학습에 활용한다면, 이는 Augmentation의 일종이다.
5) Label Smoothing
학습데이터 2개를 뽑아 특정 비율로 섞어준 데이터를 추가로 활용한다. 일종의 Augmentation이라 볼 수 있으며, 이미지 detecting시에는 decision boundary를 보다 smooth하게 만들어주는 효과가 있다고 한다. 예시처럼 이미지의 경우 섞는 방법에 따라 Mixup, CutMix 등이 있으며 이렇게 만들어낸 데이터의 경우 label 자체도 섞어주는 것을 볼 수 있다.
6) Dropout
학습을 진행할 때 random하게 특정 노드의 weight들을 0으로 설정한다, 즉 버린다. ratio 값을 지정해줌으로써 특정 비율의 노드들을 삭제한다. 개인적으로는 정말 직관적인 이해가 어려운데,,(대체 왜? + 잘 버려질 것이라는 확률에 기댄다는 점) 수학적 증명이 된 방법론이라기 보다는 경험적으로 검증된 방법론이라고 한다.
7) Batch Normalization
특정 레이어가 가지는 weights들의 통계적 분포를 표준정규화한다. 즉, weights들의 확률분포의 평균을 0, 분산을 1로 만든다. 레이어가 깊게 쌓인 경우에 그 효과가 크다고 한다.
이후 적용하는 대상에 따른 다양한 Nomarlization 방법들이 제안되었다.
'AI > DL Basic' 카테고리의 다른 글
[딥러닝/DL Basic] 딥러닝의 Key components 4가지 (0) | 2022.02.11 |
---|---|
[딥러닝/DL Basic] CNN (2) _ CNN의 변화와 발전(2012 ~ 2017) (0) | 2022.02.09 |
[딥러닝/DL Basic] CNN (1) _ 기초 개념 및 용어 정리 (0) | 2022.02.08 |
[딥러닝/DL Basic] 최적화(Optimization) 관련 용어 정리 (2) _ Gradient_decent methods (0) | 2022.02.07 |
[딥러닝/DL Basic] 최적화(Optimization) 관련 용어 정리 (1) (0) | 2022.02.07 |