最小二乘法和梯度下降法的区别

1个回答

  • 其实,在计算量方面,两者有很大的不同,因而在面对给定的问题时,可以有选择性的根据问题的性质选择两种方法中的一个.

    具体来说,最小二乘法的矩阵公式是 ,这里的 A 是一个矩阵,b 是一个向量.如果有离散数据点,,而想要拟合的方程又大致形如 ,那么,A 就是一个 的矩阵,第 i 行的数据点分别是 ,而 b 则是一个向量,其值为 .而又已知,计算一个矩阵的逆是相当耗费时间的,而且求逆也会存在数值不稳定的情况 (比如对希尔伯特矩阵求逆就几乎是不可能的).因而这样的计算方法有时不值得提倡.

    相比之下,梯度下降法虽然有一些弊端,迭代的次数可能也比较高,但是相对来说计算量并不是特别大.而且,在最小二乘法这个问题上,收敛性有保证.故在大数据量的时候,反而是梯度下降法 (其实应该是其他一些更好的迭代方法) 更加值得被使用.

    当然,其实梯度下降法还有别的其他用处,比如其他找极值问题.另外,牛顿法也是一种不错的方法,迭代收敛速度快于梯度下降法,只是计算代价也比较高.