zoukankan      html  css  js  c++  java
  • 矩阵乘法的梯度计算

    在神经网络中,我们经常要用到矩阵乘法,而BackProp过程中,要对系数矩阵的每一个元素求偏导数。这里来推导一下。

    我们假设有如下一个函数:$y=f(AB)$,其中

    1、$A$是$n imes m$矩阵,$B$是$m imes 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}}=egin{cases} B_{q,j} & i=p \0 & i e pend{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^Tfrac{partial y}{partial C}$

  • 相关阅读:
    关于第三方库
    一些css属性,抄自某个大神忘记谁了,不好意思
    10.使用express模拟数据服务器
    9.text-shadow
    8.css背景图案
    7.一个抄来圆形菜单
    6.文字闪烁效果
    5.偶然看到的一个css加载动画
    4.怎样使用css实现一个切角效果
    3.写一个简单的弹出菜单
  • 原文地址:https://www.cnblogs.com/milaohu/p/7337330.html
Copyright © 2011-2022 走看看