Deep Learning Goodfellow · Bengio · Courville
Chapter 7 · Regularization for Deep Learning

드롭아웃

매 단계마다 무작위로 뉴런을 꺼버린다 — 그리하여 기하급수적으로 많은 신경망의 앙상블을, 단 하나의 모델 비용으로 훈련한다.

Dropout 앙상블 근사 이진 마스크 가중치 스케일링

Section 7.12배깅을 실용적으로 만들기

드롭아웃(Srivastava 등, 2014)은 광범위한 모델 계열을 정규화하는, 계산적으로 저렴하지만 강력한 방법이다. 첫 번째 근사로서, 드롭아웃은 아주 많은 큰 신경망의 앙상블에 대해 배깅(bagging)을 실용적으로 만드는 방법으로 생각할 수 있다.

배깅(bootstrap aggregating)은 여러 모델을 따로 훈련한 뒤 모든 모델이 테스트 예시에 투표하게 하여 일반화 오류를 줄이는 기법이다. 모델 평균화가 작동하는 이유는 단순하다 — 서로 다른 모델이 보통 테스트 세트에서 같은 오류를 만들지 않기 때문이다.

그러나 각 모델이 큰 신경망일 때 배깅은 비실용적으로 보인다. 그런 네트워크를 훈련하고 평가하는 것은 런타임과 메모리 양면에서 비싸다. 5~10개의 신경망 앙상블이 흔하지만, 그 이상은 빠르게 다루기 어려워진다.

핵심 아이디어 드롭아웃은 기하급수적으로 많은 신경망의 배깅된 앙상블을 훈련하고 평가하기 위한 저렴한 근사를 제공한다. 기본 네트워크에서 비출력 유닛들의 부분집합을 제거해 만든 모든 서브네트워크가 앙상블의 구성원이 된다.

Section 7.12.1드롭아웃 훈련

구체적으로 드롭아웃은 기본 네트워크에서 비출력 유닛을 제거하여 형성할 수 있는 모든 서브네트워크(subnetwork)의 앙상블을 훈련한다. 대부분의 현대 신경망에서, 유닛의 출력 값을 0으로 곱하면 그 유닛을 효과적으로 네트워크에서 제거할 수 있다.

Procedure · 드롭아웃을 사용한 미니배치 학습
for each 미니배치 do
    # 모든 입력·은닉 유닛에 적용할 이진 마스크 μ 를 무작위 샘플링
    # 각 유닛 마스크는 다른 모든 것과 독립적으로 샘플링
    μ  SampleBinaryMask()
        # 입력 유닛 포함 확률 ≈ 0.8
        # 은닉 유닛 포함 확률 ≈ 0.5

    h  h  μ              # 마스크되지 않은 유닛만 살아남음
    ForwardProp(x, μ)            # 살아남은 서브네트워크로 순전파
    BackProp()                   # 역전파 — μ로 정의된 서브네트워크만 갱신
    Update(θ)                    # 평소처럼 학습 업데이트

형식적으로, 마스크 벡터 μ가 어떤 유닛을 포함할지 지정하고 J(θ, μ)가 매개변수 θ와 마스크 μ로 정의된 모델의 비용이라 하면, 드롭아웃 훈련은 다음 기댓값을 최소화하는 것이다.

드롭아웃 훈련 목적 최소화 𝔼_μ [ J(θ, μ) ] 기댓값은 기하급수적으로 많은 항을 포함하지만, μ를 샘플링하면 그 기울기의 편향되지 않은 추정치를 얻을 수 있다. 매 미니배치마다 하나의 μ를 뽑아 한 서브네트워크를 한 단계 훈련한다.
Motion · 매 단계 무작위로 뉴런 끄기 → 서브네트워크 앙상블 Step 1 / 6
Space 재생 · → 다음 · R 리셋

Section 7.12.2배깅과의 차이

드롭아웃 훈련은 배깅 훈련과 완전히 같지는 않다. 두 가지 차이가 있다.

배깅 vs 드롭아웃
측면배깅 (Bagging)드롭아웃 (Dropout)
모델 독립성모든 모델이 서로 독립모델들이 매개변수를 공유
훈련 정도각 모델이 수렴까지 훈련됨대부분의 서브네트워크는 명시적으로 훈련조차 안 됨
메모리k개 모델 전부 저장고유 매개변수 한 벌만 저장
나머지는동일하다 — 각 서브네트워크가 만나는 데이터는 복원 추출된 훈련 세트의 부분집합
Parameter Sharing매개변수 공유의 마법

