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


72

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


1
这是一个很好的问题。对于讲师来说,直接进入梯度下降法来找到解法是很常见的,当学生记住普通的最小二乘解法不需要优化算法时,这很令人困惑。承认@jabaldonedo在这里提供了什么,可以很快消除混乱。
Merlin

Answers:


107

当使用法线方程来解析成本函数时,您必须计算:

在此处输入图片说明

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

当n低时(n <1000或n <10000),您可以将正则方程视为计算theta的更好选择,但是对于更大的值,Gradient Descent更快得多,所以唯一的原因是时间:)


1
样本或特征的数量是n吗?
Mike Vella

6
n是特征数量。
gavinmh

2
这不一定是瓶颈。为了甚至使用正态方程,我们通常会做出一个非奇异的假设,使得$ n> p $(这里我使用的符号是$ n $是数据点的数量,$ p $是要素的数量)。这意味着瓶颈是$ O(np ^ 2)$形成$ X ^ \ top X $,而不是$ O(p ^ 3)$反转。
Dustin Tran

1
可以在O(n ^ 3)以下执行矩阵求逆... en.wikipedia.org/wiki/…–
fr_andres

1
在阅读@fr_andres评论后,我激动了一秒钟,但是最好的矩阵求逆是O(n ^ 2.4)
Merlin

13

您应该提供有关您的问题的更多详细信息-您到底在问什么-我们是在谈论一个或多个维度的线性回归吗?简单的还是广义的?

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

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

那么分析解决方案呢?好吧,我们确实使用过它们,您的主张在这里只是错误的(如果我们通常在谈论),例如OLS方法是一种封闭形式的解析解决方案,被广泛使用。如果您可以使用分析解决方案,那么它在计算上是可以负担的(因为有时GD更便宜或更快速),那么您可以甚至应该使用它。

不管怎样,这始终是一些利与弊的问题-分析解决方案与模型紧密相关,因此,如果您打算将来对模型进行泛化/更改,则实施解决方案可能会效率低下。它们有时效率不如其数值近似值,有时很难实现。如果以上都不是-您应该使用分析解决方案,而人们确实会这样做。

综上所述,如果满足以下条件,则宁可使用GD over分析解决方案:

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


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.