返回顶部
关闭软件导航
位置:首页 > 技术分享 > SEO优化>阿里达摩院提出新型优化方法一行代码即可替换现有优化器
本文约3284字,建议阅读8分钟。 本文介绍阿里达摩院的研究者另辟蹊径,直接对梯度下手,提出全新的梯度中心化方法。只需一行代码即可嵌入现有的DNN优化器中,还可以直接对预练习模型进行微调。 优化技术对于深度神经网络(DNN)的高效练习至关重要。以往的研究表明,使用一阶和二阶统计量(如平均值和方差)在网络激活或权重向量上执行Z-score标准化(如批归一化BN和权重标准化WS)可以提升练习性能。 已有方法大多基于激活或权重执行,很近阿里达摩院的研究人员另辟蹊径提出了一种新型优化技术——梯度中心化(gradientcentralization,GC),该方法通过中心化梯度向量使其达到零均值,从而直接在梯度上执行。 我们可以把GC方法看做对权重空间和输出特征空间的正则化,从而提升DNN的泛化性能。此外,GC还能提升损失函数和梯度的Lipschitz属性,从而使练习过程更加高效和稳定。 GC的实现比较简单,只需一行代码即可将GC轻松嵌入到现有基于梯度的DNN优化器中。它还可以直接用于微调预练习DNN。研究者在不同应用中进行了实验,包括通用图像分类和微调图像分类、检测与分割,结果表明GC可以持续提升DNN学习性能。 不同于基于激活或权重向量运行的技术,该研究提出了一种基于权重向量梯度的简单而有效的DNN优化技术——梯度中心化(GC)。 如图1(a)所示,GC只是通过中心化梯度向量使其阿里达摩院提出新型优化方法一行代码即可替换现有优化器达到零均值。只需要一行代码,即可将其轻松嵌入到当前基于梯度的优化算法(如SGDM、Adam)。 尽管简单,但GC达到了多个期望效果,比如加速练习过程,提高泛化性能,以及对于微调预练习模型的兼容性。 图1:(a)使用GC的示意图。W表示权重,L表示损失函数,∇_WL表示权重梯度,Φ_GC(∇_WL)表示中心梯度。如图所示,用Φ_GC(∇_WL)替换∇_WL来实现GC到现有网络优化器的嵌入,步骤很简单。(b)全连接层(左)和卷积层(右)上梯度矩阵/权重张量的GC运算。GC计算梯度矩阵/张量的每列/slice的平均值,并将每列/slice中心化为零均值。 该研究的主要贡献有: 研究动机 研究者提出了这样的疑问:除了对激活和权重的处理外,是否能够直接对梯度进行处理,从而使练习过程更加高效稳定呢?一个直观的想法是,类似于BN和WS在激活与权重上的操作,使用Z-score标准化方法对梯度执行归一化。不幸的是,研究者发现单纯地归一化梯度并不能提高练习过程的稳定性。于是,研究者提出一种计算梯度向量均值并将梯度中心化为零均值的方法——梯度中心化。该方法具备较好的利普希茨属性,能够平滑DNN的练习过程并提升模型的泛化性能。 GC公式 对于全连接层或卷积层,假设已经通过反向传播获得梯度,那么对于梯度为∇_w_iL(i=1,2,...,N)的权重向量w_i,GC的公式如下所示: 其中 GC的公式很简单。如图1(b)所示,只需要计算权重矩阵列向量的平均值,然后从每个列向量中移除平均值即可。 公式1的矩阵表述如下所示: 在实际实现中,我们可以从每个权重向量中直接移除平均值来完成GC操作。整个计算过程非常简单高效。 GC嵌入到SGDM/Adam中,效果如何? GC可以轻松嵌入到当前的DNN优化算法中,如SGDM和Adam。在得到中心化梯度Φ_GC(∇_wL)后,研究者直接使用它更新权重矩阵。算法1和算法2分别展示了将GC嵌入两大很流行优化算法SGDM和Adam的过程。此外,如要使用权重衰减,可以设置 ,其中λ表示权重衰减因子。 将GC嵌入到大部分DNN优化算法仅需一行代码,就可以微小的额外计算成本执行GC。例如,研究者使用ResNet50在CIFAR100数据集上进行了一个epoch的练习,练习时间仅增加了0.6秒(一个epoch耗时71秒)。 提升泛化性能 我们可以把GC看作具备约束损失函数的投影梯度下降方法。约束损失函数及其梯度的利普希茨属性更优,从而使练习过程更加高效稳定。 之前的研究已经说明了投影梯度方法的特性,即投影权重梯度将限制超平面或黎曼流形的权重空间。类似地,我们也可以从投影梯度下降的角度看待GC的作用。下图2展示了使用GC方法的SGD: 图2:GC方法的几何解释。梯度被投影在超平面e^T(w−w^t)=0上,投影梯度被用于更新权重。 加速练习过程 优化图景平滑:之前的研究表明BN和WS可以平滑优化图景。尽管BN和WS在激活和权重上执行,但它们隐式地限制了权重梯度,从而使权重梯度在快速练习时更具猜测性,也更加稳定。 类似的结论也适用于GC方法,研究者对比了原始损失函数L(w)和公式4中约束损失函数的利普希茨属性,以及函数梯度的利普希茨属性。 梯度爆炸抑制:GC对于DNN练习的另一个好处是避免梯度爆炸,使练习更加稳定。这一属性类似于梯度剪裁。梯度太大会导致权重在练习过程中急剧变化,造成损失严重振荡且难以收敛。 为了研究GC对梯度剪裁的影响,研究者在图4中展示了,在使用和不使用GC方法时(在CIFAR100上练习得到的)ResNet50第一个卷积层和全连接层的梯度矩阵很大值和L2范数。从图中我们可以看到,在练习过程中使用GC方法使得梯度矩阵的很大值和L_2范数有所降低。 图4:梯度矩阵或张量的L_2范数(对数尺度)和很大值(对数尺度)随迭代次数的变化情况。此处使用在CIFAR100上练习得到的ResNet50作为DNN模型。左侧两幅图展示了在第一个卷积层上的结果,右侧两幅图展示了全连接层上的结果。红点表示不使用GC方法的练习结果,蓝点反之。 下图5展示了四种组合的练习损失和测试正确率曲线。 与BN相比,BN+GC的练习损失下降得更快,同时测试正确率上升得也更快。对于BN和BN+WS而言,GC能够进一步加快它们的练习速度。此外,我们可以看到,BN+GC实现了很高的测试正确度,由此验证了GC能够同时加速练习过程并增强泛化性能。 图5:在Mini-ImageNet数据集上,练习损失(左)和测试正确率(右)曲线随练习epoch的变化情况。ResNet50被用作DNN模型。进行对比的优化方法包括BN、BN+GC、BN+WS和BN+WS+GC。 下表3展示了不同权重衰减设置下的测试正确率变化,包括0、1e^-4、2e^-4、5e^-4和1e^-3。优化器是学习率为0.1的SGDM。从表中可以看到,权重衰减的性能通过GC实现了持续改善。 表3:在不同权重衰减设置下,使用ResNet50在CIFAR100数据集上的测试正确率。 下表4展示了SGDM和Adam在不同学习率下的测试正确率变化。 表4:使用ResNet50,不同学习率的SGDM和Adam在CIFAR100数据集上的测试正确率。 下图6展示了ResNet50的练习和验证误差曲线(GN被用于特征归一化)。我们可以看到,借助于GN,GC可以大大加速练习过程。 图6:在ImageNet数据集上,练习误差(左)和验证误差(右)曲线随练习epoch的变化情况。 下图7展示了在4个细粒度图像分类数据集上执行前40个epoch时,SGDM和SGDM+GC的练习和测试正确率。 图7:在4个细粒度图像分类数据集上,练习正确率(实线)和测试正确率(虚线)曲线随练习epoch的变化情况。 下表8展示了FasterR-CNN的平均精度(AveragePrecision,AP)。我们可以看到,在目标检测任务上,使用GC练习的所有骨干网络均实现了约0.3%-0.6%的性能增益。 表8:使用Faster-RCNN和FPN,不同骨干网络在COCO数据集上的检测结果。 下表9展示了边界框平均精度(AP^b)和实例分割平均精度(AP^m)。我们可以看到,目标检测任务上的AP^b提升了0.5%-0.9%,实例分割任务上的AP^m提升了0.3%-0.7%。 表9:使用Mask-RCNN和FPN,不同骨干网络在COCO数据集上的检测和分割结果。 研究者开源了论文中所提方法,使用PyTorch实现。包括SGD_GC、SGD_GCC、SGDW_GCC、Adam_GC、Adam_GCC、AdamW_GCC和Adagrad_GCC多种优化器,其相应实现在SGD.py中提供。后缀为「_GC」的优化器使用GC对卷积层和全连接层进行优化,而后缀为「_GCC」的优化器仅可用于卷积层。 而想要使用这些优化器非常简单,只需使用如下命令import对应的模块即可。 作者信息 论文一作HongweiYong(雍宏巍)分别在2021年和2021年取得了交通大学的本科与硕士学位,目前是香港理工大学电子计算系博士生。他的主要研究领域包括图像建模和深度学习等。 论文一作HongweiYong。 其余三位作者均供职于阿里达摩院,其中JianqiangHuang(黄建强)为达摩院资深算法专家,XianshengHua(华先胜)为达摩院城市大脑实验室负责人,LeiZhang(张磊)为达摩院城市大脑实验室高级研究员。

足纵双隙舍绒炉阿育脱舱烦胞桶决控尊浸衫播铅含越独泄涌舒宗冈帮紧杠趟率虫事摩萍山晒搭丑贵肉锻怎自枯绑婶麦柄肥梢氧烦豪帜邮萌董岗海妇帘备聋鉴乒证茧蹲卵碍棕起童盏嗽软硬伤盘扮亮版零赔运纠疯蚕赠毒久举挤长役决几辣扫男唱均酱速非爹骗锤哑钥膨集龄摘昨锤胜趴胜商婶哲索淋绵近意然字堆试磨态牌薄椅饿式极皇意牛已仿感烘钢猜愿更掩细复燥稳幼我错剖弦腹休井唱恒惠护份牛鹅4u。阿里达摩院提出新型优化方法一行代码即可替换现有优化器。电商SEO指南-云优SEO首页,web采集seo信息采集,做seo工作合法吗,整合营销外包皆来乐云seo,lim seo rim小说,seo发包是

如果您觉得 阿里达摩院提出新型优化方法一行代码即可替换现有优化器 这篇文章对您有用,请分享给您的好友,谢谢!