公司法
当前位置: 首页 法律大全

神经网络计算器代码(计算资源不够颜水成)

时间:2023-05-28 作者: 小编 阅读量: 1 栏目名: 法律大全

训练epoch增加意味着训练时间极大的延长,这样极大地增加了学术研究或工业落地的成本。目前一个普遍的做法是增大训练的batchsize并辅助并行训练以减少训练时间。但是AdamW并没有改变Adam中的冲量范式,因此在当batchsize超过4,096的时候,AdamW训练出的ViT的性能会急剧下降。但是AdamW所用的解耦方法偏向于启发式,目前并不能得到其收敛的理论保证。并且该结论在带有解耦的权重衰减策略时仍然成立。

机器之心专栏

机器之心编辑部

新优化器 Adan 只需常用优化器的 1/2 到 2/3 的训练成本 (epochs) 达到模型的 SoTA 性能。

最近,新加坡 Sea AI Lab 联合北大 Zero LAB 提出新的深度模型优化器 Adan。该优化器可以仅用一半的计算量就能追平甚至超越现有的 SoTA 优化器。在计算量一样的情况下, Adan 的结果在多个场景(涉及 CV、NLP、RL),多种训练方式(有监督与自监督),多种网络结构(ViT、CNN、LSTM、Transformer 等)上,均已超过其默认以及对应的 SoTA 优化器。

具体来说,在不改变结构和训练方式的情况下,Adan 在模型 Swin、ViT、ResNet、ConvNext、MAE、LSTM、BERT、Transformer-XL 以及 RL 中常用的 PPO 算法上,均获得了非平凡的性能提升。

    代码、配置文件和训练 log 均已开源:https://github.com/sail-sg/Adan原文链接:https://arxiv.org/pdf/2208.06677.pdf

1. 为什么需要重新考虑深度模型优化器?

自从 Vision Transformer (ViT) 提出,视觉模型的训练变得越来越复杂,训练时间也变的越来越长。除了涌现出一大批的数据增强技巧,常用的如 MixUp、CutMix、AutoRand,模型训练的 epoch 也越来越大。在 Imagenet 1k 上,训练 epoch 从 ResNet 刚提出的 90 epoch 已经增长到了常用的 300,甚至针对一些自监督学习的模型,例如 MAE,预训练的 epoch 已经达到了 1.6k epoch。

训练 epoch 增加意味着训练时间极大的延长,这样极大地增加了学术研究或工业落地的成本。目前一个普遍的做法是增大训练的 batch size 并辅助并行训练以减少训练时间。但是随之而来的一个问题就是,大的 batch size 往往意味着 performance 的下降,并且 batch size 越大,情况越明显。这主要是因为模型参数更新次数的急剧减少,以及较小的梯度噪声不能很好的帮助优化器快速逃离鞍点和尖锐的局部极小点。

除此之外,大部分优化器并不能忍受较大的学习率,这极大的限制了优化器的收敛速度,从而增加训练成本。

同时,还有一个困扰研究者的问题:在小数据集小 epoch 上有效的超参 / 模型,往往在大数据集大 epoch 会失效。是否存在一个能直接在大数据上快速验证超参 / 模型的优化方法

以上的这些问题,均指向一条解决路径:能否给出一个新的优化器,能以较少的训练成本达到模型的SoTA性能,即提升深度模型优化器收敛速度

2. 优化器加速需要一个新的冲量范式

由于 Adam 的流行,最近几年提出的深度模型优化器均沿用着 Adam 的冲量范式:重球法,

其中 g_k 是随机噪声,m_k 是 moment,eta 是学习率。

Adam 只是将 m_k 的更新由累积形式换成了平均形式,并沿用 RMSProp 提出的学习率放缩技巧。

然而随着 Adam 训练原始 ViT 失败,AdamW 渐渐的变成了训练 ViT 甚至 ConvNext 首选。但是 AdamW 并没有改变 Adam 中的冲量范式,因此在当 batch size 超过 4,096 的时候,AdamW 训练出的 ViT 的性能会急剧下降。Adam 类型优化器中的冲量范式似乎并不能在大 batch size 和较强的数据增强下高效的逃离鞍点和坏的局部极小点,尤其是对于 ViT 这种尖锐局部极小点较多的模型。

