tensorflow常用优化器总结

反向传播算法和梯度下降算法用来调整神经网络中参数的取值,梯度下降算法主要用于优化单个参数的取值,反向传播算法给出了高效的方式在所有参数上使用梯度下降算法,来使得神经网络模型的损失函数尽可能小。Tensorflow提供了多种方式实现反向传播和梯度下降过程,通用的方式为:tf.train.GradientDescentOptimizer(learning_rate = 0.1).minimize(loss), 设置学习率以及要优化的损失函数即可。需要注意的是目前都是通过一个batch的训练数据上调整参数。

 

##tf.train.GradientDescentOptimizer

旨在对所有步骤中的所有变量使用恒定的学习率,是目前最常用的梯度下降算法,一般来说能够有效地找到局部最优解。常常搭配一种自动呈指数衰减的学习率方法tf.train.exponential_decay

 

##tf.train.AdagradOptimizer

 adagrad方法是将每一个参数的每一次迭代的梯度取平方累加再开方,用基础学习率除以这个数,来做学习率的动态更新。学习率不再是一个固定的值,此算法学习率会单调猛烈地下降。

 

##tf.train.AdadeltaOptimizer

为了避免adagrad单调猛烈下降的学习率,Adadelta产生了。Adadelta限制把历史梯度累积窗口限制到固定的尺寸,而不是累加所有的梯度平方和。

 

##tf.train.AdamOptimizer

Adam优化算法是随机梯度下降算法的扩展式,在计算机视觉与自然语言处理等任务中很出色。

优势:

高效地计算;

所需内存少;

适合解决含大规模数据和参数的优化问题;

Adam通常被认为对超参数的选择相当棒;

适合解决包含很高噪声或稀疏梯度的问题;

 

 Adam算法可以看作是修正后的 AdaGrad+RMSProp算法;动量直接并入梯度一阶矩估计中;学习率建议为0.001。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值