하강 보조정리, 학습률 1/L, 볼록 함수에서 O(1/k) 수렴, 강볼록 함수에서 선형 수렴, 조건수와 지그재그, 직선 탐색
다변수 미적분 5장에서 경사하강법 xk+1=xk−η∇f(xk)를 배웠습니다. 이 장에서는 “얼마나 빨리 수렴하는가”를 정확히 따집니다. 학습률을 얼마로 잡아야 안전한지, 몇 번 반복하면 오차가 얼마로 줄어드는지, 길쭉한 골짜기에서 왜 느려지는지를 2장의 L, m, κ로 답합니다. 논문의 “converges at rate O(1/k)”, “linear convergence”를 읽을 수 있게 됩니다.
3.1 하강 보조정리
정리 3.1 (하강 보조정리).f가 L-매끄러우면(헤세 행렬의 고윳값 ≤L) 모든 x,y에 대해
f(y)≤f(x)+∇f(x)⊤(y−x)+2L∥y−x∥2.
함수가 이차함수보다 빨리 휘지 않는다는 뜻입니다. 1장의 1계 조건(접평면이 아래)과 짝을 이루어, 이번에는 이차함수가 위에서 덮습니다.
그러므로 학습률이 1/L 이하이면 매 단계 함숫값이 반드시 줄어듭니다. 그래디언트가 클수록 많이 줄어듭니다.
3.2 수렴 속도
정리 3.3 (볼록).f가 볼록이고 L-매끄러우며 η=1/L이면
f(xk)−f∗≤2kL∥x0−x∗∥2.
오차가 1/k에 비례해 줄어듭니다. 오차를 ε 이하로 만드는 데 약 L∥x0−x∗∥2/(2ε)번이 필요합니다. 이를 O(1/k) 수렴이라 씁니다. (O는 “상수배를 빼면 이만큼”이라는 뜻입니다.)
정리 3.4 (강볼록).f가 m-강볼록이고 L-매끄러우며 η=1/L이면
f(xk)−f∗≤(1−κ1)k(f(x0)−f∗).
오차가 매번 일정한 비율로 줄어드는 것을 선형 수렴(linear convergence)이라 합니다. 로그 눈금으로 그리면 직선이 되기 때문에 붙은 이름입니다. 정확도의 자릿수 하나를 얻는 데 약 κln10≈2.3κ번이 듭니다.
O(1/k)와 선형 수렴의 차이는 큽니다. 오차를 10−6로 줄이려면 O(1/k)는 약 106번 단위가 필요하지만, κ=10인 선형 수렴은 약 140번이면 됩니다.
3.3 이차함수에서 정확히 보기
f(x)=21x⊤Ax(A의 고윳값 m=λ1≤⋯≤λn=L)이면 경사하강법은
xk+1=(I−ηA)xk,
이고, 고유벡터 방향 성분은 매번 (1−ηλi)배가 됩니다.
모든 i에서 ∣1−ηλi∣<1, 곧 0<η<2/L이어야 수렴합니다. 이 범위를 넘으면 가장 가파른 방향에서 진동하며 발산합니다.
가장 느린 방향의 수축률 maxi∣1−ηλi∣를 가장 작게 하는 학습률은 η∗=m+L2이고, 그때 수축률은 κ+1κ−1입니다.
예제 3.5.f=x2+50y2(λ=2,100, κ=50). η<2/100=0.02이어야 수렴하고, 최적 학습률 η∗=2/102에서 수축률은 49/51≈0.96입니다. y 방향은 가파르고 x 방향은 완만해서, 학습률을 y에 맞추면 x 방향으로 아주 느리게 갑니다. 경로는 골짜기 벽 사이를 지그재그로 오갑니다.
알고리즘 3.6 (되돌아가기 직선 탐색, backtracking line search).η를 큰 값에서 시작해, 아르미호 조건(Armijo condition)
f(x−η∇f)≤f(x)−2η∥∇f∥2
이 성립할 때까지 η←η/2로 줄입니다.
따름정리 3.2에 따라 η≤1/L이면 조건이 반드시 성립하므로, 몇 번 줄이면 멈춥니다. 딥러닝에서는 함숫값을 매번 정확히 계산하기 비싸서 직선 탐색 대신 학습률 스케줄(5장)을 씁니다.
3.5 이 장의 요약
η≤1/L이면 매 단계 f가 2η∥∇f∥2 이상 줄어듭니다.
볼록: O(1/k). 강볼록: 선형 수렴 (1−1/κ)k.
이차함수: η<2/L에서 수렴, 최적 η=2/(m+L), 수축률 (κ−1)/(κ+1).
조건수가 크면 지그재그로 느려집니다.
쓰이는 곳. 최적화 논문의 수렴 정리(“Theorem: with step size 1/L, the iterates satisfy…”), 딥러닝의 학습률 선택과 발산(손실이 NaN이 되는 현상), 대규모 언어 모델의 “learning rate warmup” 논의, 물리 시뮬레이션의 에너지 최소화, 공학의 반복 설계 최적화가 이 장의 분석을 씁니다.