IQ Lab
← all posts
AI 2026.04.28 · 12 min read Advanced

Natural Gradient는 왜 좌표를 묻지 않는가

유클리드 gradient의 parameterization 의존성 문제부터 Fisher 계량 하의 steepest descent 유도, K-FAC·Shampoo의 실전 근사까지, Natural Gradient의 철학과 구조를 추적한다.


torch.optim.SGD를 쓸 때 우리는 ∇L을 “방향”이라고 부른다. 그런데 같은 목적함수라도 σ\sigma 좌표로 최적화하느냐 logσ\log\sigma 좌표로 하느냐에 따라 gradient 경로 전체가 달라진다. 좌표 선택이 수렴 경로를 바꾼다면, 우리가 “gradient”라고 부르는 것은 과연 무엇인가?

∇L은 방향이 아니다

편미분 벡터 L=(1L,,nL)\nabla L = (\partial_1 L, \dots, \partial_n L)은 “steepest ascent 방향”처럼 보인다. 하지만 이것은 좌표계가 직교정규이고 계량이 항등 행렬 g=Ig = I일 때만 사실이다.

미분기하 언어로 말하면, dL=iLdθidL = \partial_i L \, d\theta^i는 **1-form(covector)**이다. 방향을 입력으로 받아 실수를 돌려주는 함수. 반면 “gradient”는 방향을 가리키는 벡터다. 두 대상을 연결하는 것이 계량 gg이다.

g(gradL,V)=dL(V)VTpMg(\operatorname{grad} L, V) = dL(V) \quad \forall V \in T_p M

좌표로 쓰면 (gradL)i=gijjL(\operatorname{grad} L)^i = g^{ij} \partial_j L. 유클리드에서는 gij=δijg^{ij} = \delta^{ij}이므로 두 개가 일치하지만, 이것은 특수한 일치일 뿐이다.

재매개변수화 ϕ=ϕ(θ)\phi = \phi(\theta), Jacobian J=ϕ/θJ = \partial\phi/\partial\theta 아래 gradient는 역전치 Jacobian으로 변환한다.

ϕL=JTθL\nabla^\phi L = J^{-T} \nabla^\theta L

이것이 covector 변환 규칙이다. N(μ,σ2)\mathcal{N}(\mu, \sigma^2)에서 KL(N(μ,σ2)N(0,1))\text{KL}(N(\mu,\sigma^2) \| N(0,1))을 최소화할 때 이 차이가 선명해진다. σ\sigma 좌표에서 gradient의 σ\sigma 성분은 σ1/σ1/σ\sigma - 1/\sigma \approx -1/\sigmaσ0\sigma \to 0에서 발산한다. logσ\log\sigma 좌표에서는 1+e2τ1-1 + e^{2\tau} \approx -1로 유계다. 같은 분포, 같은 목적함수, 다른 안정성 — 이것이 parameterization이 gradient에 새기는 편향이다.

Fisher 계량과 Natural Gradient

분포 공간에서 자연스러운 거리는 KL divergence다. 무한소에서 KL은 다음과 같이 근사된다.

KL(pθpθ+dθ)=12dθTF(θ)dθ+O(dθ3)\operatorname{KL}(p_\theta \| p_{\theta+d\theta}) = \frac{1}{2} d\theta^T F(\theta) d\theta + O(\|d\theta\|^3)

여기서 F(θ)=E[logplogpT]=E[2logp]F(\theta) = \mathbb{E}[\nabla \log p \cdot \nabla \log p^T] = -\mathbb{E}[\nabla^2 \log p]가 Fisher 정보 행렬이다. 0차 항은 KL(pp)=0\operatorname{KL}(p\|p)=0이고, 1차 항은 score의 기댓값이 0이므로 소멸한다. KL의 로컬 구조는 Fisher 계량으로 완전히 결정된다.

이로부터 Natural Gradient는 제약 최적화의 해로 등장한다. “KL 반경 ε\varepsilon 안에서 LL을 가장 많이 줄이는 방향”은 다음 문제의 해다.

