Pytorch 中 9 种常见的梯度下降算法

举报
林欣 发表于 2023/07/25 15:21:45 2023/07/25
【摘要】 PyTorch中常见的梯度下降算法主要用于优化神经网络的参数,以下是其中9种常见的梯度下降算法:随机梯度下降法(Stochastic Gradient Descent, SGD):每次更新时使用单个样本的梯度来更新参数。由于随机选择样本,因此收敛过程可能较不稳定,但通常会比其他算法更快。批量梯度下降法(Batch Gradient Descent, BGD):每次更新时使用全部训练集的梯度来...

PyTorch中常见的梯度下降算法主要用于优化神经网络的参数,以下是其中9种常见的梯度下降算法:

  1. 随机梯度下降法(Stochastic Gradient Descent, SGD):每次更新时使用单个样本的梯度来更新参数。由于随机选择样本,因此收敛过程可能较不稳定,但通常会比其他算法更快。

  2. 批量梯度下降法(Batch Gradient Descent, BGD):每次更新时使用全部训练集的梯度来更新参数。由于使用全部样本,收敛过程通常较稳定,但计算成本较高。

  3. 小批量梯度下降法(Mini-Batch Gradient Descent):介于SGD和BGD之间,每次更新时使用一小批样本的梯度来更新参数。既能减少计算成本,又能保持较稳定的收敛。

  4. 动量梯度下降法(Momentum Gradient Descent):在更新参数时,引入一个动量项,类似于模拟物体滚下斜坡的惯性。可以加速收敛,并减少震荡。

  5. Nesterov Accelerated Gradient(NAG):是动量梯度下降法的变种,通过在更新前根据当前动量的方向先进行一次“超前预测”,可以更准确地估计梯度。

  6. Adagrad:自适应学习率算法,会根据参数的历史梯度调整学习率,使得稀疏参数的学习率较大,稠密参数的学习率较小。

  7. RMSprop:也是自适应学习率算法,对Adagrad做了改进,通过指数加权平均来限制历史梯度的累积。

  8. Adadelta:是对RMSprop的改进,解决了RMSprop学习率下降过快的问题。

  9. Adam(Adaptive Moment Estimation):结合了动量梯度下降和RMSprop的优点,是目前最为常用的优化算法之一。

在PyTorch中,你可以使用torch.optim模块来访问这些优化算法,通过选择不同的优化器,可以灵活地应用在你的神经网络训练中。例如,torch.optim.SGD对应随机梯度下降,torch.optim.Adam对应Adam算法。

image.png

image.png

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。