转载请注明出处
引题
在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=1∑s(ai1x1+ai2x2+....+ainxn−bi)2 最小。这组数称为此方程的最小二乘解,这一方法叫做最小二乘法。
转换问题: 设 Y=AXY=AXY=AX,则Y为sss维的列向量,上述偏差也可以表示为∣Y−B∣2|Y-B|^2∣Y−B∣2。而最小二乘法就是要找出一组数使得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)Y∈L(a1,a2,,,,,an), 则最小二乘法又可以表述为:求XXX 使得∣Y−B∣2|Y-B|^2∣Y−B∣2最小,即在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)B−Y=B−AX(记作C)
必须垂直于子空间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(B−AX)=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β的值,需要对自变量XXX与 yyy 之间的数量关系进行多次实验观测。假设经过了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}⎩⎪⎪⎪⎪⎨⎪⎪⎪⎪⎧∂β0∂R(β)=0,∂β1∂R(β)=0,...∂βp∂R(β)=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=⎣⎢⎢⎢⎡11⋮1x11x21⋯xn1x12⋯x22⋯⋯xn2⋯x1px2p⋮xnp⎦⎥⎥⎥⎤,β=⎣⎢⎢⎢⎡β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(β)=(Y−Xβ)T(Y−Xβ)
进一步化简,得到 R(β)=YT−2YTXβ+βTXTXβR(\beta)=Y^T-2Y^TX\beta+\beta^TX^TX\betaR(β)=YT−2YTXβ+β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(β)=∂β∂(YTY−2YTXβ+βTXTXβ)=−2YTX+2XTXβ
即YTX=XTXββ=(XTX)−1XTYY^TX=X^TX\beta\\
\beta = (X^TX)^{-1}X^TYYTX=XTXββ=(XTX)−1XTY
周志华《机器学习》
《机器学习》与数理统计上的计算过程相似,这里不多加赘述。

1263

被折叠的 条评论
为什么被折叠?



