[DL] Dropout (드롭아웃) regularization

미남로그·2022년 1월 17일
0

Dropout Regularization

  • 드롭아웃의 방식은 신경망의 각각의 층에 대해 노드를 삭제하는 확률을 설정합니다.

  • 삭제할 노드를 랜덤으로 선정한 후에 삭제된 노드의 들어가는 링크와 나가는 링크를 모두 삭제합니다.

  • 그럼 더 작고 간소화된 네트워크가 만들어지는데, 이때 이 작아진 네트워크로 훈련을 진행하게 됩니다.

    • 작아진 네트워크가 과대 적합을 방지해줍니다.

Implement Dropout

  • 역 드롭아웃이라고 불리는 가장 일반적인 기법은 위와 같이 노드를 삭제 후에 얻은 활성화 값에 keep_prop(삭제하지 않을 확률)을 나눠 주는 것입니다.

    • keep_prop은 은닉 유닛이 유지될 확률입니다.
    • keep_prop이 0.8이라는 것은 어떤 은닉 유닛이 삭제될 확률이 0.2라는 의미입니다.
  • 이는 기존에 삭제하지 않았을 때 활성화 값의 기대값으로 맞춰주기 위한 목적입니다.

Test Time

드롭아웃은 신경망 학습 시에만 사용합니다. 예측할 때는 사용하지 않습니다.

학습 시에 인공 신경망이 특정 뉴런 또는 특정 조합에 너무 의존적이게 되는 것을 방지해주고,

매번 랜덤 선택으로 뉴런들을 사용하지 않으므로 서로 다른 신경망들을 앙상블하여 사용하는 것 같은 효과를 내어 과적합을 방지합니다.

profile
미남이 귀엽죠

0개의 댓글