为什么在线性回归中使用梯度下降?

7
在最近我上的一些机器学习课程中,我学习了使用梯度下降法寻找线性回归最佳拟合线的方法。
在一些统计学课程中,我学到可以使用统计分析来计算这条线,使用均值和标准差 - 这个页面详细介绍了这种方法。 为什么这种看似更简单的技术在机器学习中没被使用呢?
我的问题是,梯度下降法是否是拟合线性模型的首选方法?如果是,为什么?或者教授是否只是在较简单的情境中使用梯度下降法来介绍这种技术?
2个回答

13
您提供的示例是一维的,但在机器学习中,通常有多个输入特征。在这种情况下,您需要反转一个矩阵来使用它们的简单方法,这可能很困难或病态。
通常,问题被表述为最小二乘问题,这比较容易。有标准的最小二乘求解器可以用来替代梯度下降(通常也会这样做)。如果数据点的数量非常大,则使用标准的最小二乘求解器可能太昂贵,而(随机)梯度下降可能会给您一个与更精确的解决方案相当好的测试集错误率,但运行时间要快得多(请参见Leon Bottou的这篇优秀章节)。
如果您的问题很小,可以通过现成的最小二乘求解器有效地解决,那么您可能不应该使用梯度下降。

谢谢Andreas,我同意你关于SGD的看法 - 我最近在Hadoop上为更大的训练集实现了它。我只是不明白为什么我们会在像拟合简单线性模型这样的小问题上使用梯度下降这样强大的方法,感谢你的解释。 - Guy Needham

1
基本上,“梯度下降”算法是一种通用的优化技术,可以用于优化任何成本函数。当无法估计闭合形式解时,它经常被使用。所以,假设我们想要最小化一个成本函数,在梯度下降中会发生什么,我们从某个随机初始点开始,并尝试向“梯度方向”移动,以减少成本函数。我们逐步移动,直到成本函数没有减少为止。此时,我们处于最小点。为了更容易理解,想象一个碗和一个球。如果我们从碗的某个初始点放下球,它将移动直到安定在碗的底部。由于梯度下降是一种通用算法,因此可以将其应用于需要优化成本函数的任何问题。在回归问题中,经常使用的成本函数是均方误差(MSE)。找到一个闭合形式的解需要倒置一个矩阵,在大多数情况下这个矩阵都是不良条件的(行列式非常接近于零,因此它不能给出一个稳健的逆矩阵)。为了避免这个问题,人们经常采用梯度下降方法来找到解决方案,这样就不会遇到不良条件问题。

Sina,感谢您的解释,但我完全理解梯度下降及其好处。我的问题更多是关于在拟合一个简单线性模型时,特别是在一个适合主内存的小数据集上使用它,是否有点大材小用? - Guy Needham
为什么不用牛顿法呢? - Anmol Singh Jaggi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接