3. Nesterov 冲量算法

基于上述原因,我们应当为深度模型优化器考虑一种新的冲量范式。在传统凸优化领域,有一个与重球法其名的冲量技巧 ---Nesterov 冲量算法:

Nesterov 冲量算法在强凸问题上,拥有比重球法更快的理论收敛速度,并且在许多实际问题上也展现出较大的速度优势。同重球法不同的是,Nesterov 算法不在原点计算梯度,而是利用冲量找到一个外推点,在该点算完梯度以后再进行梯度累积。

外推点能帮助 Nesterov 算法提前感知周围的 landscape。这种特性直觉上似乎更适应 ViT 的训练,因为他并不是简单的依靠冲量去走出尖锐局部极小点,而是通过提前观察周围的梯度,调整更新的方向。

基于此,我们可以考虑用 Nesterov 冲量算法去替代目前 Adam 类优化器中的冲量范式。但是在这之前需要解决一个问题:Nesterov 算法需要在外推点计算梯度,在原点更新,如何避免多次模型参数重载和有效进行 back-propagation (BP)

为了解决这个问题,我们首先对 Nesterov 进行改写:

可以证明,改写的 Nesterov 冲量算法与原算法等价,两者的迭代点可以相互转化,且最终的收敛点相同。

可以看到,通过引入梯度的差分项,我们已经可以避免手动的参数重载和人为的在外推点进行 BP。接下来,我们就可以利用改写的 Nesterov 冲量算法去替换原有的 Adam 类算法的冲量范式了。

4. Adan 优化器与收敛性分析

同其他的 adaptive 类型的优化器类似,我们也将 m_k 的更新由累积形式换成了平均形式,并使用二阶项对学习率进行放缩:

至此,我们已经得到了 Adan 算法的基础版本。

1)梯度差分的冲量

可以发现,m_k 的更新将梯度与梯度的差分耦合在一起,但是在实际场景中,我们往往需要对物理意义不同的两项进行单独处理,因此因此我们引入梯度差分的冲量 v_k:

我们可以对梯度的冲量和其差分的冲量设置不同的冲量 / 平均系数。

2)改进的权重衰减

对于带 L2 权重正则的目标函数,目前较流行的 AdamW 优化器通过对 L2 正则解耦,在最近流行的网络上(例如 ViT 和 ConvNext)获得了较好的性能。但是 AdamW 所用的解耦方法偏向于启发式,目前并不能得到其收敛的理论保证。

基于对 L2 正则解耦的思想,严格地从优化的角度,我们也给 Adan 引入解耦的权重衰减策略。目前 Adan 的每次迭代可以看成是在最小化优化目标 F 的某种一阶近似:

其中

是基于 n_k 的距离度量。由于 F 中的 L2 权重正则过于简单且光滑性很好,以至于我们不需要对其进行一阶近似。因此,我们可以只对训练 loss 进行一阶近似而忽略 L2 权重正则,那么 Adan 的最后一步迭代将会变成:

有趣的是,我们可以发现 AdamW 的更新准则

是 Adan 更新准则在学习率 eta 接近 0 时的一阶近似。因此,我们可以从 proximal 算子的角度给 Adan 甚至 AdamW 给出合理的解释而不是原来的启发式改进。

3)Adan 优化器

将上述两个改进结合进 Adan 的基础版本,我们可以得到如下的 Adan 优化器。

这里我们给出了一个重启优化器的条件,即当某种条件满足的时候,Adan 会重置冲量。这是一个在随机优化领域很常见的技巧,Adan 也给出这样的接口。需要说明的是,为了效率,我们并没有在实验中启用重启条件,尽管重启优化器能带来一定的性能提升(见论文,表 12)。

4)收敛性分析

这里我们跳过繁复的数学表达式,只给出结论:在给定或未给定 Hessian-smooth 条件的两种情况下,Adan 优化器的收敛速度在非凸随机优化问题上均能达到已知的理论下界

并且该结论在带有解耦的权重衰减策略时仍然成立。目前为止,带有解耦的权重衰减策略的优化器的收敛性分析仍然是个未解的问题。Adan 的收敛性分析为该问题的解决提供了一个值得尝试的思路。

5. 实验结果

CV 场景

