专栏名称: 人机与认知实验室
北京邮电大学人机交互与认知工程实验室 联系方式:[email protected]
目录
相关文章推荐
51好读  ›  专栏  ›  人机与认知实验室

如何通过链式法则计算损失对各层权重的梯度

人机与认知实验室  · 公众号  ·  · 2024-11-02 00:00

正文

请到「今天看啥」查看全文


通过链式法则计算损失对各层权重的梯度是反向传播算法的核心。我们可以用一个简单的神经网络示例来说明这个过程。

示例:简单的两层神经网络

假设我们有一个简单的神经网络,包括一个输入层、一个隐藏层和一个输出层。

  • 输入层 𝑋
  • 隐藏层 :权重为 𝑊 1 ,激活函数为 𝑓
  • 输出层 :权重为 𝑊 2 ,损失函数为 𝐿


一、 前向传播


  1. 计算隐藏层输出

  2. 𝑍 1 = 𝑊 1 𝑋
  3. 𝐴 1 = 𝑓 ( 𝑍 1 )


  4. 计算输出层输出

  5. 𝑍 2 = 𝑊 2 𝐴 1

  6. 𝐴 2 = 𝑔 ( 𝑍 2 )


  7. 其中 𝑔 是输出层的激活函数(例如Sigmoid或Softmax)。

  8. 计算损失

    𝐿 = Loss ( 𝐴 2 , 𝑌 )

    其中 𝑌 是真实标签。

2. 反向传播

计算损失对输出层权重的梯度 𝐿/ 𝑊2

  1. 计算输出层误差

    𝛿 2 = 𝐿 𝐴 2 𝑔 ( 𝑍 2 )

    这里, 𝑔 是输出激活函数的导数。

  2. 计算权重梯度

    𝐿/ 𝑊 2 = 𝛿 2 𝐴 1 𝑇

计算隐藏层权重的梯度 𝐿/ 𝑊 1

  1. 计算隐藏层误差

    𝛿 1 = ( 𝑊 2 𝑇 𝛿 2 ) 𝑓 ( 𝑍 1 )

    这里, 𝑓 是隐藏层激活函数的导数。
  2. 计算权重梯度

    𝐿/ 𝑊 1 = 𝛿 1 𝑋 𝑇

3. 更新权重

使用计算得到的梯度更新权重:

𝑊 2 = 𝑊 2 𝜂 𝐿/ 𝑊 2

𝑊 1 = 𝑊 1 𝜂 𝐿/ 𝑊 1

其中 𝜂 是学习率。


通过这个例子,我们看到了如何使用链式法则计算损失对各层权重的梯度。前向传播用于计算输出和损失,而反向传播则利用链式法则将误差从输出层向后传播,以更新每一层的权重。这个过程是深度学习模型训练的基础。








请到「今天看啥」查看全文