首页 > 其他 > 详细

【李宏毅机器学习】7. 反向传播

时间:2020-10-18 12:22:19      阅读:35      评论:0      收藏:0      [点我收藏+]
  • 直接计算梯度
    • 需要计算Loss对每个参数的偏微分
    • 当参数很多时计算量太大
  • Chain Rule 链式法则
    • \(y=g(x),z=h(y),\frac{dz}{dx}=\frac{dz}{dy}\frac{dy}{dx}\)
    • \(x=g(s),y=h(s),z=k(x,y),\frac{dz}{ds}=\frac{\partial z}{\partial x}\frac{dx}{ds}+\frac{\partial z}{\partial y}\frac{dy}{ds}\)
  • Backpropagation
    • 如果要计算梯度的一个分量\(\frac{\partial L(\theta)}{\partial w}=\sum_{n=1}^N\frac{\partial C^n(\theta)}{\partial w}\)
    • 对于求和式中的每一项\(\frac{\partial C}{\partial w}\),可以表示为\(\frac{\partial z}{\partial w}\frac{\partial C}{\partial z}\),分别计算出这两项就可以了
    • Forward pass
      • 方向从Input Layer到Output Layer
      • 计算\(\frac{\partial z}{\partial w}\)
    • Backward pass
      • 方向从Output Layer到Input Layer
      • 计算\(\frac{\partial C}{\partial z}\)
      • \(z=w_1x_1+w_2x_2+b\)
        • Sigmoid函数的输入
  • Forward pass
    • 对于线性函数\(z=w_1x_1+w_2x_2+b\),计算\(\frac{\partial z}{\partial w}\)较简单,就是weight相对应的输入\(x\)
    • \(\partial z/\partial w_1=x_1,\partial z/\partial w_2=x_2\)
  • Backward pass
    • 设Sigmoid函数的输出\(\sigma(z)=a\)
    • 根据链式法则,\(\frac{dC}{dz}=\frac{da}{dz}\frac{dC}{da}\)
    • \(a=\sigma(z)\)\(\frac{dC}{dz}\)就是Sigmoid的微分\(\sigma‘(z)\)
    • \(\frac{dC}{da}\)又可以根据链式法则改写为\(\frac{dz‘}{da}\frac{dC}{dz‘}+\frac{dz‘‘}{da}\frac{dC}{dz‘‘}\)
    • \(z‘\)\(z‘‘\)分别是以\(a\)为输入之一的后面两个Neuron的\(z\)
    • 其中\(\frac{dz‘}{da}\)\(\frac{dz‘‘}{da}\)两项已经在Forward pass中算出,设为\(w_3\)\(w_4\)
    • 只需要计算\(\frac{dC}{dz‘}\)\(\frac{dC}{dz‘‘}\)两项就可以算出梯度
    • 每个Neuron的微分都依赖于后面Neuron的微分,这个问题是递归的
    • Base Case就是Output Layer,先计算出Output Layer的微分,然后“自底向上”计算出其他Neuron的微分
    • Output Layer
      • \(\frac{\partial C}{\partial z‘}=\frac{\partial y_1}{\partial z‘}\frac{\partial C}{\partial y_1}\)
      • 根据Sigmoid函数和Cross Entropy的定义就可以算出相应的微分
    • Not Output Layer
      • 所有项都已经计算出来,直接代入即可
  • 对于每个Neuron,将Forward pass计算出的\(\frac{\partial z}{\partial w}\)和Backward pass计算出的\(\frac{\partial C}{\partial z}\)相乘就得到了梯度中的一项\(\frac{\partial C}{\partial w}\),类似计算其他项就可以得到梯度

【李宏毅机器学习】7. 反向传播

原文:https://www.cnblogs.com/huzheyu/p/lihongyi-ml-7.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!