梯度下降收敛

数据挖掘 机器学习 回归 梯度下降
2022-02-15 11:09:45

我是数学和计算机科学双学位,对机器学习感兴趣。我目前正在学习 Andrew 教授的热门 Coursera 课程。他正在谈论并解释梯度下降,但我无法避免注意到一些事情。以我的数学背景,我知道如果我想找到一个函数的全局最小值/最大值,我必须首先找到所有的临界点。课程讲的是GD的收敛,但真的保证收敛到全局最小值吗?我怎么知道它不会卡在鞍点?做一个二阶导数测试来测试它不是更安全吗?如果我的函数是可微的,那么它收敛到局部最小值似乎是合理的,但不会收敛到全局最小值。我曾尝试寻找更好的解释,但似乎每个人都认为这是理所当然的。

3个回答

梯度下降并不总是收敛到全局最小值。只有当函数是凸的并且学习率合适时它才会收敛。

对于大多数现实生活中的问题,函数都有局部最小值,我们需要多次运行训练。原因之一是避免局部最小值。

如果您使用称为 Backtracking Gradient Descent 的版本,则在大多数情况下,可以证明大多数函数(包括所有 Morse 函数)收敛到一个局部最小值。在相同的假设下,您还可以证明 Momentum 和 NAG 的回溯版本的收敛性。更多细节可以在我的回答和引用的论文中找到,以及 GitHub 上的源代码链接,在这个链接中:

关联

课程讲的是GD的收敛,但是真的保证收敛到全局最小值吗

本课程讨论了一个简单的 MSE 案例,它是一个凸函数。对于凸函数,
“是”是有保证的。

在其他情况下,不能保证。这就是为什么我们有一堆优化器。
在简单的 ML 算法空间中,您将不需要这些。如果你开始深度学习。你将不得不学习这一点。Andrew NG 也有一个关于深度学习的很棒的 Coursera 课程。

使用数学获得最小值/最大值

当您拥有 1000 多个 parm(神经网络,CNN 的情况下为数百万)时,这几乎是不可能的。损失函数将变得太复杂而无法完成该任务,即数百万个变量的复杂函数。