数据压缩作业:最佳预测系数求取过程(手写)与最小二乘法总结
最佳预测系数求取过程与最小二分法总结
最佳预测系数求取过程(手写)
最小二乘法总结
介绍
来自 Wikipedia:
最小二乘法(least squares method),又称最小平方法,是一种数学优化方法。它通过最小化误差的平方和寻找数据的最佳函数匹配。
利用最小二乘法可以简便的求得未知的数据,并使得求得的数据与实际数据之间误差的平方和为最小。
“最小二乘法”是对线性方程组,即方程个数比未知数更多的方程组,以回归分析求得近似解的标准方法。在这整个解决方案中,最小二乘法演算为每一方程式的结果中,将残差平方和的总和最小化。
“最小二乘法”是对线性方程组,即方程个数比未知数多的方程组,以回归分析求得近似解的标准方法。在这整个解决方案中,最小二乘法演算为每一方程式的结果残差平方和的总和最小化。其核心思想是求取误差函数并使其最小。
梯度下降法
函数在某点的梯度即为该函数在该点变化最快的方向,梯度下降法也因此称为最速下降法。
梯度下降法的本质为通过迭代求取目标函数最小值
同时,由于梯度还是函数在该点上升最快的方向,梯度下降法用负梯度方向为搜索方向。梯度下降法越接近目标值,步长越小,前进越慢。当函数只存在一个梯度为零的点时,各点梯度指向的点即为该点。但若其存在多个极值点或梯度为零的点时,梯度并不总指向其最低点/最高点,也就是我们想要的点,但我们可以通过此方法来决定函数走向并尽可能降低函数的值。
作为求解无约束优化问题最简单和最古老的方法之一,梯度下降法虽然在现在已经不具有实用性,但是许多有效算法都是以它为基础进行改进和修正而得到的。
牛顿法
牛顿法主要提供了一个针对非线性优化的解决方案。
其原理是利用泰勒公式,在 处泰勒展开到一阶,即 令其等于0,求解得到 ,而在 处 f(x) 实际并不等于0,只能说 作为近似解比 更接近 f(x) = 0 处,然后通过迭代思想不断逼近 f(x) = 0。得到迭代公式:
但需要注意的是,如果最开始的近似解 不是很理想,则可能不能得到理想结果甚至不能得到结果。
在最优化问题的求解中,我们则可以将求 f(x) 极值的问题转化为求 f’(x) = 0 的问题,在极小值估计值附近把 f(x) 泰勒展开到二阶,可以得到与上面类似的迭代公式:
牛顿法与梯度下降法的比较,摘自《梯度下降法,牛顿法,高斯-牛顿迭代法,附代码实现》
从本质上去看,牛顿法是二阶收敛,梯度下降是一阶收敛,所以牛顿法更快。比如你想找一条最短的路径走到一个盆地的最底部,梯度下降法每次只从你当前所处位置选一个坡度最大的方向走一步,牛顿法在选择方向时,不仅会考虑坡度是否够大,还会考虑你走了一步之后,坡度是否会变得更大。所以,可以说牛顿法比梯度下降法看得更远一点,能更快地走到最底部。(牛顿法目光更加长远,所以少走弯路;相对而言,梯度下降法只考虑了局部的最优,没有全局思想。
从几何上说,牛顿法就是用一个二次曲面去拟合你当前所处位置的局部曲面,而梯度下降法是用一个平面去拟合当前的局部曲面,通常情况下,二次曲面的拟合会比平面更好,所以牛顿法选择的下降路径会更符合真实的最优下降路径。如下图是一个最小化一个目标方程的例子,红色曲线是利用牛顿法迭代求解,绿色曲线是利用梯度下降法求解。
高斯-牛顿法
高斯–牛顿迭代法的基本思想是使用泰勒级数展开式去近似地代替非线性回归模型,然后通过多次迭代,多次修正回归系数,使回归系数不断逼近非线性回归模型的最佳回归系数,最后使原模型的残差平方和达到最小