0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

什么是病态曲率

新机器视觉 来源:新机器视觉 作者:新机器视觉 2022-10-10 15:20 次阅读

在这篇文章中,我们讨论另外一个困扰神经网络训练的问题,病态曲率。

虽然局部极小值和鞍点会阻碍我们的训练,但病态曲率会减慢训练的速度,以至于从事机器学习的人可能会认为搜索已经收敛到一个次优的极小值。让我们深入了解什么是病态曲率。

病态曲率

考虑以下损失曲线图。

ebf6f3f6-485a-11ed-a3b6-dac502259ad0.jpg

**病态曲率**

如你所知,我们在进入一个以蓝色为标志的像沟一样的区域之前是随机的。这些颜色实际上代表了在特定点上的损失函数的值,红色代表最高的值,蓝色代表最低的值。

我们想要下降到最低点,因此,需要穿过峡谷。这个区域就是所谓的病态曲率。为了了解为何将其称为病态曲率,让我们再深入研究。放大了看,病态曲率就像这样...

ec14c0f2-485a-11ed-a3b6-dac502259ad0.jpg

**病态曲率**

要知道这里发生的事情并不难。梯度下降沿着峡谷的山脊反弹,向最小的方向移动的速度非常慢。这是因为山脊的曲线在 W1 方向上弯曲的更陡。

考虑山脊表面的 A 点。我们看到,梯度在这点可以分解为两个分量,一个沿着 W1 方向,另外一个沿着 W2 方向。如果 f 显著下降的唯一方向是低曲率的,那么优化可能会变得太慢而不切实际,甚至看起来完全停止,造成局部最小值的假象。

ec216a8c-485a-11ed-a3b6-dac502259ad0.jpg

正常情况下,我们使用一个较慢的学习率来解决这种山脊间反弹的问题,正如上一篇关于梯度下降的文章所述。然而,这却产生了麻烦。

当我们接近最小值时,慢下来是有意义的,我们想要收敛于它。但是考虑一下梯度下降进入病态曲率的区域,以及到最小值的绝对距离。如果我们使用较慢的学习率,可能需要花费更多的时间才能到达极小值点。事实上,有研究论文报道过使用足够小的学习率来阻值山脊间的反弹可能导致参与者以为损失根本没有改善,从而放弃训练。

如果 f 显著下降的唯一方向是低曲率的,那么优化可能会变得太慢而不切实际,甚至看起来完全停止,造成局部最小值的假象。

也许我们想要的是能让我们慢慢进入病态曲率底部的平坦区域,然后在最小值的方向上加速。二阶导数可以帮助我们做到这一点。

牛顿法

梯度下降是一阶优化方法。它只考虑损失函数的一阶导数,而不考虑更高阶的导数。这基本上意味着它不知道损失函数的曲率。它只能说明损失是否下降以及下降的速度,而不能区分曲线是平坦的,向上的,还是向下的。

ec2ea6a2-485a-11ed-a3b6-dac502259ad0.jpg

之所以会发生这种现象,是因为梯度下降只关心梯度,就好像上图中红色的点,三个曲线在这一点上的梯度是相同的。如何解决?使用二阶导数,或者考虑梯度变化的速率。

一个非常流行的可以使用二阶导数的技术,可以解决我们的问题,这个方法称为牛顿法。如果表面变得不那么陡峭,那么学习步骤就会减少。

牛顿法可以提供一个理想的步长,在梯度方向上移动。由于我们现在有了关于损失表面曲率的信息,所以可以选择步长,而不是用病态曲率来超过该区域的极限。

牛顿法通过计算 Hessian 矩阵来实现,Hessian 矩阵是损失函数的二阶导数组成的权值组合。我所说的权值组合,如下所示。

ec45a7da-485a-11ed-a3b6-dac502259ad0.jpg

Hessian 矩阵在一个大矩阵中计算所有这些梯度。

ec524d64-485a-11ed-a3b6-dac502259ad0.jpg

