又称最小平方法,一种优化方法,由高斯,勒让德独立提出,但高斯先发现(1809发表),勒让德先发表(1805发表)
最早是因为意大利天文学家皮亚齐发现的1号小行星“谷神星”转到太阳背后,皮亚齐就观测不到了,失去了谷神星的位置。很多天文学家都试图找到位置却无果。德国数学家高斯(1777-1855)根据皮亚齐的观测数据计算出来谷神星的轨道,后来德国的天文学家奥伯斯在高斯预言的时间和星空领域重新找到了谷神星。1809年高斯在其著作《天体运动论》中发表了最小二乘法,还包括了最小二乘的误差分析。
1805年法国大数学家勒让德(在椭圆积分,数论,几何方面都有重大贡献)发表了《计算彗星轨道的新方法》,其附录描述了最小二乘法。勒让德,拉普拉斯,拉格朗日是18-19世纪法国数学界的三驾马车,被称为“3L”。
当时发生了著名的优先权之争,现在也不清楚谁先发明的。因为勒让德没涉及误差分析,而误差分析在现在的数理统计和机器学习中又很重要,所以一般归功于数学王子高斯。
小结;
用途:给一组数据找一个拟合性最好的最佳匹配的函数;根据拟合函数求未知数据。
思想:最小化误差的平方和,主要是在最小化超定方程组(方程数比未知数多)的残差(观测值与模型提供的拟合值之间的差距)平方和。
本质:找一个直线/超平面,使得所有样本点到它的欧式距离之和最小。
最小二乘方法用于线性回归就是最小二乘参数估计。
它是用线性方法进行回归学习,找到一个预测值。而用线性模型进行分类就要考虑逻辑回归了。
线性模型(可解释性好,是非线性模型的基础)试图学习以下预测函数:
y = w 1 x 1 + w 2 x 2 + ⋯ + w n x n + b y=w_1x_1+w_2x_2+\cdots+w_nx_n+b y=w1x1+w2x2+⋯+wnxn+b
写成向量形式:
y = w T x + b y=\boldsymbol w^T \boldsymbol x+b y=wTx+b
前面说了,最小二乘的思想就是最小化误差的平方和,共m个数据,每个数据都是d维的向量(d个特征), y i y_i yi是数据对应的真实值, w T x i + b \boldsymbol {w^Tx_i}+b wTxi+b是函数的拟合值:
y = [ y 1 y 2 ⋮ y m ] \boldsymbol y=\left[\begin{matrix} y_1\\ y_2\\ \vdots\\ y_m \end{matrix} \right] y=⎣⎢⎢⎢⎡y1y2⋮ym⎦⎥⎥⎥⎤
w = [ w 1 w 2 ⋮ w d ] \boldsymbol w=\left[ \begin{matrix} w_1 \\ w_2 \\ \vdots \\ w_d \end{matrix} \right] w=⎣⎢⎢⎢⎡w1w2⋮wd⎦⎥⎥⎥⎤
X = [ x 1 T x 2 T ⋮ x m T ] = [ x 11 x 12 ⋯ x 1 d x 21 x 22 ⋯ x 2 d ⋮ x m 1 x m 2 ⋯ x m d ] X=\left[ \begin{matrix} x_1^T \\ x_2^T \\ \vdots \\ x_m^T \end{matrix} \right]=\left[ \begin{matrix} x_{11}&x_{12}&\cdots & x_{1d}\\ x_{21}&x_{22}&\cdots & x_{2d} \\ \vdots \\ x_{m1}&x_{m2}&\cdots & x_{md} \end{matrix} \right] X=⎣⎢⎢⎢⎡x1Tx2T⋮xmT⎦⎥⎥⎥⎤=⎣⎢⎢⎢⎡x11x21⋮xm1x12x22xm2⋯⋯⋯x1dx2dxmd⎦⎥⎥⎥⎤
残差的平方和自然就是最小二乘问题对应的能量函数了:
m i n J = ∑ i = 1 m ( y i − w T x i − b ) 2 min \quad J= \sum_{i=1}^m(y_i-\boldsymbol {w^Tx_i}-b)^2 minJ=i=1∑m(yi−wTxi−b)2
我们要找到上述优化问题的解对应的模型:
( w ∗ , b ∗ ) = a r g m i n ∑ i = 1 m ( y i − w T x i − b ) 2 (w^*,b^*)=argmin\sum_{i=1}^m(y_i-\boldsymbol {w^Tx_i}-b)^2 (w∗,b∗)=argmini=1∑m(yi−wTxi−b)2
这是个无约束的优化问题,直接对 w \boldsymbol w w和b求偏导令为0就可以得到闭式解了,很easy。
为了便于高维表示,令 w ^ = [ w ; b ] = [ w 1 w 2 ⋮ w d b ] \hat{w}=[\boldsymbol w;b]=\left[ \begin{matrix} w_1 \\ w_2 \\ \vdots \\ w_d \\ b \end{matrix} \right] w^=[w;b]=⎣⎢⎢⎢⎢⎢⎡w1w2⋮wdb⎦⎥⎥⎥⎥⎥⎤
X ^ = [ X , 1 ] = [ x 1 T 1 x 2 T 1 ⋮ ⋮ x m T 1 ] = [ x 11 x 12 ⋯ x 1 d 1 x 21 x 22 ⋯ x 2 d 1 ⋮ ⋮ ⋮ ⋮ ⋮ x m 1 x m 2 ⋯ x m d 1 ] \hat{X}=[\boldsymbol X,1]=\left[ \begin{matrix} x_1^T&1 \\ x_2^T &1 \\ \vdots & \vdots \\ x_m^T&1 \end{matrix} \right]=\left[ \begin{matrix} x_{11}&x_{12}&\cdots & x_{1d}&1\\ x_{21}&x_{22}&\cdots & x_{2d} &1\\ \vdots & \vdots& \vdots& \vdots& \vdots \\ x_{m1}&x_{m2}&\cdots & x_{md} &1 \end{matrix} \right] X^=[X,1]=⎣⎢⎢⎢⎡x1Tx2T⋮xmT11⋮1⎦⎥⎥⎥⎤=⎣⎢⎢⎢⎡x11x21⋮xm1x12x22⋮xm2⋯⋯⋮⋯x1dx2d⋮xmd11⋮1⎦⎥⎥⎥⎤
高维情况下的能量函数可写为:
m i n J = ( y − X ^ w ^ ) T ( y − X ^ w ^ ) min \quad J=(\boldsymbol y-\hat{X} \hat{\boldsymbol w})^T(\boldsymbol y-\hat{X} \hat{\boldsymbol w}) minJ=(y−X^w^)T(y−X^w^)
无约束的优化问题,直接对 w \boldsymbol w w和b,即 w ^ \hat{w} w^求偏导令为0
{ ∂ J ∂ w = 0 ∂ J ∂ b = 0 \left\{ \begin{aligned} \frac{\partial J}{\partial \boldsymbol w}&=&0\\ \frac{\partial J}{\partial b}&=&0 \end{aligned} \right. ⎩⎪⎪⎨⎪⎪⎧∂w∂J∂b∂J==00
即 ∂ J ∂ w ^ = 0 \frac{\partial J}{\partial \hat{\boldsymbol w}}=0 ∂w^∂J=0
∴ ∂ [ y T y − y T X ^ w ^ − w ^ T X ^ T y + w ^ T X ^ T X ^ w ^ ] ∂ w ^ = 0 \therefore \frac{\partial [\boldsymbol y^T\boldsymbol y-\boldsymbol y^T\hat{X}\hat{\boldsymbol w}-\hat{\boldsymbol w}^T\hat{X}^T\boldsymbol y+\hat{\boldsymbol w}^T\hat{X}^T\hat{X} \hat{\boldsymbol w}]}{\partial \hat{\boldsymbol w}}=0 ∴∂w^∂[yTy−yTX^w^−w^TX^Ty+w^TX^TX^w^]=0
∴ − ( y T X ^ ) T − X ^ T y + 2 X ^ T X ^ w ^ = 0 \therefore -(\boldsymbol y^T\hat{X})^T-\hat{X}^T\boldsymbol y+2\hat{X}^T\hat{X} \hat{\boldsymbol w}=0 ∴−(yTX^)T−X^Ty+2X^TX^w^=0
∴ X ^ T X ^ w ^ = X ^ T y \therefore \hat{X}^T\hat{X} \hat{\boldsymbol w}=\hat{X}^T\boldsymbol y ∴X^TX^w^=X^Ty
若 X ^ T X ^ \hat{X}^T\hat{X} X^TX^可逆/满秩,则有唯一解 w ^ ∗ = ( X ^ T X ^ ) − 1 X ^ T y = X † y \hat{\boldsymbol w}^*=(\hat{X}^T\hat{X})^{-1}\hat{X}^T\boldsymbol y=X^{\dagger}\boldsymbol y w^∗=(X^TX^)−1X^Ty=X†y
其中 X † = ( X ^ T X ^ ) − 1 X ^ T X^{\dagger}=(\hat{X}^T\hat{X})^{-1}\hat{X}^T X†=(X^TX^)−1X^T是伪逆(M-P逆)。
若不满秩(更常见),则有多个解均可使得误差平方和最小。到底选哪个要由学习算法的偏好决定。常见的做法是引入正则项。