优化器的作用

优化器的作用,第1张

优化器的作用:

用来更新和计算影响模型训练和模型输出的网络参数,使其逼近或达到最优值,从而最小化(或最大化)损失函数。
在深度学习中,几乎所有流行的优化器都基于梯度下降。这意味着他们反复估计给定的损失函数L的斜率,并将参数向相反的方向移动(因此向下爬升到一个假设的全局最小值)。
优化器的选择方法:http://www.kaotop.com/file/tupian/20220514/8542554.html](http://www.kaotop.com/file/tupian/20220514/9bef89900372b1a55799f93397828d55.png#clientId=u7b31ae9f-61b0-4&crop=0&crop=0&crop=1&crop=1&from=paste&id=u7168ef38&margin=[object Object]&name=image.png&originHeight=31&originWidth=784&originalType=url&ratio=1&rotation=0&showTitle=false&size=6049&status=done&style=none&taskId=u5b709f1b-0bd7-4acf-8c5e-19d89ab659c&title=)
Stochastic Gradient Descent (SGD)的更新规则
在SGD中,优化器基于一个小batch估计最陡下降的方向,并在这个方向前进一步。由于步长是固定的,SGD会很快陷入平坦区或陷入局部极小值。
SGD with Momentum
![image.png](http://www.kaotop.com/file/tupian/20220514/3240deb8ac0e392c217b4ebf1a36f918.png#clientId=u7b31ae9f-61b0-4&crop=0&crop=0&crop=1&crop=1&from=paste&id=uc9064334&margin=[object Object]&name=image.png&originHeight=109&originWidth=784&originalType=url&ratio=1&rotation=0&showTitle=false&size=13247&status=done&style=none&taskId=ufb292cbd-fa39-47b9-9bdb-f3f9b0772a9&title=)

带动量的SGD的更新规则

其中β < 1,使用了动量,SGD可以在持续的方向上进行加速(这就是为什么也被叫做“重球方法”)。这个加速可以帮助模型摆脱平坦区,使它更不容易陷入局部最小值。
AdaGrad
![image.png](http://www.kaotop.com/file/tupian/20220514/ec44b77c1f7d7fe4892ade49bcd5001c.png#clientId=u7b31ae9f-61b0-4&crop=0&crop=0&crop=1&crop=1&from=paste&id=ud755a82c&margin=[object Object]&name=image.png&originHeight=192&originWidth=784&originalType=url&ratio=1&rotation=0&showTitle=false&size=22450&status=done&style=none&taskId=u5b756eac-faf3-4bdb-9849-f0d5275487a&title=)

AdaGrad的更新规则

AdaGrad是首个成功的利用自适应学习率的方法之一(因此得名)。AdaGrad根据梯度的平方和的倒数的平方根来衡量每个参数的学习速率。这个过程将稀疏梯度方向上的梯度放大,从而允许在这些方向上执行更大的步骤。其结果是:AdaGrad在具有稀疏特征的场景中收敛速度更快。
RMSprop
![image.png](http://www.kaotop.com/file/tupian/20220514/c558d2f35b78397c8ff51be6baa7dc4a.png#clientId=u7b31ae9f-61b0-4&crop=0&crop=0&crop=1&crop=1&from=paste&id=u79914521&margin=[object Object]&name=image.png&originHeight=166&originWidth=784&originalType=url&ratio=1&rotation=0&showTitle=false&size=21122&status=done&style=none&taskId=u96fc3163-5de8-4033-b82f-3595ef812ca&title=)

RMSprop的更新规则

RMSprop是一个未发布的优化器,在过去几年中被过度使用。这个想法与AdaGrad相似,但是梯度的重新缩放不那么激进:梯度的平方的总和被梯度平方的移动平均值所取代。RMSprop通常与动量一起使用,可以理解为Rprop对mini-batch设置的适应。
Adam
![image.png](http://www.kaotop.com/file/tupian/20220514/0e6290e7506fc25b5a91f5a823ec3b3c.png#clientId=u7b31ae9f-61b0-4&crop=0&crop=0&crop=1&crop=1&from=paste&id=ub6c8b250&margin=[object Object]&name=image.png&originHeight=452&originWidth=784&originalType=url&ratio=1&rotation=0&showTitle=false&size=52777&status=done&style=none&taskId=u4eefadf1-5044-40a7-b3b9-cc6fa0a403f&title=)

Adam的更新规则

Adam将AdaGrad,RMSprop和动量法结合在一起。步长方向由梯度的移动平均值决定,步长约为全局步长的上界。此外,梯度的每个维度都被重新缩放,类似于RMSprop。Adam和RMSprop(或AdaGrad)之间的一个关键区别是,矩估计m和v被纠正为偏向于零。Adam以通过少量的超参数调优就能获得良好性能而闻名。
LARS
![image.png](http://www.kaotop.com/file/tupian/20220514/f4bda5b4ecb47d27b845f7fbafe1d0b5.png#clientId=u7b31ae9f-61b0-4&crop=0&crop=0&crop=1&crop=1&from=paste&id=u93b0f44d&margin=[object Object]&name=image.png&originHeight=259&originWidth=784&originalType=url&ratio=1&rotation=0&showTitle=false&size=34860&status=done&style=none&taskId=ue5272ea1-3f27-4337-9592-89065941561&title=)

LARS的更新规则

LARS是使用动量的SGD的一种扩展,具有适应每层学习率的能力。它最近引起了研究界的注意。原因是由于可用数据量的稳步增长,机器学习模型的分布式训练已经流行起来。其结果是批大小开始增长。然而,这导致了训练中的不稳定。Yang等人认为,这些不稳定性源于某些层的梯度范数和权重范数之间的不平衡。因此,他们提出了一个优化器,该优化器基于一个“trust”参数η < 1和该层的梯度的范数的倒数,对每一层的学习率进行缩放。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/916881.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-16
下一篇 2022-05-16

发表评论

登录后才能评论

评论列表(0条)

保存