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

转载请注明出处

引题

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

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

先验知识充能

线性方程组无解

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

判断方程组是否无解

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

点到子空间的距离

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

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

最小二乘法推导过程

问题定义:设给定无解的线性方程组AX=BAX=BAX=B,这里A=(aij)s×n,B=(b1,b2,,,,bs)T,X=(x1,x2,,,,,xn)TA=(a_{ij})_{s\times n},B=(b_1,b_2,,,,b_s)^T, X=(x_1,x_2,,,,,x_n)^TA=(aij)s×n,B=(b1,b2,,,,bs)T,X=(x1,x2,,,,,xn)T,因为这方程组无解,设法找出一组数x10,x20,,,,,xn0x_1^0,x_2^0,,,,,x_n^0x10,x20,,,,,xn0,使得平方误差δ=∑i=1s(ai1x1+ai2x2+....+ainxn−bi)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=AXY=AXY=AX,则Y为sss维的列向量,上述偏差也可以表示为∣Y−B∣2|Y-B|^2YB2。而最小二乘法就是要找出一组数使得Y列向量与B列向量距离最小。

假设: A=(a1,a2,,,,an)A=(a_1,a_2,,,,a_n)A=(a1,a2,,,,an)aia_iai 表示A的第 iii 列向量。则有 Y=k1a1+...+knanY=k_1a_1+...+k_na_nY=k1a1+...+knan

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

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

线性回归函数

问题定义 :因变量yyy 与自变量x1,x2,,,,,xpx_1,x_2,,,,,x_px1,x2,,,,,xp之间有线性相关关系,即满足多元线性回归模型:
{y=β0+β1x1+β2x2+...+βpxp+δ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β的值,需要对自变量XXXyyy 之间的数量关系进行多次实验观测。假设经过了n次实验,得到了n组观测数据(xi1,xi2,,,,,xip;yi),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

多元线性表达式为:
{y1=β0+β1x11+β2x12+....+βpx1p,y2=β0+β1x21+β2x22+....+βpx2p,....yn=β0+β1xn1+β2xn2+....+βpxnp.\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 次实验,因变量的实际观测值 yiy_iyi 与回归计算的差值,称为第 i 次试验观测中的残差。yi−β0−β1xi1−β2xi2−...−βpxipy_i -\beta_0-\beta_1x_{i1}-\beta_2x_{i2}-...-\beta_px_{ip}yiβ0β1xi1β2xi2...βpxip

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

问题变为:求残差平方和RRR 的最小值点 β\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=[y1y2...yn],X=[1x11x12⋯x1p1x21x22⋯x2p⋮⋯⋯⋮1xn1xn2⋯xnp],β=[β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没有x0x_0x0与之相乘。

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

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

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

∂R(β)∂β=∂∂β(YTY−2YTXβ+βTXTXβ)=−2YTX+2XTXβ\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β
YTX=XTXββ=(XTX)−1XTYY^TX=X^TX\beta\\ \beta = (X^TX)^{-1}X^TYYTX=XTXββ=(XTX)1XTY

周志华《机器学习》

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值