一、什么是最小二乘法(LS)?

        最小二乘法是回归问题中的一种数学优化工具,它通过最小化误差的平方和寻找数据的最佳函数匹配。利用最小二乘法可以简便的求得位置的数据,使得求得的数据与真值之间误差的平方和最小。

        最小二乘,广义来说就是机器学习中的平方损失函数:

                                                         L\left ( Y , f(X))\right ) = \left ( Y-f(X)) \right )^{2}

        根据模型函数f 的线性和非线性之分,最小二乘也相应地被分为线性最小二乘法和非线性最小二乘法。

        (参考:最小二乘法

二、解决什么问题?

(1)曲线拟合,即拟合模型参数(如最简单的 y=kx+b)

(2)求解方程组的解(如 AX=Y)

        (参考:什么是最小二乘法?

三、线性最小二乘法特例:求解 y=kx+b 方程的最优参数

        假设有一个样本集合 \left ( x_{i}, y_{i}\right ), i=1, 2, ..., n是 y = kx+b 直线上的 n 个点,试用这个样本集合拟合出这条直线,也就是求解该线性方程的参数解。

        目标函数:

                                                        J\left ( k, b \right )=\sum_{i=1}^{n}\left ( k x_{i}+b-y_{i} \right )^{2}

        利用目标函数在极值点处各个参数的偏导数为 0 的性质,即可解得模型参数:

        (参考:最小二乘法入门(Matlab直线和曲线拟合))        

        (参考:最小二乘法的本质是什么?

四、求解一般的线性最小二乘法

        上述三是线性最小二乘法一个特例,使用的是最简单的代数法解法,下面介绍更方便计算的矩阵法解法。

1. 利用 LS 求模型参数

        如下为线性最小二乘法求解模型参数更一般的形式,其中 d 为参数维度,n 为样本个数。

                                ​​​​​​​        ​​​​​​​        ​​​​​​​        \sum_{j=1}^{d}\left (b_{j}* x_{ij} \right )=y_{i}, i=1, 2, ..., n

        上述一般形式的最小二乘法公式可用矩阵法表示:

        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        XB=Y

        采用 LS 法,问题转换为:

        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        J\left ( B \right )=\left \| XB-Y \right \|

                                                                \hat{B}=argmin\left ( J\left ( B \right ) \right )        

        通过对 J\left ( B \right ) 进行微分求最值,可得:

        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​X^{^{T}}XB=X^{T}Y(称该式为正规方程)

        当X^{T}X 为非奇异矩阵时,B 有唯一解:

        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​​​​​​​​        \hat{B}=\left ( X^{T}X \right )^{-1} X^{T}Y

        (参考:最小二乘法(Least Squares Method))    

2. 利用 LS 求线性方程组

        如下为线性最小二乘法求解线性方程组更一般的形式, 其中 d 为参数维度,n 为样本个数。

        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        y_{j}=\sum_{i=1}^{n}\left ( b_{ij}*x_{i} \right ), j=1, 2, ..., d

        用矩阵方式表示:

        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        BX=Y

        则有:        

        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        X_{LS}=\left ( B^{T}B \right )B^{T}Y

        (参考:一般线性最小二乘法

        (参考:线性回归原理及实现(一):最小二乘法

五、最小二乘法的优缺点

1. 优点

        (1)原理简单,容易实现;

        (2)最优解唯一。

        (参考:最小二乘法不永远是最优的方法

2. 缺点

        (1)需要计算 X^{T}X​​​​​​​ 的逆矩阵,而 X^{T}X 可能非奇异,即它的逆矩阵不存在,这样就没有办法直接用正规方程求解;

        (2)另一方面,当样本特征很大时,求解逆矩阵非常耗时;

        (3)如果拟合函数不是线性函数,那么无法使用最小二乘法,需要通过某种技巧转换为线性才能使用。(这种情况可以使用梯度下降法)

        (参考:最小二乘法(least sqaure method)


知识点

1. 正规方程中 X^{T}X 在哪些情况下不可逆?

        (1)当样本的数量小于参数维度时;

        (2)当 X 不是满秩时(在机器学习里表示:特征矩阵中至少存在某一个特征向量和其他特征线性相关)。

2. X^{T}X 不可逆时,应该怎么解决?

        (1)增加样本量;

        (2)做特征选择,保证特征矩阵满秩;

        (3)正则化。

        (参考:机器学习十大经典算法之最小二乘法

3. 闭式解和数值解

        闭式解:又称解析解,是通过严格的公式推导,计算出来的函数解(有严格的、具体的函数形式);

        数值解:采用某种计算方法,近似计算出来的一个数值,它不是严格的函数解,只是一个近似解。

        (参考:闭式解(解析解))        

        (参考:什么是闭式解

4. 正规方程

        称式 X^{^{T}}XB=X^{T}Y 为正规方程。一般情况下,求解线性回归模型通常使用正规方程的方式。使用正规方程求解,只需要构造模型参数矩阵、自变量矩阵、因变量矩阵,构造出矩阵之后就可以交给计算机进行矩阵运算了。

        正规方程只适用于线性模型,不适用于逻辑回归等其他模型。梯度下降法适用于各种类型的模型。

        (参考:正规方程(标准方程)法---笔记

        (参考:线性回归与最小二乘法

        (参考:正规方程的推导过程

5. 递推/序贯最小二乘法(RLS)

        如果样本数据是一个时序序列,那么随着时间推移,数据会不断的过来,在这种情况下,不停的使用 LS 方法求解是非常消耗资源和内存的,所以需要采用一种递推/序贯的方式实现解的不断更新。

        RLS 目标:从 LS 的解 ​​​​​​​X_{k-1} 推导出 X_{k}=X_{k-1}+X_{delta}​​​​​​​ 的形式,其中 X_{delta} 为修正量。

        (参考:递推最小二乘法推导(RLS)——全网最简单易懂的推导过程

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