聊聊 神经网络模型 传播计算逻辑

概述

预训练过程在不断地更新权重超参数与偏置超参数,最后选择合适的超参数,生成超参数文件。上一篇博客 是使用已有的预训练超参数文件,要训练自己的超参数,需要对神经网络层中前向传播与反向传播计算熟悉,了解计算逻辑,才能不断地更新选择合适的超参数。

神经网络计算详解

整个神经网络的层数是4层,从顺序来分别是:输入层,两层隐藏层,输出层。隐藏层的激活函数选择sigmoid函数;输出层用softmax函数归一化处理。
神经网络的各层参数和激活函数符号化如下:

  • 输入层:(x)
  • 第一个隐藏层:(聊聊 神经网络模型 传播计算逻辑)
  • 第二个隐藏层:(聊聊 神经网络模型 传播计算逻辑)
  • 输出层:(y)
  • 权重参数:(聊聊 神经网络模型 传播计算逻辑)
  • 偏置参数:(聊聊 神经网络模型 传播计算逻辑)
  • 激活函数:(聊聊 神经网络模型 传播计算逻辑) (例如,Sigmoid、ReLU)
  • 损失函数:(L)

为简化推导,假设使用平方损失函数 (聊聊 神经网络模型 传播计算逻辑),其中 (聊聊 神经网络模型 传播计算逻辑) 为真实标签。

前向传播

前向传播过程如下:

  1. 输入层到第一个隐藏层:
    聊聊 神经网络模型 传播计算逻辑
  2. 第一个隐藏层到第二个隐藏层:
    聊聊 神经网络模型 传播计算逻辑
  3. 第二个隐藏层到输出层:
    聊聊 神经网络模型 传播计算逻辑

接下来计算反向传播的过程,反向传播的计算过程基于链式法则,目的是计算损失函数相对于网络参数(权重和偏置)的梯度。

图文并茂可以阅读 聊聊神经网络的基础知识

反向传播

损失函数对输出层输出的梯度

对于平方损失函数:
聊聊 神经网络模型 传播计算逻辑

损失函数对输出层输入的梯度

记输出层的输入为
聊聊 神经网络模型 传播计算逻辑
根据链式法则:聊聊 神经网络模型 传播计算逻辑
聊聊 神经网络模型 传播计算逻辑
=> 聊聊 神经网络模型 传播计算逻辑
这里 聊聊 神经网络模型 传播计算逻辑 是激活函数 聊聊 神经网络模型 传播计算逻辑 的导数。比如,如果使用 Sigmoid 激活函数,那么聊聊 神经网络模型 传播计算逻辑

损失函数对输出层超参数的梯度

聊聊 神经网络模型 传播计算逻辑

聊聊 神经网络模型 传播计算逻辑

聊聊 神经网络模型 传播计算逻辑
=>聊聊 神经网络模型 传播计算逻辑聊聊 神经网络模型 传播计算逻辑= 聊聊 神经网络模型 传播计算逻辑

第二个隐藏层,损失函数对输入的梯度

根据链式求导法则:
聊聊 神经网络模型 传播计算逻辑

由上可知,聊聊 神经网络模型 传播计算逻辑
其中聊聊 神经网络模型 传播计算逻辑聊聊 神经网络模型 传播计算逻辑是输出层的参数矩阵,聊聊 神经网络模型 传播计算逻辑 是向量。我们想要计算 聊聊 神经网络模型 传播计算逻辑聊聊 神经网络模型 传播计算逻辑 的导数。
我们对 聊聊 神经网络模型 传播计算逻辑求导数,由于 聊聊 神经网络模型 传播计算逻辑聊聊 神经网络模型 传播计算逻辑 不包含 聊聊 神经网络模型 传播计算逻辑,它们在导数中变为零:
聊聊 神经网络模型 传播计算逻辑
由于第二项为零。只需要计算第一项:
聊聊 神经网络模型 传播计算逻辑
这里 聊聊 神经网络模型 传播计算逻辑 是矩阵, 聊聊 神经网络模型 传播计算逻辑 是向量。使用矩阵微积分规则:
聊聊 神经网络模型 传播计算逻辑
所以,导数 聊聊 神经网络模型 传播计算逻辑聊聊 神经网络模型 传播计算逻辑,其中 聊聊 神经网络模型 传播计算逻辑聊聊 神经网络模型 传播计算逻辑 的转置矩阵。
最终, 聊聊 神经网络模型 传播计算逻辑聊聊 神经网络模型 传播计算逻辑的导数是聊聊 神经网络模型 传播计算逻辑
聊聊 神经网络模型 传播计算逻辑
=>聊聊 神经网络模型 传播计算逻辑

第二个隐藏层,损失函数权重和偏置的梯度

根据上述计算逻辑,可以很方便的推出,损失函数对超参数聊聊 神经网络模型 传播计算逻辑的梯度为
聊聊 神经网络模型 传播计算逻辑
聊聊 神经网络模型 传播计算逻辑

第一个隐藏层,损失函数对输入,超参数的梯度

损失函数对输入聊聊 神经网络模型 传播计算逻辑的梯度为
聊聊 神经网络模型 传播计算逻辑
损失函数对超参数聊聊 神经网络模型 传播计算逻辑的梯度为
聊聊 神经网络模型 传播计算逻辑
聊聊 神经网络模型 传播计算逻辑
这样就完成了反向传播的输入、超参数计算过程。这些梯度的计算用于以更新神经网络的权重和偏置。

超参数的更新

上述已计算出来了超参数的梯度,现在用于更新神经网络的超参数,以输出层的权重超参数聊聊 神经网络模型 传播计算逻辑更新为例;其公式为:
聊聊 神经网络模型 传播计算逻辑
其中 聊聊 神经网络模型 传播计算逻辑为学习率,聊聊 神经网络模型 传播计算逻辑的值在上述已计算出来了,直接替换即可。

发表评论

评论已关闭。

相关文章