1)有监督学习

    ViT 模型:针对 ViT 模型,我们分别在传统的 ViT 和杰出的 Swin 结构上,测试了 Adan 的性能。

并且在 ViT-small 上在不同的 epoch 下,详细的测试了 Adan 和其他优化器的性能。

可以看到,例如在 ViT-small,ViT-base,Swin-tiny 以及 Swin-base 上,Adan 仅仅消耗了一半的计算资源就获得了同 SoTA 优化器接近的结果。并且在同样的计算量下,Adan 在两种 ViT 模型上均展现出较大的优势

    CNN 模型:除了较难训练的 ViT 模型,我们也在尖锐局部极小点相对较少的 CNN 模型上也测试了 Adan 的性能 --- 包括经典的 ResNet 与较先进的 ConvNext。结果如下:

可以观察到,不管是 ResNet 还是 ConvNext,Adan 均能在大约 2/3 训练 epoch 以内获得超越 SoTA 的性能。

2)无监督学习

在无监督训练框架下,我们在最新提出的 MAE 上测试了 Adan 的表现。其结果如下:

同有监督学习的结论一致,Adan 仅消耗了一半的计算量就追平甚至超过了原来的 SoTA 优化器,并且当训练 Epoch 越小,Adan 的优势就越明显。

NLP 场景

1)有监督学习

在 NLP 的有监督学习任务上,我们分别在经典的 LSTM 以及先进的 Transformer-XL 上观察 Adan 的表现。

Adan 在上述两种网络上,均表现出一致的优越性。并且对于 Transformer-XL,Adan 在一半的训练步数内就追平了默认的 Adam 优化器

2)无监督学习

为了测试 Adan 在 NLP 场景下无监督任务上的模型训练情况。我们从头开始训练 BERT:在经过 1000k 的预训练迭代后,在 GLUE 数据集的 7 个子任务上测试经过 Adan 训练的模型性能,结果如下:

Adan 在所测试的 7 个词句分类任务上均展现出较大的优势。值得一提的是,经过 Adan 训练的 BERT-base 模型,在一些子任务上(例如 RTE,CoLA 以及 SST-2)的结果甚至超过了 Adam 训练的 BERT-large

RL 场景

我们将 RL 常用的 PPO 算法里的优化器替换为了 Adan,并在 MuJoCo 引擎中的 4 个游戏上测试了 Adan 的性能。在 4 个游戏中,用 Adan 作为网络优化器的 PPO 算法,总能获得较高的 reward。

Adan 在 RL 的网络训练中,也表现出较大的潜力。

6. 结论与展望

Adan 优化器为目前的深度模型优化器引入了新的冲量范式。相较于之前的优化器,Adan 给出的范式更适合目前的强数据增强大 batch size 的场景。实验显示,Adan 仅需 1/2-2/3 的计算量就能追平或者超越现有的 SoTA 优化器

