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

作者:迈克没有贝
链接:https://www.zhihu.com/question/20822481/answer/1167190784
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

最小二乘法的定义:对于一个已被证明是凸的二次函数,直接通过另其对各个自变量偏导数=0,得出了n(自变量的个数)个方程,然后解这个n元的方程组,就得出了目标凸函数的最优解析解,当然,通过这个解的过程可以看出,如果该方程列不满秩,那么该方程是没有解的(高中数学知识).还有,如果该方程组的式子(自变量个数)比较多,那么通过解解方程组的计算量是非常大的,及时通过转化成矩阵计算的形式(w=XTX)(-1)X^Ty),由于里面的特征向量X纬度比较大,其与其转置的逆矩阵计算也会非常耗时,因此最小二乘法不适用于特征比较多以及特征向量本身列不满秩的情况下使用

当遇到最小二乘法不适用的场景情况下,梯度下降就出场了:一种采用了近似逼近思想的优化思路,具体实现方式是使用泰勒二阶式逐步逼近目标函数,由于每次只前进一点点,所以计算量比最小二乘法少了很多,适用于训练样本数量比较多或者特征变量比较多的情况,再者,由于梯度下降是通过梯度逼近的思想,所以,即使目标函数不是凸函数(泰勒展开式只要求目标函数是连续可微的就可以,并不要求是凸的,这对那些训练样本列不满秩的场景尤其适用),它也能逐步逼近目标函数,使求得的参数能近似代表真实目标函数的权重值,所以只要训练得当(学习率,迭代次数,掌握一些训练trick),梯度下降其实是比最小二乘法更普适的一种优化方法,这就是它俩的主要区别,当然具体细节的一些区别,可以查看相关使用文档,但是通过本文的讲解,做者以为已经能让你对他们的区别建立直观的印象了,欢迎各位看官阅后评论,谢谢

你可能感兴趣的:(吴恩达机器学习私人笔记,算法,最小二乘法)