mindθL(θ)Tdθs.t.dθTF(θ)dθε2\min_{d\theta} \nabla L(\theta)^T d\theta \quad \text{s.t.} \quad d\theta^T F(\theta) d\theta \leq \varepsilon^2
정리 1 · Natural Gradient = KL-ball Steepest Descent

위 제약 최적화 문제의 유일한 해는

dθ=εLTF1LF1L=:~Ld\theta^* = -\frac{\varepsilon}{\sqrt{\nabla L^T F^{-1} \nabla L}} \underbrace{F^{-1} \nabla L}_{=:\,\tilde{\nabla} L}

이다. 즉 Fisher 타원체 내에서 LL을 가장 많이 줄이는 방향은 항상 F1L-F^{-1}\nabla L 방향이다.

▷ 증명

Lagrangian L=LTdθ+λ(dθTFdθε2)\mathcal{L} = \nabla L^T d\theta + \lambda(d\theta^T F d\theta - \varepsilon^2)의 정류 조건은 L+2λFdθ=0\nabla L + 2\lambda F d\theta = 0, 즉 dθ=12λF1Ld\theta = -\frac{1}{2\lambda} F^{-1} \nabla L. L0\nabla L \neq 0이면 최적점은 경계 dθTFdθ=ε2d\theta^T F d\theta = \varepsilon^2에 있다. 이를 대입해 λ=12εLTF1L\lambda^* = \frac{1}{2\varepsilon}\sqrt{\nabla L^T F^{-1} \nabla L}을 얻고, 다시 대입하면 위 공식이 나온다. F0F \succ 0이므로 해는 유일하다. \square

지수족 MLE에서 L(θ)=logp(xθ)L(\theta) = -\log p(x|\theta)의 Hessian은 2L=F\nabla^2 L = F다. 따라서 F1L=H1LF^{-1}\nabla L = H^{-1}\nabla L — Natural Gradient는 지수족 MLE에서 Newton’s method와 정확히 일치하며, 이론적으로 한 스텝에 수렴한다.

좌표 불변성 — Natural Gradient가 “옳은” 이유

Fisher는 (0,2)(0,2) 텐서 법칙으로 변환한다.

Fϕ=JTFθJ1,Fϕ1=JFθ1JTF_\phi = J^{-T} F_\theta J^{-1}, \quad F_\phi^{-1} = J F_\theta^{-1} J^T

이 두 변환을 결합하면 Natural Gradient의 핵심 성질이 나온다.

~ϕL=Fϕ1ϕL=(JFθ1JT)(JTθL)=J~θL\tilde{\nabla}_\phi L = F_\phi^{-1} \nabla_\phi L = (J F_\theta^{-1} J^T)(J^{-T} \nabla_\theta L) = J \tilde{\nabla}_\theta L

Natural gradient는 **반변 벡터 변환 규칙 Xϕ=JXθX_\phi = J X_\theta**를 따른다. 이는 접벡터 dθd\theta와 같은 변환이므로, 방향으로 쓰는 것이 기하학적으로 정당하다.

연속 시간 flow θ˙=Fθ1θL\dot\theta = -F_\theta^{-1} \nabla_\theta L에서 ϕ(t)=ϕ(θ(t))\phi(t) = \phi(\theta(t))로 변환하면 ϕ˙=Jθ˙=Fϕ1ϕL\dot\phi = J\dot\theta = -F_\phi^{-1}\nabla_\phi L. 두 좌표계에서 Natural Gradient flow를 풀면 완전히 같은 분포 궤적을 그린다. 이산 업데이트에서는 O(η2)O(\eta^2) 오차가 남지만, η0\eta \to 0 극한에서 정확히 불변이다.

반면 유클리드 GD ϕt+1=ϕtηϕL\phi_{t+1} = \phi_t - \eta \nabla_\phi Lθ\theta 좌표의 경로와 일치하려면 JJT=IJJ^T = I, 즉 Jacobian이 직교행렬이어야 한다. 일반적인 재매개변수화에서는 성립하지 않는다.

