TensorFlow_7优化器

TensorFlow学习系列:

TensorFlow_1参数初始化方法

TensorFlow_2学习率

TensorFlow_3激活函数

TensorFlow_4正则化

TensorFlow_5dropout

TensorFlow_6断点续训与Tensorboard可视化

TensorFlow_7优化器

TensorFlow_8损失函数

 

一,TensorFlow中提供了如下优化器:

tf.train.Optimizer
tf.train.GradientDescentOptimizer
tf.train.AdadeltaOptimizer
tf.train.AdagtadOptimizer
tf.train.AdagradDAOptimizer
tf.train.MomentumOptimizer
tf.train.AdamOptimizer
tf.train.FtrlOptimizer
tf.train.ProximalGradientDescentOptimizer
tf.train.ProximalAdagradOptimizer
tf.train.RMSProOptimizer

二,比较

这里我们挑几个常用的算法来讲解,那么他们几个的收敛速度比较快呢?请看下图:

观察图中我们发现:

  • SGD随机梯度下降算法收敛的速度是最慢的;
  • Adadelta收敛得速度是最快的;
  • Momentum所走的路程是最远的,会冲出最低点

 我们再来看看在马鞍型数据下,它们各自的表现又如何呢:

三,重点介绍三种常用优化器

1. tf.train.GradientDescentOptimizer(梯度下降算法)

       tf.train.GradientDescentOptimizer()使用随机梯度下降算法,使参数沿着 梯度的反方向,即总损失减小的方向移动,实现更新参数。

 2. tf.train.MomentumOptimizer(动量梯度下降算法 )

       tf.train.MomentumOptimizer()在更新参数时,利用了超参数,参数更新公式是:

       其中,?为学习率,超参数为?,?为参数,?(??−1 )为损失函数的梯度。 

 3.  tf.train.AdamOptimizer(Adam优化算法

       tf.train.AdamOptimizer()是利用自适应学习率的优化算法,Adam 算法和随 机梯度下降算法不同。随机梯度下降算法保持单一的学习率更新所有的参数,学 习率在训练过程中并不会改变。而 Adam 算法通过计算梯度的一阶矩估计和二 阶矩估计而为不同的参数设计独立的自适应性学习率。

       学习率:决定每次参数更新的幅度。

       优化器中都需要一个叫做学习率的参数,使用时,如果学习率选择过大会出现震 荡不收敛的情况,如果学习率选择过小,会出现收敛速度慢的情况。我们可以选 个比较小的值填入,比如 0.01、0.001

欢迎扫码关注我的微信公众号

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值