Day58:反向传播与优化算法

alt

在上一节中,我们介绍了全连接神经网络,也完成了搭建任务。但是这样的矩阵参数并不能达到我们的要求,因此这一节中我们就讲一讲优化算法。在深度神经网络中,反向传播算法是一种用于优化网络参数的关键算法。它通过计算损失函数对每个参数的梯度,然后使用梯度下降或其他优化算法来更新参数,以最小化损失函数。

1. 数学推导

反向传播算法的数学推导涉及到链式法则和梯度计算。下面是反向传播算法的算法步骤:

  • 步骤1:前向传播计算每一层的输出。
  • 步骤2:计算输出层的损失函数关于输出的梯度。
  • 步骤3:使用链式法则逐层计算每个参数的梯度。
  • 步骤4:使用梯度下降或其他优化算法更新参数。

详细的推导过程如下:

假设我们有一个具有L层的神经网络,每一层的输出为 a [ l ] a^{[l]} ,参数为 W [ l ] W^{[l]} b [ l ] b^{[l]} ,损失函数为 L L

在前向传播中,我们根据当前的参数计算每一层的输出: Z [ l ] = W [ l ] A [ l 1 ] + b [ l ] A [ l ] = g [ l ] ( Z [ l ] ) Z^{[l]} = W^{[l]} \cdot A^{[l-1]} + b^{[l]}A^{[l]} = g^{[l]}(Z^{[l]})

其中, g [ l ] ( ) g^{[l]}() 表示第l层的激活函数。

在反向传播中,我们首先计算输出层的梯度: d Z [ L ] = L A [ L ] g [ L ] ( Z [ L ] ) dZ^{[L]} = \frac{\partial L}{\partial A^{[L]}} \cdot g'^{[L]}(Z^{[L]})

然后,使用链式法则逐层计算每个参数的梯度: d W [ l ] = 1 m d Z [ l ] A [ l 1 ] T d b [ l ] = 1 m i = 1 m d Z [ l ] d A [ l 1 ] = W [ l ] T d Z [ l ] dW^{[l]} = \frac{1}{m} dZ^{[l]} \cdot A^{[l-1]T}db^{[l]} = \frac{1}{m} \sum_{i=1}^{m} dZ^{[l]}dA^{[l-1]} = W^{[l]T} \cdot dZ^{[l]}

其中,m表示训练样本的数量。

最后,使用梯度下降或其他优化算法更新参数:

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

大模型-AI小册 文章被收录于专栏

1. AI爱好者,爱搞事的 2. 想要掌握第二门语言的Javaer或者golanger 3. 决定考计算机领域研究生,给实验室搬砖的uu,强烈建议你花时间学完这个,后续搬砖比较猛 4. 任何对编程感兴趣的,且愿意掌握一门技能的人

全部评论

相关推荐

1 收藏 评论
分享
牛客网
牛客企业服务