자연경사법

편집 역사 토론
최적설계 통계 수치해석 마지막 수정: 2026-08-08 04:51:29

1. 개요[편집]

자연경사법
Natural Gradient Descent
제안Shun-ichi Amari (1998)
갱신식θ ← θ − η F(θ)−1 ∇L(θ)
계량피셔 정보행렬 (KL 발산의 2차 근사)
핵심 성질재파라미터화 불변
실전 근사K-FAC, 블록·대각 근사, CG + 피셔-벡터 곱

자연경사법은 모수 공간을 평평한 유클리드 공간이 아니라 **피셔 정보를 계량으로 갖는 리만 다양체**로 보고, 그 위에서의 진짜 최급강하 방향을 따라 내려가는 최적화 기법이다. 아마리(1998)가 정리했고 갱신식은 한 줄이다.

θk+1=θkηF(θk)1L(θk),F(θ)=Expθ ⁣[θlogpθ(x)θlogpθ(x)]\theta^{k+1} = \theta^k - \eta\, F(\theta^k)^{-1}\nabla L(\theta^k), \qquad F(\theta) = \mathbb{E}_{x\sim p_\theta}\!\left[\nabla_\theta \log p_\theta(x)\,\nabla_\theta \log p_\theta(x)^\top\right]

보통 배우는 경사하강법은 ”δ2\lVert\delta\rVert_2 를 고정했을 때 LL 을 가장 많이 줄이는 δ\delta” 를 찾는다. 그런데 δ2\lVert\delta\rVert_2 는 모수의 눈금에 의존하는 양이다. 가우시안을 (μ,σ)(\mu,\sigma) 로 쓰든 (μ,σ2)(\mu,\sigma^2) 로 쓰든 분포족은 똑같은데, 유클리드 거리 1만큼 움직인 결과는 완전히 달라진다. 자연경사법은 이 눈금을 분포 자체의 변화량, 즉 쿨백-라이블러 발산으로 바꾼다. 그러면 “얼마나 움직였나”가 좌표계와 무관해지고, 최급강하 방향은 L-\nabla L 이 아니라 F1L-F^{-1}\nabla L 이 된다.1

2. KL이 피셔 계량을 낳는다[편집]

왜 하필 FF 인가. δ\delta 가 작을 때 KL을 전개하면 1차항이 0이라(스코어의 기댓값이 0) 2차항부터 남는다.

DKL(pθpθ+δ)=12δF(θ)δ+O(δ3)D_{\mathrm{KL}}\bigl(p_\theta \,\Vert\, p_{\theta+\delta}\bigr) = \tfrac{1}{2}\,\delta^\top F(\theta)\,\delta + O(\lVert\delta\rVert^3)

피셔 정보행렬은 KL 발산의 헤세다. 여기서 자연경사의 정체가 바로 나온다. 반경 ε\varepsilon 의 KL 신뢰영역 안에서 목적함수를 1차 근사해 최소화하면

argminδ Lδs.t.12δFδεδF1L\arg\min_{\delta}\ \nabla L^\top\delta \quad \text{s.t.}\quad \tfrac{1}{2}\delta^\top F \delta \le \varepsilon \qquad\Longrightarrow\qquad \delta \propto -F^{-1}\nabla L

자연경사 = KL 반경 안의 최급강하다. 신뢰 영역 방법의 언어로 다시 쓰면, 이차 모형은 목적함수가 아니라 거리 쪽에 들어가 있다.

재파라미터화 불변성도 여기서 나온다. 매끄러운 가역 좌표변환 θ=ψ(ξ)\theta = \psi(\xi) 의 야코비안을 JJ 라 하면 ξL=JθL\nabla_\xi L = J^\top \nabla_\theta L, Fξ=JFθJF_\xi = J^\top F_\theta J 이므로

Fξ1ξL=J1Fθ1θLF_\xi^{-1}\nabla_\xi L = J^{-1} F_\theta^{-1}\nabla_\theta L

즉 새 좌표에서의 자연경사는 옛 좌표 자연경사를 그냥 좌표변환한 것이다. 어떤 모수화를 쓰든 같은 분포 변화가 일어난다. 무한소 스텝에서 정확하고 유한 스텝에서는 1차 근사로 성립하며, 이것이 자연경사법의 존재 이유 중 절반을 차지한다.2

3. 가장 작은 예 — 1차원 가우시안[편집]

pθ=N(μ,σ2)p_\theta = \mathcal{N}(\mu, \sigma^2), θ=(μ,σ)\theta = (\mu,\sigma) 를 놓고 계산하면

F(μ,σ)=(1/σ2002/σ2),F1L=(σ2Lμ, σ22Lσ)F(\mu,\sigma) = \begin{pmatrix} 1/\sigma^2 & 0 \\ 0 & 2/\sigma^2 \end{pmatrix}, \qquad F^{-1}\nabla L = \Bigl(\sigma^2 \tfrac{\partial L}{\partial \mu},\ \tfrac{\sigma^2}{2}\tfrac{\partial L}{\partial \sigma}\Bigr)

