基于机器学习的Adam 优化算法来提高深层神经网络的训练速度

在人工智能深度学习领域,我们经常使用梯度下降法来完成神经网络的训练任务,梯度下降算法是当前神经网络的应用最为广泛的算法之一,但是这个算法存在一些问题,就是在梯度下降的过程中存在一些波动的情况,从而导致神经网络的训练过于缓慢,而神经网络的训练需要反复迭代才能找到最佳模型,所以神经网络的快速训练,能够帮助我们快速找到最好的神经网络模型。
在这里插入图片描述

如上图所示,最中心红点表示梯度最低点,也就是最终的目标点,而蓝色线表示梯度下降的过程,我们可以看到它从左到右不断逼近最低点,但是同时它也存在较大的上下波动的问题。所以它的训练速度会很缓慢,为了解决这个问题,我们需要让梯度下降的过程上下波动缓慢,而从左到右加快下降过程,这样我们的梯度下降才能更快的完成,从而加快神经网络的训练速度。

在这里插入图片描述

我们想要实现如上图绿色折线所示的梯度下将过程,如图所示,我们可以看出这个梯度下降过程,上下波动小,从左向右梯度下降迅速,这就是我们需要的,但是要想达到类似的功能,依靠传统的梯度下降算法是不能够完成的,所以需要使用Adam 优化算法,它是由动量梯度下降法和RMSprop 算法结合的。

动量梯度下降法

动量梯度下降法,它的基本的想法就是计算梯度的指数加权平均数,并利用该梯度更新你的权重。简单来说,我们需要做的就是在每次迭代中,确切来说在第t次迭代的过程中,和梯度下降算法一样首先计算出微分dW,db。然后我们需要计算的是vdW=βvdW+(1−β)dW,也就是 v=βv+(1−β)θt,然后我们重新赋值权重,W:=W−avdW ,同样b:=b−avdb ,这样就可以减缓梯度下降的幅度。

在这里插入图片描述

这里有两个超参数,超参数是学习率a以及参数β,β控制着指数加权平均数。最常用的值是0.9,因为0.9 是很棒的鲁棒性。

RMSprop 算法

RMSprop 算法在第t次迭代中,该算法会照常计算当下 mini-batch 的微分dW,db,所以我们保留这个指数加权平均数,因此SdW=βSdW+ (1 −β )dW²,这样做能够保留微分平方的加权平均数,同样Sdb=βSdb+ (1 −β)db²,接着 RMSprop 会这样更新参数值。

在这里插入图片描述

Adam 优化算法

Adam=动量梯度下降+RMSprop ,我们只需要将这两种算法结合起来就形成了Adma优化算法,它具有动量梯度下降和RMSprop算法的优点。

使用 Adam 算法,首先你要初始化,vdW= 0,SdW= 0,vdb = 0,Sdb = 0,在第t次迭代中,你要计算微分,用当前的 mini-batch 计算dW,db,一般你会用 mini-batch 梯度下降法。

接下来计算 Momentum 指数加权平均数,所以vdW=β1vdW + (1 −β1)dW,同样vdb=β1vdb+(1−β1)db。

接着你用 RMSprop 进行更新,即用不同的超参数β2,SdW= β2SdW + (1 − β2)(dW)²,Sdb= β2Sdb+(1 −β2)(db)²。

这就相当于相当于 Momentum 更新了超参数β1,RMSprop 更新了超参数β2。

最后更新权重

在这里插入图片描述

至此就完成了Adam 优化算法,这个算法已经证实比梯度下降算法能够加快神经网络的训练速度,为什么这个算法叫做 Adam?Adam 代表的是 Adaptive Moment Estimation,β1用于计算这个微分dW,它叫做第一矩,β2用来计算平方数的指数加权平均数(dW)²,它叫做第二矩,所以 Adam 的名字由此而来,但是大家都简称 Adam 优化算法。

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

幻风_huanfeng

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值