深度学习--局部最优(The problem of local optima)

局部最优的问题(The problem of local optima)

ref: https://blog.csdn.net/qq_38742161/article/details/86739010

 

初学深度学习,总是担心优化算法会困在极差的局部最优。本文介绍如何正确看待局部最优以及深度学习中的优化问题。

如上图,平面的高度就是损失函数。在图中似乎各处都分布着局部最优。梯度下降法或者某个算法可能困在一个局部最优中,而不会抵达全局最优。但是,问题的关键在于,低维特征(图示两维)让我们对局部最优产生误解。

事实上,如果你要创建一个神经网络,通常梯度为零的点并不是这个图中的局部最优点,实际上成本函数的零梯度点,通常是鞍点。

一个具有高维度空间的函数,如果梯度为0,那么在每个方向,它可能是凸函数,也可能是凹函数。如果你在2万维空间中,那么想要得到局部最优,所有的2万个方向都需要是这样,但发生的机率也许很小(2**(-20000)),也许是,你更有可能遇到有些方向的曲线会这样向上弯曲,另一些方向曲线向下弯,而不是所有的都向上弯曲,因此在高维度空间,你更可能碰到鞍点。

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

本文的要点是:

  1. 你不太可能困在极差的局部最优中,前提:你在训练较大的神经网络,存在大量参数,并且成本函数被定义在较高的维度空间。
  2. 平稳段是一个问题,这样使得学习十分缓慢,这也是像Momentum或是RMSpropAdam这样的算法,能够加速学习算法的地方。在这些情况下,更成熟的优化算法,如Adam算法,能够加快速度,让你尽早往下走出平稳段。

 

解决局部最优点问题的方案

ref: https://blog.csdn.net/maqunfi/article/details/82634529

一般的梯度下降方法寻找的是loss function的局部极小值,而我们想要全局最小值。如下误差曲面图所示,我们希望loss值可以降低到右侧深蓝色的最低点,但loss有可能“卡”在左侧的局部极小值中,也就是图中红线所走的路径。

方案

为了防止卡到'局部最优点',我们有以下几个方法:      

[1]使用随机梯度下降代替真正的梯度下降。可以这样理解,每次针对单个数据样例进行摸索前进时,本质上是在一个样例形成的误差曲面上摸索前进,而每个样例的曲面大体类似,又不尽相同,当你掉入一个坑里时,往往能被别的曲面拽出来。      

[2]设置冲量。人如其名,本次前进的步伐,根据上一次的步伐,适当调大,好比从高处降落的石头,会更有机率跨过一些小坑,如果坑非常大,依靠冲量的惯性是没法逃出的。      

[3]不同的初始权值进行训练。假定误差曲面是个坑坑洼洼的曲面,我们尝试第一次降落到随机的起点,然后再开始摸索前进,也许会有运气好的一次,能够不落在某个小坑附近,多次尝试权重,可能会找到好的全局点。

 

 

那么如何逃离,跳出鞍点呢?

ref: https://blog.csdn.net/bvl10101111/article/details/78051939

1)利用Hessian矩阵,判断是否为鞍点,因为,Hessian在鞍点具有正负特征值,而在局部最小值点正定。

2)随机梯度,相当于给正确的梯度加了一点noise,一定程度上避免了鞍点(但是只是一定程度),达到类似于如下公式的效果

这里写图片描述

 

3)随机初始化起点,也有助于逃离鞍点,原因见here

4)增加偶尔的随机扰动,详见here

 

 

 

 

 

Sequential convex programming (SCP) is a method used to solve optimization problems that involve non-convex constraints or objectives. It involves solving a series of convex optimization problems, each one approximating the original non-convex problem more closely than the previous one. The basic idea of SCP is to iteratively linearize the non-convex problem around the current iterate, and solve the resulting convex sub-problem. This process is repeated until a satisfactory solution is obtained. The convex sub-problem is obtained by replacing the non-convex objective or constraint with a convex approximation that is valid in a local neighborhood of the current iterate. SCP has been successfully applied to a wide range of problems, including control, robotics, machine learning, and signal processing. It is particularly useful in problems where the non-convexity arises due to complex and nonlinear constraints or objectives. One advantage of SCP is that it does not require a global optimization algorithm, which can be computationally expensive or infeasible for large-scale problems. Instead, SCP relies on local optimization algorithms, which can be more efficient and scalable. Another advantage is that SCP can handle non-convex constraints or objectives that are difficult to model or compute explicitly. However, SCP also has some limitations. It may converge to a local optimum instead of a global optimum, especially if the problem has multiple local optima. It may also require a good initial guess to achieve a satisfactory solution.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值