为什么梯度下降,当我们可以parsing线性回归

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

当你用分析方法求解成本函数时,你必须计算:

在这里输入图像说明

其中X是input观察值的matrix,y是输出向量。 这个操作的问题是计算n×nmatrix的倒数的时间复杂度是O(n ^ 3),随着n的增加,需要很长时间才能完成。

当n低时(n <1000或n <10000),可以将正规方程式看作是计算theta的更好select,但对于更大的值, 梯度下降速度要快得多,所以唯一的原因是时间:)

你应该提供更多关于你的问题的细节 – 你究竟在问什么 – 我们是在讨论一个还是多个维度的线性回归? 简单的还是泛化的?

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

  • 这很容易实现
  • 这是非常通用的优化技术 – 即使将模型更改为更一般的模型,也可以使用它

那么分析解决scheme呢? 那么,我们确实使用它们,你的说法在这里是错误的(如果我们正在谈论的话),例如OLS方法是一个封闭的forms,parsingscheme,被广泛使用。 如果你可以使用分析解决scheme,那么它是可以负担得起的计算机(因为有时候GD是更便宜或更快),那么你可以,甚至应该使用它。

Neverlethles这永远是一个利弊的问题 – 分析解决scheme与模型密切相关,所以如果您计划在未来推广/改变您的模型,那么实施它们可能是低效的。 有时他们的数值近似效率较低,有时候更难实施。 如果以上都不是真的 – 你应该使用分析解决scheme,而人们真的这样做。

总而言之,如果出现以下情况,则宁愿将GD用于parsing解

  • 你正在考虑模型的变化,概括,增加一些更复杂的术语/正则化/修改
  • 你需要一个通用的方法,因为你不太了解代码和模型的未来(你只是开发人员之一)
  • parsing解决scheme是更昂贵的计算,而且你需要效率
  • parsing解决scheme需要更多的内存,这是你没有的
  • 分析解决scheme很难实现,您需要简单,简单的代码

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

基本上,原因是:

对于大多数非线性回归问题,没有封闭forms的解决scheme。

即使是线性回归(less数情况下,封闭forms的解决scheme是可用的),使用该公式可能是不切实际的。 以下示例显示了可能发生这种情况的一种方式。

其他原因是当你推广线性回归时,尤其是如果问题没有封闭forms的解决scheme,例如Lasso (其增加了由权重向量的绝对值之和组成的正则化项),则梯度下降立即有用。