매개변수 공유 덕분에, 다루기 쉬운 양의 메모리로 기하급수적인 수의 모델을 표현할 수 있다. 일반적으로 모델은 우주의 수명 안에 가능한 모든 서브네트워크를 샘플링하는 것이 불가능할 만큼 크다.

따라서 매 단계마다 가능한 서브네트워크의 작은 일부만 훈련되고, 매개변수 공유로 인해 나머지 서브네트워크도 자동으로 좋은 매개변수 설정에 도달한다.

Section 7.12.3가중치 스케일링 추론 규칙

예측을 하려면 배깅된 앙상블은 모든 구성원의 투표를 모아야 한다. 드롭아웃에서 정확한 앙상블 예측은 모든 마스크에 대한 합이며 기하급수적으로 많은 항을 가진다 — 평가가 어렵다.

드롭아웃의 핵심 통찰(Hinton 등, 2012)은, 모든 유닛을 가진 단 하나의 모델로 앙상블 예측을 근사할 수 있다는 것이다. 유닛 i에서 나가는 가중치에 유닛 i를 포함할 확률을 곱하면 된다.

가중치 스케일링 추론 규칙 추론 시 W → p·W (보통 p = ½ → W/2) 목표 — 테스트 시 유닛에 대한 기대 총 입력이, 훈련 시(평균적으로 절반의 유닛이 빠진) 기대 총 입력과 대략 같아지게 하는 것. · 동등한 방법 — 훈련 중 살아남은 유닛 상태를 1/p배 한다(역드롭아웃).

비선형 은닉 유닛이 없는 소프트맥스 회귀 같은 모델에서는, 기하 평균을 전개하면 이 규칙이 정확하다는 것을 대수적으로 보일 수 있다. 비선형성을 가진 심층 모델에서는 어디까지나 근사이지만, 경험적으로 매우 잘 작동한다 — Goodfellow 등(2013)은 가중치 스케일링 근사가 최대 1,000개 서브네트워크를 샘플링한 몬테카를로 근사보다도 더 잘 분류할 수 있음을 발견했다.

주의 추론 시 가중치를 스케일링하지 않으면, 테스트 입력의 기대 크기가 훈련 시보다 약 2배 커진다 — 활성화가 폭주하고 예측이 무너진다. 드롭아웃을 쓸 때는 훈련 종료 시 W/2, 또는 훈련 중 1/p 스케일 중 하나를 반드시 적용해야 한다.
Motion · 훈련 시 마스킹 vs 추론 시 가중치 스케일링 Step 1 / 4
Space 재생 · → 다음 · R 리셋

Section 7.12.4왜 드롭아웃이 효과적인가

드롭아웃의 정규화 효과는 앙상블 해석을 넘어선다. 무작위 유닛 제거는 각 은닉 유닛이 다른 특정 유닛의 존재에 의존할 수 없게 만든다. 어떤 유닛도 언제든 사라질 수 있으므로, 각 유닛은 다양한 맥락에서 그 자체로 유용한 특징을 학습해야 한다.

이는 유닛 간의 공적응(co-adaptation)을 깨뜨린다 — 여러 유닛이 서로의 실수를 보정하느라 함께만 의미 있게 작동하던 깨지기 쉬운 협력 관계를 분해한다. 그 결과 더 견고하고 중복적인 특징 표현이 만들어진다.

Srivastava 등(2014)은 드롭아웃이 가중치 감쇠·필터 노름 제약·희소 활동 정규화 같은 다른 표준 정규화기보다 더 효과적임을 보였다. 더불어 드롭아웃은 다른 형태의 정규화와 결합해 추가 개선을 낳을 수 있다.

정리 드롭아웃은 이진 마스크로 매 단계 서브네트워크를 샘플링해 기하급수적 앙상블을 한 모델 비용으로 훈련하고, 가중치 스케일링으로 그 앙상블을 한 번의 순전파로 근사한다. 저렴하고, 강력하고, 거의 모든 모델에 적용된다.
Deep Learning · Goodfellow, Bengio, Courville · MIT Press 2016 Ch.7 정규화 — 한국어 학습판