精华内容
下载资源
问答
  • 关于局部最优

    2019-12-12 16:09:17
    在开始学习梯度下降的时候,总会有这样的疑问:梯度下降只能到达局部最优,万一到达了一个较大的局部最优,错过了较小的全局最优或是另外一个更小的局部最优,那么是不是算法是失败呢? 其实在机器学习的大数据背景...

    在开始学习梯度下降的时候,总会有这样的疑问:梯度下降只能到达局部最优,万一到达了一个较大的局部最优,错过了较小的全局最优或是另外一个更小的局部最优,那么是不是算法是失败呢?

    在这里插入图片描述

    其实在机器学习的大数据背景下,随机到达的局部最优点与全局最优点虽然有差距,但是也足够优秀


    而且到达局部最优的可能性也不是很大。

    单独看一个特征,到达梯度为0的情况有两种:
    在这里插入图片描述
    而100个特征全部到达右边这种情况的概率值约为12100\frac{1}{2^{100}}

    大部分情况都是某些到达极小值,而其它的在鞍部:

    在这里插入图片描述

    展开全文
  • 局部最优问题

    2019-07-20 11:55:06
    什么是局部最优 百科解释:局部最优,是指对于一个问题的解在一定范围或区域内最优,或者说解决问题或达成目标的手段在一定范围或限制内最优。 我们先举一个简单的例子 假如我们用梯度下降找上图中的最小值,实际...

    什么是局部最优

    百科解释:局部最优,是指对于一个问题的解在一定范围或区域内最优,或者说解决问题或达成目标的手段在一定范围或限制内最优。


    我们先举一个简单的例子

    在这里插入图片描述
    假如我们用梯度下降找上图中的最小值,实际解应该是d点,但由于图像波动幅度很大,在程序运行结束以后,我没呢求得的值是a,b,c中的一个,虽然a,b,c是也是图像的峰值,但并不是我们想要的最小值,这就是局部最优。


    相关链接
    https://www.cnblogs.com/bonelee/p/7007702.html
    http://www.wengweitao.com/ti-du-xia-jiang-fa.html
    https://blog.csdn.net/bing_bing_bing_/article/details/95327020

    展开全文
  • 算法 - 局部最优的避免

    千次阅读 2019-09-16 10:25:51
    文章目录局部最优的产生局部最优的避免 局部最优的产生 一般的启发式算法非常容易产生局部最优,或者说根本无法查证产生的最优解是否是全局的。这是因为对于大型系统或复杂的问题,一般的算法都着眼于从局部展开求解...

    局部最优的产生

    一般的启发式算法非常容易产生局部最优,或者说根本无法查证产生的最优解是否是全局的。这是因为对于大型系统或复杂的问题,一般的算法都着眼于从局部展开求解,以减少计算量和算法复杂度1

    通常我们希望得到的是全局最优解,但当问题的复杂度过高、考虑的因素和处理的信息量过大时,考虑到成本、效率等问题,我们可能更倾向于局部最优解。

    局部最优的避免

    对局部最优的避免有两个根本方法1

    1. 深入研究问题的机理,对问题的机理研究的越透彻,就能更准确的找到全局最优,或划定全局最优可能的区域;

    2. 随机搜索,对机理不明的问题,解的搜索越随机陷入局部最优的可能性就越小。

    对于已经陷入局部最优,或怀疑陷入局部最优的情况,一般是采取“跳出”或“重启”两种手段,也就是在当前解的基础上向其他方向搜索,或者无视当前解并在新的区域重新搜索。

    简单来说,避免陷入局部最优的方法就是随机。在具体实现手段上, 可以根据所采用的启发式框架来灵活加入随机性,实际原则如下2

    1. 越随机越好。没有随机性, 一定会陷入局部最优。为了获得找到最优解的更大期望值, 算法中一定要有足够的随机性。具体体现为鲁棒性较好, 搜索时多样性较好。算法的每一步选择都可以考虑加入随机性, 但要控制一定的概率。

    2. 越不随机越好。随机性往往是对问题内在规律的一种变相利用, 即在没有找到其内在规律的情况下, 为了获得更好的多样性, 可选择加入随机的策略。当然, 对给定问题的深入研究才是解决的根本, 也就是要分辨出哪些时候, 某个动作就是客观上能严格保证最优的, 而这一点将直接决定了算法性能。

    3. 二者平衡最好。通常情况下, 做好第一点, 可以略微改善算法性能;做好第二点, 则有可能给算法带来质的提高。但二者间调和后的平衡则会带来综合性的飞跃.

    4. 在已有最优解上进行大步长变异,有助于算法局部最优解的逃逸!


    随机算子:
        ①轮盘赌
        ②高斯变异:局部搜索能力较好,但引导个体跳出局部较优解的能力较弱,不利于全局收敛,可用于保证进化后期的收敛速度。原理如下:Xnewbest=Xbest[1+Cauchy(0,1)]{X_{newbest}} = {X_{best}}[1 + Cauchy(0,1)]
        ③柯西变异3:相比高斯变异会产生较大的变异步长,能有效的保持种群多样性,故会使得算法具有较好的全局搜索能力。原理如下:Xnewbest=Xbest[1+Gaussian(0,1)]{X_{newbest}} = {X_{best}}[1 + Gaussian(0,1)]
        ④混沌变异:与高斯变异等随机变异算子具有相似的搜索能力
        ⑤柯西+高斯变异
        ⑥柯西+混沌变异


    局部最优的判断

    • 同一初始值,多跑几次
    • 不同初始值,多跑几次
    • 使用标准测试函数提前测试算法性能

    局部最优解的判断很难实现,多数算法都存在该问题,如果差异较大,则可能为局部最优解!既然很难判断,那么也就很难实现局部最优解的避免,因此我们要做的是可以在其陷入局部最优时设计一种策略使其逃逸局部最优!


    1. https://baike.baidu.com/item/%E5%B1%80%E9%83%A8%E6%9C%80%E4%BC%98/20861145 ↩︎ ↩︎

    2. 姜文波.蚁群算法局部最优解决机制的探讨[J].智能计算机与应用,2014,4(03):53-54+59. ↩︎

    3. Yao X , Liu Y , Lin G . Evolutionary Programming Made Faster[J]. IEEE Transactions on Evolutionary Computation, 1999, 3(2):82-102. ↩︎

    展开全文
  • 局部最优与鞍点问题

    2020-06-26 12:05:53
    一、什么是局部最优与鞍点 初学深度学习,总是担心优化算法会困在极差的局部最优。本文介绍如何正确看待局部最优以及深度学习中的优化问题。 如上图,平面的高度就是损失函数。在图中似乎各处都分布着局部最优。...

    一、什么是局部最优与鞍点

    初学深度学习,总是担心优化算法会困在极差的局部最优。本文介绍如何正确看待局部最优以及深度学习中的优化问题。
    在这里插入图片描述
    如上图,平面的高度就是损失函数。在图中似乎各处都分布着局部最优。梯度下降法或者某个算法可能困在一个局部最优中,而不会抵达全局最优。但是,问题的关键在于,低维特征(图示两维)让我们对局部最优产生误解。

    事实上,如果你要创建一个神经网络,通常梯度为零的点并不是这个图中的局部最优点,实际上成本函数的零梯度点,通常是鞍点。
    在这里插入图片描述
    一个具有高维度空间的函数,如果梯度为0,那么在每个方向,它可能是凸函数,也可能是凹函数。如果你在2万维空间中,那么想要得到局部最优,所有的2万个方向都需要是这样,但发生的机率也许很小(2**(-20000)),也许是,你更有可能遇到有些方向的曲线会这样向上弯曲,另一些方向曲线向下弯,而不是所有的都向上弯曲,因此在高维度空间,你更可能碰到鞍点。

    对于鞍点来讲,平稳段会减缓学习,平稳段是一块区域,其中导数长时间接近于0,如果你在此处,梯度会从曲面从从上向下下降,因为梯度等于或接近0,曲面很平坦,你得花上很长时间慢慢抵达平稳段的这个点,我们可以沿着这段长坡走,直到这里,然后走出平稳段。
    在这里插入图片描述

    二、如何判断模型陷入局部最优?

    造成神经网络难以优化的一个重要(乃至主要)原因不是高维优化问题中有很多局部极值,而是存在大量鞍点。
      吴恩达视频中讲的,虽然没有理论的证明,局部最小值就是全局最小值,但是很多实际的经验告诉我们,最后,只能收敛到一个最小值,也就是说,很多现实实际问题是只有一个最小值的。但这个最小值通常是鞍点。
    在这里插入图片描述
    那么如何来区分鞍点和局部最优点呢?这时候就需要用到神经网络的loss surfaceHessian矩阵,通过计算Hessian矩阵的特征值,我们就可以确定神经网络的解属于那种类型:

    • Hessian矩阵的特征值有正有负的时候,神经网络的一阶导数为零的点为鞍点
    • Hessian矩阵的特征值全部为非负的时候,神经网络的一阶导数为零的点为局部极小值点。

    我们可以知道近似情况下,神经网络的特征值分布图
    在这里插入图片描述
    其中 在这里插入图片描述是参数数目和数据量之比,越大代表相对数据越少;在这里插入图片描述 是loss的大小;在这里插入图片描述就是特征值。从这张图可以看出来:

    • Loss很大的时候,特征值分布有正有负,表明鞍点是困扰优化的主要原因
    • Loss很小的时候,逐渐鞍点消失,系统中主要是局部最小值点

    所以,我们在优化神经网络的过程中,主要克服的是鞍点问题。

    三、鞍点的解决办法

    1、鞍点的原理

    如果我们的模型真的收敛到鞍点上了,会很可怕吗?这就又回到了文章开头的那副马鞍状的图。显然,站在马鞍中央的时候,虽然很难翻过两边的山坡,但是往前或者往后随便走一步就能摔下马鞍!而在文章《batch size》中小夕讲过,我们默认使用的mini-batch梯度下降法本身就是有噪声的梯度估计,哪怕我们位于梯度为0的点,也经常在某个mini-batch下的估计把它估计偏了,导致往前或者往后挪了一步摔下马鞍,也就是mini-batch的梯度下降法使得模型很容易逃离特征空间中的鞍点。

    既然局部最优点很难踩到,鞍点也很容易逃离出去,那么为什么我们的模型看起来是收敛了呢?

    初学者可能会说 “会不会是学习率太大了,导致在“鞍点”附近震荡?” 首先,鞍点不像最优点那样容易震荡,而且哪怕你不断的减小学习率继续让模型收敛,大部分时候你这时计算output层或者后几层的梯度向量的长度时往往会发现它依然离0很遥远!(这句话是有实验支撑的,不过那篇论文我暂时没记起来,找到时贴出来)说明大部分时候收敛到的并不是鞍点。

    那会不会踩到的鞍点太多,虽然前面的鞍点都轻松逃逸了,但是最后恰好收敛到一个跳不下去的鞍点身上了?

    这倒是有可能,不排除有一些“马鞍面”特别平坦的鞍点区域,当模型陷入这种鞍点上时,由于计算出的梯度非常小,导致要连续迭代非常多次才可能慢慢移开这个鞍点,事实上大部分工程情况下,没等它移开的时候我们就已经默认为模型收敛、训练结束了,实际上人家模型还在努力逃离鞍点中呢。

    不过话说回来,虽然高维空间中的鞍点数量远远大于最优点,而且鞍点数量随着特征空间维度增高而指数级增长,但是鞍点的数量在整个空间中又是微不足道的:按前面的假设,假设在某个维度上随机一跳有10%的概率踩到导数为0的点,那么我们在101维的空间中的一步恰好踩到这个点上的概率为10^-100,也就是说在101维空间里随机乱跳的时候,有10^-100的可能性踩到鞍点身上。因此,即使有难以逃离的鞍点,即使我们的优化算法在努力向附近的鞍点靠拢,那么被我们正好踩到那些难以逃离的特殊鞍点的概率也是非常小的

    所以更令人信服的是,在高维空间里(深度学习问题上)真正可怕的不是局部最优也不是鞍点问题,而是一些特殊地形。比如大面积的平坦区域

    在平坦区域,虽然导数不为0但是却不大。虽然是在不断下降但是路程却非常长。对于优化算法来说,它需要走很多很多步才有可能走过这一片平坦区域。甚至在这段地形的二阶导数过于特殊的情况下,一阶优化算法走无穷多步也走不出去(设想一下,如果终点在一米外,但是你第一次走0.5米,后续每一步都是前一步的一半长度,那么你永远也走不到面前的一米终点处)。所以相比于栽到最优点和鞍点上,优化算法更有可能载到这种类似平坦区的地形中(如果这个平坦区又是“高原地带”,即loss值很高的地带,那么恭喜你悲剧了)。更糟糕的是,由于高维地形难以可视化,还有很多更复杂的未知地形会导致假收敛,一旦陷入到这些危险地形中,几乎是无解的

    2、鞍点的解决-理论

    如果你沿着中间部分往下走,你最终会摆脱它,但这可能需要很长时间。这只是两个维度上,但如果你有上十万甚至上百万维度呢?就像现在一般的研究中一样。在这种情况下,可能只有一条出路,其他的方向都不行,所以要找到逃逸的方向可能要花很长时间。当维度越来越大的时候,就有问题了。基于梯度下降的算法可能会有麻烦。
      只用一阶导数是难以区分最优点和鞍点的。但如果你有一个海森矩阵,这个问题将会消失,因为你会知道所有的方向,但你必须计算一个海森矩阵的特征向量。这两种情况都不好,因为它太复杂了也太慢。所以,梯度方法是个问题。

    我们想一下,最优点和鞍点的区别不就在于其在各个维度是否都是最低点嘛~只要某个一阶导数为0的点在某个维度上是最高点而不是最低点,那它就是鞍点。而区分最高点和最低点当然就是用二阶导数(斜率从负变正的过程当然就是“下凸”,即斜率的导数大于0,即二阶导数大于0。反之则为“上凹”,二阶导数小于0)。也就是说,若某个一阶导数为0的点在至少一个方向上的二阶导数小于0,那它就是鞍点啦。
      那么二阶导数大于0和小于0的概率各是多少呢?由于我们并没有先验知识,因此按照最大熵原理,我们认为二阶导数大于和小于0的概率均为0.5!

    那么对于一个有n个参数的机器学习/深度学习模型,“loss曲面”即位于n+1维空间(loss值为纵轴,n个参数为n个横轴)。在这个空间里,如果我们通过梯度下降法一路下滑终于滑到了一个各方向导数均为0的点,那么它为局部最优点的概率即0.5^ n,为鞍点的概率为1-0.5^n,显然,当模型参数稍微一多,即n稍微一大,就会发现这个点为鞍点的概率会远大于局部最优点!

    3、实际工程解决办法

    使用的mini-batch梯度下降法本身就是有噪声的梯度估计,哪怕我们位于梯度为0的点,也经常在某个mini-batch下的估计把它估计偏了,导致往前或者往后挪了一步摔下马鞍,也就是mini-batch的梯度下降法使得模型很容易逃离特征空间中的鞍点。

    更多的,我们可以从以下方面考虑:
      
      1)如何去设计一个尽量没有“平坦区”等危险地形的loss空间,即着手于loss函数的设计以及深度学习模型的设计;
      2)尽量让模型的初始化点远离空间中的危险地带,让最优化游戏开始于简单模式,即着手于模型参数的初始化策略;
      3)让最优化过程更智能一点,该加速冲时加速冲,该大胆跳跃时就大胆跳,该慢慢踱步时慢慢走,对危险地形有一定的判断力,如梯度截断策略;
      4)开外挂,本来下一步要走向死亡的,结果被外挂给拽回了安全区,如batch normalization策略等。

    4、鞍点的实际现象

    神经网络在学习过程中如果遇到鞍点,出现的直接现象是导致训练速度时间变长,这是因为神经网络是一个多维的神经网络,需要计算各个方向上的纬度,从而寻找出最优的路线,逃出鞍点。这时候通常是需要再重新多训练几次就可以了,或者使用优化算法进行解决。

    四、局部最优的解决办法

    局部最优需要注意的两个点分别是,

    • 局部最优出现时,神经网络的损失已经很小,在数据量足够的情况下,此时局部最优点接近全局最优。
    • 鞍点相比最优点更加稳定不易出现震荡,最优点容易出现震荡。

    解决办法:

    1 假如数据足够多,即使是局部最优,也是极好的解,而数据太大的时候,只有神经网络加随机梯度下降才能hold住
    2 网络足够深的时候,局部最优没那么局部,往往以鞍点存在,此时优化算法可以部分解决
    3 通过调整学习率等,可以部分避免局部最优尽管如此,非凸优化依然保证不了得到最优解。但是与其带来的好处相比就不值一提了,即使非最优解也常常吊打其他模型,所以大家还是用。

    展开全文
  • 我以前主要搞优化算法,但对于大多数数值最优化算法求的都是局部最优,当然也些能求全局最优,就是凸集上的凸问题,简单说这类问题就一个局部最优解,当然也就是全局最优了。多局部极值的问题的全局最优问题还没有...
  • 深度学习中局部最优问题

    千次阅读 2019-02-01 22:49:33
    局部最优的问题(The problem of local optima) 初学深度学习,总是担心优化算法会困在极差的局部最优。本文介绍如何正确看待局部最优以及深度学习中的优化问题。 如上图,平面的高度就是损失函数。在图中似乎...
  • 多粒度决策系统的局部最优粒度选择
  • matlab局部最优和全局最优算法

    万次阅读 2016-03-03 14:06:10
    在实际的工作和生活过程中...优化问题一般分为局部最优和全局最优,局部最优,就是在函数值空间的一个有限区域内寻找最小值;而全局最优,是在函数值空间整个区域寻找最小值问题。 函数局部最小点是那种它的函数值
  • 2-9 局部最优的问题

    2019-09-23 12:17:33
    局部最优的问题(The problem of local optima) 人们总是担心优化算法会困在极差的局部最优, 不过随着深度学习理论不断发展,我们对局部最优的理解也发生了改变。 这是曾经人们在想到局部最优时脑海里会出现的图...
  • 一类网络化控制系统的局部最优控制器设计
  • 如何跳出局部最优

    千次阅读 2019-07-24 22:24:27
    初始参数随机,用不同的初始参数进行多组实验找出最优的一组解,这相当于从不同的位置进行搜索 带动量的梯度下降,可能会越过...使用模拟退火算法,每次以一定的概率允许移动到比当前解差的点,可以跳过局部最优 ...
  • 局部最优怎么办?

    2019-10-01 10:05:59
    贪心算法是,在求最优解时,从a点开始试探,如果函数值继续减少,那么试探过程继续,到达b点时,试探过程结束(因为无论朝哪个方向努力,结果只会越来越大),因此找到了局部最优b点。 模拟退火算法以一定的概率...
  • 如何避免网络陷入局部最优 1、多组随机初始化参数,选择结果最好的 2、随机梯度下降法(因为随机因子存在) 3、模拟退火法(允许在当前点的一定范围内寻找其他点,选择最优的)
  • 当神经网络使用梯度下降算法寻优时,陷入局部最优的条件是所有偏导数在这一点全部为0, 在二维或三维空间似乎这种点很容易遇到,但在极高维的空间中这样的点很难遇到,在高维空间大部分是鞍点; 由于深度神经网络...
  • 基于局部最优检测统计量的弱相关非高斯噪声中的PN码获取
  • 局部最优的问题(The problem of local optima) ref:https://blog.csdn.net/qq_38742161/article/details/86739010 初学深度学习,总是担心优化算法会困在极差的局部最优。本文介绍如何正确看待局部最优以及深度...
  • 关于局部最优(Local Optima)

    千次阅读 2018-02-09 11:01:02
    ①在高维空间中,如2000维,不太可能出现局部最优的情况,因为局部最优要求这20000个维度的梯度都为0,这是很小概率的时间。②真正困扰优化问题的并不是局部最优,而是在鞍点附近的停滞区问题。 如下图,鞍点并不是...
  • 基于WLOP的PointCloudDenoiser:这是使用加权局部最优投影的点云降噪器
  • 编写复合形法求解有约束的单局部最优问题;完成预处理,绘制待求解函数的图形绘制;记录并分析求解过程;可以自行调整迭代求解精度;有助于在理解复合形法理论的基础上,加深理解与实际应用能力。
  • 首先通过分析用户在论坛上的发言层次结构与内容建立用户 之间的回复关系图,然后提出一种基于局部最优的图聚类方法LOGCA对大容量的论坛网络图进行分类。实验 得到互联网论坛上几个有意义的用户社区,并且确定了社区...
  • 在上一篇文章(从贪心算法开始认识动态规划——硬币找零问题)里,我们已经学习了贪心算法的思想,并且发现贪心算法是一种使用局部最优思想解题的算法,即从问题的某一个初始解出发逐步逼近给定的目标,以尽可能快的...
  • 局部最优的问题(The problem of local optima) 在深度学习研究早期,人们总是担心优化算法会困在极差的局部最优,不过随着深度学习理论不断发展,我们对局部最优的理解也发生了改变。我向你展示一下现在我们怎么看待...
  • 在讨论优化问题时我们先来讨论全局最优和局部最优 全局最优:问题所有的可能解中效果最好的解。 局部最优:问题的部分可能解中效果最好的解。 一个针对的全局,一个针对的部分。 就像我们设初值一样,设置了以后...
  • 全局最优和局部最优的理解

    万次阅读 2019-09-28 08:52:47
    2、自己想的,如果是凸函数,或者是凸规划,那么只有一个局部最优解,这个局部最优解 就是 全局最优解。 我们在求解的时候,思路上都是找一个局部最优解,或者说是通过迭代运算,找目标函数值下降的解,直到两个解...
  • 这是一道非常经典的动态规划的题目,用到的思路我们在别的动态规划题目中也很常用,以后我们称为”局部最优和全局最优解法“。 基本思路是这样的,在每一步,我们维护两个变量,一个是全局最优,就是到当前元素为止...
  • 局部最优到全局最优

    2020-04-17 15:32:07
    Sample Input 6 4 3 2 5 3 5 Sample Output 9 import java.util.Scanner; public class Main{ public static void main(String[] args) { Scanner scanner=new Scanner(System.in);... int n=scann...
  • 基于复合形法的有约束单局部最优问题求解前言一、复合形法简介二、单局部最优问题简介1.概念2.本文实例三、Matlab复合形法程序编写与分析1. 总览一下改善排版2. 初始复合形生成函数initalpoint四、求解结果后处理与...
  • 左图为我们对于低维空间的想象,似乎局部最优广泛存在。梯度下降法或者某个算法可能困在一个局部最优中,而不会抵达全局最优。 但这些理解并不正确 事实上如果我们要创建一个神经网络,通常梯度为0的点并不是左图中...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,189
精华内容 2,075
关键字:

局部最优