AI/Deep Learning
[딥러닝] Avoiding Overfitting - Dropout
밍츠
2022. 5. 1. 14:09
Dropout
- 신경망에 적용할 수 있는 효율적인 오버피팅 회피 방법 중 하나
- Training을 진행할 때 매 Batch마다 Layer 단위로 일정 비율 만큼의 Neuron을 꺼뜨리는 방식을 적용
- Test / Inference 단계에서는 Dropout을 걷어내어 전체 Neuron이 살아있는 채로 Inference를 진행해야 한다.
- 전반적으로 오버피팅을 줄여주므로 Test data에 대한 에러를 더욱 낮출 수 있게 해 준다.
- 2012년도 ImageNet Challenge에서 우승한 Alexnet은 마지막 2개의 Fully-connected layer에 Dropout을 적용함(p==0.5)
-> 보통 layer마다 다 dropout을 넣지는 않는다.
효과 :
- 동일한 데이터에 대해 매번 다른 모델을 학습시키는 것과 마찬가지의 효과를 발생시켜 일종의 Model ensemble 효과를 얻을 수 있다.
- 가중치 값이 큰 특정 Neuron의 영향력이 커져 다른 Neuron들의 학습 속도에 문제를 발생시키는 Co-adaptation (동조화)을 회피할 수 있게 한다.
- voting(투표)에 의한 평균 효과를 얻을 수 있기 때문에 결과적으로 regularization과 비슷한 효과를 얻을 수 있다.
단점:
- 비용 함수가 제대로 하강하고 있는지 확인하기 어렵다.