J9-J9九游会网络软件科技有限公司

咨询热线

400-123-4657

Classification

新闻动态

400-123-4657
传真:+86-123-4567
手机:13800000000
邮箱:admin@youweb.com
地址:广东省广州市天河区88号
当前位置: 首页 > 新闻动态 > 公司动态

adam优化_机器学习2 -- 优化器(SGD、SGDM、Adagrad、RMSProp、Adam)

发布时间:2024-08-12 02:31:40 丨 浏览次数:84

1.1 SGD

SGD全称Stochastic Gradient Descent,随机梯度下降,1847年提出。每次选择一个mini-batch,而不是全部样本,使用梯度下降来更新模型参数。它解决了随机小批量样本的问题,但仍然有自适应学习率、容易卡在梯度较小点等问题。

v2-7710a062c27044dace333bf80c9666d1_b.jpg

1.2 SGDM

SGDM即为SGD with momentum,它加入了动量机制,1986年提出。

v2-508dd7fbfadcd934b7421bfd8b11d4cb_b.jpg

v2-1d6907f445d09a9dff4554114fee2ebb_b.png

如上所示,当前动量V由上一次迭代动量,和当前梯度决定。第一次迭代时V0=0,由此可得到前三次迭代的动量

v2-d5029e06e0ddf74202ae67fa46660b1a_b.jpg

由此可见t迭代的动量,其实是前t-1迭代的梯度的加权和。λ为衰减权重,越远的迭代权重越小。从而我们可以发现,SGDM相比于SGD的差别就在于,参数更新时,不仅仅减去了当前迭代的梯度,还减去了前t-1迭代的梯度的加权和。由此可见,SGDM中,当前迭代的梯度,和之前迭代的累积梯度,都会影响参数更新。

v2-b45131fbbe96177071d3c0e5bbacc026_b.jpg

SGDM相比SGD优势明显,加入动量后,参数更新就可以保持之前更新趋势,而不会卡在当前梯度较小的点了。

v2-4d97af02c3e1c4c26cfd042e9335af2b_b.jpg

美中不足的是,SGDM没有考虑对学习率进行自适应更新,故学习率的选择很关键。

1.3 Adagrad

它利用迭代次数和累积梯度,对学习率进行自动衰减,2011年提出。从而使得刚开始迭代时,学习率较大,可以快速收敛。而后来则逐渐减小,精调参数,使得模型可以稳定找到最优点。其参数迭代公式如下

v2-de5b2585f7b886de59955eee2a728464_b.jpg

与SGD的区别在于,学习率除以 前t-1 迭代的梯度的平方和。故称为自适应梯度下降。

Adagrad有个致命问题,就是没有考虑迭代衰减。极端情况,如果刚开始的梯度特别大,而后面的比较小,则学习率基本不会变化了,也就谈不上自适应学习率了。这个问题在RMSProp中得到了修正

1.4 RMSProp

它与Adagrad基本类似,只是加入了迭代衰减,2013年提出,如下

v2-65e1fec1848030a00329b320ea7edaf1_b.jpg

观察上式和Adagrad的区别,在于RMSProp中,梯度累积不是简单的前t-1次迭代梯度的平方和了,而是加入了衰减因子α。简单理解就是学习率除以前t-1次迭代的梯度的加权平方和。加入衰减时make sense的,因为与当前迭代越近的梯度,对当前影响应该越大。另外也完美解决了某些迭代梯度过大,导致自适应梯度无法变化的问题。

1.5 Adam

Adam是SGDM和RMSProp的结合,它基本解决了之前提到的梯度下降的一系列问题,比如随机小样本、自适应学习率、容易卡在梯度较小点等问题,2015年提出。如下

v2-4d5f9f73b8581d5b657cdb93da107452_b.jpg

由上可见,mt即为动量,根号vt即为自适应学习率。加入了两个衰减系数β1和β2。刚开始所需动量比较大,后面模型基本稳定后,逐步减小对动量的依赖。自适应学习率同样也会随迭代次数逐渐衰减。 则是防止除数为0,仅仅是数学计算考虑。

五大优化器其实分为两类,SGD、SGDM,和Adagrad、RMSProp、Adam。使用比较多的是SGDMAdam

v2-3249b03c3478e4b296d6fac29942d5b3_b.jpg

如上所示,SGDM在CV里面应用较多,而Adam则基本横扫NLP、RL、GAN、语音合成等领域。所以我们基本按照所属领域来使用就好了。比如NLP领域,Transformer、BERT这些经典模型均使用的Adam,及其变种AdamW。