가 나온다. 읽으면 이렇다 — 분포가 좁을수록(σ\sigma 가 작을수록) 스텝을 줄여라. 표준편차 0.001짜리 분포에서 평균을 0.01 옮기면 분포가 완전히 다른 곳으로 가 버리는데, 유클리드 경사하강은 그걸 모르고 똑같은 크기로 밀어붙인다. 학습 후반에 분산이 줄어든 모형이 갑자기 발산하는 흔한 사고가 이 지점에서 생긴다.

같은 분포를 θ=(μ,σ2)\theta = (\mu, \sigma^2) 로 다시 쓰면 Fσ2σ2=1/(2σ4)F_{\sigma^2\sigma^2} = 1/(2\sigma^4) 라 자연경사가 2σ4L/σ22\sigma^4\,\partial L/\partial\sigma^2 로 바뀌는데, 연쇄법칙으로 확인해 보면 (μ,σ)(\mu,\sigma) 판의 결과와 정확히 같은 분포 변화를 낸다. 불변성이 실제로 작동하는 모습이다.

4. 헤세도 아니고 가우스-뉴턴도 아니고[편집]

여기서 실수가 자주 나온다. FF손실의 헤세가 아니다. 헤세는 2L\nabla^2 L, 피셔는 δ2KL\nabla^2_\delta \mathrm{KL} 이며, 둘이 일치하는 것은 모형이 참이고 기댓값을 참분포에서 잡을 때(정보 등식)뿐이다. 실제 훈련 손실 지형에서는 헤세가 음의 고유값을 가질 수 있지만 피셔는 항상 준정부호다. 자연경사법이 안장점에서 뉴턴법처럼 튀어 오르지 않는 이유이자, 동시에 음의 곡률 정보를 못 쓰는 이유다.

한편 가우스-뉴턴법과의 관계는 훨씬 가깝다. 출력 분포가 **지수족**이고 신경망 출력이 그 자연모수로 들어가는 표준 설정(제곱오차↔가우시안, 교차엔트로피↔범주형)에서는

F=일반화 가우스-뉴턴 행렬(GGN)=JfHoutJfF = \text{일반화 가우스-뉴턴 행렬(GGN)} = J_f^\top H_{\text{out}} J_f

정확히 성립한다. 여기서 JfJ_f 는 모수→출력 야코비안, HoutH_{\text{out}} 은 출력에 대한 손실의 헤세다. 그래서 딥러닝 문헌에서 “자연경사”와 “GGN”이 사실상 같은 말로 쓰인다.

또 하나 조심할 것이 경험적 피셔(empirical Fisher)다. 진짜 FF 는 그래디언트를 모형에서 표본추출한 라벨로 계산해야 하는데, 실무에서 편의상 데이터 라벨을 그대로 써서 1nigigi\frac{1}{n}\sum_i g_i g_i^\top 로 만드는 경우가 많다. 이건 피셔가 아니며, 두 행렬은 해 근처가 아니면 크게 다르다. 논문에서 “자연경사를 썼다”고 할 때 어느 쪽인지 확인하는 습관이 필요하다.3

5. 문제는 언제나 F1F^{-1}[편집]

FF 는 모수 개수 dd 의 제곱 크기다. d=108d = 10^8 이면 행렬 자체가 101610^{16} 개 원소 — 만들 수도, 뒤집을 수도 없다. 그래서 실전 자연경사법의 역사는 곧 F1gF^{-1}g 근사의 역사다.

  • 행렬을 안 만들고 푼다. FvFv 는 KL의 헤세-벡터 곱이라 역전파 두 번(또는 RR-연산자 한 번)으로 O(d)O(d) 에 계산된다. 그러면 Fδ=LF\delta = \nabla L 을 켤레기울기법(CG, 크리로프 부분공간법)으로 십수 회 반복해 푼다. 명시적 역행렬 없이 자연경사 방향을 얻는 표준 기법이며, 헤세프리 최적화(HF)와 TRPO가 이 방식을 쓴다.
  • K-FAC. 층별 블록 대각으로 자르고, 각 블록을 크로네커 곱 FA1GF_\ell \approx A_{\ell-1}\otimes G_\ell 로 근사한다(AA = 입력 활성값의 2차 적률, GG = 출력 사전활성 그래디언트의 2차 적률). (AG)1=A1G1(A\otimes G)^{-1} = A^{-1}\otimes G^{-1} 이므로 작은 두 행렬만 뒤집으면 끝이다. 마르텐스-그로스(2015).
  • 대각 근사. FF 를 대각으로만 근사하는 계열. 여기서 가장 흔한 오해가 나오는데, Adam은 자연경사법이 아니다. Adam이 나누는 값은 그래디언트 2차 적률의 제곱근이고, 그것도 경험적 피셔의 대각이다. 자연경사라면 제곱근 없이 나눠야 한다. 스케일링을 좌표별로 한다는 착상만 사촌 격이지, 유도도 불변성도 공유하지 않는다.

