인지야공

인지야공/수학·공학 노트/5번째 글

야코비안 — 다변수 함수의 '기울기 행렬'

실행: python 딥러닝/mathnotes/M1_jacobian.py (torch, 수 초) 정규화와 잔차 편에서 그라디언트가 “야코비안의 곱”이라 했다. 그 야코비안이 무엇인지 한 장으로 정리한다.


1. 한 줄 정의

야코비안(Jacobian) 은 여러 입력을 받아 여러 출력을 내는 함수 f:Rn→Rmf:\mathbb{R}^n \to \mathbb{R}^m 의 모든 편미분을 모은 행렬이다.

J=∂f∂x=[∂f1∂x1⋯∂f1∂xn⋮⋱⋮∂fm∂x1⋯∂fm∂xn]J = \frac{\partial f}{\partial x} = \begin{bmatrix} \dfrac{\partial f_1}{\partial x_1} & \cdots & \dfrac{\partial f_1}{\partial x_n} \\ \vdots & \ddots & \vdots \\ \dfrac{\partial f_m}{\partial x_1} & \cdots & \dfrac{\partial f_m}{\partial x_n} \end{bmatrix}

ii 행 jj 열은 “입력 xjx_j 를 조금 흔들면 출력 fif_i 가 얼마나 변하나”다. 스칼라 함수의 미분(기울기)을 벡터 함수로 넓힌 것이 야코비안이다.


2. 무엇을 뜻하나 — 가장 좋은 선형근사

야코비안의 핵심 의미는 그 점 근처에서 함수를 가장 잘 흉내 내는 선형 사상이라는 것이다.

f(x+Δx)≈f(x)+J Δxf(x + \Delta x) \approx f(x) + J\,\Delta x

곡선을 한 점에서 접선으로 근사하듯, 벡터 함수를 한 점에서 행렬 곱(선형)으로 근사한다. 그 접선의 기울기가 바로 야코비안이다.

야코비안 선형근사

직접 재 보기

f(x0,x1)=(x02+sin⁡x1,  x0x1)f(x_0,x_1) = (x_0^2+\sin x_1,\; x_0 x_1) 의 야코비안을 세 방법으로 구했다.

방법결과
해석식(손으로 미분)기준
자동미분(autograd)해석식과 오차 1.7e-8
유한차분(수치)해석식과 오차 2.4e-3

셋이 사실상 같다. 딥러닝 프레임워크의 자동미분이 바로 이 야코비안을 기계적으로 계산해 준다.


3. 왜 딥러닝에 중요한가 — 연쇄법칙 = 야코비안의 곱

함수를 합성하면(층을 쌓으면), 합성함수의 야코비안은 각 야코비안의 곱이다. 이것이 연쇄법칙이다.

f=fL∘⋯∘f1  ⟹  Jf=JL JL−1⋯J1f = f_L \circ \cdots \circ f_1 \;\Longrightarrow\; J_f = J_L\, J_{L-1} \cdots J_1

실험에서 g(h(x))g(h(x)) 의 야코비안이 JgJhJ_g J_h 와 정확히 일치(오차 0.0)함을 확인했다. 신경망은 층의 합성이므로:

  • 역전파는 이 곱을 출력에서 입력으로 거꾸로 계산하는 것이다.
  • 각 JℓJ_\ell 의 크기가 1보다 작으면 곱이 00 으로, 크면 ∞\infty 로 간다 — 정규화와 잔차 편의 그라디언트 소실·폭발이 바로 이 곱의 성질이다. 잔차 연결이 곱에 항등 II 를 심어 이를 막았다.

4. 한 줄 요약

야코비안은 벡터 함수의 모든 편미분을 모은 행렬이자 그 점에서의 가장 좋은 선형근사(f(x+Δx)≈f(x)+JΔxf(x+\Delta x)\approx f(x)+J\Delta x)다. 합성함수의 야코비안은 각 야코비안의 곱(연쇄법칙)이라, 역전파와 그라디언트 소실·폭발의 수학적 뿌리가 된다. 자동미분이 이 야코비안을 대신 계산해 준다.


연결

표시는 이 브라우저에만 남는다. 서버로 가는 것은 없다.