机器学习算法---最小二乘法&&正规方程

转载请注明出处

引题

在Ng机器学习课程上介绍了除梯度下降求最优值的另外一种方法“正规方程”,但是Ng没有给出具体的推导过程。于是,参考多方资料并结合自己的理解,现给出三种方法的推导。

引用:《矩阵分析引论》、《数理统计与多元统计》、《机器学习》

先验知识充能

线性方程组无解

线性方程组分为齐次线性方程组和非齐次线性方程组,前者方程组等式的右边全为0的方程组,后者方程组等式的右边不为0的方程组。如果找不到一组未知数的解满足该方程组,则称该方程组无解。

判断方程组是否无解

高斯消元法
该方法,在本科《线性代数》中都所介绍,将非齐次线性方程组中的系数加上等式右边的数组成一个矩阵(增广矩阵)。使用高斯消元法化简,得到阶梯矩阵。若阶梯矩阵中系数矩阵有一行全为0且等式右边的值不为0,则该方程组无解。
矩阵秩
》》》》》矩阵经过初等变换后的非零行行数或非零列列数。
如果系数矩阵的秩 r ( A ) r(A) r(A)小于增广矩阵的秩 r ( A , b ) r(A,b) r(A,b),则方程组无解。

点到子空间的距离

V V V是欧氏空间,又 α , β ∈ V \alpha,\beta\in V α,βV,则向量 α − β \alpha-\beta αβ的长度 ∣ α − β ∣ |\alpha-\beta| αβ 称为向量 α \alpha α β \beta β的距离。

在初等几何里,点到直线或者平面上所有点的距离以垂线最短,并且欧氏空间的一个指定向量和一个子空间W的各个向量距离也以“垂线最短”。

最小二乘法推导过程

问题定义:设给定无解的线性方程组 A X = B AX=B AX=B,这里 A = ( a i j ) s × n , B = ( b 1 , b 2 , , , , b s ) T , X = ( x 1 , x 2 , , , , , x n ) T A=(a_{ij})_{s\times n},B=(b_1,b_2,,,,b_s)^T, X=(x_1,x_2,,,,,x_n)^T A=(aij)s×n,B=(b1,b2,,,,bs)T,X=(x1,x2,,,,,xn)T,因为这方程组无解,设法找出一组数 x 1 0 , x 2 0 , , , , , x n 0 x_1^0,x_2^0,,,,,x_n^0 x10,x20,,,,,xn0,使得平方误差 δ = ∑ i = 1 s ( a i 1 x 1 + a i 2 x 2 + . . . . + a i n x n − b i ) 2 \delta=\sum_{i=1}^s(a_{i1}x_1+a_{i2}x_2+....+a_{in}x_n-b_i)^2 δ=i=1s(ai1x1+ai2x2+....+ainxnbi)2 最小。这组数称为此方程的最小二乘解,这一方法叫做最小二乘法。

转换问题: Y = A X Y=AX Y=AX,则Y为 s s s维的列向量,上述偏差也可以表示为 ∣ Y − B ∣ 2 |Y-B|^2 YB2。而最小二乘法就是要找出一组数使得Y列向量与B列向量距离最小。

假设: A = ( a 1 , a 2 , , , , a n ) A=(a_1,a_2,,,,a_n) A=(a1,a2,,,,an) a i a_i ai 表示A的第 i i i 列向量。则有 Y = k 1 a 1 + . . . + k n a n Y=k_1a_1+...+k_na_n Y=k1a1+...+knan

显然, Y ∈ L ( a 1 , a 2 , , , , , a n ) Y \in L(a_1,a_2,,,,,a_n) YL(a1,a2,,,,,an), 则最小二乘法又可以表述为: X X X 使得 ∣ Y − B ∣ 2 |Y-B|^2 YB2最小,即在 L ( a 1 , a 2 , , , , , a n ) L(a_1,a_2,,,,,a_n) L(a1,a2,,,,,an)中找到向量 Y Y Y 使得向量 B B B 到它的距离比到 L ( a 1 , a 2 , , , , , a n ) L(a_1,a_2,,,,,a_n) L(a1,a2,,,,,an) 子空间中其他向量的距离都短。(参考上述点到空间的距离理解)

