본문 바로가기

Learning/Tuning

Dropout

반응형

Dropout

[[Overfitting]]의 해결책 중 하나. Dropout은 탈락, 낙오라는 뜻을 가지고 있다.

Dropout은 2012년 발표된 일종의 regularization 방법이다. 2015년 발표된 Batch normalization의 부수적인 효과 중 하나가 regularization이기 때문에 Dropout을 쓰지 않기도 한다.

1. Dropout?

1-1. Dropout이란

image

  • 전체 weight를 계산에 참여시키는 것이 아니라 layer에 포함된 weight 중에서 일부만 참여시킨다
  • 즉, 학습 시 뉴런을 임의로 삭제하여 학습하는 방법
  • 훈련 시에는 임의의 비율(dropout ratio) 만큼 뉴런을 삭제한다. 삭제된 뉴런의 값은 순전파/역전파하지 않는다
  • 시험 시에는 모든 뉴런의 값을 흘린다. 삭제된 뉴런의 값을 곱해서 값을 흘려야 하나 많은 딥러닝 프레임워크에선 비율을 곱하지 않는다

1-2. regularization 측면의 dropout

dropout의 목적은 overfitting을 방지하는 것이다. dropout은 regularization 효과를 가지고 있다. (regularization 참고)

  • ensemble : 학습 시 layer의 weight를 선택적으로 drop 함으로써 결국에는 여러가지 모델을 ensemble한 효과를 낸다
  • variable selection : 학습 시 layer에서 선택적으로 weight를 고름으로써 variable selection을 한다
  • weight size penalty : dropout을 적용한 신경망 모델의 Loss function이 L2 Norm을 더해준 모양으로 도출됨으로써 weight size에 penalty를 주게 된다

1-3. Dropout의 등장

  • 모델 결합을 하려면 성능이 오르지만 그 모델들은 01. 서로 다른 데이터로 학습을 시키거나 02. 모델이 서로 다른 구조를 가져야 한다.

  • 다양한 모델을 학습시키더라도, 다양한 모델을 실행시킬 때 연산 시간이 오래 걸린다

그를 위해서 등장한 dropout

  • 여러개의 모델을 만드는 대신, 모델 결합에 의한 voting과 비슷한 효과를 내어 다양한 모델을 사용할 수 있다
  • 실행 시킬 때 일부 뉴런이 생략된 모델들은 따로 실행시키는 것이 아니라 그 모델들이 서로 파라미터를 공유하고 있기 때문에 각각의 뉴런이 존재할 확률을 각각의 가중치에 곱해주기만 하면 되어 모델 여러개를 쓰는 것 보다 빠르다.

2. Dropout의 성질

2-1. Dropout의 목표

  • 무작위로 dropout을 하면서 학습을 시키면 overfitting의 원인인 co-adaptation를 방지한다.
  • co-adaptation 현상?
    • 각각의 weight들이 서로 동조화 되는 현상
    • 어느 unit이 잘못 학습한 것을 다른 unit이 보완해 줄 수 있는 형태로 학습하는 것.
    • 각각의 unit이 독자적인 meaningful feature를 가지지 못하게 된다.
  • Dropout을 사용하면 각각의 unit이 meaningful feature를 가지도록 학습되므로 generalization error(일반화 오차)가 낮아지는 효과를 보인다.
  • 좀 더 선명한 feature(salient feature)를 얻을 수 있다.

2-2. Effect on sparsity

스크린샷 2020-03-08 오후 5 38 31

hidden 뉴런들의 활성도(activation)가 sparse해지는 경향이 생김. dropout률 0일 때(왼쪽) 보다 0.5(오른쪽)일 때 더 집중되는 효과가 생긴다.

  • Dropout을 사용하면 sparse representation이 되도록(오른쪽) 모델이 학습된다.
  • 즉, 일부 unit만 강한 activation이 발생하고, 나머지 unit은 activation이 발생하지 않도록 학습된다.
  • 각 unit들의 mean activation도, dropout을 적용하면 값이 전체적으로 낮아진다.

3. Dropout의 특징

3-1. Dropout Rate

  • rate가 높다? training할 때 적은 unit이 학습된다
    • rate가 너무 낮으면 underfitting이 발생한다.
    • rate가 너무 높으면, Training Error는 낮아지지만 Test Error가 높아지는 현상이 발생한다.

3-2. Data Set Size

  • 논문에서는 MNIST classification 모델로 실험.
  • 데이터 크기가 매우 작을 경우(~500개) : dropout이 오히려 error rate를 높이는 역효과를 낸다.
  • 데이터 크기가 커질수록 dropout의 효과가 커지나(~10000개), ) 데이터가 너무 많아지면 다시 dropout의 효과가 적어진다.

3-4. Dropout의 단점

  • 같은 구조를 가진 neural network보다 학습 시간이 2~3배 정도 증가하게 된다.

4. Dropout의 현재

그러나 지금은 normalization으로 대체

Reference

반응형

'Learning > Tuning' 카테고리의 다른 글

Regularization : L1, L2 regularization  (0) 2020.04.12
Batch Normalization  (0) 2020.04.12
Regularization  (0) 2020.04.12
Hyperparameter  (0) 2020.04.12
Overfitting과 Underfitting 정의 및 해결 방법  (2) 2020.04.12