Hessian 矩阵给出了一个点的损失曲面曲率的估计。一个损失的表面可以有一个正曲率,这意味着当我们移动时,表面会迅速变得不那么陡峭。如果我们有一个负曲率,这意味着当我们移动时,曲面变得越来越陡。

ec664fe4-485a-11ed-a3b6-dac502259ad0.jpg

注意,如果这一步是负的,那就意味着我们可以使用任意的步骤。换句话说,我们可以切换回原来的算法。这对应于下面的情况,梯度变得越来越陡。

ec762acc-485a-11ed-a3b6-dac502259ad0.jpg

然而,如果梯度变得不那么陡峭,我们可能会走向一个处于病态曲率底部的区域。在这里,牛顿法给了我们一个修正的学习步骤,正如你所看到的,它与曲率成反比,或者曲面变得越来越小

如果表面变得不那么陡峭,那么学习步骤就会减少。

为什么我们很少使用牛顿法? 看到公式中的 Hessian 矩阵了吗?Hessian 矩阵需要计算损失函数对所有权值组合的梯度。在组合已知的情况下,要求的值的数量约是神经网络中权值数量的平方

对于现代的网络来说,通常都含有数十亿个参数,使用高阶的优化方法很难计算 10 亿的平方数量级的梯度。

二阶优化是关于梯度本身如何变化的信息。虽然我们不能精确的计算它,但是我们可以遵循启发式方式,以指导我们根据之前的梯度进行优化。

Momentum

SDG 结合使用的一种常用方法叫做Momentum。Momentum 不仅会使用当前梯度,还会积累之前的梯度以确定走向。梯度下降方程修改如下。

ec8c0b94-485a-11ed-a3b6-dac502259ad0.jpg

第一个式子有两项。第一项是上一次迭代的梯度,乘上一个被称为「Momentum 系数」的值,可以理解为取上次梯度的比例。

ec98df4a-485a-11ed-a3b6-dac502259ad0.jpg

我们设 v 的初始为 0,动量系数为 0.9,那么迭代过程如下:

ecb23b84-485a-11ed-a3b6-dac502259ad0.jpg

我们可以看到之前的梯度会一直存在后面的迭代过程中,只是越靠前的梯度其权重越小。(说的数学一点,我们取的是这些梯度步长的指数平均)。

这对我们的例子有什么帮助呢?观察下图,注意到大部分的梯度更新呈锯齿状。我们也注意到,每一步的梯度更新方向可以被进一步分解为 w1 和 w2 分量。如果我们单独的将这些向量求和,沿 w1 方向的的分量将抵消,沿 w2 方向的分量将得到加强。

ecc5a2dc-485a-11ed-a3b6-dac502259ad0.jpg

对于权值更新来说,将沿着 w2 方向进行,因为 w1 方向已抵消。这就可以帮助我们快速朝着极小值方向更新。所以,动量也被认为是一种抑制迭代过程中锯齿下降问题的技术。

这种方法还可以提高收敛速度,但如果超过极小值,可能需要使用模拟退化算法

我们通常初始化动量为 0.5,并且在一定循环次数后逐渐退火到 0.9。

RMSProp

RMSProp 或均方根反向传播算法有着有趣的历史。它是由传奇人物Geoffrey Hinton提出的,当时只是在课堂上是随意提出的一个想法。

RMSProp 算法也旨在抑制梯度的锯齿下降,但与动量相比, RMSProp 不需要手动配置学习率超参数,由算法自动完成。更重要的是,RMSProp 可以为每个参数选择不同的学习率。

在 RMSprop 算法中,每次迭代都根据下面的公式完成。它是对每个参数单独迭代。

ece172be-485a-11ed-a3b6-dac502259ad0.jpg

让我们来看看上面的方程都在做什么。

在第一个方程中,我们计算一个梯度平方的指数平均值。由于我们需要针对每个梯度分量分别执行平方,所以此处的梯度向量 Gt 对应的是正在更新的参数方向的梯度各个方向的投影分量。

