여러 모델의 예측을 결합하면 오류를 줄일 수 있지만, 훈련에 며칠씩 걸리는 대규모 신경망에서는 비용이 너무 높음.
드롭아웃은 훈련 비용을 약 2배만 늘리면서 이를 효율적으로 모방하는 모델 결합 기법임.
-
훈련시 작동 방식
- 은닉 뉴의 출력을 50% 확률로 0으로 만듦.
- 드롭아웃된 뉴런은 해당 순전파 및 역전파 과정에 참여하지 않음.
- 입력이 주어질 때마다 신경망은 가중치를 공유하는 서로 다른 아키텍처를 샘플링하여 학습
- 뉴런이 특정 뉴런에 의존할 수 없게 만들어 뉴런 간 복잡한 상호 적응을 방지
- 이를 통해 다른 뉴런들의 무작위 부분집합과 함께 작동할 수 있는 강건한 특징을 학습하도록 유도함.
-
테스트 시 작동 방식 및 결과
- 테스트 시에는 모든 뉴런을 사용하되, 각 뉴런의 출력값에 0.5를 곱함.
<aside>
- 연산 비용 문제를 해결하기 위해, 테스트 시에는 네트워크에서 뉴런을 끄지 않고 모든 뉴런을 100% 활성화하여 단 한 번의 패스만 수행함.
- 근데 훈련 중에는 뉴런이 평균적으로 50%만 켜져 있었으므로, 테스트 때 모든 뉴런이 켜지면 다음 층으로 전달되는 신호의 총량이 훈련 때보다 2배 커지는 문제가 생김.
- 이 신호의 기댓값을 훈련 때와 동일하게 맞추기 위해, 테스트 시 활성화된 모든 뉴런의 출력값에 무작위로 꺼질 확률이었던 0.5를 일괄적으로 곱해줌 → 스케일링
</aside>
- CNN에서는 드롭아웃을 처음 두 개의 완전 연결 계층에 적용하여 과적합 문제를 해결 → BUT 모델 수렴에 필요한 반복 횟수는 약 2배 증가함.