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

本篇博客介绍神经网络计算中常用的反向传播算法。先复习了梯度下降算法,它用于神经网络求解最优化Loss function;还提及链式求导法则,因神经网络有多个隐藏层,计算偏导数需用到。接着详细介绍反向传播算法,目的是极小化Loss function,通过链式求导法则进行计算。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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


目录


复习

Gradient Descent

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

链式求导法则

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

这里写图片描述

Backpropagation

反向传播算法介绍

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

根据链式求导法则 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 可以很轻松计求解。
这里写图片描述

接下来我们开始计算 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 ″ ]
这里写图片描述

现在开始计算 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

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

从后面逆向算,先算 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 ] ,依此类推可以一直算到第一层。
这里写图片描述

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

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值