tensorflow Optimizers

class tf.train.GradientDescentOptimizer

tensorflow Optimizers_第1张图片

梯度下降算法是用的最普遍的优化算法,不过梯度下降算法需要用到全部的样本,训练速度比较慢,但是迭代到一定次数最终能够找到最优解。tensorflow这里提供的GDO也相当于是SGD。


class tf.train.AdadeltaOptimizer


tensorflow Optimizers_第2张图片
tensorflow Optimizers_第3张图片

训练初中期,加速效果不错,很快


训练后期,反复在局部最小值附近抖动

这个函数低版本好像没有~训练很慢!

class tf.train.AdagradOptimizer


tensorflow Optimizers_第4张图片
tensorflow Optimizers_第5张图片
tensorflow Optimizers_第6张图片

class tf.train.AdagradDAOptimizer


tensorflow Optimizers_第7张图片

class tf.train.MomentumOptimizer


tensorflow Optimizers_第8张图片
Momentum


所以Momentum的想法很简单,就是多更新一部分上一次迭代的更新量,来平滑这一次迭代的梯度。从物理的角度上解释,就像是一个小球滚落的时候会受到自身历史动量的影响,所以才叫动量(Momentum)算法。这样做直接的效果就是使得梯度下降的的时候转弯掉头的幅度不那么大了,于是就能够更加平稳、快速地冲向局部最小点:

链接:https://zhuanlan.zhihu.com/p/22810533 

class tf.train.AdamOptimizer


tensorflow Optimizers_第9张图片

本质上是带有动量项的RMSprop,它利用梯度的一阶矩估计和二阶矩估计动态调整每个参数的学习率。Adam的优点主要在于经过偏置校正后,每一次迭代学习率都有个确定范围,使得参数比较平稳.


tensorflow Optimizers_第10张图片

特点:

结合了Adagrad善于处理稀疏梯度和RMSprop善于处理非平稳目标的优点

对内存需求较小

为不同的参数计算不同的自适应学习率

也适用于大多非凸优化

 适用于大数据集和高维空间



class tf.train.FtrlOptimizer


tensorflow Optimizers_第11张图片

class tf.train.ProximalGradientDescentOptimizer


tensorflow Optimizers_第12张图片

class tf.train.ProximalAdagradOptimizer


tensorflow Optimizers_第13张图片

class tf.train.RMSPropOptimizer


tensorflow Optimizers_第14张图片
tensorflow Optimizers_第15张图片


tensorflow Optimizers_第16张图片

Reference:

http://sebastianruder.com/optimizing-gradient-descent/index.html 

https://zhuanlan.zhihu.com/p/22810533 

SGD,Adagrad,Adadelta,Adam,Adamax,Nadam 

你可能感兴趣的:(tensorflow Optimizers)