资讯

全局最小是什么?整个函数上真正最低的那个点

2026-11-053 分钟阅读百科
TL;DR全局最小(Global Minimum)是函数在整个定义域上取得的最小值点,与只在附近范围内最小的局部最小相对;凸函数的局部最小就是全局最小,而深度神经网络的损失函数高度非凸,难以保证找到全局最小,但研究表明多数局部最小已足够好。

全局最小(Global Minimum),也叫全局最小值,是指一个函数在其整个定义域中所能取到的最小的值,以及取到这个值的那个点。在机器学习中,训练模型的目标通常是让损失函数尽可能小,理想的情况就是找到损失函数的全局最小。

全局最小和局部最小

与全局最小相对的是局部最小:如果一个点的函数值比它周围附近所有点的函数值都小,它就是一个局部最小点,但在更远的地方,可能存在函数值更小的点。可以用登山来打比方:把函数的图像想象成一片起伏的山地,函数值就是海拔高度。局部最小就像一个山谷的谷底,站在谷底,向四周看去都是往上的坡,但这片山地中可能还有其他更深的山谷;全局最小则是整片山地中海拔最低的那个点。全局最小一定也是局部最小,但局部最小不一定是全局最小。一个函数可能有很多个局部最小,也可能有多个点同时取到全局最小值。

为什么很难找到全局最小

机器学习中最常用的优化方法是梯度下降:在当前的位置,计算出往哪个方向下坡最陡,然后往那个方向走一小步,不断地重复,直到走到坡度为零的地方。问题在于,梯度下降只能看到脚下的局部情况,就像一个蒙着眼睛下山的人,只能感受到脚下的坡度。当它走到某个局部最小的谷底时,四周都是上坡,它就会停下来,而不知道远处还有更深的山谷。因此,对于有多个局部最小的函数,梯度下降找到的往往只是某一个局部最小,具体是哪一个取决于从哪里出发。

凸函数:局部最小就是全局最小

有一类函数特别好处理,那就是凸函数。凸函数的形状像一个碗,只有一个最低的区域,没有其他的“坑”。对于凸函数,任何局部最小都一定是全局最小,所以只要用梯度下降一直往下走,就一定能找到全局最小。线性回归、逻辑回归和支持向量机的损失函数都是凸函数,这是它们在理论上很受欢迎的原因之一。

深度学习中的情况

深度神经网络的损失函数是高度非凸的,形状极其复杂,有大量的局部最小、鞍点和平坦的区域,而且参数的维度高达数百万甚至数千亿。从理论上说,几乎不可能保证找到全局最小。然而,深度学习在实践中却非常成功,研究者对此给出了一些解释。在高维空间中,真正“坏”的局部最小比想象中少得多:大部分看起来像是卡住的地方其实是鞍点,也就是在某些方向上是谷底,在另一些方向上却是山顶,随机梯度下降的噪声能帮助逃离鞍点。对于足够大的神经网络,大多数局部最小的损失值都与全局最小相差不大,找到其中任何一个都已经足够好了。而且,我们真正关心的并不是训练损失有多低,而是模型在新数据上的表现:恰好达到训练数据上的全局最小,反而可能意味着过拟合。研究发现,位于平坦宽阔的谷底的解,往往比位于尖锐狭窄的谷底的解泛化得更好。

寻找全局最小的方法

对于确实需要找到全局最小的问题,可以使用专门的全局优化方法,比如从多个不同的起点出发进行多次优化,以及模拟退火、遗传算法、粒子群优化、贝叶斯优化等方法。