博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
用线性代数理解 Normal Equation
阅读量:5158 次
发布时间:2019-06-13

本文共 2964 字,大约阅读时间需要 9 分钟。

在中,我们通过矩阵求导的方式推导了 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。

当然,如果方程组没有待定的常数项,那么残差均值为 0 的性质就不一定成立。不过对于绝大对数 linear regression 来说,都会有待定的常数项。

来看方差,记投影到列空间的投影矩阵为 $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 就无法获得最佳解。当然,此时我们可以使用伪逆矩阵等方式,获得一个解。

转载于:https://www.cnblogs.com/tsreaper/p/linear-normal-equation.html

你可能感兴趣的文章
摘抄详细的VUE生命周期
查看>>
javascript高级程序设计---js事件思维导图
查看>>
sprint计划会议
查看>>
读《构建之法-软件工程》第四章有感
查看>>
使用 Printf via SWO/SWV 输出调试信息
查看>>
How to properly set clock speed for STM32F4xx devices
查看>>
.net 分布式架构之分布式锁实现(转)
查看>>
PHP 判断几秒前,几分钟,几小时前
查看>>
吴恩达机器学习笔记 —— 3 线性回归回顾
查看>>
nginx安装,反向代理配置
查看>>
if while 条件语句 第六题 改
查看>>
少估了一分, 还算不错
查看>>
PIXI 精灵及文本加载(4)
查看>>
数据结构-第04周作业(单链表)
查看>>
Springboot2.x整合logback slf4j
查看>>
动态加载、移除css文件
查看>>
自建博客
查看>>
问卷调查
查看>>
MUI使用h5+进行召唤各大APP应用市场调用启动的包名和方式
查看>>
Git的使用和配置小白必看都是干货,为您解惑
查看>>