Silver bullet
Avoding overfitting - Dropout & Batch Normalization / DL Hyper-params & Transfer-learning + Deep Double Descent 본문
Avoding overfitting - Dropout & Batch Normalization / DL Hyper-params & Transfer-learning + Deep Double Descent
밀크쌀과자 2024. 7. 12. 21:211) Dropout
- 신경망에 적용할 수 있는 효율적인 Overfitting 회피 방법 중 하나
- Training을 진행할 때 매 Batch 마다 Layer단위로 일정 비율만큼의 Neuron을 꺼뜨리는 방식으로 적용
- Test / Inference 단계에는 Dropout을 걷어내어 전체 Neuron이 살아있는 채로 Inference를 진행해야 함
- 랜덤하게 Neuron을 꺼뜨려 학습을 방해함으로써 모델의 학습이 Training data에 편향되는 것을 막아주는 것이 핵심
- 동일한 데이터에 대해 매번 다른 모델을 학습시키는 것과 마찬가지로 효과를 발생시켜 일종의 Model ensemble 효과를 얻을 수 있음
- 전반적으로 Overfitting을 줄여주므로 Test data에 대한 에러를 더욱 낮출 수 있게 해줌
- 가중치 값이 큰 특정 Neuron의 영향력이 커져 다른 Neuron들의 학습 속도에 문제를 발생시키는 Co-adaptation을 회피할 수 있게 함
- 2012년도 ImageNet Challenge에서 우승한 Alexnet은 마지막 2개의 Fully-connected layer에 Dropout을 적용함 (p==0.5)
Batch Normalization
- Input data에 대해 Standardization과 같은 Normalization을 적용하면 전반적으로 model의 성능이 높아짐
- 데이터 내 Column들의 Scale에 model이 너무 민감해지는 것을 막아주기 때문
- 신경망의 경우 Normalization이 제대로 적용되지 않으면 최적의 Cost 지점으로 가는 길을 빠르게 찾지 못함
- 이러한 Normalization은 Input data 뿐만 아니라 신경망 내부의 중간에 있는 Hidden layer로의 input에도 적용해주는 것이 BN
- Activation function을 적용하기 전에 Batch normalization을 먼저 적용 (앞과 뒤 중 어느 쪽에 삽입할지는 논의/실험 중)

Process of Batch Normalization
- 1) 각 Hidden layer 로의 Input data에 대해 평균이 0, 분산이 1이 되도록 Normalization을 진행
- 2) Hidden layer의 출력값(Output)이 비선형성을 유지할 수 있도록 Normalization의 결과에 Scaling & Shifting 적용 (컴퓨터가 알아서 알맞은 값으로 적용)
- 3) Scaling& Shifting을 적용한 결과를 Activation function에게 전달 후 Hidden layer의 최종 output 계산
Batch Normalization 의 장점
- 학습 속도 & 학습 결과가 개선됨 (Higher learning rate 적용가능)
- 가중치 초기값에 크게 의존하지 않음 (매 layer 마다 정규화를 진행하므로 초기화의 중요도 감소)
- Overfitting 억제 (Dropout, L1/L2 regularization등의 필요성 감소)
- 핵심은 학습 속도의 향상 (Overfitting을 줄여주는 Regularization effect는 부수적 효과)

DL Hyper-params & Transfer-learning + Deep Double Descent
Beyond overfitting, where new settlement lies.