CV任务实验

有人研究过几大优化器在一些经典任务上的表现。如下是在图像分类任务上,不同优化器的迭代次数和ACC间关系。

SGD > Adam Which One Is The Best Optimizer: Dogs-VS-Cats Toy Experiment

训练集上

v2-0eeaa9015cde45ea2176f3761e33a51d_b.jpg

验证集上

v2-3c1b421dcd19cdf12f141f58e772322f_b.jpg

可见

  1. 优化器对ACC影响也挺大的,比如上图Adam比SGD高了接近3个点。故选择一个合适的优化器也很重要。
  2. Adam收敛速度很快,SGDM相对要慢一些,但最终都能收敛到比较好的点
  3. 训练集上Adam表现最好,但验证集上SGDM最好。可见SGDM在训练集和验证集一致性上,比Adam好。

NLP任务实验

v2-f80dfa36093feead16c660c0748e3fa0_b.jpg

LSTM模型上,可见Adam比SGDM收敛快很多。最终结果SGDM稍好,但也差不多。

SGDM和Adam对比

v2-bfbab3fd41c072794eed21d126efb912_b.jpg

SGDM训练慢,但收敛性更好,训练也更稳定,训练和验证间的gap也较小。而Adam则正好相反。

4.1 SWATS

结合了SGDM和Adam,刚开始使用Adam,使得模型快速收敛。然后使用SGDM,使模型收敛稳定。如下

v2-777de413457eaf433487ac0b2457466f_b.jpg

4.2 AMSGrad

对Adam的改进在于,学习率衰减Vt变为了取max,如下。

v2-4758fd690857d0e9c1dbaf594fd4150b_b.jpg

优点为

  1. 学习率可以随迭代次数单调递减,不会在某些迭代突然变大
  2. 去掉了没什么信息含量的梯度,也就是较小的梯度

4.3 AdaBound

AMSGrad处理了较大的学习率,而AdaBound则将学习率限制在一定范围内

v2-e5a99ba17cbc8b119154275bf45cfa24_b.jpg

4.4 Cyclical LR

针对于SGDM收敛过慢,且没有使用自适应学习率的问题,Cyclical LR提出了让学习率在一定范围内变大和变小的方法,如下

v2-7b000b29fa391da39f6cc043eaf473ee_b.jpg

4.5 SGDR

和Cyclical LR类似,但增大时为阶跃增大,如下

v2-273e40e97ef43e26cadb222795d06c0b_b.jpg

4.6 RAdam

2020最新文章,

v2-bab1f9adf77c31a871db6c1da9e91df6_b.jpg

4.7 Lookahead

参数迭代n步后,再退回来一步。以新的起点重新开始迭代,这样可以增加收敛稳定性,防止跑飞。

v2-1c98e9f6a78f1255fe6621b4e40061fc_b.jpg

4.8 Nesterov accelerated gradient (NAG)

往future看几步,保证模型训练稳定

v2-fb4b38b6a13bc98d337d308e54d86a76_b.jpg

4.9 Nadam

Adam的future版本

v2-617afcce8fed798fe7d71753aafe3744_b.jpg

4.10 加入L2正则

v2-cf7b14f93397da969a4c0571e841a1d6_b.jpg

4.11 加入weight decay

和加入正则类似,但不同的是它加入的是weight decay。Huging Face的预训练模型广泛应用了AdamW作为优化器,需要重点掌握。

v2-7b0f8f5ee6a717da1f6ac3ef0c79b968_b.jpg

4.12 优化总结

总结下来,SGDM和Adam两大阵营的各种优化后的optimizer如下

v2-a646af23817b76064834d5eb1f7a0fd0_b.jpg

optimizer优化主要有三种方法

  1. 让模型探索更多的可能,包括dropout、加入Gradient noise、样本shuffle等
  2. 让模型站在巨人肩膀上,包括warn-up、curriculum learning、fine-tune等
  3. 归一化 normalization,包括batch-norm和layer-norm等
  4. 正则化,惩罚模型的复杂度
Copyright © 2002-2017 J9九游会网络软件科技有限公司 版权所有
电 话:400-123-4657    手 机:13800000000   传 真:+86-123-4567    E-mail:admin@youweb.com
地 址:广东省广州市天河区88号
粤ICP98598111号

扫一扫关注微信公众帐号

免费咨询 投诉建议

平台注册入口