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

时间:2014-11-07 15:34:16

标签: machine-learning statistics linear-regression

在我最近参加的一些机器学习课程中,我已经介绍了梯度下降,以找到线性回归的最佳拟合线。

在一些统计学课程中,我了解到我们可以使用统计分析来计算这一行,使用均值和标准差 - this page covers this approach in detail.为什么这种看似更简单的技术不用于机器学习?

我的问题是,梯度下降是拟合线性模型的首选方法吗?如果是这样,为什么?或者教授是否只是在更简单的设置中使用梯度下降来将该类引入技术?

2 个答案:

答案 0 :(得分:13)

您提供的示例是一维的,在机器学习中通常不是这种情况,您有多个输入功能。 在这种情况下,您需要反转矩阵以使用他们的简单方法,这可能很难或病态。

通常问题被制定为最小二乘问题,这稍微容易一些。有标准的最小二乘解算器可以用来代替梯度下降(通常是)。如果数据点的数量非常高,使用标准的最小二乘解算器可能太昂贵了,并且(随机)梯度下降可能会为您提供一个在测试集错误方面与解决方案一样好的解决方案,运行时间小于数量级(see this great chapter by Leon Bottou

如果你的问题很小,可以通过现成的最小二乘解算器有效地解决,你可能不应该做渐变下降。

答案 1 :(得分:1)

基本上,“梯度下降”算法是一种通用优化技术,可用于优化任何成本函数。当在封闭形式的解决方案中无法估计最佳点时,通常使用它。

因此,假设我们希望最小化成本函数。在梯度下降中最终发生的是我们从一些随机的初始点开始,我们尝试在“梯度方向”上移动以降低成本函数。我们一步一步地移动,直到成本函数没有减少。这时我们处于最低点。为了更容易理解,想象一个碗和一个球。如果我们将球从碗上的某个初始点落下,它将移动直到它落在碗的底部。

由于梯度下降是一种通用算法,因此可以将其应用于需要优化成本函数的任何问题。在回归问题中,经常使用的成本函数是均方误差(MSE)。找到一个封闭形式的解决方案需要反转一个矩阵,该矩阵在大多数情况下是病态的(它的行列式非常接近零,因此它不能提供稳健的逆矩阵)。为了解决这个问题,人们经常采用梯度下降的方法来找到不受病态问题影响的解决方案。