矩陣乘法的梯度計算


在神經網絡中,我們經常要用到矩陣乘法,而BackProp過程中,要對系數矩陣的每一個元素求偏導數。這里來推導一下。

我們假設有如下一個函數:$y=f(AB)$,其中

1、$A$是$n\times m$矩陣,$B$是$m\times k$矩陣。

2、f是一個標量函數,參數是一個矩陣。

我們現在要求$\frac{\partial y}{\partial A}$和$\frac{\partial y}{\partial B}$

 

可以看到, $y$是一個復合函數,我們令乘式$AB=C$,有$y=f(C)$。通過$f$的具體表達式(這里未知),我們可以求出y對C每個元素的偏導數:$\frac{\partial y}{\partial C_{i,j}}$,

根據多元函數的鏈式求導法則,我們有:

$\frac{\partial y}{\partial A_{p,q}}=\sum_{i,j} \frac{\partial y}{\partial C_{i,j}}\frac{\partial C_{i,j}}{\partial A_{p,q}}$

那么$\frac{\partial C_{i,j}}{\partial A_{p,q}}$怎么求呢?我們注意到:

$C_{i,j}=\sum_h A_{i,h}B_{h,j}$

所以$\frac{\partial C_{i,j}}{\partial A_{p,q}}=\begin{cases} B_{q,j} & i=p \\0 & i\ne p\end{cases}$

帶入前面的式子,我們有:

$\frac{\partial y}{\partial A_{p,q}}=\sum_{i,j} \frac{\partial y}{\partial C_{i,j}}\frac{\partial C_{i,j}}{\partial A_{p,q}}=\sum_{j} \frac{\partial y}{\partial C_{p,j}}\frac{\partial C_{p,j}}{\partial A_{p,q}}=\sum_{j} \frac{\partial y}{\partial C_{p,j}}B_{q,j}=\sum_{j} \frac{\partial y}{\partial C_{p,j}}B_{j,q}^T$

觀察上面的式子,這就是矩陣乘法$\frac{\partial y}{\partial A_{p,q}}=\frac{\partial y}{\partial C}B^T$的定義。

同理可證:$\frac{\partial y}{\partial B_{p,q}}=A^T\frac{\partial y}{\partial C}$


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM