神经网络反向传播交叉熵 计算损失函数对隐藏层权重w1的梯度

本文是交叉熵损失函数为代表的两层神经网络的反向传播量化求导计算公式中的一个公式,单独拿出来做一下解释说明。


公式 8-18 是反向传播算法中的一个重要步骤,它计算的是损失函数 L L L隐藏层的权重 w 1 w_1 w1 的梯度。这一步是通过链式法则,逐层计算出损失函数对权重的影响,并最终用于更新权重 w 1 w_1 w1。下面我将详细解释公式 8-18 的推导过程以及每一部分的含义。

公式 8-18 的表达式

∂ L ∂ w 1 = ∂ L ∂ a 2 ⋅ ∂ a 2 ∂ Z 2 ⋅ ∂ Z 2 ∂ a 1 ⋅ ∂ a 1 ∂ Z 1 ⋅ ∂ Z 1 ∂ w 1 = ( a 2 − y ) w 2 σ ′ ( Z 1 ) x (8-18) \frac{\partial L}{\partial w_1} = \frac{\partial L}{\partial a_2} \cdot \frac{\partial a_2}{\partial Z_2} \cdot \frac{\partial Z_2}{\partial a_1} \cdot \frac{\partial a_1}{\partial Z_1} \cdot \frac{\partial Z_1}{\partial w_1} = (a_2 - y) w_2 \sigma'(Z_1) x \tag{8-18} ∂w1∂L=∂a2∂L⋅∂Z2∂a2⋅∂a1∂Z2⋅∂Z1∂a1⋅∂w1∂Z1=(a2−y)w2σ′(Z1)x(8-18)

1. 符号解释

  • L L L:损失函数,通常为交叉熵损失函数。
  • w 1 w_1 w1:隐藏层的权重矩阵,它连接输入层和隐藏层。
  • Z 1 Z_1 Z1:隐藏层的加权和(即隐藏层神经元的输入值)。
  • a 1 a_1 a1 :隐藏层的激活值,是通过激活函数 σ ( Z 1 ) \sigma(Z_1) σ(Z1) 计算得到的。
  • Z 2 Z_2 Z2:输出层的加权和(即输出层神经元的输入值)。
  • a 2 a_2 a2 :输出层的激活值,是通过激活函数 σ ( Z 2 ) \sigma(Z_2) σ(Z2) 计算得到的。
  • w 2 w_2 w2:连接隐藏层和输出层的权重。
  • y y y:真实标签。
  • x x x:输入层的输入值,即特征数据。
  • σ ′ ( Z 1 ) \sigma'(Z_1) σ′(Z1) :隐藏层激活函数的导数,表示激活函数对输入 Z 1 Z_1 Z1 的变化率。

2. 推导过程:链式法则的应用

为了推导公式 8-18,我们应用链式法则 ,逐步计算损失函数对隐藏层权重 w 1 w_1 w1 的导数。

第一步:损失函数对输出层激活值的导数 ∂ L ∂ a 2 \frac{\partial L}{\partial a_2} ∂a2∂L

根据公式 8-13,损失函数对输出层激活值 a 2 a_2 a2 的导数为:
∂ L ∂ a 2 = a 2 − y \frac{\partial L}{\partial a_2} = a_2 - y ∂a2∂L=a2−y

这个导数表示输出层的误差,即模型预测值 a 2 a_2 a2 与真实标签 y y y 之间的差异。

第二步:输出层激活值对加权和 Z 2 Z_2 Z2 的导数 ∂ a 2 ∂ Z 2 \frac{\partial a_2}{\partial Z_2} ∂Z2∂a2

输出层的激活值 a 2 a_2 a2 是通过激活函数(如 sigmoid 函数)从加权和 Z 2 Z_2 Z2 中计算得到的。因此,输出层激活值对加权和 Z 2 Z_2 Z2 的导数为:
∂ a 2 ∂ Z 2 = σ ′ ( Z 2 ) \frac{\partial a_2}{\partial Z_2} = \sigma'(Z_2) ∂Z2∂a2=σ′(Z2)

