pytorch学习笔记——优化器之Adam

前言

在深度学习中,优化器是非常重要的一部分。它用于调整模型的参数,以此来最小化损失函数。PyTorch是一个广泛使用的深度学习框架,提供了许多优化器供我们选择。其中Adam是我们最常用的优化器之一。

Adam,名字来自:(Adaptive Moment Estimation)自适应矩估计,是2014年提出的一种万金油式的优化器,使用起来非常方便,梯度下降速度快,但是容易在最优值附近震荡。竞赛中性能会略逊于SGD,但往往最简单的才是最有效的,超强的易用性使得Adam被广泛使用。本文将介绍Adam优化器的基本原理、使用方法以及一些注意事项。

优化器使用须知

模型的每次反向传播都会给各个可学习参数p (权重参数)计算出一个偏导数g_t,用于更新对应的参数p。通常偏导数g_t 不会直接作用到对应的可学习参数p上,而是通过优化器做一下处理,得到一个新的值 \widehat{g}_t,处理过程用函数F表示(不同的优化器对应的F的内容不同),即\widehat{g}_t=F(g_t),然后和学习率lr一起用于更新可学习参数p,即p=p-\widehat{g}_t*lr

Adam优化器的超参数设置

torch.optim.Adam(params,
                lr=0.001,
                betas=(0.9, 0.999),
                eps=1e-08,
                weight_decay=0,
                amsgrad=False)

params: 模型里需要被更新的可学习参数, 通常为model.parameters()。

lr: 学习率,表示每次参数更新时步长的大小。默认值为 0.001

betas: 用于计算梯度以及梯度平方的运行平均值的系数,默认值为 (0.9, 0.999)

eps: 为了增加数值计算的稳定性而加到分母里的项,默认为1e- 8

weight_decay: 权重衰减(L2惩罚),默认为0

amsgrad:用于控制是否使用AMSGrad算法。当amsgrad为True时,优化器会计算一阶矩估计和二阶矩估计的移动平均值,从而更准确地估计梯度的方差。这有助于提高模型训练的稳定性和收敛速度。

Adam优化器的基本原理

暂无,有空在写

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值