当我们可以解析地解决线性回归时,为什么梯度下降

时间:2013-08-12 16:18:28

标签: machine-learning linear-regression gradient-descent

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

4 个答案:

答案 0 :(得分:99)

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

enter image description here

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

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

答案 1 :(得分:13)

您应该提供有关您问题的更多详细信息 - 您究竟要问的是什么 - 我们是在讨论一维或多维的线性回归吗?简单或一般的?

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

  • 易于实施
  • 这是非常通用的优化技术 - 即使您将模型更改为更一般的模型,也可以使用它

那么分析解决方案呢?好吧,我们使用它们,你的声明在这里是假的(如果我们一般都在讨论),例如OLS方法是一种封闭的形式,解析解决方案,它被广泛使用。如果你可以使用分析解决方案,它是可以负担得起的计算(因为有时GD只是便宜或更快)然后你可以,甚至应该 - 使用它。

Neverlethles这始终是一些优点和缺点 - 分析解决方案与模型紧密相关,因此如果您计划将来推广/更改模型,实施它们可能效率低下。它们有时效率低于数值近似值,有时候更难实现。如果以上都不是真的 - 你应该使用分析解决方案,人们真的会这样做。

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

  • 您正在考虑模型的变化,概括,添加一些更复杂的术语/正则化/修改
  • 您需要一个通用方法,因为您对代码和模型的未来知之甚少(您只是其中一个开发人员)
  • 分析解决方案计算成本更高,而且需要效率
  • 分析解决方案需要更多内存,而你没有
  • 分析解决方案很难实现,您需要简单易用的代码

答案 2 :(得分:7)

我从https://stats.stackexchange.com/questions/23128/solving-for-regression-parameters-in-closed-form-vs-gradient-descent

看到了一个非常好的答案

基本上,原因是:

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

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

答案 3 :(得分:-1)

其他原因是当你推广线性回归时,梯度下降会立即变得有用,特别是如果问题没有封闭形式的解决方案,例如在Lasso中(它增加了正则化项的总和)权重向量的绝对值)。