用线性代数理解 Normal Equation
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用线性代数理解 Normal Equation相关的知识,希望对你有一定的参考价值。
在之前的博客中,我们通过矩阵求导的方式推导了 normal equation。这篇博客中,我们将通过线性代数的角度再次回顾 normal equation。
Normal Equation 解决的问题
Normal equation 要解决的问题如下:给出由 $n$ 个未知数组成的 $m$ 个方程,这个方程组用 $Ax=b$ 表示,我们要求出这个方程组的“最佳解”。
根据线性代数的知识我们知道,这个方程组的解可能有零个、一个或无穷多个。如果这个方程组恰有一个解,那么这个解就是“最佳解”;如果这个方程组有无穷多个解,那么我们随便选择一个解作为最佳解即可。接下来我们重点处理无解的情况。
假设我们找到的解为 $y$,定义 $b-Ay$ 为方程组的“残差”向量,我们认为让残差的“长度”(说得厉害一点就是 L2-norm)最小的 $y = \\hat{x}$ 就是方程组的最优解。如果 $A$ 看作 $X$,$x$ 看作 $\\theta$,$b$ 看作 $Y$,把这个条件展开来,我们会发现,我们要最小化的式子就是 linear regression 里的代价函数。
Normal Equation 的推导
$Ax$ 位于 $A$ 的列空间(以下简称列空间)之中,而 $Ax=b$ 无解告诉我们 $b$ 不在列空间中。$b-Ax$ 是连接 $b$ 与列空间中的一个点 $Ax$ 的向量,所以,我们需要找到在列空间中找到离 $b$ 最近的点,才能使 $b-Ax$ 的长度最小。
根据几何知识我们知道,只有 $b-Ax$ 与列空间垂直(也就是说 $b-Ax$ 位于左零空间中,或者说 $Ax$ 是 $b$ 在列空间中的投影),$Ax$ 才是离 $b$ 最近的点。我们有:$$A^T(b-Ax) = 0$$ 由此得 $$A^TAx = A^Tb$$ 这和我们利用矩阵求导推出的 normal equation 一致。如果 $A^TA$ 可逆,我们有:$$x = \\hat{x} = (A^TA)^{-1}A^Tb$$ 则 $b$ 在列空间中的投影为 $$p = A(A^TA)^{-1}A^Tb$$ 如果 $A^TA$ 不可逆,我们之后再讨论。
Normal Equation 的一些性质
我们来验证 normal equation 的一些性质。
原方程组可解时也能用吗
首先,如果 $b$ 不在列空间中,我们可以用 normal equation 求出最优解;如果 $b$ 在列空间中(即方程组原本就有解),那 normal equation 还能使用吗?
由于 $b$ 在列空间中,我们有 $$b=At$$ 把式子代入 $b$ 在列空间中的投影 $p$ 有 $$p = A(A^TA)^{-1}A^T(At) $$ $$ = A((A^TA)^{-1}(A^TA))t = At = b$$ 的确得到了原本的解。说明 normal equation 在这个情况下仍然可以使用。
残差与方差
我们再来计算一下残差的均值和方差。
含有 $n$ 个未知数,$m$ 个方程的方程组可以这样表示:$$C\\begin{bmatrix} 1 \\\\ 1 \\\\ \\vdots \\\\ 1 \\end{bmatrix} + D_1\\begin{bmatrix} x_{1,1} \\\\ x_{2,1} \\\\ \\vdots \\\\ x_{m,1} \\end{bmatrix} + D_2\\begin{bmatrix} x_{1,2} \\\\ x_{2,2} \\\\ \\vdots \\\\ x_{m,2} \\end{bmatrix} + \\dots + D_n\\begin{bmatrix} x_{1,n} \\\\ x_{2,n} \\\\ \\vdots \\\\ x_{m,n}\\end{bmatrix} = b$$ 显然,$A$ 的列空间中包含了一个全是 1 的向量,而残差向量 $(b-Ax)$ 与列空间正交,当然也与这个全是 1 的向量正交。我们有 $$[1 \\quad 1 \\quad \\dots \\quad 1](b-Ax) = 0$$ 也就是说,残差向量中的每一项加起来为 0,则残差的均值为 0。
来看方差,记投影到列空间的投影矩阵为 $P$,我们有 $Pb = Ax$。我们将残差向量与自身求点积:$$\\sigma^2 = (b-Pb)^T(b-Pb) = b^T(I-P)^T(I-P)b$$ 很容易发现,$I-P$ 也是一个投影矩阵,它将向量投影到左零空间中。根据投影矩阵的性质(设投影矩阵为 $P$,有 $P^T=P$ 以及 $P^2=P$):$$\\sigma^2 = b^T(I-P)b$$ $$ = b^T(I-A(A^TA)^{-1}A^T)b$$ 当 $A$ 与 $b$ 确定后,方差就是一个定值。
也就是说,使用 normal equation 时,需要数据的分布满足误差均值为 0、方差为定值 $\\sigma^2$,这样才会有较好的回归效果。这个分布听起来很像正态分布,虽然也可以是其它满足这个性质的分布,不过正态分布一般是一个较好的选择。
$A^TA$ 不可逆怎么办
在探究这个问题之前,首先证明以下性质:$A^TA$ 与 $A$ 的零空间相同。
若 $Ax = 0$,显然 $A^TAx = A^T(Ax) = 0$ 成立。
若 $A^TAx = 0$,我们有 $x^T(A^TAx) = (Ax)^T(Ax) = 0$,显然 $Ax = 0$。
根据上面的性质,如果 $A^TA$ 不可逆,则 $A$ 不满秩,那么 $Ax = b$ 解的个数就有两种情况:无解和有无穷多解。
$Ax = b$ 有无穷多解
如果 $Ax = b$ 有无穷多解,那么随便选一个解作为最优解即可。
$Ax = b$ 无解
如果 $Ax = b$ 无解,情况就比较复杂。此时碰到的问题是:残差向量的长度随着参数的增加(或减小),而逐渐趋近于最优值,然而最优值是永远达不到的。
举个例子:求两个点 (2, 1) 与 (2, 2) 的最佳回归直线 $y = C + Dx$。
将这个问题转化为方程组,我们有 $$\\begin{bmatrix} 1 & 2 \\\\ 1 & 2 \\end{bmatrix}\\begin{bmatrix} C \\\\ D \\end{bmatrix} = \\begin{bmatrix} 1 \\\\ 2 \\end{bmatrix}$$ 这里的 $A$ 是不满秩的。
我们很容易看出最佳回归直线是 $x = 2$,然而根据解析几何知识我们也知道,$y = C + Dx$ 这个形式不能表示与 $x$ 轴垂直的直线,只能无限增大 $D$(即斜率)来趋近于目标直线。此时 normal equation 就无法获得最佳解。当然,此时我们可以使用伪逆矩阵等方式,获得一个解。
以上是关于用线性代数理解 Normal Equation的主要内容,如果未能解决你的问题,请参考以下文章
正规方程(Normal Equation)——对于线性回归问题的一种快速解法
[ML]简单的Normal Equation对数据点进行线性回归
三十分钟理解:线性插值,双线性插值Bilinear Interpolation算法