其中,sigmoid 激活函数的导数为:
σ ′ ( Z 2 ) = a 2 ( 1 − a 2 ) \sigma'(Z_2) = a_2(1 - a_2) σ′(Z2)=a2(1−a2)

第三步:输出层加权和 Z 2 Z_2 Z2 对隐藏层激活值 a 1 a_1 a1 的导数 ∂ Z 2 ∂ a 1 \frac{\partial Z_2}{\partial a_1} ∂a1∂Z2

输出层的加权和 Z 2 Z_2 Z2 是通过隐藏层的激活值 a 1 a_1 a1 及其对应的权重 w 2 w_2 w2 线性组合得到的,因此:
∂ Z 2 ∂ a 1 = w 2 \frac{\partial Z_2}{\partial a_1} = w_2 ∂a1∂Z2=w2

这个导数表示输出层的加权和 Z 2 Z_2 Z2 对隐藏层激活值 a 1 a_1 a1 的变化率,等于连接隐藏层和输出层的权重 w 2 w_2 w2。

第四步:隐藏层激活值 a 1 a_1 a1 对加权和 Z 1 Z_1 Z1 的导数 ∂ a 1 ∂ Z 1 \frac{\partial a_1}{\partial Z_1} ∂Z1∂a1

隐藏层的激活值 a 1 a_1 a1 是通过激活函数 σ ( Z 1 ) \sigma(Z_1) σ(Z1) 计算得到的,因此:
∂ a 1 ∂ Z 1 = σ ′ ( Z 1 ) \frac{\partial a_1}{\partial Z_1} = \sigma'(Z_1) ∂Z1∂a1=σ′(Z1)

这表示激活函数对隐藏层输入 Z 1 Z_1 Z1 的变化率。

第五步:隐藏层加权和 Z 1 Z_1 Z1 对权重 w 1 w_1 w1 的导数 ∂ Z 1 ∂ w 1 \frac{\partial Z_1}{\partial w_1} ∂w1∂Z1

隐藏层的加权和 Z 1 Z_1 Z1 是通过输入层的输入 x x x 与隐藏层的权重 w 1 w_1 w1 线性组合得到的,即:
Z 1 = w 1 ⋅ x + b 1 Z_1 = w_1 \cdot x + b_1 Z1=w1⋅x+b1

因此, Z 1 Z_1 Z1 对权重 w 1 w_1 w1 的导数为:
∂ Z 1 ∂ w 1 = x \frac{\partial Z_1}{\partial w_1} = x ∂w1∂Z1=x

这个导数表示隐藏层输入 Z 1 Z_1 Z1 对权重 w 1 w_1 w1 的变化率,等于输入层的输入值 x x x。

3. 结合链式法则

现在我们可以将这些部分结合起来,得到损失函数 L L L 对隐藏层权重 w 1 w_1 w1 的导数:
∂ L ∂ w 1 = ∂ L ∂ a 2 ⋅ ∂ a 2 ∂ Z 2 ⋅ ∂ Z 2 ∂ a 1 ⋅ ∂ a 1 ∂ Z 1 ⋅ ∂ Z 1 ∂ w 1 \frac{\partial L}{\partial w_1} = \frac{\partial L}{\partial a_2} \cdot \frac{\partial a_2}{\partial Z_2} \cdot \frac{\partial Z_2}{\partial a_1} \cdot \frac{\partial a_1}{\partial Z_1} \cdot \frac{\partial Z_1}{\partial w_1} ∂w1∂L=∂a2∂L⋅∂Z2∂a2⋅∂a1∂Z2⋅∂Z1∂a1⋅∂w1∂Z1

将每个部分的结果代入,得到:
∂ L ∂ w 1 = ( a 2 − y ) ⋅ w 2 ⋅ σ ′ ( Z 1 ) ⋅ x \frac{\partial L}{\partial w_1} = (a_2 - y) \cdot w_2 \cdot \sigma'(Z_1) \cdot x ∂w1∂L=(a2−y)⋅w2⋅σ′(Z1)⋅x

这就是公式 8-18 的推导结果。

