深度学习中的局部最小值与鞍点

数据挖掘 机器学习 深度学习 优化 收敛
2021-09-21 23:18:57

我听到 Andrew Ng(在一段我很遗憾再也找不到的视频中)谈到了深度学习问题中对局部最小值的理解发生了怎样的变化,因为在高维空间中它们现在被认为问题较少(在深度学习)临界点更可能是鞍点或高原,而不是局部最小值。

我看过讨论“每个局部最小值都是全局最小值”的假设的论文(例如这篇文章)。这些假设都是相当技术性的,但据我了解,它们倾向于在神经网络上强加一个结构,使其有点线性。

在深度学习(包括非线性架构)中,高原比局部最小值更有可能是一个有效的说法吗?如果是这样,它背后是否有(可能是数学的)直觉?

深度学习和鞍点有什么特别之处吗?

2个回答

让我根据多元微积分给出一个解释。如果您参加过多元课程,您会听说,给定一个临界点(梯度为零的点),该临界点为最小值的条件是 Hessian 矩阵是正定的。由于 Hessian 矩阵是对称矩阵,我们可以对其进行对角化。如果我们将Hessian对应的对角矩阵写为:

D=[d1dn]
Hessian 是正定的等价于 d1>0,,dn>0.

现在让我们考虑一下深度学习成本函数。深度学习成本函数以非常复杂的方式依赖于大量参数,因此 Hessian 本身将具有复杂的表达式。因此,我们可以认为d1,,dn不偏向负值或正值。因此,给定任何临界点,每个值的概率di 为正可以假定为 1/2. 此外,可以合理地假设di 不要轻易依赖于 dj,由于 Hessian 矩阵的高度非线性,因此我们将它们为正的概率视为独立事件。

因此,给定一个临界点,它成为最小值的概率为:

P(d1>0,,dn>0)=P(d1>0)P(dn>0)=12n

任何临界点为最小值的概率随着输入空间的维度呈指数下降。在深度学习中,这个空间可以从 1000 到108,并且在这两种情况下 1/2n小得离谱。现在我们确信,考虑到我们遇到的任何临界点,它不太可能是最小值。

但是最大值呢?

函数的最大值是减去函数的最小值。出于这个原因,之前使用的所有参数都可以用来减去成本函数,我们得出结论,每个临界点都有1/2n为最大值。

因此,给定一个临界点,它是鞍点的概率为

P(saddle)=1P(maximum)P(minimum)=112n12n=112n1

如果非常接近 1n足够大(通常在深度学习中)。

这只是试图传达我的直觉,即不严谨。鞍点的问题在于它们是一种结合了最小值和最大值的最优值。由于深度学习的维数如此之大,最优仅由最小值组合组成的概率非常低。这意味着“陷入”局部最小值的情况很少见。冒着过度简化的风险,很难“卡在”鞍点,因为你可以“滑下一个维度”。我认为您提到的 Andrew Ng 视频来自他的 Coursera 深度学习课程。