tensorflow Optimizer

class tf.train.GradientDescentOptimizer

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


class tf.train.AdadeltaOptimizer


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


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

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

class tf.train.AdagradOptimizer



class tf.train.AdagradDAOptimizer


class tf.train.MomentumOptimizer



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

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

class tf.train.AdamOptimizer


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


特点:

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

对内存需求较小

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

也适用于大多非凸优化

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



class tf.train.FtrlOptimizer


class tf.train.ProximalGradientDescentOptimizer


class tf.train.ProximalAdagradOptimizer


class tf.train.RMSPropOptimizer




Reference:

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

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

SGD,Adagrad,Adadelta,Adam,Adamax,Nadam 



作者:Persistently
链接:https://www.jianshu.com/p/e6e8aa3169ca
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

猜你喜欢

转载自blog.csdn.net/yanhx1204/article/details/79733746