Deep Learning Goodfellow · Bengio · Courville
Chapter 8 · Optimization for Training Deep Models

적응적 학습률 — Adam

하나의 학습률로 모든 차원을 다스릴 수는 없다 — AdaGrad에서 RMSProp을 거쳐 Adam까지, 차원마다 다른 보폭을 찾는 여정.

Adam AdaGrad · RMSProp 적응적 모멘트 편향 보정

Section 8.5왜 적응적 학습률인가

신경망 연구자들은 오래전부터 학습률이 모델 성능에 큰 영향을 미치는 만큼, 설정하기 가장 어려운 하이퍼파라미터 중 하나임을 알았다.

비용은 종종 매개변수 공간의 어떤 방향에는 매우 민감하고 다른 방향에는 둔감하다. 모멘텀은 이 문제를 어느 정도 완화하지만, 또 하나의 하이퍼파라미터를 도입하는 대가를 치른다.

민감도의 방향이 어느 정도 축에 정렬되어 있다고 믿는다면, 각 매개변수마다 별도의 학습률을 두고 학습 과정 내내 그것을 자동으로 적응시키는 것이 합리적이다.

직관 가파른 차원에서는 작은 보폭으로 조심스럽게, 완만한 차원에서는 큰 보폭으로 과감하게 — 적응적 학습률 알고리즘은 차원마다 보폭을 따로 조절해 협곡 지형을 효율적으로 헤쳐 나간다.

Section 8.5.1AdaGrad

AdaGrad(Duchi 등, 2011)는 모든 모델 매개변수의 학습률을, 기울기의 모든 역사적 제곱값의 합의 제곱근에 역비례하여 개별적으로 적응시킨다.

가장 큰 편미분을 가진 매개변수는 그만큼 빠른 학습률 감소를 겪고, 작은 편미분을 가진 매개변수는 상대적으로 작은 감소를 겪는다 — 순 효과는 더 완만한 경사 방향에서 더 큰 진전을 이루는 것이다.

Algorithm 8.4 · AdaGrad
# 필요: 전역 학습률 ε, 초기 매개변수 θ
# 필요: 수치 안정용 작은 상수 δ (≈ 10⁻⁷)
r  0                                # 기울기 축적 변수
while 종료 기준이 충족되지 않음 do
    g  (1/m) ∇θ Σᵢ L(f(x⁽ⁱ⁾; θ), y⁽ⁱ⁾)
    r  r + g  g                      # 제곱 기울기를 전 역사에 걸쳐 누적
    Δθ  ε / (δ + √r)  g          # 요소별 나눗셈·제곱근
    θ  θ + Δθ
함정 AdaGrad는 볼록 최적화에서 바람직한 이론적 속성을 가진다. 그러나 심층 신경망 훈련에서는 훈련 시작부터의 제곱 기울기 누적이 효과적 학습률을 너무 일찍, 너무 과도하게 감소시킬 수 있다 — r이 단조 증가하므로 학습이 조기에 멈춰버린다.

Section 8.5.2RMSProp

RMSProp(Hinton, 2012)은 기울기 축적을 지수적으로 가중된 이동 평균으로 바꿔, 비볼록 설정에서 더 잘 작동하도록 AdaGrad를 수정한다.

비볼록 함수에서 학습 궤적은 여러 구조를 통과하다가 결국 국소적으로 볼록한 그릇에 도달할 수 있다. AdaGrad는 제곱 기울기의 전 역사로 학습률을 축소하므로, 그 그릇에 도달하기도 전에 학습률을 너무 작게 만들어 버린다. RMSProp은 지수 감쇠 평균으로 먼 과거를 버려, 볼록 그릇을 찾은 뒤 마치 그 안에서 새로 초기화된 AdaGrad처럼 빠르게 수렴한다.

Algorithm 8.5 · RMSProp
# 필요: 전역 학습률 ε, 감쇠율 ρ, 초기 θ
# 필요: 수치 안정용 작은 상수 δ (≈ 10⁻⁶)
r  0
while 종료 기준이 충족되지 않음 do
    g  (1/m) ∇θ Σᵢ L(f(x⁽ⁱ⁾; θ), y⁽ⁱ⁾)
    r  ρ·r + (1ρ)·g  g            # 지수 감쇠 평균 — 먼 과거를 버림
    Δθ  ε / √(δ + r)  g          # 요소별
    θ  θ + Δθ
