Slow is better than NOTHING

Computer Science/5. Deep learning

[Review] Dropout : A Simple Way to Prevent Neural Networks from Overfitting

Jeff_Kang 2019. 10. 11. 23:34
반응형

Dropout: A Simple Way to Prevent Neural Networks from Overfitting

  DNNs 이 깊어질 수록 다루는 parameter 수가 많아지게 된다. 이로 인해 DNNs은 보다 높은 성능을 낼 수 있는 강력한 Machine Learning System이 되었다. 하지만, Network가 깊어짐에 따라 훈련 속도가 느려질 뿐만 아니라 Overfitting에 대한 문제점을 고려해야한다. Dropout은 이러한 DNN의 문제점을 극복하기 위해 제시된 regularizer 개념이다.  본 논문은 supervised learning 을 기준으로 다양한 데이터셋에서 dropout의 성능을 실험하였고, 적용하지 않은 모델에 대해 높은 성능 향상을 보여주었다.

 

Dropout 

Dropout에 대한 개념을 간략히 설명하기 위해 위 그림을 인용하였다. Dropout을 papago에서 번역하면 '중퇴' 라고 나온다. '중퇴'라는 개념이 틀린것은 아니지만 상당히 어색한 개념이긴 하다. 하지만 의미론적인 관점에서는 동일하기 때문에 이를 DNNs 관점에서 해석하자면, 일부 Neuron들이 학습 도중에 중퇴한다는 것이다. 즉, X 로 표시된 Neuron들은 feed-foward 과정에서 weight를 update하기 위한 training 과정에 참여하지 않는다는 의미이다. 논문의 정의에 따르면 "Dropping out units" 라고 표현한다. 각각의 unit들은 고정된 확률 값 p 를 가지고 있는데, 이 값은 휴리스틱하게 네트워크나 데이터에 맞추어 설정될 수 있거나 간단히 0.5로 설정 할 수 도 있다. 이 확률 p 값에 기반하여 이 unit이 weight update에 참가할 것인지 아닌지  즉, 살아남을 수 있을지를 결정한다. 

 

MNIST 실험 결과 비교

본 논문에서는 MNIST 이외에도 다양한 도메인에서 dropout의 성능을 증명하였다. 여기서 주목할 점은 standard version 보다 dropout을 사용했을 때 모든 model들의 Error가 줄었다는 것이며, 특히 Unit type으로 Maxout을 사용했을 때 Error  가 제일 낮다는 것을 볼 수 있다. 원래 Maxout 자체로도 이미 좋다는 평이 많지만, Dropout을 통해 그 성능이 더 좋아졌다는 것은 확실히 흥미롭다. 

Error rate 비교

model 의 robustness을 평가하기 위해 classification을 적용해본 결과 dropout이 적용되지 않은 model에서는 특정 epoch이후 학습이 진행되지 않지 않고 overfitting 이 된 반면, dropout을 적용시킨 모델은 성능에 향상이 있음을 보여주었다. 

 

내용에서 저자들은 dropout 의 확률 p에 기반해 특정 unit을 제거하는 이러한 stochastic한 특성은 분명 어떤 중요한 pretrained weight에 대한 정보를 지울 수 있게 될 수 있음을 서술하였다. 이를 막기 위해 finetuning 과정에서 learning rate을 충분히 작게 설정하도록 권장하였다. 또한, dropout을 사용할때, max norm regularization, large learning decay 와 high momentum 은 training 을 boosting 시킬 수 있음을 보여주었다. 

 

반응형