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

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


目录

  • 复习
    • Gradient Descent
    • 链式求导法则
  • Backpropagation
    • 反向传播算法介绍
    • 前向传播算法和反响传播算法


复习

Gradient Descent

在学习反向传播算法之前重新回归一下梯度下降算法,在神经网络求解最优化Loss function所使用的方法就是梯度下降算法,反向传播算法能够在神经网络计算中更高效地计算。
7、【李宏毅机器学习(2017)】Backpropagation(反向传播算法)_第1张图片

链式求导法则

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

7、【李宏毅机器学习(2017)】Backpropagation(反向传播算法)_第2张图片

Backpropagation

反向传播算法介绍

Backpropagation的目的是极小化Loss function L(θ) L ( θ ) ,即是每一笔data的loss function C(θ) C ( θ ) 之和,因此计算 L(θ) L ( θ ) 的偏微分等价于计算每一笔 C(θ) C ( θ ) 的偏微分,再将之加总。现在对一个观测拿出红色三角区域部分进行分析。
7、【李宏毅机器学习(2017)】Backpropagation(反向传播算法)_第3张图片

根据链式求导法则 Cw=Czzw ∂ C ∂ w = ∂ C ∂ z ∂ z ∂ w ,其中 z=x1w1+x2w2+b z = x 1 w 1 + x 2 w 2 + b ,因此 zw ∂ z ∂ w 可以很轻松计求解。
7、【李宏毅机器学习(2017)】Backpropagation(反向传播算法)_第4张图片

接下来我们开始计算 Cz ∂ C ∂ z 部分,如下图所示, Cz=azCa=σ(z)(zaCz+zaCz)=σ(z)[w3Cz+w4Cz] ∂ C ∂ z = ∂ a ∂ z ∂ C ∂ a = σ ′ ( z ) ( ∂ z ′ ∂ a ∂ C ∂ z ′ + ∂ z ″ ∂ a ∂ C ∂ z ″ ) = σ ′ ( z ) [ w 3 ∂ C ∂ z ′ + w 4 ∂ C ∂ z ″ ]
7、【李宏毅机器学习(2017)】Backpropagation(反向传播算法)_第5张图片

现在开始计算 Cz ∂ C ∂ z ′ Cz ∂ C ∂ z ″ ——

  • 如果 z,z z ′ , z ″ 是最后一个神经元的input
    Cz=y1zCy1,Cz=y2zCy2 ∂ C ∂ z ′ = ∂ y 1 ∂ z ′ ∂ C ∂ y 1 , ∂ C ∂ z ″ = ∂ y 2 ∂ z ″ ∂ C ∂ y 2

    7、【李宏毅机器学习(2017)】Backpropagation(反向传播算法)_第6张图片
  • 如果 z,z z ′ , z ″ 不是最后一个神经元的input
    7、【李宏毅机器学习(2017)】Backpropagation(反向传播算法)_第7张图片

从后面逆向算,先算 Cz5,Cz6 ∂ C ∂ z 5 , ∂ C ∂ z 6 ,此时 Cz3=σ(z3)[w5Cz5+w5Cz6] ∂ C ∂ z 3 = σ ′ ( z 3 ) [ w 5 ′ ∂ C ∂ z 5 + w 5 ″ ∂ C ∂ z 6 ] ,依此类推可以一直算到第一层。
7、【李宏毅机器学习(2017)】Backpropagation(反向传播算法)_第8张图片

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

7、【李宏毅机器学习(2017)】Backpropagation(反向传播算法)_第9张图片

你可能感兴趣的:(学习笔记,李宏毅机器学习(2017),笔记)