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을 넣지는 않는다.

 

Dropout 비교

효과 :

- 동일한 데이터에 대해 매번 다른 모델을 학습시키는 것과 마찬가지의 효과를 발생시켜 일종의 Model ensemble 효과를 얻을 수 있다.

- 가중치 값이 큰 특정 Neuron의 영향력이 커져 다른 Neuron들의 학습 속도에 문제를 발생시키는 Co-adaptation (동조화)을 회피할 수 있게 한다.

- voting(투표)에 의한 평균 효과를 얻을 수 있기 때문에 결과적으로 regularization과 비슷한 효과를 얻을 수 있다.

 

단점:

- 비용 함수가 제대로 하강하고 있는지 확인하기 어렵다.