简介
目前TensorFlow支持11种不同的经典优化器(参考TensorFlow API tf.train文档)
- 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
介绍三种常用优化器
tf.train.GradientDescentOptimizer、tf.train.MomentumOptimizer、tf.train.AdamOptimizer
1. tf.train.GradientDescentOptimizer
这个优化器主要实现的是 梯度下降算法
__init__( learning_rate, use_locking=False, name='GradientDescent' )
learning_rate
: (学习率)张量或者浮点数use_locking
: 为True时锁定更新name
: 梯度下降名称,默认为"GradientDescent".
tf.train.MomentumOptimizer
动量梯度下降算法 ,简述动量Momentum梯度下降
Δxt=ρΔxt1ηgt
其中,ρη
ρ
η
__init__( learning_rate, momentum, use_locking=False, name='Momentum', use_nesterov=False )
learning_rate
: (学习率)张量或者浮点数momentum
: (动量)张量或者浮点数use_locking
为True时锁定更新name
梯度下降名称,默认为 "Momentum".use_nesterov
tf.train.AdamOptimizer
实现 Adam优化算法( Adam 这个名字来源于 adaptive moment estimation,自适应矩估计。)
可参考博客梯度优化算法Adam
__init__( learning_rate=0.001, beta1=0.9, beta2=0.999, epsilon=1e-08, use_locking=False, name='Adam' )
learning_rate
: (学习率)张量或者浮点数beta1
beta2
: The exponential decay rate for the 2nd moment estimates.epsilon
: A small constant for numerical stability. This epsilon is "epsilon hat" in the Kingma and Ba paper (in the formula just before Section 2.1), not the epsilon in Algorithm 1 of the paper.use_locking
: 为True时锁定更新name
: 梯度下降名称,默认为 "Adam".
文章来源: TensorFlow三种常用的优化器