미분 결과의 형태

행렬미분에서는 입력과 출력의 shape을 먼저 확인한다.

함수 미분 대상 결과
스칼라 $f$ 스칼라 $x$ 도함수
스칼라 $f$ 벡터 $x$ 그래디언트 $\nabla_xf$
벡터 $y$ 벡터 $x$ 야코비안 $J$
스칼라 $f$ 벡터 $x$를 두 번 미분 헤시안 $H$

그래디언트

그래디언트는 함수가 가장 빠르게 증가하는 방향이다.

$$ \nabla_x f=\begin{bmatrix}\partial f/\partial x_1&\cdots&\partial f/\partial x_n\end{bmatrix}^T $$

자주 사용하는 공식은 다음과 같다.

$$ \nabla_x(a^Tx)=a $$

$$ \nabla_x(x^TAx)=(A+A^T)x $$

$A$가 대칭이면 $\nabla_x(x^TAx)=2Ax$이다.

야코비안과 헤시안

벡터함수 $y=f(x)$의 야코비안은 각 출력이 각 입력에 얼마나 민감한지 나타낸다.

$$ J_{ij}=\frac{\partial y_i}{\partial x_j} $$

헤시안은 그래디언트를 한 번 더 미분한 행렬이다.

$$ H_{ij}=\frac{\partial^2f}{\partial x_i\partial x_j} $$

헤시안의 고유값은 최적점 주변의 곡률을 설명한다.

연쇄법칙과 역전파

합성함수 $L(y(x))$는 연쇄법칙으로 미분한다. 신경망의 역전파는 출력층에서 입력층 방향으로 국소 미분을 곱해 그래디언트를 전달하는 과정이다.

선형층 $Z=XW+b$에서 상류 그래디언트를 $G=\partial L/\partial Z$라고 하면

$$ \frac{\partial L}{\partial W}=X^TG $$