4. 公式的含义

公式 8-18 表示的是损失函数 L L L 对隐藏层权重 w 1 w_1 w1 的导数。这个梯度用于调整隐藏层的权重,以使损失函数最小化。公式中的各个部分表示:

  • a 2 − y a_2 - y a2−y:这是输出层的误差,反映了模型预测值与真实标签之间的差异。
  • w 2 w_2 w2:这是连接隐藏层和输出层的权重,反映了隐藏层对输出层的影响。
  • σ ′ ( Z 1 ) \sigma'(Z_1) σ′(Z1):这是隐藏层激活函数的导数,反映了激活函数对输入变化的敏感性。
  • x x x:这是输入层的输入,反映了输入数据对隐藏层权重的影响。

5. 直观理解

从公式 8-18 可以看出,隐藏层权重的更新不仅依赖于输出层的误差,还依赖于输出层权重 w 2 w_2 w2、隐藏层激活函数的导数 σ ′ ( Z 1 ) \sigma'(Z_1) σ′(Z1),以及输入层的输入 x x x。

  • 如果输出层误差较大 ,即 a 2 − y a_2 - y a2−y 较大,说明模型的预测与真实值之间的差异较大,隐藏层权重需要较大调整。
  • 如果输出层误差较小 ,即 a 2 − y a_2 - y a2−y 较小,说明模型的预测较为准确,隐藏层权重只需要小幅调整。
  • 输入层的值 x x x 也会影响隐藏层的权重更新。输入值越大,对应的权重更新幅度也会越大。

通过这个公式,反向传播算法可以逐步更新隐藏层的权重 w 1 w_1 w1,从而优化模型的整体性能。

6. 在反向传播中的作用

公式 8-18 是反向传播中的重要步骤。反向传播的目标是通过损失函数对每个参数的导数(梯度)来更新模型的权重和偏置,从而最小化损失函数。公式 8-18 计算了隐藏层权重的梯度,用于更新隐藏层的权重。

7. 总结

公式 8-18 给出了损失函数对隐藏层权重 w 1 w_1 w1 的梯度。这个梯度通过链式法则计算,它结合了输出层误差、输出层权重、激活函数的导数以及输入值。通过这个梯度,反向传播算法能够逐步调整隐藏层的权重,从而优化模型的损失函数,使模型的预测性能不断提高。

相关推荐
好喜欢吃红柚子3 分钟前
万字长文解读空间、通道注意力机制机制和超详细代码逐行分析(SE,CBAM,SGE,CA,ECA,TA)
人工智能·pytorch·python·计算机视觉·cnn
小馒头学python8 分钟前
机器学习是什么?AIGC又是什么?机器学习与AIGC未来科技的双引擎
人工智能·python·机器学习
神奇夜光杯17 分钟前
Python酷库之旅-第三方库Pandas(202)
开发语言·人工智能·python·excel·pandas·标准库及第三方库·学习与成长
正义的彬彬侠20 分钟前
《XGBoost算法的原理推导》12-14决策树复杂度的正则化项 公式解析
人工智能·决策树·机器学习·集成学习·boosting·xgboost
Debroon30 分钟前
RuleAlign 规则对齐框架:将医生的诊断规则形式化并注入模型,无需额外人工标注的自动对齐方法
人工智能
小码农<^_^>34 分钟前
优选算法精品课--滑动窗口算法(一)
算法
羊小猪~~36 分钟前
神经网络基础--什么是正向传播??什么是方向传播??
人工智能·pytorch·python·深度学习·神经网络·算法·机器学习
AI小杨38 分钟前
【车道线检测】一、传统车道线检测:基于霍夫变换的车道线检测史诗级详细教程
人工智能·opencv·计算机视觉·霍夫变换·车道线检测
晨曦_子画42 分钟前
编程语言之战:AI 之后的 Kotlin 与 Java
android·java·开发语言·人工智能·kotlin
道可云44 分钟前
道可云人工智能&元宇宙每日资讯|2024国际虚拟现实创新大会将在青岛举办
大数据·人工智能·3d·机器人·ar·vr