딥러닝 논문의 실험 설정에는 거의 항상 “Adam, learning rate 3e-4, β = (0.9, 0.999), weight decay 0.1, cosine schedule with warmup” 같은 한 줄이 있습니다. 이 장은 그 한 줄을 처음부터 이해하는 것이 목표입니다. 데이터가 수십억 개라 전체 그래디언트를 계산할 수 없으므로 일부만 뽑아 쓰는 확률적 경사하강법(SGD)에서 시작해, 관성을 주는 모멘텀, 좌표마다 학습률을 따로 맞추는 Adam까지 갑니다.
5.1 확률적 경사하강법
머신러닝의 손실은 데이터 n개에 대한 평균입니다.
f(θ)=n1i=1∑nℓi(θ).
정의 5.1 (SGD). 매 단계 데이터 B개(미니배치)를 무작위로 뽑아 gk=B1∑i∈batch∇ℓi(θk)로 그래디언트를 어림하고 θk+1=θk−ηkgk로 움직입니다.
한 단계는 n/B배 싸지만 잡음이 있습니다. 데이터가 많을 때는 정확한 한 걸음보다 부정확한 많은 걸음이 낫습니다.
학습률이 줄어야 하는 이유. 학습률이 일정하면 최솟값 근처에서도 잡음 때문에 계속 흔들립니다(흔들림의 크기 ∝ησ2). 정확히 수렴하려면 ∑ηk=∞(충분히 멀리 갈 수 있음)이고 ∑ηk2<∞(잡음이 결국 사라짐)이어야 합니다. 예: ηk=η0/k. 이 조건을 로빈스–먼로 조건(Robbins–Monro conditions)이라 합니다.
5.2 모멘텀
정의 5.2 (헤비볼 모멘텀).
vk+1=βvk+gk,θk+1=θk−ηvk+1.
v는 과거 그래디언트의 지수 가중 합, 곧 “속도”입니다. 언덕을 굴러가는 공처럼 관성이 생깁니다. 일정한 그래디언트 g가 계속되면 v→g/(1−β)이므로, β=0.9이면 실제 걸음이 10배가 됩니다.
길쭉한 골짜기에서 벽 사이를 오가는 성분은 부호가 바뀌어 상쇄되고, 바닥을 따라 가는 성분은 쌓입니다. 지그재그가 줄어듭니다.
이차함수에서 최적의 η,β를 고르면 수축률이 κ+1κ−1이 됩니다. 3장의 κ+1κ−1과 비교하면 κ가 κ로 바뀌었습니다. κ=104이면 반복 수가 약 100배 줄어듭니다.
네스테로프 가속(Nesterov accelerated gradient)은 그래디언트를 현재 점이 아니라 “관성으로 갈 점” θk−ηβvk에서 계산합니다. 볼록 함수에서 O(1/k)를 O(1/k2)로 바꾸며, 이것이 1계 방법으로 가능한 최선의 속도임이 증명되어 있습니다.
5.3 적응적 학습률: AdaGrad, RMSProp, Adam
좌표마다 그래디언트의 크기가 다르면(희귀한 단어의 임베딩, 층마다 다른 크기) 학습률 하나로는 부족합니다. 그래디언트가 컸던 좌표는 작게, 작았던 좌표는 크게 움직입니다. 아래 식에서 제곱, 나눗셈, 제곱근은 모두 좌표별로 계산합니다.
AdaGrad: sk=sk−1+gk2, θ←θ−ηgk/sk. 누적만 하므로 학습률이 계속 줄어 결국 멈춥니다.
RMSProp: sk=β2sk−1+(1−β2)gk2. 지수 이동 평균이라 오래된 그래디언트는 잊습니다.
정의 5.3 (Adam). 모멘텀과 RMSProp을 합칩니다. β1=0.9, β2=0.999, ϵ=10−8이 기본값입니다.
m은 그래디언트의 평균(1차 적률), s는 제곱의 평균(2차 적률)의 어림입니다. 이름 Adam은 adaptive moment estimation입니다.
편향 보정.m0=0에서 시작하므로 처음에는 mk가 0쪽으로 치우칩니다. 그래디언트가 늘 g이면 mk=(1−β1k)g이므로 1−β1k로 나누면 정확히 g가 됩니다.
예제 5.4. 첫 단계(k=1)에서 m^1=g1, s^1=g12이므로 각 좌표의 걸음은 ηg/∣g∣=±η입니다(ϵ 무시). 그래디언트의 크기와 상관없이 첫 걸음이 η라는 점에서, Adam의 학습률은 “한 번에 움직일 최대 거리”에 가까운 의미를 가집니다.
굽은 골짜기에서 세 방법을 비교합니다. 같은 학습률에서 경사하강법(빨강)은 골짜기 바닥을 따라 느리게 기어가고, 모멘텀(파랑)은 관성으로 더 멀리 가며, Adam(초록)은 좌표마다 걸음을 맞춥니다. 학습률을 키우면 무엇이 먼저 발산하는지 봅니다
이 위젯은 JavaScript가 필요합니다
5.4 가중치 감쇠와 AdamW
L2 정규화 2λ∥θ∥2을 손실에 더하면 그래디언트에 λθ가 더해집니다. SGD에서는 이것이 매 단계 θ←(1−ηλ)θ−ηg, 곧 가중치를 조금씩 줄이는 가중치 감쇠(weight decay)와 같습니다.
Adam에서는 다릅니다. λθ도 s^로 나뉘므로 좌표마다 감쇠 정도가 달라집니다. AdamW는 감쇠를 Adam 갱신과 분리해 θ←θ−η(m^/(s^+ϵ)+λθ)로 씁니다. 현재 대형 모델 학습의 표준입니다.
5.5 학습률 스케줄
워밍업(warmup): 처음 몇천 단계 동안 학습률을 0에서 목표값까지 선형으로 올립니다. 초기에는 Adam의 s^ 어림이 불안정하고 매개변수가 엉망이라 큰 걸음이 위험하기 때문입니다.
코사인 감소(cosine decay): ηt=ηmin+21(ηmax−ηmin)(1+cos(πt/T)). 처음엔 천천히, 중간엔 빠르게, 끝에서 다시 천천히 줄어듭니다.
계단 감소(step decay): 정해진 시점마다 10분의 1로.
5.1절의 결론대로, 끝에서 학습률을 줄이면 잡음에 의한 흔들림이 줄어 손실이 한 번 더 떨어집니다.
5.6 이 장의 요약
SGD: 미니배치 그래디언트는 불편, 분산 σ2/B. 정확히 수렴하려면 학습률을 줄입니다.
모멘텀: 그래디언트를 누적해 관성. 수렴이 κ→κ로 빨라집니다.
Adam: 1·2차 적률의 이동 평균 + 편향 보정, 좌표별 학습률.
AdamW: 감쇠를 분리. 워밍업과 코사인 스케줄.
쓰이는 곳. 거의 모든 딥러닝 논문의 “Training details”(옵티마이저, 학습률, β, 배치 크기, 스케줄), 배치 크기와 학습률의 관계(선형 스케일링 규칙), 대형 모델 학습의 불안정성 논의(손실 급등, ε의 역할), 새 옵티마이저 논문(Lion, Sophia, Muon)이 이 장의 언어로 쓰입니다.
문제
5.1 [계산] · 확인 문제
미니배치 크기를 16에서 256으로 늘리면 미니배치 그래디언트의 표준편차는 몇 배가 될까요?
정답
0.25
풀이
분산이 1/B에 비례하므로 표준편차는 16/256=1/4배입니다.
5.2 [계산] · 확인 문제
모멘텀 β=0.95로 같은 그래디언트가 계속될 때, 속도 v는 그래디언트의 몇 배로 수렴하나요?
정답
20
풀이
v=βv+g의 고정점은 g/(1−β)=20g입니다.
5.3 [계산] · 확인 문제
조건수 κ=100일 때, 최적 학습률에서 이차함수의 수축률을 비교합니다.
방법
수축률
경사하강법 (κ−1)/(κ+1)
[?]
모멘텀 (κ−1)/(κ+1)
[?]
정답
99/101
9/11
풀이
99/101≈0.980, 9/11≈0.818입니다. 오차를 1/e로 줄이는 데 약 50번 대 5번입니다.
5.4 [계산] · 확인 문제
Adam(β1=0.9)에서 그래디언트가 매번 g=2로 일정할 때, 편향 보정 전 m3은?
정답
0.542
풀이
mk=(1−0.9k)⋅2이므로 m3=(1−0.729)⋅2=0.542입니다. 보정하면 0.542/0.271=2로 정확한 값이 됩니다.
5.5 [증명]
Adam에서 그래디언트가 매번 같은 값 g=0이면, 모든 단계의 걸음 크기가 (ϵ을 무시할 때) 정확히 η임을 보입니다.
풀이
mk=(1−β1k)g, sk=(1−β2k)g2이므로 m^k=g, s^k=g2입니다. 걸음은 ηm^k/s^k=ηg/∣g∣이고 크기는 η입니다.