Adan 在多个场景(涉及 CV,NLP,RL),多个训练方式(有监督与自监督),多种网络结构(ViT,CNN,LSTM,Transformer 等)上,均展现出非平凡的性能优势。理论角度,Adan 优化器的收敛速度在非凸随机优化上也已经达到了理论下界

    推荐阅读
  • 大葱放进冰箱的储存方法(大葱如何储存)

    大葱放进冰箱的储存方法?这样保存的大葱是最常规的,放大半个月大葱是不会空心干枯的。土埋保存法可以直接将大葱的根须埋在土里,大约10厘米左右,土要湿润一些,模拟大葱的生长环境,吃的时候随时拔出来一颗,这样可以保存几个月之久大葱也非常新鲜。

  • 梭子蟹烧熟能放多久 梭子蟹多久能煮熟

    2、梭子蟹中含有丰富的蛋白质成分,而且又经过了油盐的烹饪,因此在一定温度条件下,很容易滋生细菌而变质,若是将烧熟的梭子蟹直接置于常温下存放,一般在只能保存6-8小时左右;3、若是将其置于冰箱保存,一般保存时间相对会长一些,但是也不宜超过一天,烧熟的梭子蟹保存时间越长,其鲜味越差,所以一般建议梭子蟹最好是现做现吃,尽量不要留到下一顿。

  • 南昌大学是国内双一流建设高校么(南昌大学入选部省合建)

    日前,教育部召开支持和提升中西部高等教育发展座谈会,部署启动部省合建工作。陈宝生表示,支持举措要体现合力,在不改变现有隶属关系和管理体制基础上,发挥部、省、校和支援方的作用。还要选优配强合建高校领导班子,将合建高校领导班子成员、校级后备干部列入直属高校干部培训计划。期待南昌大学发挥辐射带动作用我省有教育界人士表示,南昌大学作为我省唯一的211高校,此次入选“部省合建”高校是实至名归。

  • 直角锐角平角钝角之间的区别于联系是什么(直角锐角平角钝角之间的区别于联系是啥)

    接下来我们就一起去研究一下吧!等于180度的角是平角,大于90度小于180度的角是钝角。锐角、直角、钝角是对大于0°并且小于180°的角的一个分类,锐角、直角、钝角间的区别在于角的大小不同。

  • 极端危害环境是指(极端危害环境是指什么)

    极端危害环境是指极端危害环境是指在低温、高碱、高盐、高压、缺水等极其不适合生物生长的环境。而在这种恶劣贫瘠的极端环境中还能够很好地生活的微生物被称为极端微生物,这些极端微生物代表着生命活动的极限。大多数电子产品设计要求参数当中都有要求在极端环境下产品能够正常工作。极端温度极端温度是指产品工作的环境最高和最低温度范围。通常室温认为是25度。

  • 布面鼠标垫属于什么垃圾(布面鼠标垫属于哪些垃圾)

    以下内容希望对你有帮助!布面鼠标垫属于什么垃圾布面鼠标垫属于可回收垃圾可回收垃圾就是可以再生循环的垃圾。本身或材质可再利用的纸类、硬纸板、玻璃、塑料、金属、人造合成材料包装等,与这些材质有关的如:报纸、杂志、广告单及其它干净的纸类等皆可回收。另外包装上有绿色标章是属于要付费的双系统,属于可回收垃圾。

  • 民间谚语大全实用又有趣( 百姓民间气象谚语民谣大全)

    每月两节日期定,最多相差一两天,上半年来六甘一,下半年是八甘三。按照公历来推算,每月两气不改变。抓紧季节忙生产,种收及时保丰年。常刮西北风,近日天气晴。无风起横浪,三天台风降。当阴雨天气来临时,云层比较低,云底盖住山顶。乌头风白头雨“乌头”与“白头”是指两种云的云顶颜色来说的。卷积云一般出现在五千米以上的高空,形成后只能维持几分钟到一个多小时。出现这种云,表明地上空有低压槽移近。

  • 春季角膜炎一般几天好(春季角膜炎频发)

    角膜炎症必然使视力或多或少地受到影响,尤以炎症侵犯瞳孔区域者更为严重。角膜炎的发病症状一、外伤与感染角膜炎有哪些危害1、前房积脓严重病例多合并有虹膜睫状体炎。对各种原因引起的角膜上皮损伤或角膜溃疡,原则上禁用皮质类固醇,以免促使溃疡恶化,或延缓上皮损伤的愈合。角膜炎因角膜外伤,细菌及病毒侵入角膜引起的炎症。

  • 家居旺财的风水方法有哪些(家居旺财的风水方法介绍)

    家居旺财的风水方法有哪些门内是一处不可忽视旺财宝地,门口的玄关处是藏风聚气之地。厨房在风水中有财库说法,主掌内财运。因此,这些地方不能为空,要时时有食品;而且炉灶后方不宜空旷,以免影响财运。一般而言,在客厅大门对角45度位置,正是所谓的“明财位”。葫芦代表福禄,在财位摆放葫芦,旺财效果很显著;或悬挂一个葫芦,对提升财运也很有帮助。

  • 羊水少的原因(孕妇羊水少是什么原因引起的)

    胎儿畸形导致羊水少如果在孕早期或者中期发现羊水过少,则可能是因为宝宝有缺陷,导致不能产生足够的尿液来维持羊水循环。宝宝缺氧导致羊水少慢性缺氧会导致胎儿在子宫内发育迟缓,引起胎儿血液循环重分配,使血液主要供应脑和心脏,导致肾血流量下降,胎尿生成减少而致羊水过少。所以有人认为有些原因不明的羊水过少可能与羊膜本身病变有关。