深度学习(四)之反向传播与梯度下降(公式推导)

本文深入解析了深度学习中的反向传播算法与梯度下降法,介绍了如何通过链式法则计算梯度,并利用梯度下降优化神经网络参数,减少损失函数,实现模型训练。

深度学习之反向传播与梯度下降

  有了前馈神经网络,又有了损失函数,就可以使用反向传播算法来更新神经网络中的参数,使得网络的输出尽可能地接近真实值。反向传播算法就是通过链式法则,从最后面的损失函数开始到前面的每一层网络都对参数进行求导,得到梯度之后再使用梯度下降算法更新参数,使得模型的损失函数的输出尽可能小,本质上是损失函数的最优化问题。假设神经网络的输入值为x,输出值为y,激活函数为f,参数为W,偏置量为b,损失函数为L。则第n层的输入值为x(n)x^{(n)}x(n) 输出值为y(n)y^{(n)}y(n) ,参数为W(n)W^{(n)}W(n) , 偏置量为b(n)b^{(n)}b(n) ,有:

在这里插入图片描述
  求参数W(n)W^{(n)}W(n) 以及偏置量b(n)b^{(n)}b(n) 对于损失函数L的梯度,使用链式法则:
在这里插入图片描述
  又由于:
在这里插入图片描述
在这里插入图片描述
  利用上述式子即可求得神经网络第n层的参数W(n)W^{(n)}W(n) 以及偏置量b(n)b^{(n)}b(n) 对于损失函数L的梯度▽W(n)L\bigtriangledown_{W^{(n)}}L▽W(n)​L和▽b(n)L\bigtriangledown_{b^{(n)}}L▽b(n)​L,求第n层的偏导数需要用到第n+1层求得的偏导数以及参数,所以整体的计算过程应该是从后向前反向进行,这也是反向传播算法名称的由来。有了梯度之后,由于梯度指示的是损失函数上升最快的方向,所以按着梯度的相反方向就可以使损失函数的值下降,因此可以使用梯度下降算法来对参数进行优化,计算公式如下:
在这里插入图片描述
  上述式子中η表示学习率,可以理解为学习的速率,学习率是深度学习训练时最重要的超参数之一,学习率选取的好坏直接决定了模型能否训练到最优以及训练到最优所需的时间。学习率设置太小,模型收敛速度会很慢,设置太大,梯度下降时有可能会跨越过最优点。在神经网络实际训练过程中通常会使用一些技巧来加快网络的收敛速度,例如批规范化(Batch Normalization)和Dropout正则化等。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值