본문 바로가기

Deeplearning

Regularization, 정형화 - 드랍아웃 (Dropout)

728x90
반응형

이전 포스터에서 언급했던 딥러닝을 위한 정형화의 종류로는 다음의 방법들이 있다.

https://sha-sha-sha.tistory.com/53

 

Regularization, 정형화 - Norm 기반 Regularization

정형화란, 오비피팅이나 ill-posed(1개의 유일한 정답이 존재하지 않는) 문제를 가지고 있는 머신러닝 모델에 추가적인 정보를 더하거나 제약사항을 두는 등의 과정을 통해 문제를 해결하는 방법

sha-sha-sha.tistory.com

1. 제한을 거는 파라미터값을 삽입 (Parameter Norm Penalties)
2. 데이터 증대 (Dataset Augmentation)
3. 노이즈 활용 (Noise Robustness)
4. 준지도 학습 (Semi-Supervised Learing)
5. 단일 신경망으로 유사성이 있는 여러 작업 수행 (Multitask Learning)
6. 이른 학습 중단 (Early Stopping)
7. 학습 데이터를 설명하는 여러 개의 가설 모델 혼합, 앙상블 (Bagging and Other Ensemble Methods)
8. Drop out
9. 데이터 분포의 이전 정보를 이용해 추가적인 학습데이터를 더해서 모델 학습에 정형화 (Parameter Tying and Parameter Sharing)

위의 방법 중 이번 포스터에서는 drop out에 대해 살펴보고자 한다.


의미

dropout이란 학습 과정에서 임의로 미리 정의된 확률대로 노드를 작동시키지 않는, 즉, 뉴런을 드랍하는 것을 의미한다.

주의할 점은 학습 과정에서는 정의된 확률에 따라 노드를 사라지게 하지만 추론 과정에서는 모든 노드를 사용해야 한다는 것이다. 

 

방법

각각의 layer는 베르누이 확률 분포를 따르는 확률변수 r에 따라 해당 뉴런의 결과 값을 덮어씌운다. (0 → 끈다 / 1 → 켠다)

$r_j^{(l)} $~$ Bernoulli(p)$. 
$\tilde{y}^{l} = r^{(l)} * y^{(l)}$
$z_{i}^{(l+1)} = w_{i}^{(l+1)} \tilde{y}^{(l)} + b_{i}^{(l+1)}$
$y_i^{(l+1)} = f(z_{i}^{(l+1)})$

 

효과

드랍 아웃을 한다는 것은 뉴런들을 지우고 학습함에 따라서 결과적으로는 weight를 공유하는 수많은 네트워크들의 조합이 생긴다는 것을 뜻한다. 즉, n 개의 뉴런으로 이루어진 네트워크에서 $2^n$개의 조합이 생김으로써 많은 다른 네트워크를 한 번에 학습하여 Bagging과 비슷한 효과를 볼 수 있다.

 

Bagging과 Dropout 비교

  Droupout Bagging
파라미터 공유 O X
모델 수렴 X
모델 수렴의 개념이 아님
O
각 모델에서 최종적으로 하나의 모델로 수렴
Aggregation 지수 계수로 증가하는 많은 모델의 평균을 내야함,
즉 산술 평균으로는 계산이 어려움 
(빠른 추른을 위해 기하평균을 추론하여
근사하는 것과 가까움$n\sqrt{A,B}$)
모델 결과값의 산술 평균을 취함

 

장점

1. 다른 정규화 방법보다 성능이 좋은 것으로 알려져 있다.
2. computing cost가 작다 (O(n), n은 노드의 개수)
3. 다른 정규화 방법과 비교했을 때, dropout은 모델과 학습과정에서의 종류를 제한하지 않는다. 즉, 식을 수정할 필요가 없다

 

한계

임의로 노드를 제거함으로써 노드간의 관계가 불필요하게 강화되는 것을 막지만, 이는 정상적인 학습을 방해한다는 것을 의미한다. 따라서 일반화 성능을 개선할 수는 있어도 학습 오차가 증가할 수 있다. 또한 노드의 드랍 확률값이 hyper-parameter로 추가됨으로써, 사용자의 추가적인 튜닝을 요구한다.

 


Reference

https://kh-kim.github.io/nlp_with_deep_learning_blog/docs/1-14-regularizations/04-dropout/ 

https://medium.com/konvergen/understanding-dropout-ddb60c9f98aa

728x90
반응형