벡터와 행렬의 미분

Kiwoong Park·2024년 3월 20일

벡터와 행렬의 미분

'벡터'로 미분

x=[x1x2...xn]TRn\mathbf{x} =[x_1 x_2 ... x_n]^T \in R^nnn차원 벡터이고 스칼라 함수 f(x)=f(x1,x2,...,xn)f(x)=f(x_1,x_2, ... , x_n)가 주어졌을 때,
f(x)f(x)에 대한 x\mathbf{x}의 미분을 다음과 같이 정의한다.

✍ 참고: latex로 벡터 x\mathbf{x} 표기하는 방법 : $\mathbf{x}$

df(x)dx=xf(x)=[fx1fx2fxn]Rn\frac{df(\mathbf{x})}{d\mathbf{x}} = \triangledown_\mathbf{x}f(\mathbf{x}) = \begin{bmatrix} \frac{\partial f}{\partial x_1} \\ \frac{\partial f}{\partial x_2} \\ \vdots \\ \frac{\partial f}{\partial x_n} \end{bmatrix} \in \mathsf{R}^n

여기서 xf(x)\triangledown_\mathbf{x}f(\mathbf{x})를 함수 f(x)f(\mathbf{x})의 기울기 벡터 또는 그래디언트(gradient)라고 한다.

  • w=[w1w2wn]TRn\mathbf{w}=[w_1 w_2 \cdots w_n]^T \in R^nnn차원 벡터이고 스칼라 함수가
    f(x)=wTxf(\mathbf{x})=\mathbf{w}^T\mathbf{x}일 때, xf(x)=w\triangledown_\mathbf{x}f(\mathbf{x})=\mathbf{w}
  • A=[a11a1nan1ann]Rn×nA= \begin{bmatrix} a_{11} & \cdots & a_{1n} \\ \vdots & \ddots & \vdots \\ a_{n1} & \cdots & a_{nn} \\ \end{bmatrix} \in R^{n\times n}
    AA 가 행렬이고 스칼라 함수가 f(x)=xTAxf(\mathbf{x})=\mathbf{x}^TA\mathbf{x}로 주어졌을 때,
    xf(x)\triangledown_\mathbf{x}f(\mathbf{x})= (A+AT)x(A+A^T)\mathbf{x}

'행렬'로 미분

Y=[y11y1nym1ymn]Rm×nY=\begin{bmatrix} y_{11} & \cdots & y_{1n} \\ \vdots & \ddots & \vdots \\ y_{m1} & \cdots & y_{mn} \\ \end{bmatrix} \in R^{m\times n} 가 행렬이고 스칼라 함수 f(Y)f(Y)가 주어졌을 때 f(Y)f(Y)에 대한 YY의 미분을 다음과 같이 정의한다.

df(Y)dY=Yf(Y)=[dfdy11dfdy12dfdy1ndfdy21dfdy22dfdy2ndfdym1dfdym2dfdymn]Rm×n\frac{df(Y)}{dY}=\triangledown_Yf(Y)=\begin{bmatrix} \frac{df}{dy_{11}} & \frac{df}{dy_{12}} & \cdots & \frac{df}{dy_{1n}} \\ \frac{df}{dy_{21}} & \frac{df}{dy_{22}} & \cdots & \frac{df}{dy_{2n}} \\ \vdots & \vdots & \ddots & \vdots \\ \frac{df}{dy_{m1}} & \frac{df}{dy_{m2}} & \cdots & \frac{df}{dy_{mn}} \end{bmatrix} \in \mathsf{R}^{m\times n}

가중합 행렬의 대각합의 행렬 미분

XRn×nX\in R^{n\times n}WRn×nW\in R^{n\times n}가 행렬이고 스칼라 함수 f(X)f(X)f(X)=tr(WX)f(X)=tr(WX)로 주어졌을 때, f(X)f(X)XX로 미분하면 다음과 같다. 여기서 tr()tr(\cdot)은 대각합을 나타낸다.

Xf(X)=Xtr(WX)=X(w11x11+w12x21++w1nxn1+w21x12+w22x22++w2nxn2++wn1x1n+wn2x2n++wnnxnn=[w11w21wn1w12w22wn2w1nw2nwnn]=WT\triangledown_X f(X) = \triangledown_X tr(WX) \\ = \triangledown_X(w_{11}x_{11}+w_{12}x_{21}+ \cdots + w_{1n}x_{n1}+ w_{21}x_{12}+ w_{22}x_{22}+ \cdots + w_{2n}x_{n2} \\ +\cdots + w_{n1}x_{1n}+w_{n2}x_{2n} + \cdots + w_{nn}x_{nn} \\ = \begin{bmatrix} w_{11} & w_{21} & \cdots & w_{n1} \\ w_{12} & w_{22} & \cdots & w_{n2} \\ \vdots & \vdots & \ddots & \vdots \\ w_{1n} & w_{2n} & \cdots & w_{nn} \\ \end{bmatrix} = W^T

determinant(X)의 미분

XRn×nX\in R^{n\times n}가 행렬이고 스칼라 함수 f(X)f(X)f(X)=det(X)f(X)=det(X)로 주어졌을 때, f(X)f(X)XX로 미분하면 다음과 같다.

Xf(X)=Xdet(X)=adjT(X)\triangledown_X f(X) = \triangledown_X det(X) = adj^T(X)

여기서 수반행렬(adjoint matrix) adj(X)adj(X)X1=adj(X)det(X)X^{-1} = \frac{adj(X)}{det(X)}로 주어진다.

log(determinant(X))의 미분

XRn×nX\in R^{n\times n}가 행렬이고 스칼라 함수 f(X)f(X)f(X)=log(det(X))f(X)=log(det(X))로 주어졌을 때, f(X)f(X)XX로 미분하면 다음과 같다.

Xf(X)=Xlog(det(X))=Xdet(X)det(X)=adjT(X)det(X)=XT\triangledown_X f(X) = \triangledown_X log(det(X)) = \frac{\triangledown_X det(X)}{det(X)}=\frac{adj^T(X)}{det(X)}=X^{-T}

References
[1] 박성수. (2020). 수학으로 풀어보는 강화학습 원리와 알고리즘. 위키북스

profile
You matter, never give up

0개의 댓글