Related to: Fundamentals
개요
Dropout은 딥러닝 모델의 과적합을 방지하기 위한 정규화 기법입니다. 매 훈련 과정에서 랜덤으로 일부 퍼셉트론을 비활성화함으로써 다양한 서브 네트워크 구조를 학습하는 효과를 냅니다.
핵심 개념
- 매 훈련 과정에서 랜덤으로 일부 퍼셉트론을 없애버림
- 퍼셉트론에 연결된 가중치들도 의미없는 값이 됩니다.
- 이 과정에서 약간씩 다른, 엄청 다양한 구조가 학습된다고 생각할 수 있습니다.
- 구현할 때는 일단 계산한 후 0 or 1 마스크를 곱해 결과값을 0으로 만들어버리는 방식으로 구현합니다.

- Dropout은 훈련 시에만 적용되며, 추론(inference) 시에는 모든 뉴런을 사용하되 dropout 비율만큼 출력을 스케일링합니다.
- 앙상블 효과: 매 iteration마다 다른 서브 네트워크를 학습하는 것과 유사
관련 개념
- Optimization에서 중요한 것들 — Overfitting 방지 전략들
- Regularization - Early Stopping — 또 다른 과적합 방지 기법
- Regularization - Batch normalization — 배치 정규화를 통한 정규화
- Regularization - Label Smoothing — 레이블 스무딩을 통한 정규화
참조
https://deepestdocs.readthedocs.io/en/latest/004_deep_learning_part_2/0042/