덧붙여, 실전 구현에서 감쇠(damping)는 선택이 아니라 필수다. 미니배치로 추정한 FF 는 거의 항상 특이하거나 특이에 가까워서, 레벤버그-마쿼트 방법과 같은 요령으로 F+γIF + \gamma I 를 대신 쓴다. γ\gamma 가 크면 그냥 경사하강으로, 작으면 순수 자연경사로 미끄러지는 손잡이이며, K-FAC 구현들은 이 γ\gamma 를 신뢰영역 감각으로 자동 조절한다. 논문 수식에는 안 나오지만 이 한 줄이 빠지면 학습이 첫 스텝에서 폭발한다.

6. 강화학습에서의 자리[편집]

자연경사가 가장 확실하게 밥값을 하는 곳은 정책경사 계열이다. 정책 πθ\pi_\theta 는 그 자체로 확률분포라 KL이 자연스럽고, 정책이 조금만 크게 바뀌어도 데이터 분포가 통째로 달라져 학습이 붕괴하기 때문이다. 카카데(2002)의 자연 정책경사가 출발점이고, TRPO는 여기에 KL 제약 DˉKLε\bar{D}_{\mathrm{KL}} \le \varepsilon 을 명시적으로 걸어

δ=2εgF1g  F1g\delta = \sqrt{\frac{2\varepsilon}{g^\top F^{-1} g}}\; F^{-1}g

라는 스텝 크기까지 닫힌 형태로 준다(F1gF^{-1}g 는 물론 CG로 푼다). PPO는 이 제약을 잘라내기(clipping)로 대체해 계산을 덜어낸 후속작인데, 원래 무엇을 근사하려던 것인지를 알고 보면 하이퍼파라미터 감각이 달라진다.

7. 언제 쓸 만한가[편집]

정리하면 이렇다. 자연경사법은 모수화가 병적으로 잡혀 있거나(예: 분산·정밀도 모수, 스케일이 층마다 다른 심층망), 스텝마다 분포 이동을 통제해야 하는 문제(강화학습, 변분 추론) 에서 값을 한다. 반대로 손실 지형이 이미 잘 조건화돼 있으면 F1F^{-1} 를 근사하는 비용이 이득을 잡아먹는다. 실제로 심층 학습 주류가 여전히 Adam을 쓰는 이유는 자연경사가 틀려서가 아니라 스텝당 비용 대비 이득이 애매하기 때문이다. 배치 정규화나 화이트닝 같은 기법이 사실상 값싼 계량 보정 역할을 하고 있다는 해석도 널리 받아들여진다.

예외적으로 계산이 공짜인 영역도 있다. 켤레 지수족 모형의 변분 추론에서는 변분분포를 자연모수로 쓰면 F1F^{-1} 이 기댓값 모수로의 좌표변환과 상쇄돼, 자연경사가 닫힌 형태로 나온다. 확률적 변분추론(SVI)이 대규모 데이터에서 잘 도는 이유가 이것이고, 여기서는 자연경사가 “비싼 고급 기법”이 아니라 오히려 구현이 더 간단한 기본형이다.

이론 쪽에서는 이야기가 더 깔끔하다. 아마리는 온라인 학습에서 자연경사법이 점근적으로 피셔 효율적임을, 즉 크라메르-라오 하한을 달성하는 추정량과 같은 점근 분산에 도달함을 보였다. 배치 재사용 없이 표본을 한 번씩만 보는 상황에서 “이보다 잘할 수 없다”는 뜻이라, 정보 기하가 학습 이론에 주는 가장 구체적인 배당금으로 꼽힌다.4

8. 관련 문서[편집]

9. Footnotes[편집]

  1. Amari, S. (1998). “Natural gradient works efficiently in learning”, Neural Computation 10(2), 251–276. 제목이 이미 결론이다. 다만 1998년에 “efficiently”라고 쓸 때의 모수 개수는 수백 개였고, 지금 딥러닝의 dd 는 그때의 10610^6 배다. 논문이 틀린 게 아니라 세상이 변했다.

  2. 이 불변성 감각은 CFD 하던 사람에게 익숙하다. 격자 좌표계를 바꿨는데 해가 달라지면 그건 이산화가 잘못된 것이지 물리가 바뀐 게 아니다. 자연경사법은 최적화에 같은 요구를 거는 것 — “좌표를 바꿨더니 학습 곡선이 달라졌다”를 버그로 취급하겠다는 선언이다.

  3. Kunstner, Balles, Hennig (2019)이 이 혼동을 정면으로 다뤘다. 경험적 피셔는 잔차가 작을 때 오히려 작아져서, 해 근처에서 스텝을 키우는 방향으로 잘못 작동할 수 있다. ”ggg g^\top 를 평균 냈으니 피셔겠지”는 위험한 어림짐작이다.

  4. 물론 여기엔 “모형이 참이고, 데이터가 iid이고, 점근적으로”라는 세 겹의 단서가 붙는다. 통계 이론이 최적화에 조언할 때 늘 붙는 그 단서들이며, 실무에서 세 개가 동시에 성립하는 경우는 논문 실험 섹션 정도다.