실전 근사 — K-FAC과 Shampoo

n=109n = 10^9 파라미터 신경망에서 FF는 저장 자체가 불가능하다(O(n2)O(n^2) 메모리, O(n3)O(n^3) 역행렬). 핵심 관찰은 Fisher가 층 구조와 Kronecker 구조를 갖는다는 것이다.

\ell의 출력 z=Waz = Wa에서 WL=gaT\nabla_W L = g a^T이므로:

F=E[(ag)(ag)T]=E[aaTggT]F_\ell = \mathbb{E}[(a \otimes g)(a \otimes g)^T] = \mathbb{E}[aa^T \otimes gg^T]

K-FAC(Martens & Grosse 2015)은 aagg가 독립이라 근사하여

FE[aaT]AE[ggT]GF_\ell \approx \underbrace{\mathbb{E}[aa^T]}_{A_\ell} \otimes \underbrace{\mathbb{E}[gg^T]}_{G_\ell}

으로 분해한다. Kronecker 역행렬 (AG)1=A1G1(A \otimes G)^{-1} = A^{-1} \otimes G^{-1}vec\operatorname{vec} 공식을 결합하면 업데이트가 닫힌 형태로 나온다.

ΔW=ηG1(WL)A1\Delta W_\ell = -\eta \, G_\ell^{-1} (\nabla_{W_\ell} L) A_\ell^{-1}

저장은 O(p2+q2)O(p^2 + q^2), 계산은 O(p3+q3)O(p^3 + q^3)으로 원래 O((pq)2)O((pq)^2), O((pq)3)O((pq)^3)에서 극적으로 감소한다. Shampoo(Gupta+ 2018)는 이를 일반 텐서로 확장해 각 축마다 preconditioner를 누적하며, Anil+ (2020)은 Shampoo가 full-matrix AdaGrad의 최적 Kronecker 근사임을 보였다.

TRPO(Schulman+ 2015)는 다른 접근을 택한다. F1vF^{-1}v를 conjugate gradient로 푸는데, 각 반복에서 Fisher-vector product Fv=θ(θLv)Fv = \nabla_\theta(\nabla_\theta L \cdot v)만 계산한다. 두 번의 backward pass, O(n)O(n) 비용으로 10~20 CG 반복이면 충분한 근사를 얻는다.

트레이드오프

Natural Gradient는 parameterization 불변이고 지수족 MLE에서 Newton과 동치다. 그 대가는 Fisher 역행렬의 계산 비용이다. K-FAC은 Kronecker 구조로 이를 줄이지만 aagg의 독립 가정에 의존하고, Empirical Fisher(yiy_i를 데이터에서 취함)는 θ\theta가 최적에 수렴할수록 추정치가 0으로 붕괴해 업데이트가 폭주할 수 있다(Kunstner+ 2019). True Fisher는 ypθy \sim p_\theta에서 샘플링해야 한다.

정리

  • L\nabla L은 covector다. 유클리드에서만 벡터(방향)와 일치하며, 이 일치는 g=Ig = I라는 특수 가정의 귀결이다.
  • Natural Gradient ~L=F1L\tilde{\nabla} L = F^{-1}\nabla L은 KL ball 내 steepest descent이며, 지수족 MLE에서 Newton’s method와 동치다.
  • Fisher의 공변 변환 법칙 덕분에 Natural Gradient는 반변 벡터처럼 변환되고, 연속 시간 flow는 좌표 선택에 무관한 분포 궤적을 그린다.
  • K-FAC, Shampoo, TRPO-CG는 모두 이 불변 방향을 현실적 비용으로 근사하는 전략이다.

Adam의 per-parameter scaling이 Fisher 대각 근사이고, BatchNorm이 암묵적으로 Fisher를 등방화하는 재매개변수화라는 사실은 우연이 아니다 — 실용적 딥러닝 최적화의 많은 “tricks”는 Natural Gradient 철학의 공학적 근사다.