为此,我们将上一次更新的超参数乘希腊字母 nu。然后将当前的梯度平方乘(1-nu)。最后我们将他们加到一起得到这一时刻的指数平均。

我们之所以使用指数平均是因为在 momentum 例子中看到的那样,它可以使得间隔和权重成正比例变化。实际上使用「指数」一词是因为前面项的权重呈指数级下降(最近的项权重是 ρ,次近的 ρ 方,然后是 ρ 立方,以此类推)。

注意我们表示病态曲率的图,梯度沿 w1 方向的分量比沿 w2 方向的分量大的多。我们以平方的方式将 w1 和 w2 叠加,w1 不会发生抵消,w2 在指数平均后会更小。

第二个方程定义了步长,我们沿负梯度方向移动,但是步长受到指数平均值的影响。我们设置了一个初始学习率 eta,用它除指数平均值。在我们的例子中,因为 w1 平均后比 w2 大很多,所以 w1 的迭代步长就比 w2 要小很多。因此这将避免我们在山脊之间跳跃而朝着正确的方向移动。

第三个方程是更新操作,超参数 p 通常选为 0.9,但是你可能需要调整它。方程 2 中的 epsilon 是为了防止被 0 除,通常取 1e-10。

还要注意的是,RMSProp 隐含的执行模拟退火,假设我们正朝着极小值前进并且我们想要放慢速度避免越过极小值。当步长很大时 RMSProp 将自动减小梯度更新的步长(大步长容易越过极小值点)。

Adam

到目前为止,我们已经对比了 RMSProp 和 Momentum 两种方法。尽管 Momentum 加速了我们对极小值方向的搜索,但 RMSProp 阻碍了我们在振荡方向上的搜索。

Adam 或 Adaptive Moment Optimization 算法将 Momentum 和 RMSProp 两种算法结合了起来。这里是迭代方程。

ecfad5a6-485a-11ed-a3b6-dac502259ad0.jpg

我们计算了每个梯度分量的指数平均和梯度平方指数平均(方程 1、方程 2)。为了确定迭代步长我们在方程 3 中用梯度的指数平均乘学习率(如 Momentum 的情况)并除以根号下的平方指数平均(如 Momentum 的情况),然后方程 4 执行更新步骤。

超参数 beta1 一般取 0.9 左右,beta_2 取 0.99。Epsilon 一般取1e-10。

结论

在这篇文章中,我们介绍了 3 种基于梯度下降法来解决病态曲率同时加快搜索速度的方法。这些方法通常称为「自适应方法」,因为学习步骤会根据等高线拓扑进行调整。

在上面的三种方法中,尽管 Adam 算法在论文中被认为是最有前景的算法,但是 Momentum 方法貌似更主流一些。实践结果表明,在给定损失函数的情况下,三种算法都能收敛到不同的局部最优极小值。但是用带 Momentum 的 SGD 算法比 Adam 算法找到的极小值更加平坦,而自适应方法往往会收敛到更加尖锐的极小值点。平坦的极小值通常好于尖锐的极小值。

ed08cada-485a-11ed-a3b6-dac502259ad0.jpg

尽管自适应算法有助于我们在复杂的损失函数上找到极小值点,但这还不够,特别是在当前网络越来越来越深的背景下。除了研究更好的优化方法之外,还有一些研究致力于构建产生更平滑损失函数的网络架构。Batch-Normalization 和残差连接是其中的解决方法,我们也会尽快在博客上发布有关的详细介绍。

审核编辑:彭静
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 神经网络
    +关注

    关注

    42

    文章

    4718

    浏览量

    100076
  • 函数
    +关注

    关注

    3

    文章

    4240

    浏览量

    62013

原文标题:深度学习优化入门:Momentum、RMSProp 和 Adam

