本篇文章3797字,读完约9分钟

机械心机械心报道机械心部优化技术多么多! 例如,批量标准化、权重标准化……但是,现有的优化方法大多基于激活和权重执行,最近阿里达摩院的研究者开辟了别的道路,直接着手坡度,提出了新的坡度中心化方法 只需代码行就可以嵌入到现有的dnn优化器中,也可以直接微调预训练模型 优化技术对高级神经网络( dnn )的有效训练至关重要 在迄今为止的研究中,使用平均值和方差等1次和2次统计量,通过在互联网的激活和权重向量上执行z-score标准化(批量标准化bn和权重标准化ws等),可以提高训练性能。 现有的方法大多是基于激活或权重执行的,最近阿里达摩院的研究者提出了一种新的优化技术,即梯度中心化( gc )。 这种方法通过将梯度向量中心化为零平均值直接在梯度上执行。 我们可以把gc方法看作权重空间和输出特征空间的正规化,提高dnn的泛化性能 另外,gc可以提高损失函数和梯度的lipschitz属性,使训练过程更有效和稳定 gc的实现比较简单,仅通过代码行就可以简单地将gc嵌入到现有的基于梯度的dnn优化器中 也可以直接用于预训练dnn的微调 研究者在不同的应用中进行了实验,包括通用图像分类和微调图像分类、检测和分割,结果表明gc可以继续提高dnn学习习惯能量。 论文地址: arxiv/pdf/2004.01461.pdf项目地址:什么是github/Yong Hongwei/gradient-central ization是根据激活或权重向量执行的技术? 如图1(a )所示,gc只是通过使梯度矢量中心化而成为零平均 只需代码行,即可轻松嵌入到当前基于坡度的优化算法( sgdm、adam等)中 很简单,gc达到了一些预期的效果,包括加速训练过程、提高泛化性能、对微调前的训练模式的兼容性等。 图1:( a )使用GC的示意图 w表示权重,l表示损失函数,_wl表示权重梯度,Φ_gc(∇_wl )表示中心梯度 如图所示,将_wl置换为Φ_gc(∇_wl )来实现gc向现有的互联网优化器的嵌入,步骤很简单 ( b )所有连接层(左)和卷积层(右)中梯度矩阵/加权张量的gc运算 gc计算梯度矩阵/张量各列/slice的平均值,将各列/slice的中心设定为零平均值 研究贡献这项研究的第一贡献是提出了通用互联网优化技术倾斜中心化( gc ),gc不仅可以平滑和加速dnn的训练过程,还可以提高模型的泛化性能 分析了gc的理论性质,指出gc通过在权重向量中引入新的约束来约束损失函数,该过程使权重空间和输出特征空间正规化,提高了模型的泛化性能。 另外,限制损失函数具有比原来的损失函数更好的利普希茨属性,所以训练过程更稳定且高效 梯度中心化研究动机研究者提出了除了激活和权重解决之外,是否能直接解决梯度,更有效地稳定训练过程的疑问。 一个直观的想法是使用z-score标准化方法对梯度进行标准化,就像bn和ws的激活和权重操作一样 遗憾的是,研究者发现单纯地标准化梯度并不能提高训练过程的稳定性 因此,提出了计算梯度矢量平均值,使梯度中心成为零平均值的方法即梯度中心化 这种方法具有更好的利普希茨属性,以使dnn的训练过程顺利,提高模型的泛化性能。 假设对于所有连接层或卷积层,gc公式通过反向传递得到了梯度,则梯度为_ w_IL ( I = 1,2,...,n )的权重矢量w _ I,gc公式如下所示: gc公式很简单。 如图1(b )所示,计算权重矩阵列向量的平均值,从各列向量中删除平均值即可 式1的矩阵表示在实际安装中,可以从各权重向量中直接除去平均值来完成gc操作 整个计算过程非常简洁和高效 gc内置在sgdm/adam中,效果怎么样? gc可以很容易地嵌入到sgdm和adam等现在的dnn优化算法中 得到中心化梯度Φ_gc(∇_wl )后,研究者直接使用它来更新权重矩阵 算法1和算法2展示了将gc嵌入到两个最受欢迎的优化算法sgdm和adam中的过程 另外,如果采用权重衰减,可以设定。 其中λ表示权重衰减系数。 在大多数dnn优化算法中嵌入gc后,只需代码行,就可以以很小的额外计算价格运行gc。 例如,研究者使用resnet50对cifar100数据集进行epoch的训练,训练时间只增加了0.6秒( epoch为71秒)。 gc的特征是提高泛化性能,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显示了4个组合的训练损失和测试精度曲线 与bn相比,bn+gc的训练损失减少得更快,测试精度也上升得更快 在bn和bn+ws中,gc可以进一步提高训练速度 另外,bn+gc实现了最高的测试精度,验证了gc可以加快训练过程,提高泛化性能 图在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在不同学习率下测试精度的变化 采用表resnet50,不同学习率的sgdm和adam在cifar100数据集上的测试精度 下面的图6显示了resnet50的训练和验证误差曲线( gn用于特征归一化)。 通过gn可知,gc可以大幅度加速训练过程 在图imagenet数据集中,训练误差(左)和验证误差(右)曲线根据训练epoch而变化了一些 下面的图7显示了在四个细粒度图像分类数据集上执行前40个epoch时sgdm和sgdm+gc的训练和测试精度 图7 :在四个细粒度图像分类数据集中,训练精度(实线)和测试精度(虚线)的曲线根据训练epoch略有变化的情况下 下表8显示了faster r-cnn的平均精度( ap ) 可以看出,在目标检测任务中,采用gc训练的所有主干网实现了约0.3%-0.6%的性能增益 采用表faster-rcnn和fpn,在coco数据集上检测不同主干网的结果 下面的表9表示包围盒的平均精度( ap^b )和实例分割平均精度( ap^m ) 发现目标检测任务的ap^b提高了0.5%-0.9%,实例分割任务的ap^m提高了0.3%-0.7% 采用表mask-rcnn和fpn,在coco数据集中检测和分割不同的主干网的结果 方法研究者对论文中提出的方法进行开源,使用pytorch实现 sgd_gc、sgd_gcc、adam_gc、adam_gcc、adam_gcc、adamw_gcc等 后缀“_gc”的优化程序使用gc优化卷积层和所有连接层。 后缀“_gcc”的优化程序只能用于卷积层 采用这些优化器非常简单,采用与以下命令import对应的模块即可 from sgd import sgd_gc作者新闻论文hongwei yong (雍宏威)分别于年和年获得西安交通大学本科和硕士学位,目前是香港理工大学电子计算系博士课程的学生 他的第一个研究行业包括图像建模和深度学习等 论文一作红卫永 其馀三位作者在阿里达磨院工作,其中建强(黄建强)是达磨院的资深算法专家,尚胜华(华先胜)是达磨院都市脑实验室的负责人,李张(张磊)是达磨院 本文为机器心灵的报道,转载请联系本公众号获得授权 原标题:浏览“直接着手坡度,蚂蚁达磨院提出了新的优化方法,可以用一行代码替换现有的优化器”原文

标题:【热门】直接对梯度着手,阿里达摩院提出新型优化做法,一行代码即可替换现

地址:http://www.ao2i.com/bjxw/15701.html