深度学习中波士顿房价预测模型几个优化函数的对比

前言

aistudio官方代码中用的是随机梯度下降SGD的优化函数,在其他不变,只改变优化函数的情况下,通过与对比优化函数的效果,加深对优化函数的理解


一、优化函数的种类?

参考https://blog.csdn.net/lzx159951/article/details/105255042/,十分感谢。

1、SGD :随机梯度下降,每次从大量训练数据中抽取少量数据,这就会造成一种上下波动。但是总体方向都是朝着最小值走的。

2、Momentum:动量梯度下降,这个算法参照了物理学中的惯性。在物体前进的过程中,速度越块,惯性就越大,不容易收到其他方面的影响。比如篮球,重的篮球惯性大,更不容易受到手势的小幅变形或风吹的影响。引入这个概念是因为SGD在下降的过程中,会进行一定的波动。我们引入物理动量的概念,给梯度下降的过程加入一定的“惯性”累积,就可以减少更新路径上的震荡!即每次更新的梯度由“历史多次梯度的累积方向”和“当次梯度”加权相加得到。历史多次梯度的累积方向往往是从全局视角更正确的方向,这与“惯性”的物理概念很像,也是为何其起名为“Momentum”的原因。

3、AdaGrad :如果说上述是从梯度方向上的考量,那么这个算法是从学习率的大小来考量的。我们所希望的是,在梯度下降的前期,步长能够大一些,到快要接近最低点的时候,步长小一些。这个算法的思路就是 **根据不同参数距离最优解的远近,动态调整学习率。学习率逐渐下降,依据各参数变化大小调整学习率。**根据这个思想编写的优化算法称为“AdaGrad”,Ada是Adaptive的缩写,表示“适应环境而变化”的意思。

4、Adam :这个是算法不做过多解释,是将AdaGrad和Monmentum两个算法思路结合起来,也是我们现在应用的最广泛的算法。

二、波士顿房价预测模型中的效果对比

1.SGD

代码如下(示例):

optimizer = fluid.optimizer.SGDOptimizer(learning_rate=0.001)
opts = optimizer.minimize(avg_cost)

效果
在这里插入图片描述

2.Adam

代码如下(示例):

optimizer = fluid.optimizer.AdamOptimizer(learning_rate=0.01)
opts = optimizer.minimize(avg_cost)

效果
在这里插入图片描述

3.Adagrad

代码如下(示例):

optimizer = fluid.optimizer.AdagradOptimizer(learning_rate=0.01)
opts = optimizer.minimize(avg_cost)

效果
在这里插入图片描述

4.Momentum

代码如下(示例):

optimizer = fluid.optimizer.MomentumOptimizer(learning_rate=0.01)
opts = optimizer.minimize(avg_cost)

效果
在这里插入图片描述

三、总结

从介绍中看,感觉Adam应该是梯度下降效果最好的。但实际上,还得考量你的模型和训练的数据量,从而选择效果最好的优化函数。

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值