TensorFlow2学习笔记:7、优化器

本文介绍了TensorFlow中常用的优化器,包括梯度下降、Adadelta、Adagrad、Momentum、RMSProp和Adam。针对稀疏数据,推荐使用Adagrad、Adadelta、RMSProp或Adam。Adam通常表现最佳,因为它结合了Momentum和RMSProp的优点,适合训练深层复杂网络。对于快速收敛和避免局部最小值,自适应学习率算法是首选。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

下面是 TensorFlow官方文档 中的优化器种类:
在这里插入图片描述
tensorflow内置优化器路径:
在这里插入图片描述

tf.train.GradientDescentOptimizer

这个类是实现梯度下降算法的优化器。

tf.train.AdadeltaOptimizer

实现了Adadelta算法的优化器,该算法不需要手动调优学习速率,抗噪声能力强,可以选择不同的模型结构。Adadelta是对Adagrad的扩展。Adadelta只累加固定大小的项,并且也不直接存储这些项,仅仅是计算对应的平均值。

tf.train.AdagradOptimizer

实现了AdagradOptimizer算法的优化器,Adagrad会累加之前所有的梯度平方。它用于处理大的稀疏矩阵,Adagrad可以自动变更学习速率,只是需要设定一个全局的学习速率,但这并非是实际学习速率,实际的速率是与以往参数的模之和的开方成反比的。这样使得每个参数都有一个自己的学习率。

tf.train.MomentumOptimizer

实现了MomentumOptimizer算法的优化器,如果梯度长时间保持一个方向,则增大参数更新幅度;反之,如果频繁发生符号翻转,则说明这是要减小参数更新幅度。可以把这一过程理解成从山顶放下一个球,会滑的越来越快。

tf.train.RMSPropOptimizer

实现了RMSPropOptimizer算法的优化器,它与Adam类似,只是使用了不同的滑动均值。

tf.train.AdamOptimizer

实现了AdamOptimizer算法的优化器,它综合了Momentum和RMSProp方法,对每个参数保留一个学习率与一个根据过去梯度信息求得的指数衰减均值。

如何选择:

如果数据是稀疏的,就用自适应方法,即 Adagrad, Adadelta, RMSprop, Adam

RMSprop, Adadelta, Adam 在很多情况下的效果是相似的。

Adam 就是在 RMSprop 的基础上加了 bias-correction 和 momentum。

随着梯度变的稀疏,Adam 比 RMSprop 效果会好。

整体来讲,Adam 是最好的选择。

很多论文里都会用 SGD,没有 momentum 等。SGD 虽然能达到极小值,但是比其它算法用的时间长,而且可能会被困在鞍点。

如果需要更快的收敛,或者是训练更深更复杂的神经网络,需要用一种自适应的算法。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

藏蓝色攻城狮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值