当前位置:   article > 正文

TensorFlow 常用优化器:GradientDescent、Momentum、Adam_在tensorflow中,以下哪个优化器可以用来做梯度优化

在tensorflow中,以下哪个优化器可以用来做梯度优化

Tensorflow中支持11中不同的优化器,包括:

  • tf.train.Optimizer
  • tf.train.GradientDescentOptimizer
  • tf.train.AdadeltaOptimizer
  • tf.train.AdagradOptimizer
  • tf.train.AdagradDAOptimizer
  • tf.train.MomentumOptimizer
  • tf.train.AdamOptimizer
  • tf.train.FtrlOptimizer
  • tf.train.RMSPropOptimizer
  • tf.train.ProximalAdagradOptimizer
  • tf.train.ProximalGradientDescentOptimizer

常用的主要有3种,分别是

(1) GradientDescent

optimizer  = tf.train.GradientDescentOptimizer(learning_rate).minimize(loss)
  • 1

使用随机梯度下降算法,使参数沿着
梯度的反方向,即总损失减小的方向移动,实现更新参数。
W [ l ] = W [ l ] − α   d W [ l ] W^{[l]} = W^{[l]} - \alpha \text{ } dW^{[l]} W[l]=W[l]α dW[l] b [ l ] = b [ l ] − α   d b [ l ] b^{[l]} = b^{[l]} - \alpha \text{ } db^{[l]} b[l]=b[l]α db[l]

(2) Momentum

optimizer = tf.train.MomentumOptimizer(learning_rate,momentum).minimize(loss)
  • 1

在更新参数时,利用了超参数
{ v d W [ l ] = β v d W [ l ] + ( 1 − β ) d W [ l ] v d b [ l ] = β v d b [ l ] + ( 1 − β ) d b [ l ]

{vdW[l]=βvdW[l]+(1β)dW[l]vdb[l]=βvdb[l]+(1β)db[l]
{vdW[l]=βvdW[l]+(1β)dW[l]vdb[l]=βvdb[l]+(1β)db[l]

{ W [ l ] = W [ l ] − α v d W [ l ] b [ l ] = b [ l ] − α v d b [ l ]

{W[l]=W[l]αvdW[l]b[l]=b[l]αvdb[l]
{W[l]=W[l]αvdW[l]b[l]=b[l]αvdb[l]

其中,
β \beta β : the momentum
α \alpha α : the learning rate

(3) Adam

optimizer =  tf.train.AdamOptimizer(learning_rate=0.001, 
                                   beta1=0.9, beta2=0.999, 
                                   epsilon=1e-08).minimize(loss)
  • 1
  • 2
  • 3

利用自适应学习率的优化算法(此时learning_rate传入固定值,不支持使用指数衰减方式),Adam 算法和随机梯度下降算法不同。随机梯度下降算法保持单一的学习率更新所有的参数,学习率在训练过程中并不会改变。而 Adam 算法通过计算梯度的一阶矩估计和二阶矩估计而为不同的参数设计独立的自适应性学习率。
{ v d W [ l ] = β 1 v d W [ l ] + ( 1 − β 1 ) ∂ J ∂ W [ l ] v d b [ l ] = β 1 v d b [ l ] + ( 1 − β 1 ) ∂ J ∂ b [ l ]     ( m o m e n t : β 1 )

{vdW[l]=β1vdW[l]+(1β1)JW[l]vdb[l]=β1vdb[l]+(1β1)Jb[l]
  (moment:\beta_1) {vdW[l]=β1vdW[l]+(1β1)W[l]Jvdb[l]=β1vdb[l]+(1β1)b[l]J  (momentβ1)

{ s d W [ l ] = β 2 s d W [ l ] + ( 1 − β 2 ) ( ∂ J ∂ W [ l ] ) 2 s d b [ l ] = β 2 s d b [ l ] + ( 1 − β 2 ) ( ∂ J ∂ b [ l ] ) 2   ( R M S p r o p : β 2 )

{sdW[l]=β2sdW[l]+(1β2)(JW[l])2sdb[l]=β2sdb[l]+(1β2)(Jb[l])2
 (RMSprop:\beta_2) {sdW[l]=β2sdW[l]+(1β2)(W[l]J)2sdb[l]=β2sdb[l]+(1β2)(b[l]J)2 (RMSprop:β2)

{ v d W [ l ] c o r r e c t e d = v d W [ l ] 1 −   ( β 1 ) t v d W [ b ] c o r r e c t e d = v d W [ b ] 1 −   ( β 1 ) t s d W [ l ] c o r r e c t e d = s d W [ 2 ] 1 −   ( β 1 ) t s d W [ b ] c o r r e c t e d = s d W [ 2 ] 1 −   ( β 1 ) t   ( B i a s c o r r e c t i o n )

{vdW[l]corrected=vdW[l]1 (β1)tvdW[b]corrected=vdW[b]1 (β1)tsdW[l]corrected=sdW[2]1 (β1)tsdW[b]corrected=sdW[2]1 (β1)t
 (Bias correction) vdW[l]corrected=1 (β1)tvdW[l]vdW[b]corrected=1 (β1)tvdW[b]sdW[l]corrected=1 (β1)tsdW[2]sdW[b]corrected=1 (β1)tsdW[2] (Biascorrection)

{ W [ l ] = W [ l ] − α v d W [ l ] c o r r e c t e d s d W [ l ] c o r r e c t e d     +   ε b [ l ] = b [ l ] − α v d b [ l ] c o r r e c t e d s d b [ l ] c o r r e c t e d     +   ε

{W[l]=W[l]αvdW[l]correctedsdW[l]corrected  + εb[l]=b[l]αvdb[l]correctedsdb[l]corrected  + ε
W[l]=W[l]αsdW[l]corrected   + εvdW[l]correctedb[l]=b[l]αsdb[l]corrected   + εvdb[l]corrected

其中,

  • β 1 \beta_1 β1 and β 2 \beta_2 β2 are hyperparameters that control the two exponentially weighted averages.
  • α \alpha α is the learning rate
  • ε \varepsilon ε is a very small number to avoid dividing by zero
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/552321
推荐阅读
相关标签
  

闽ICP备14008679号