핵심 이동 평균의 도입은 그 길이 스케일을 제어하는 새 하이퍼파라미터 ρ를 추가한다. RMSProp은 경험적으로 심층 신경망을 위한 효과적이고 실용적인 알고리즘으로 입증되어, 오늘날 딥러닝 실무자들이 일상적으로 쓰는 주요 최적화 방법 중 하나다.

Section 8.5.3Adam — 적응적 모멘트

Adam(Kingma and Ba, 2014)의 이름은 "적응적 모멘트(adaptive moments)"에서 왔다. 이전 알고리즘의 맥락에서, Adam은 RMSProp과 모멘텀의 조합의 한 변형으로 가장 잘 이해된다 — 그러나 몇 가지 중요한 차이를 가진다.

Adam의 두 가지 핵심 차이
차이설명
1차 모멘트 통합모멘텀이 기울기의 1차 모멘트(지수 가중) 추정치로 직접 통합된다 — 재조정된 기울기에 모멘텀을 거는 방식이 아니다.
편향 보정1차·2차 모멘트 추정치를 모두 0에서 초기화하므로 훈련 초기에 0 쪽으로 편향된다. Adam은 편향 보정(bias correction) 항으로 이를 바로잡는다 — RMSProp에는 없는 보정이다.
Algorithm 8.7 · Adam
# 필요: 단계 크기 ε (기본값 0.001)
# 필요: 모멘트 감쇠율 ρ₁, ρ₂ ∈ [0,1)  (기본값 0.9, 0.999)
# 필요: 수치 안정용 작은 상수 δ (기본값 10⁻⁸)
s  0 ;  r  0 ;  t  0       # 1차·2차 모멘트, 시간 단계
while 종료 기준이 충족되지 않음 do
    g  (1/m) ∇θ Σᵢ L(f(x⁽ⁱ⁾; θ), y⁽ⁱ⁾)
    t  t + 1
    s  ρ₁·s + (1ρ₁)·g          # 편향된 1차 모멘트 (모멘텀)
    r  ρ₂·r + (1ρ₂)·g  g      # 편향된 2차 모멘트 (RMSProp)
    ŝ  s / (1  ρ₁^t)            # 1차 모멘트 편향 보정 r / (1  ρ₂^t)            # 2차 모멘트 편향 보정
    Δθ  ε · ŝ / (√r̂ + δ)        # 요소별 — 차원별 적응 보폭
    θ  θ + Δθ
Adam이 하는 일 Adam은 차원마다 — 1차 모멘트 ŝ(기울기가 어느 방향으로 일관되게 가는가)를 2차 모멘트 √r̂(그 차원의 기울기가 얼마나 큰가)로 나눈다. 일관되게 가파른 차원은 작은 보폭, 일관되되 완만한 차원은 큰 보폭 — 차원별 적응 학습률이다.
Motion · 차원별로 보폭을 조절하는 Adam Step 1 / 5
Space 재생 · → 다음 · R 리셋

Section 8.5.4어떤 알고리즘을 고를까

학습률을 적응시켜 심층 모델 최적화의 도전을 해결하려는 일련의 관련 알고리즘 — 자연스러운 질문은 "어떤 것을 골라야 하는가"이다. 안타깝게도 이 점에 대한 합의는 현재 존재하지 않는다.

Schaul 등(2014)은 광범위한 학습 과제에 걸쳐 많은 최적화 알고리즘을 비교했다. 결과는 — 적응적 학습률을 가진 알고리즘 계열(RMSProp, AdaDelta로 대표됨)이 상당히 강건하게 수행되었음을 시사하지만, 단일 최상의 알고리즘은 나타나지 않았다.

실용적 조언 Adam은 일반적으로 하이퍼파라미터 선택에 상당히 강건한 것으로 여겨진다. 그러나 학습률은 때때로 제안된 기본값(0.001)에서 변경해야 할 수 있다. 알고리즘 선택은 친숙도와 하이퍼파라미터 튜닝 경험에 크게 좌우된다.
Motion · AdaGrad → RMSProp → Adam의 진화 Step 1 / 4
Space 재생 · → 다음 · R 리셋
정리 AdaGrad는 제곱 기울기를 전 역사에 누적하다 학습률이 조기 소멸하고, RMSProp은 지수 감쇠 평균으로 이를 고치며, Adam은 RMSProp에 모멘텀과 편향 보정을 더한다. 모두 차원마다 보폭을 적응시켜 협곡 지형을 효율적으로 횡단한다.
Deep Learning · Goodfellow, Bengio, Courville · MIT Press 2016 Ch.8 최적화 — 한국어 학습판