在线性回归空间中使用梯度下降有什么好处?看起来我们可以用分析方法解决问题(找到最小成本函数的 theta0-n)那么为什么我们仍然想使用梯度下降来做同样的事情呢?谢谢
4 回答
当您使用正规方程解析成本函数时,您必须计算:
其中 X 是您的输入观察矩阵,y 是您的输出向量。此操作的问题是计算 nxn 矩阵的逆矩阵的时间复杂度为 O(n^3),并且随着 n 的增加,它可能需要很长时间才能完成。
当 n 较低(n < 1000 或 n < 10000)时,您可以将正规方程视为计算 theta 的更好选择,但是对于更大的值,梯度下降更快,所以唯一的原因是时间:)
您应该提供有关您的问题的更多详细信息-您到底在问什么-我们是在谈论一维还是多维线性回归?简单的还是通用的?
一般来说,人们为什么使用GD?
- 很容易实现
- 这是一种非常通用的优化技术 - 即使您将模型更改为更通用的模型,您仍然可以使用它
那么解析解呢?好吧,我们确实使用了它们,您的主张在这里完全是错误的(如果我们是笼统地谈论的话),例如OLS方法是一种封闭形式的解析解,它被广泛使用。如果您可以使用分析解决方案,那么它在计算上是负担得起的(因为有时 GD 更便宜或更快)那么您可以,甚至应该 - 使用它。
无论如何,这始终是一些利弊的问题 - 分析解决方案与模型密切相关,因此如果您计划在未来推广/更改模型,那么实施它们可能效率低下。有时它们的效率不如数值近似,有时更难实现。如果以上都不是真的-您应该使用分析解决方案,并且人们确实这样做了。
总而言之,如果出现以下情况,您宁愿使用 GD 而不是分析解决方案:
- 您正在考虑更改模型、概括、添加一些更复杂的术语/正则化/修改
- 您需要一个通用方法,因为您对代码和模型的未来了解不多(您只是开发人员之一)
- 分析解决方案的计算成本更高,您需要效率
- 分析解决方案需要更多内存,而您没有
- 分析解决方案难以实现,您需要简单、简单的代码
我从https://stats.stackexchange.com/questions/23128/solving-for-regression-parameters-in-closed-form-vs-gradient-descent看到了一个很好的答案
基本上,原因是:
1.对于大多数非线性回归问题,没有封闭形式的解决方案。
2.即使在线性回归中(可以使用封闭形式解决方案的少数情况之一),使用该公式也可能不切实际。以下示例显示了这种情况发生的一种方式。
另一个原因是,当您推广线性回归时,梯度下降会立即有用,特别是如果问题没有封闭形式的解决方案,例如在Lasso中(它添加了由权重向量的绝对值之和组成的正则化项)。