一、线性预测器最佳预测系数的推导:
二、最小二乘法总结
1、最小二乘法
最小二乘法(又称最小平方法)是一种数学优化技术。它通过最小化误差的平方和寻找数据的最佳函数匹配。利用最小二乘法可以简便地求得未知的数据,并使得这些求得的数据与实际数据之间误差的平方和为最小。最小二乘法还可用于曲线拟合。其他一些优化问题也可通过最小化能量或最大化熵用最小二乘法来表达。
设有一组数 ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x n , y n ) (x_{1},y_{1}),(x_{2},y_{2}),...,(x_{n},y_{n}) (x1,y1),(x2,y2),...,(xn,yn),利用最小二乘为这组数求出一条拟合直线,就可以根据拟合直线求得未知数据 ( x m , y m ) m > n (xm,ym)m>n (xm,ym)m>n;
图中绿线部分之和:
ϕ
=
∑
i
=
1
n
(
k
x
i
+
c
−
y
i
)
2
\phi =\sum^{n}_{i=1} \left( kx_{i}+c-{}y_{i}\right)^{2}
ϕ=i=1∑n(kxi+c−yi)2
求一组k,c值,使得 ϕ \phi ϕ 最小: { ∂ ϕ ∂ c = 0 ∂ ϕ ∂ k = 0 \begin{cases}\frac{\partial \phi }{\partial c} =0&\\ \frac{\partial \phi }{\partial k}=0 &\end{cases} {∂c∂ϕ=0∂k∂ϕ=0,解得 k , c k,c k,c ,求出拟合直线,即可求出之后的未知数据。
2、梯度下降法
梯度下降是迭代法的一种,可以用于求解最小二乘问题(线性和非线性都可以)。在求解机器学习算法的模型参数,即无约束优化问题时,梯度下降( G r a d i e n t D e s c e n t Gradient Descent GradientDescent)是最常采用的方法之一,另一种常用的方法是最小二乘法。在求解损失函数的最小值时,可以通过梯度下降法来一步步的迭代求解,得到最小化的损失函数和模型参数值。反过来,如果我们需要求解损失函数的最大值,这时就需要用梯度上升法来迭代了。在机器学习中,基于基本的梯度下降法发展了两种梯度下降方法,分别为随机梯度下降法和批量梯度下降法。
- 梯度下降法的计算过程就是沿梯度下降的方向求解极(小)值,迭代公式如下:
x k + 1 = x k − α ∇ f ( x k ) x_{k+1} =x_{k}-\alpha \nabla f\left(x_{k}\right) xk+1=xk−α∇f(xk)
- 其中 α \alpha α 为一个接近于0的正数,称为步长(学习率),由人工设定。
- 算法步骤:
输入:目标函数 f(x),步长 α \alpha α,计算精度 ϵ \epsilon ϵ;
输出:f(x)的极小点 x ∗ x^{\ast} x∗;
- 选取初始值 x 0 x_{0} x0;
- 计算 f ( x k ) f\left(x_{k}\right) f(xk),梯度 ∇ f ( x k ) \nabla f\left(x_{k}\right) ∇f(xk);
- 用迭代公式算出 x k + 1 x_{k+1} xk+1,计算 f ( x k + 1 ) f\left(x_{k+1}\right) f(xk+1);
- 当 ∣ ∣ f ( x k + 1 ) − f ( x k ) ∣ ∣ < ϵ ||f\left(x_{k+1}\right) - f\left(x_{k}\right)||< \epsilon ∣∣f(xk+1)−f(xk)∣∣<ϵ或 ∣ ∣ x k + 1 − x k ∣ ∣ < ϵ ||x_{k+1} - x_{k}||< \epsilon ∣∣xk+1−xk∣∣<ϵ时,停止迭代,使 x ∗ = x k + 1 x^{\ast}=x_{k+1} x∗=xk+1;
- 否则,置k=k+1;转2。
- 注意:利用梯度下降法只有在函数为标准凸函数的情况下才能找到全局极小值,否则找到的很有可能只是局部极小值。
3、牛顿法
-
和梯度下降法一样,牛顿法也是寻找导数为0的点,同样是一种迭代法。
-
主要思想是:在现有的极小值估计值的附近对 f ( x ) f(x) f(x)做二阶泰勒展开,进而找到极小点的下一个估计值,反复迭代直到函数的一阶导数小于某个接近0的阀值。
-
对于多元目标函数,迭代公式为:
x k + 1 = x k − H ( x k ) − 1 ∇ f ( x k ) x_{k+1} =x_{k}-H\left(x_{k}\right)^{-1} \nabla f\left(x_{k}\right) xk+1=xk−H(xk)−1∇f(xk) 其中, H = ∇ 2 f ( x 0 ) H=\nabla^{2} f\left(x_{0}\right) H=∇2f(x0),为 H e s s i a n Hessian Hessian矩阵。 -
算法过程与梯度下降法类似
-
牛顿法的缺点:
1、计算量大
2、不能保证目标函数值下降
3、不能保证目标函数值收敛
4、高斯牛顿法
-
高斯牛顿法的基本思想是使用泰勒级数展开式去近似地代替非线性回归模型,然后通过多次迭代,多次修正回归系数,使回归系数不断逼近非线性回归模型的最佳回归系数,最后使原模型的残差平方和达到最小。
-
其直观思想是先选取一个参数向量的参数值β,若函数ft(Xt,β)在β0附近有连续二阶偏导数,则在β0的邻域内可近似地将ft(Xt,β)看作是线性,因而可近似地用线性最小二乘法求解。
-
高斯牛顿法是对牛顿法的一种改进,它采用雅可比矩阵的乘积近似代替牛顿法中的二阶 H e s s i a n Hessian Hessian矩阵,从而省略了求二阶 H e s s i a n Hessian Hessian矩阵的计算。
-
简化后的 H e s s i a n Hessian Hessian矩阵表示如下:
H = 2 ( J T J + O ) H=2(J^{T}J+O) H=2(JTJ+O)
其中,J为雅可比矩阵, O = ∑ i = 1 m r i ∂ 2 r i ∂ β k ∂ β j O=\sum^{m}_{i=1} r_{i}\frac{\partial^{2} r_{i} }{\partial \beta_{k}\partial \beta_{j} } O=∑i=1mri∂βk∂βj∂2ri。 -
若模型拟合程度较好,则 r i r_{i} ri 趋近于0,忽略矩阵 O O O, H e s s i a n Hessian Hessian矩阵可简化为:
H = 2 J T J H=2J^{T}J H=2JTJ -
迭代公式为:
x k + 1 = x k − ( J T J ) − 1 J T r x_{k+1}=x_{k}-(J^{T}J)^{-1}J^{T}r xk+1=xk−(JTJ)−1JTr -
算法过程同上
-
计算量相比牛顿法明显减少