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

学术   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

其中 𝜂是学习率。


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


人机与认知实验室
人机交互与认知工程实验室 联系方式:twhlw@163.com
 最新文章