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

Joh*_*ohn 69 machine-learning linear-regression gradient-descent

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

jab*_*edo 102

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

在此输入图像描述

其中X是输入观测的矩阵,y是输出矢量.该操作的问题是计算n×n矩阵的倒数的时间复杂度,其为O(n ^ 3)并且随着n的增加,可能花费很长时间来完成.

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

  • n是要素的数量. (6认同)
  • 这不一定是瓶颈.为了使用正规方程,我们通常做一个非奇异的假设,以便$ n> p $(这里我使用的是$ n $是数据点数,$ p $是特征数的符号).这意味着瓶颈是$ O(np ^ 2)$来形成$ X ^\top X $,而不是$ O(p ^ 3)$反转. (2认同)

lej*_*lot 13

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

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

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

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

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

总而言之,如果出现以下情况,您宁愿使用GD而非解析解

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


ena*_*naJ 7

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

基本上,原因是:

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

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