七、【李宏毅机器学习(2017)】Backpropagation(反向传播算法)

上一篇博客介绍了深度学习的历史和思想,本篇博客将介绍在神经网络计算中经常使用的反向传播算法。web


目录算法


复习

Gradient Descent

在学习反向传播算法以前从新回归一下梯度降低算法,在神经网络求解最优化Loss function所使用的方法就是梯度降低算法,反向传播算法可以在神经网络计算中更高效地计算。
这里写图片描述网络

链式求导法则

在神经网络中,由于有着多个隐藏层,因此在计算偏导数的过程当中要使用到链式求导法则。svg

这里写图片描述

Backpropagation

反向传播算法介绍

Backpropagation的目的是极小化Loss function L ( θ ) ,便是每一笔data的loss function C ( θ ) 之和,所以计算 L ( θ ) 的偏微分等价于计算每一笔 C ( θ ) 的偏微分,再将之加总。如今对一个观测拿出红色三角区域部分进行分析。
这里写图片描述学习

根据链式求导法则 C w = C z z w ,其中 z = x 1 w 1 + x 2 w 2 + b ,所以 z w 能够很轻松计求解。
这里写图片描述优化

接下来咱们开始计算 C z 部分,以下图所示, C z = a z C a = σ ( z ) ( z a C z + z a C z ) = σ ( z ) [ w 3 C z + w 4 C z ]
这里写图片描述atom

如今开始计算 C z C z ——spa

  • 若是 z , z 是最后一个神经元的input
    C z = y 1 z C y 1 , C z = y 2 z C y 2

    这里写图片描述
  • 若是 z , z 不是最后一个神经元的input
    这里写图片描述

从后面逆向算,先算 C z 5 , C z 6 ,此时 C z 3 = σ ( z 3 ) [ w 5 C z 5 + w 5 C z 6 ] ,依此类推能够一直算到第一层。
这里写图片描述.net

前向传播算法和反响传播算法

这里写图片描述