통계, IT, AI

scalar를 matrix로 미분하기 본문

잡지식

scalar를 matrix로 미분하기

Harold_Finch 2017. 10. 5. 13:05

1. 개요

    CNN(Convolutional Neural Network)를 아무런 기초없이 구현하려고 하다보니 여러가지 어려움이 있었다. 그러던 중 <밑바닥부터 시작하는 딥러닝>이라는 책에서 좋은 레퍼런스를 발견하여 그것을 공부하고 있다. 그런데 Backpropagation을 그래프로 해석하는 과정에서 스칼라(scalar)를 매트릭스(matrix)로 미분하는 부분[각주:1]이 쉽게 이해가 가지 않아 따로 정리한다.

    어떤 매트릭스 \(C_{p \times k }\)를 \(A_{p \times q}B_{q \times k}\)로 표현할 수 있고, 매트릭스를 스칼라로 보내는 함수 \(f\)가 있어 \(s=f(C)\)일 때, \(s\)에 대한 \(A\), \(B\)의 미분이 각각 다음과 같다.

$$\frac{\partial s}{\partial A}=\frac{\partial l}{\partial C}B^T, \quad \frac{\partial s}{\partial B}=A^T\frac{\partial s}{\partial C}$$

2. 증명

    \(s\)를 \(A\)의 원소 \(a_{ij}\)로 미분한 값이 다음과 같다. 단, \(c_i,b_j\)는 \(C\)와 \(B\)의 행 벡터이며 \(\left\langle c_i,b_j \right \rangle \)는 \(c_i,b_j\)의 내적이다.

\begin{eqnarray*} \frac{\partial s}{\partial a_{ij}}&=&\sum_{k}\frac{\partial s}{\partial c_{ik}} \frac{c_{ik}}{\partial a_{ij}} \\&=&\sum_{k}\frac{\partial s}{\partial c_{ik}} b_{jk} \quad \because \ c_{ik}=\sum_{j}a_{ij}b_{jk} \\&=& \left \langle \frac{\partial s}{\partial c_{i}},b_{j} \right \rangle \end{eqnarray*}

    따라서 \(s\)을 \(A\)로 미분하면 다음을 얻는다. 그리고 \(\partial s / \partial B=A^T \partial s /\partial C\)도 같은 방법으로 유도할 수 있다.

\begin{eqnarray*}\frac{\partial s}{\partial A}&=& \left [  \frac{\partial s}{\partial a_{ij}}\right ] \\&=& \left [  \left \langle \frac{\partial s}{\partial c_i}, b_j\right \rangle \right ] \\&=& \begin{bmatrix} \left \langle \frac{\partial s}{\partial c_1}, b_1 \right \rangle & \left \langle \frac{\partial s}{\partial c_1}, b_2 \right \rangle & \cdots \\  \left \langle \frac{\partial s}{\partial c_2}, b_1 \right \rangle &  \ddots & \vdots \\ \cdots & \cdots & \left \langle \frac{\partial s}{\partial c_p}, b_q \right \rangle
\end{bmatrix} \\&=& \begin{bmatrix} \frac{\partial s}{\partial c_1}\\  \frac{\partial s}{\partial c_2}\\ \vdots \\ \frac{\partial s}{\partial c_p} \end{bmatrix} \begin{bmatrix} b_1 & b_2 & \cdots & b_q \end{bmatrix} \\&=& \frac{\partial s}{\partial C}B^T\end{eqnarray*}

  1. 4쇄, 172페이지, 식 5.13 [본문으로]
Comments