Y Y Y 为所求的向量,则向量
B − Y = B − A X ( 记 作 C ) B-Y = B-AX (记作C) BY=BAXC
必须垂直于子空间 L ( a 1 , a 2 , , , , , a n ) L(a_1,a_2,,,,,a_n) L(a1,a2,,,,,an) ,所以: ( C , a 1 ) = ( C , a 2 ) = . . . . = ( C , a n ) = 0 (C,a_1) = (C,a_2)=....=(C,a_n)=0 (C,a1)=(C,a2)=....=(C,an)=0即可。
即: a 1 C = a 2 C + . . . . + a n C = 0 A T C = 0 A T ( B − A X ) = 0 X = ( A T A ) − 1 A T B a_1C=a_2C+....+a_nC=0\\ A^TC=0\\ A^T(B-AX)=0\\ X=(A^TA)^{-1}A^TB a1C=a2C+....+anC=0ATC=0AT(BAX)=0X=(ATA)1ATB

线性回归函数

问题定义 :因变量 y y y 与自变量 x 1 , x 2 , , , , , x p x_1,x_2,,,,,x_p x1,x2,,,,,xp之间有线性相关关系,即满足多元线性回归模型:
{ y = β 0 + β 1 x 1 + β 2 x 2 + . . . + β p x p + δ E ( δ ) = 0 \begin{cases} y = \beta_0+\beta_1x_1+\beta_2x_2+...+\beta_px_p+\delta\\ E(\delta)=0 \end{cases} {y=β0+β1x1+β2x2+...+βpxp+δE(δ)=0
为了求得 β \beta β的值,需要对自变量 X X X y y y 之间的数量关系进行多次实验观测。假设经过了n次实验,得到了n组观测数据 ( x i 1 , x i 2 , , , , , x i p ; y i ) , i = 1 , 2 , 3 , , , , n (x_{i1},x_{i2},,,,,x_{ip};y_i), i = 1,2,3,,,,n (xi1,xi2,,,,,xip;yi),i=1,2,3,,,,n

多元线性表达式为:
{ y 1 = β 0 + β 1 x 11 + β 2 x 12 + . . . . + β p x 1 p , y 2 = β 0 + β 1 x 21 + β 2 x 22 + . . . . + β p x 2 p , . . . . y n = β 0 + β 1 x n 1 + β 2 x n 2 + . . . . + β p x n p . \begin{cases} y_1 = \beta_0+\beta_1x_{11}+\beta_2x_{12}+....+\beta_px_{1p},\\ y_2 = \beta_0+\beta_1x_{21}+\beta_2x_{22}+....+\beta_px_{2p},\\ ....\\ y_n = \beta_0+\beta_1x_{n1}+\beta_2x_{n2}+....+\beta_px_{np}. \end{cases} y1=β0+β1x11+β2x12+....+βpx1p,y2=β0+β1x21+β2x22+....+βpx2p,....yn=β0+β1xn1+β2xn2+....+βpxnp.

我们希望由此能够的 β \beta β参数,通过计算能够最大程度地拟合因变量y的取值。

假设
残差: 第 i 次实验,因变量的实际观测值 y i y_i yi 与回归计算的差值,称为第 i 次试验观测中的残差。 y i − β 0 − β 1 x i 1 − β 2 x i 2 − . . . − β p x i p y_i -\beta_0-\beta_1x_{i1}-\beta_2x_{i2}-...-\beta_px_{ip} yiβ0β1xi1β2xi2...βpxip

将全部n次试验观测中的残差平方后求和(与最小二乘法中的平方误差之和相同)得: R ( β 0 , β 1 , , , β p , ) = s u m i = 1 n ( y i − β 0 − β 1 x i 1 − β 2 x i 2 − . . . − β p x i p ) 2 R(\beta_0,\beta_1,,,\beta_p,) = sum^n_{i=1}(y_i -\beta_0-\beta_1x_{i1}-\beta_2x_{i2}-...-\beta_px_{ip})^2 R(β0,β1,,,βp,)=sumi=1n(yiβ0β1xi1β2xi2...βpxip)2

问题变为:求残差平方和 R R R 的最小值点 β \beta β, 由多元函数极值点的必要条件可知,需要求解方程组:
{ ∂ R ( β ) ∂ β 0 = 0 , ∂ R ( β ) ∂ β 1 = 0 , . . . ∂ R ( β ) ∂ β p = 0 , \begin{cases} \frac{\partial R(\beta)}{\partial \beta_0}=0,\\ \frac{\partial R(\beta)}{\partial \beta_1}=0,\\ ...\\ \frac{\partial R(\beta)}{\partial \beta_p}=0, \end{cases} β0R(β)=0,β1R(β)=0,...βpR(β)=0,

令:
Y = [ y 1 y 2 . . . y n ] , X = [ 1 x 11 x 12 ⋯ x 1 p 1 x 21 x 22 ⋯ x 2 p ⋮ ⋯ ⋯ ⋮ 1 x n 1 x n 2 ⋯ x n p ] , β = [ β 0 β 1 ⋮ β p ] , δ = [ δ 1 δ 2 ⋮ δ n . ] Y=\begin{bmatrix} y_1\\ y_2\\ ...\\ y_n \end{bmatrix},X=\begin{bmatrix} 1 &x_{11} & x_{12} \cdots &x_{1p}\\ 1 &x_{21} & x_{22} \cdots &x_{2p}\\ \vdots & \cdots &\cdots &\vdots\\ 1 &x_{n1} & x_{n2} \cdots &x_{np} \end{bmatrix}, \beta = \begin{bmatrix} \beta_0\\ \beta_1\\ \vdots\\ \beta_p \end{bmatrix}, \delta = \begin{bmatrix} \delta_1\\ \delta_2\\ \vdots\\ \delta_n. \end{bmatrix} Y=y1y2...yn,X=111x11x21xn1x12x22xn2x1px2pxnp,β=β0β1βp,δ=δ1δ2δn.
其中 X 之所有多出一列1向量,由于 β 0 \beta_0 β0没有 x 0 x_0 x0与之相乘。

则多元线性回归的矩阵表达式为: Y = X β + δ Y=X\beta+\delta Y=Xβ+δ

R ( β ) = ( Y − X β ) T ( Y − X β ) R(\beta)=(Y-X\beta)^T(Y-X\beta) R(β)=(YXβ)T(YXβ)

进一步化简,得到 R ( β ) = Y T − 2 Y T X β + β T X T X β R(\beta)=Y^T-2Y^TX\beta+\beta^TX^TX\beta R(β)=YT2YTXβ+βTXTXβ
其中, Y T X β = = β T X T Y Y^TX\beta==\beta^TX^TY YTXβ==βTXTY 是由于 Y T X β Y^TX\beta YTXβ 的值为一个数值。

∂ R ( β ) ∂ β = ∂ ∂ β ( Y T Y − 2 Y T X β + β T X T X β ) = − 2 Y T X + 2 X T X β \frac{\partial R(\beta)}{\partial \beta} = \frac{\partial}{\partial \beta}(Y^TY-2Y^TX\beta+\beta^TX^TX\beta)\\ =-2Y^TX+2X^TX\beta βR(β)=β(YTY2YTXβ+βTXTXβ)=2YTX+2XTXβ
Y T X = X T X β β = ( X T X ) − 1 X T Y Y^TX=X^TX\beta\\ \beta = (X^TX)^{-1}X^TY YTX=XTXββ=(XTX)1XTY

周志华《机器学习》

《机器学习》与数理统计上的计算过程相似,这里不多加赘述。

你可能感兴趣的:(最小二乘法,正规方程,机器学习)