74

在线性回归空间中使用梯度下降有什么好处?看起来我们可以用分析方法解决问题(找到最小成本函数的 theta0-n)那么为什么我们仍然想使用梯度下降来做同样的事情呢?谢谢

4

4 回答 4

110

当您使用正规方程解析成本函数时,您必须计算:

在此处输入图像描述

其中 X 是您的输入观察矩阵,y 是您的输出向量。此操作的问题是计算 nxn 矩阵的逆矩阵的时间复杂度为 O(n^3),并且随着 n 的增加,它可能需要很长时间才能完成。

当 n 较低(n < 1000 或 n < 10000)时,您可以将正规方程视为计算 theta 的更好选择,但是对于更大的值,梯度下降更快,所以唯一的原因是时间:)

于 2013-08-12T19:15:55.570 回答
13

您应该提供有关您的问题的更多详细信息-您到底在问什么-我们是在谈论一维还是多维线性回归?简单的还是通用的?

一般来说,人们为什么使用GD?

  • 很容易实现
  • 这是一种非常通用的优化技术 - 即使您将模型更改为更通用的模型,您仍然可以使用它

那么解析解呢?好吧,我们确实使用了它们,您的主张在这里完全是错误的(如果我们是笼统地谈论的话),例如OLS方法是一种封闭形式的解析解,它被广泛使用。如果您可以使用分析解决方案,那么它在计算上是负担得起的(因为有时 GD 更便宜或更快)那么您可以,甚至应该 - 使用它。

无论如何,这始终是一些利弊的问题 - 分析解决方案与模型密切相关,因此如果您计划在未来推广/更改模型,那么实施它们可能效率低下。有时它们的效率不如数值近似,有时更难实现。如果以上都不是真的-您应该使用分析解决方案,并且人们确实这样做了。

总而言之,如果出现以下情况,您宁愿使用 GD 而不是分析解决方案:

  • 您正在考虑更改模型、概括、添加一些更复杂的术语/正则化/修改
  • 您需要一个通用方法,因为您对代码和模型的未来了解不多(您只是开发人员之一)
  • 分析解决方案的计算成本更高,您需要效率
  • 分析解决方案需要更多内存,而您没有
  • 分析解决方案难以实现,您需要简单、简单的代码
于 2013-08-12T18:44:21.120 回答
7

我从https://stats.stackexchange.com/questions/23128/solving-for-regression-parameters-in-closed-form-vs-gradient-descent看到了一个很好的答案

基本上,原因是:

1.对于大多数非线性回归问题,没有封闭形式的解决方案。

2.即使在线性回归中(可以使用封闭形式解决方案的少数情况之一),使用该公式也可能不切实际。以下示例显示了这种情况发生的一种方式。

于 2014-08-20T22:15:53.183 回答
0

另一个原因是,当您推广线性回归时,梯度下降会立即有用,特别是如果问题没有封闭形式的解决方案,例如在Lasso中(它添加了由权重向量的绝对值之和组成的正则化项)。

于 2017-09-07T08:23:01.173 回答