Optimizer in Tensorflow

Tensorflow常见优化器总结

       强烈建议结合《梯度下降算法总览》来阅读本文,两者关系密切,相辅相成。

1.1 构造函数总结

       优化器的构造函数就是定义一个优化器,换句话说,就是在计算图中添加了一个包含优化器的图节点,在执行计算图时才会被初始化。

  1. tf.train.GradientDescentOptimizer(learning_rate, use_locking=False, name='GradientDescent')
    作用
    实现梯度下降算法的优化器。
    参数解释
    learning_rate:用于表示梯度下降算法中的学习率,是一个浮点数;
    use_locking:可选布尔型参数,设置为真可防止异步操作更新学习率;
    name:可选参数,操作的名字前缀,默认为"GradientDescent"。

  2. tf.train.MomentumOptimizer(learning_rate, momentum, use_locking=False, name='Momentum', use_nesterov=False)
    作用
    实现Momentum算法的优化器。
    参数解释
    learning_rate:表示优化算法中的学习率(梯度系数),是一个浮点数;
    momentum:表示优化算法中的动量学习率(动量系数),是一个浮点数;
    use_locking:可选布尔型参数,设置为真可防止异步操作更新学习率;
    name:可选参数,操作的名字前缀,默认为"Momentum";
    use_nesterov:可选参数,默认False,即不使用 Nesterov Momentum算法。

  3. tf.train.AdagradOptimizer(learning_rate, initial_accumulator_value=0.1, use_locking=False, name='Adagrad')
    作用
    实现Adagrad算法的优化器。
    参数解释
    learning_rate:表示优化算法中的全局学习率(梯度系数的分子,即 ϵ \epsilon ϵ),是一个浮点数;
    initial_accumulator_value:表示初始累积量即Adagrad算法梯度更新公式中分母的初始量 δ \delta δ
    use_locking:可选布尔型参数,设置为真可防止异步操作更新学习率;
    name:可选参数,操作的名字前缀,默认为"Adagrad";

  4. tf.train.AdadeltaOptimizer(learning_rate=0.001, rho=0.95, epsilon=1e-08, use_locking=False, name='Adadelta')
    作用
    实现Adadelta算法的优化器。
    参数解释
    learning_rate:表示优化算法中的初始学习率(即 ϵ \epsilon ϵ),是一个浮点数;
    rho:即Adadelta算法中上一阶段梯度平方和的系数 ρ \rho ρ,也称为衰减率,是一个浮点数;
    epsilon:即Adadelta算法学习率中防止分母为零而添加的 ϵ \epsilon ϵ
    use_locking:同上;
    name:同上。

  5. tf.train.AdamOptimizer(learning_rate=0.001, beta1=0.9, beta2=0.999, epsilon=1e-08, use_locking=False, name='Adam')
    作用
    实现Adam算法的优化器。
    参数解释
    learning_rate:表示优化算法中的全局学习率(即Adam梯度更新公式 α \alpha α),是一个浮点数;
    beta1:在Adam算法的更新公式中表示为动量 r r r 的指数衰减率 ρ 1 \rho_1 ρ1,是一个浮点数;
    beta2:在Adam算法的更新公式中表示为动量 m m m 的指数衰减率 ρ 2 \rho_2 ρ2,是一个浮点数;
    epsilon:为防止分母为零而添加的一个常数,表示为公式中的 ϵ \epsilon ϵ
    use_locking和name:同上。

       除了以上5种优化器外,Tensorflow中还有优化器tf.train.RMSPropOptimizertf.train.AdagradDAOptimizertf.train.ProximalAdagradOptimizer等,由于精力有限就不做总结,可类比已经总结的五个优化器参考Tensorflow的API文档自行进行学习。

1.2 优化器的方法

       各优化器包含的方法都差不多,用于获取优化器的名字,均方误差的最小值等。主要包含如下几种:

  1. optimizer.apply_gradients()
  2. optimizer.compute_gradients()
  3. optimizer.get_name()
  4. optimizer.get_slot()
  5. optimizer.get_slot_names()
  6. optimizer.minimize()
  7. optimizer.variables()

       具体用法以后再进行总结。

1.3 参考

[1] .Tensorflow的API文档
[2] accumulate_zhang.tensorflow中的优化器:优化器Optimizer

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值