文章出处:【微信号:vision263com,微信公众号:新机器视觉】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    深入浅出地介绍了牛顿法、动量法、RMSProp、Adam优化算法

    通常情况下,我们使用低学习率来应对这样的反复振荡,但在病态曲率区域使用低学习率,可能要花很多时间才能达到最小值处。事实上,有论文报告,防止反复振荡的足够小的学习率,也许会导致从业者相信损失完全没有改善,干脆放弃训练。
    的头像 发表于 10-08 09:15 3.2w次阅读

    智能车曲率计算(1).

    本帖最后由 eehome 于 2013-1-5 10:03 编辑 智能车曲率计算(1).
    发表于 08-13 18:54

    飞思卡尔智能车赛道曲率计算

    飞思卡尔智能车赛道曲率计算
    发表于 06-04 10:46

    请问怎么用labview求得曲线的曲率

    有哪位大佬知道怎么用labview求得曲线的曲率吗,也可以说怎么去检测曲线突变?
    发表于 03-08 17:48

    曲率的计算公式

    曲率的计算公式为: 来源:为了平衡曲线的弯曲程度
    发表于 08-13 02:05 3.5w次阅读
    <b class='flag-5'>曲率</b>的计算公式

    飞思卡尔曲率计算教程

    曾看到智能车制作论坛里很多人询问曲率的计算,今天在整理一个PPT 的时候,刚好又用到了曲率计算,我就解释下东北大学和上海大学摄像头组计算曲率的方法(请参看第二届东北大学
    发表于 08-31 16:11 0次下载
    飞思卡尔<b class='flag-5'>曲率</b>计算教程

    两点算法求智能车赛道曲率

    两点算法求智能车赛道曲率
    发表于 10-30 17:46 7次下载

    基于曲率补偿的电流基准源的设计

    一种曲率补偿电流值准源的设计
    发表于 05-03 14:55 4次下载

    曲率估计及在曲面检测中的应用

    曲线或曲面的曲率信息是计算机图形学、计算机动画、流体仿真、模式匹配、形状分析、几何建模、纹理识别、人脸识别、散乱点云数据处理、虹膜识别等应用领域中经常利用的重要信息之一,在与曲线或曲面的几何特性
    发表于 12-11 16:59 1次下载
    <b class='flag-5'>曲率</b>估计及在曲面检测中的应用

    基于平均曲率的布料模拟弯曲模型

    通过对布料特性及内部结构的研究与分析,针对布料的弯曲特性提出一种非线性弯曲近似模型。首先对实际布料的弯曲属性值进行测量,获得布料的弯曲属性参数;然后,在此基础上建立基于平均曲率的弯曲近似模型来表示
    发表于 12-21 17:08 0次下载

    电力系统病态潮流求解

    使用常规方法可能会不收敛,成为病态潮流。病态潮流的出现主要有以下两方面的原因: 1)潮流计算的解远离平启动点,使得在平启动下使用常规潮流计算方法无法求出。 2)在系统重负荷、接近功率极限点时,系统的雅克比矩阵,出现奇
    发表于 02-08 16:00 3次下载

    屏幕曲率是什么? 4000r黄金曲率是多少

    除了成本价格的因素外,另外,曲率也不是越大越好,考虑到液晶显示器的屏幕尺寸大小之后,以最佳视听距离为半径的圆的曲率,才是最符合用户需求的曲率
    发表于 09-04 15:09 1.5w次阅读

    曲面电视4000的曲率和6600的曲率那个更有优势

    曲率是几何体不平坦程度的一种衡量。在物理中,曲率通常通过法向加速度(向心加速度)来求,具体参见法向加速度。
    发表于 09-04 15:37 1439次阅读

    病态建筑综合症如何利用物联网来达到预防的目的

    利用物联网,建筑物管理人员可以防止工作人员或居住者成为病态建筑综合症的牺牲品。
    发表于 02-07 10:51 441次阅读

    基于单位统计曲率特征匹配的红外目标检测

    基于单位统计曲率特征匹配的红外目标检测
    发表于 06-19 16:20 7次下载