如果我们可以分析解决梯度下降法线性回归,为什么还要这么做呢

在梯度下降法空间使用线性回归有什么好处?看起来我们可以用分析方法来解决这个问题(找出最小费用函数的 ta0-n) ,那么为什么我们还要用梯度下降法来做同样的事情呢?谢谢

26578 次浏览

你应该提供更多关于你的问题的细节-你到底在问什么-我们是在谈论一个维度还是多个维度的线性回归?简单的还是广义的?

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

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

那么分析解呢?那么,我们 使用它们,你的说法在这里是完全错误的(如果我们一般地谈论) ,例如 OLS方法是一个封闭的形式,分析解,这是广泛使用的。如果您可以使用分析解决方案,那么它在计算上是可以负担得起的(因为有时 GD 只是更便宜或更快) ,那么您可以,甚至应该使用它。

无论如何,这总是一个有利有弊的问题——分析解决方案与模型紧密相连,因此如果您计划在将来推广/更改您的模型,那么实现它们可能效率低下。它们有时比数值近似效率低,有时更难实现。如果以上都不正确——你使用 应该分析解,人们也会这样做,真的。

总而言之,在下列情况下,你宁愿使用 GD 而不是分析解:

  • 您正在考虑对模型进行更改、泛化、添加一些更复杂的术语/正则化/修改
  • 您需要一个泛型方法,因为您不太了解代码和模型的未来(您只是开发人员之一)
  • 解析解的计算量更大,需要更高的效率
  • 分析解决方案需要更多的内存,这是您所不具备的
  • 分析解决方案很难实现,您需要简单的代码

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

enter image description here

其中 X 是输入观测值的矩阵,y 是输出向量。这个运算的问题是计算一个 nxn 矩阵的逆矩阵是 O (n ^ 3)的时间复杂性,随着 n 的增加,它可能需要很长的时间才能完成。

当 n 小于(n < 1000或 n < 10000)时,你可以认为法方程是计算 θ 的更好的选择,但是对于更大的值,梯度下降法要快得多,所以唯一的原因是时间:)

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

基本上,原因是:

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

2.即使在线性回归(少数几种可用封闭形式解决方案的情况之一) ,使用这个公式也可能是不切实际的。下面的示例演示了实现此目的的一种方法。

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