드롭아웃 (Dropout)
쉽게 풀면
팀 프로젝트를 할 때 매번 같은 에이스 팀원 한 명에게만 의존하면, 그 사람이 없을 때 팀 전체가 무너집니다. 그래서 연습 삼아 매 회의마다 무작위로 몇 명을 빠지게 하면, 나머지 팀원들도 각자 실력을 키우게 되고 결국 팀 전체가 더 단단해집니다. 드롭아웃도 똑같은 원리입니다. 신경망을 학습시키는 매 단계마다 일부 뉴런을 무작위로 "빠지게"(출력을 0으로) 만들면, 특정 뉴런 몇 개에만 의존하는 대신 여러 뉴런이 골고루 문제 해결에 기여하도록 훈련됩니다. 그 결과 학습 데이터에만 맞춰진 과적합을 줄이고, 새로운 데이터에도 더 잘 일반화되는 모델을 만들 수 있습니다.
왜 중요한가
대규모 신경망은 파라미터가 많아 학습 데이터를 그대로 외워버리기 쉬운데, 드롭아웃은 추가 데이터 없이도 이런 과적합을 억제할 수 있어 이미지 분류, 자연어처리, 음성인식 등 거의 모든 딥러닝 분야의 기본 정규화 도구로 자리 잡았습니다. 또한 매번 다른 뉴런 부분집합으로 학습하는 과정이 여러 개의 서로 다른 네트워크를 암묵적으로 앙상블하는 것과 비슷한 효과를 낸다는 해석이 있어, 모델의 일반화 성능과 견고성을 논하는 연구에서 비교 기준으로 자주 등장합니다.
논문에서는 이렇게 쓰입니다
이 문장은 "학습 과정에서 완전연결층의 뉴런 절반을 무작위로 꺼가며 학습시켰더니, 모델이 학습 데이터에만 지나치게 맞춰지는 현상이 줄었다"는 뜻입니다. 여기서 p=0.5는 각 뉴런이 꺼질 확률(드롭아웃 비율)을 의미합니다.
순환신경망에서는 시간 축을 따라 정보가 계속 전달되는 구조 특성상 모든 연결에 드롭아웃을 적용하면 장기 의존성 학습이 어려워질 수 있어, 어느 연결에 적용할지를 신중하게 선택했다는 의미입니다.
이미지처럼 인접한 값들이 비슷한 정보를 담는 데이터에서는 개별 뉴런 단위 드롭아웃보다 특징 맵 전체를 꺼버리는 변형이 더 효과적이라는 컴퓨터비전 분야의 관용적 표현입니다.
조금 더 깊게 보면
드롭아웃은 추론 시에는 전체 뉴런을 사용하되, 학습 때 적용했던 꺼짐 확률만큼 출력을 나눠주는 인버티드 드롭아웃(inverted dropout) 방식으로 구현하는 것이 일반적이며, 이를 통해 학습과 추론 사이의 출력 기댓값을 일치시킵니다. 구조에 따라 변형도 다양한데, 순환신경망에서는 시간 축에 걸쳐 같은 마스크를 유지하는 방식이, 합성곱 신경망에서는 채널 단위로 통째로 꺼버리는 공간적 드롭아웃이 주로 쓰입니다. 배치 정규화와 함께 사용할 때는 두 기법의 통계량 추정 방식이 서로 간섭할 수 있어, 적용 순서와 비율을 실험적으로 조정하는 경우가 많습니다.
주의할 점
드롭아웃은 학습(training) 과정에서만 적용되고, 실제 예측(inference)을 할 때는 모든 뉴런을 다시 사용합니다. 또한 드롭아웃 비율을 하이퍼파라미터 튜닝 없이 무조건 높게 설정하면 오히려 모델이 충분히 학습되지 못하는 과소적합이 발생할 수 있으므로, 적절한 비율을 찾는 것이 중요합니다.