用线性代数理解 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 就无法获得最佳解。当然,此时我们可以使用伪逆矩阵等方式,获得一个解。

时间: 2024-11-07 16:59:58

用线性代数理解 Normal Equation的相关文章

[ML]简单的Normal Equation对数据点进行线性回归

注明:本文仅作为记录本人的日常学习历程而存在. Normal Equation和上篇介绍的方法相比,简单许多.具体公式见吴恩达老师的coursera视频 1. generate_data用来生成实验中所用到的数据,数据总体分布在斜率为10-30之间随机取值,截距为200-5000之间随机取值的直线上 compute函数用来计算出目标直线参数: import numpy as np import matplotlib.pyplot as plt def compute(X,Y): return (

Normal Equation(正规方程)

Normal Equation Note: [8:00 to 8:44 - The design matrix X (in the bottom right side of the slide) given in the example should have elements x with subscript 1 and superscripts varying from 1 to m because for all m training sets there are only 2 featu

(三)Normal Equation

继续考虑Liner Regression的问题,把它写成如下的矩阵形式,然后即可得到θ的Normal Equation. Normal Equation: θ=(XTX)-1XTy 当X可逆时,(XTX)-1XTy = X-1,(XTX)-1XTy其实就是X的伪逆(Pseudo inverse).这也对应着Xθ = y ,θ = X-1y 考虑特殊情况 XTX 不可逆 解决办法: 1)考虑是否有冗余的特征,例如特征中有平方米,还有平方厘米,这两个特征就是冗余的,解决办法是去掉冗余 2)再有就是n

Linear regression with multiple variables(多特征的线型回归)算法实例_梯度下降解法(Gradient DesentMulti)以及正规方程解法(Normal Equation)

%第一列为 size of House(feet^2),第二列为 number of bedroom,第三列为 price of House 1 2104,3,399900 2 1600,3,329900 3 2400,3,369000 4 1416,2,232000 5 3000,4,539900 6 1985,4,299900 7 1534,3,314900 8 1427,3,198999 9 1380,3,212000 10 1494,3,242500 11 1940,4,239999 1

【转】Derivation of the Normal Equation for linear regression

I was going through the Coursera "Machine Learning" course, and in the section on multivariate linear regression something caught my eye. Andrew Ng presented the Normal Equation as an analytical solution to the linear regression problem with a l

转载:Normal Equation证明及应用

转载:原文地址为http://www.cnblogs.com/elaron/archive/2013/05/20/3088894.html 作者:elar Many Thanks ---------------------------------------------------------------------------------------------------- Normal Equations 的由来 假设我们有m个样本.特征向量的维度为n.因此,可知样本为{(x(1),y(1

机器学习笔记02:多元线性回归、梯度下降和Normal equation

在<机器学习笔记01>中已经讲了关于单变量的线性回归以及梯度下降法.今天这篇文章作为之前的扩展,讨论多变量(特征)的线性回归问题.多变量梯度下降.Normal equation(矩阵方程法),以及其中需要注意的问题. 单元线性回归 首先来回顾一下单变量线性回归的假设函数: Size(feet2) Price($1000) 2104 460 1416 232 1534 315 852 178 - - 我们的假设函数为 hθ(x)=θ0+θ1x 多元线性回归 下面介绍多元线性回归(Linear R

梯度下降算法与Normal equation

Normal equation: Method to solve for θ analytically 正规方程:分析求解θ的方法 对于损失函数 \[J\left( {{\theta _0},{\theta _1},...,{\theta _n}} \right) = \frac{1}{{2m}}\sum\limits_{i = 1}^m {{{\left( {{h_\theta }\left( {{x^{\left( i \right)}}} \right) - {y^{\left( i \r

正规方程(Normal Equation)——对于线性回归问题的一种快速解法

对于某些线性回归问题,正规方程方法可能更加简单高效. 正规方程推导过程如下: 梯度下降法和正规方程的比较: 总结: 只要特征数量并不是特别大,对于线性回归问题正规方程是一个比梯度下降算法更快的替代算法.但是当特征数量非常多的时候或者模型更复杂的时候(比如logistic regression等),正规方程就不再适用了.而梯度下降方法都可以使用.另外,当XTX是奇异矩阵(也称退化矩阵,不可逆)时,正规方程也不能使用,但是这种情况很少会发生(m≤n或者存在有依赖关系的特征).