zoukankan      html  css  js  c++  java
  • 神经网络的数学推导

    注:在Cousera的DL课程中,设计矩阵和系数矩阵都是都是转置版本。我们采用这种描述。

    $X$为转置的设计矩阵,维数是$n imes m$

    $Z^{[1]}=W^{[1]}X+b^{[1]}$,维数是$h imes m$,h为隐藏层神经元数量

    $A^{[1]}= anh(Z^{[1]})$,维数是$h imes m$

    $Z^{[2]}=W^{[2]}A^{[1]}+b^{[2]}$,维数是$1 imes m$,因为输出为1个变量

    $A^{[2]}=sigma (Z^{[2]})$,维数是$1 imes m$

    $L=frac 1 m sum_{i=1}^m y^{(i)}logA^{[2](i)}(1-y^{(i)})log(1-A^{[2](i)})$,为标量

    $frac{partial L}{partial A^{[2]}}=frac 1 m [-frac{oldsymbol y}{A^{[2]}}+frac{1-oldsymbol y}{1-A^{[2]}}]$,这里的除法和加减法均为element-wise

    $frac{partial L}{partial Z^{[2]}}=frac 1 m (A^{[2]}-oldsymbol y)$

    $frac{partial L}{partial B^{[2]}}=frac{partial L}{partial Z^{[2]}}=frac 1 m (A^{[2]}-oldsymbol y)$ (这里B是broadcast后的b)

    $frac{partial L}{partial b^{[2]}}=sum_i frac{partial L}{partial B^{[2](i)}}=frac 1 m sum_i (A^{[2](i)}-y^{(i)})$

    $frac{partial L}{partial W^{[2]}}=frac{partial L}{partial Z^{[2]}}A^{[1]T}$ (矩阵乘法求梯度,参见前一篇博文)

    $frac{partial L}{partial A^{[1]}}=W^{[2]T}frac{partial L}{partial Z^{[2]}}$ (矩阵乘法求梯度,参见前一篇博文)

    $frac{partial L}{partial Z^{[1]}}=frac{partial L}{partial A^{[1]}}frac{partial A^{[1]}}{partial Z^{[1]}}=frac{partial L}{partial A^{[1]}}*(1-A^{[1]}*A^{[1]})$ (*代表element-wise乘法)

    $frac{partial L}{partial B^{[1]}}=frac{partial L}{partial Z^{[1]}}=frac 1 m (A^{[2]}-oldsymbol y)$ (这里B是broadcast后的b)

    $frac{partial L}{partial b^{[1]}}=sum_i frac{partial L}{partial B^{[1](i)}}$

    $frac{partial L}{partial W^{[1]}}=frac{partial L}{partial Z^{[1]}}X^T$ (矩阵乘法求梯度,参见前一篇博文)

  • 相关阅读:
    centOS7虚拟机上搭建kvm虚拟平台
    wxpython绘制折线图
    使用Mongodb爬取中国大学排名并写入数据库
    第一个爬虫与测试
    排球比赛规则的程序化
    文件的学习
    科学计算与可视化
    面对对象的学习
    对matplotlib库的运用
    PIL成就你的自信之路
  • 原文地址:https://www.cnblogs.com/milaohu/p/7338536.html
Copyright © 2011-2022 走看看