天天看点

投影矩阵解释最小二乘及线性回归算法

其实是B站上MIT 15,16 的总结,MIT链接

以下从投影矩阵引出最小二乘

首先是一维投影

一维投影

投影矩阵解释最小二乘及线性回归算法

将向量b投影到向量a上

∵ p在a上

∴ p = x a

e = b - p= b - x a

又∵ e ⊥ a

∴ a •( b - x a)=0

即 aT( b - x a)=0

解得:x = aT b/aT a

p = a x = (a aT /aT a )• b

研究一下投影矩阵的性质:

对称,且(a aT /aT a )^ 2 = (a aT /aT a )

为啥呢?几何上的解释是:我们把向量b通过变换,到a的列空间中,而如果一次列变换已经在列空间中了,则第二次列变换无效。代数上也可以很容易地算出来。取两种特殊情况:1. b垂直于a,则上面会变成a乘以a的垂直向量,容易证得为0。 2. b与a共线,则可化为a,即没有变化

二维投影

投影矩阵解释最小二乘及线性回归算法

将b投影到平面上得向量p,平面中有一组基向量a 1,a 2,e即为误差向量

设a为与p共线的,与b在平面上投影共线的向量(未画出)

**∵ p = **x a = x(a1 + a2 )

**∴ e = b - p = b - **x ( a1 + a2 )

向量表示:A = ( a1 , a2)

又 e ⊥ a

∴ AT(b - A x)= 0

解得:x = (AT A)-1AT b

p = A x = A (AT A)-1AT b

投影矩阵达到的投影作用:

即对于垂直于这个平面(列空间)的向量,在AT的零空间(AT b=0)里,那么对于 p = A (AT A)-1AT b,容易知道AT b=0,所以p=0;

即对于在这个平面(列空间)上的向量,在AT的列空间里(b=Ax)那么对于 p = A (AT A)-1AT b,容易知道AT b=AT Ax,所以p=AX;

实际上要使x有解则AT A必须可逆,下证对于线性无关的矩阵A,AT A可逆

要 证 A T A 可 逆 , 相 当 于 证 A T A x = 0 只 有 0 解 点 乘 x T 则 x T A T A x = 0 ( A x ) T A x = 0 ∴ A x = 0 若 A 线 性 无 关 , 则 x 只 有 0 解 , 即 A T A 可 逆 , 得 证 。 要证A^TA可逆,相当于证A^TAx=0只有0解\\ 点乘x^T则x^TA^TAx=0\\ (Ax)^TAx=0\\ \therefore Ax=0\\ 若 A 线性无关,则x只有0解,即A^TA可逆,得证。 要证ATA可逆,相当于证ATAx=0只有0解点乘xT则xTATAx=0(Ax)TAx=0∴Ax=0若A线性无关,则x只有0解,即ATA可逆,得证。

最小二乘应用投影矩阵

最小二乘用在什么场景呢?

线性拟合问题。

投影矩阵解释最小二乘及线性回归算法

例:

平面上有三个点,我们要找一条直线通过这三个点

法一:从几何上,点到直线的距离来看

设这条直线为:y = k x + b, 代入三个点得到:

{ k + b = 1 2 k + b = 2 3 k + b = 2 \begin{cases} k+b=1\\ 2k+b=2\\ 3k+b=2 \end{cases} ⎩⎪⎨⎪⎧​k+b=12k+b=23k+b=2​

显然不存在这样的直线,我们只能够找到一条直线使得这条线到这三个点的距离平方的和最小,

那么这三个点到这个直线的距离是:

投影矩阵解释最小二乘及线性回归算法

将三个点代入

∣ k x − y + b 1 + k 2 ∣ 要 求 最 小 值 即 求 : ( k − 1 + b ) 2 + ( 2 k − 2 + b ) 2 + ( 3 k − 2 + b ) 2 的 最 小 值 9 − 22 k − 10 b + 12 k b + k 2 + 3 b 2 使 得 对 k 的 求 导 为 0 : − 22 + 12 b + 28 k = 0 使 得 对 b 的 求 导 为 0 : − 10 + 12 k + 6 b = 0 联 立 得 : k = 1 2 , b = 2 3 \left|\frac {kx-y+b}{\sqrt{1+k^2}}\right|\\ 要求最小值即求:\\ (k-1+b)^2+(2k-2+b)^2+(3k-2+b)^2 的最小值\\ 9-22k-10b+12kb+k^2+3b^2\\ 使得对k的求导为0:-22+12b+28k=0\\ 使得对b的求导为0:-10+12k+6b=0\\ 联立得:k=\frac12,b=\frac23\\ ∣∣∣∣​1+k2

​kx−y+b​∣∣∣∣​要求最小值即求:(k−1+b)2+(2k−2+b)2+(3k−2+b)2的最小值9−22k−10b+12kb+k2+3b2使得对k的求导为0:−22+12b+28k=0使得对b的求导为0:−10+12k+6b=0联立得:k=21​,b=32​

意义是:将三个点都作一个误差,使得它们能够在一条直线上,这个误差就是三点到其投影的距离的平方和

法二:从矩阵/空间上来看,将k,b的公式化为矩阵来看

[ 1 1 2 1 3 1 ] [ k b ] = [ 1 2 2 ] 显 然 , 可 以 看 到 左 边 的 矩 阵 秩 3 , 而 解 向 量 秩 为 2 , 即 [ 1 1 ∣ 1 2 1 ∣ 2 3 1 ∣ 2 ] = > [ 1 0 0 0 1 0 0 0 1 ] 行 变 换 后 为 三 阶 , 表 明 解 向 量 不 在 列 空 间 中 , 所 以 无 解 那 么 怎 么 使 它 有 解 呢 ? 可 以 把 系 数 向 量 投 影 到 解 空 间 上 。 运 用 投 影 矩 阵 : A T ( b − A X ) = 0 A T b = A T A X x = ( A T A ) − 1 A T b 这 里 [ k b ] = ( [ 1 2 3 1 1 1 ] [ 1 1 2 1 3 1 ] ) − 1 [ 1 2 3 1 1 1 ] [ 1 2 2 ] x = A T A ∣ A T b = A T ( A ∣ b ) = [ 1 2 3 1 1 1 ] [ 1 1 ∣ 1 2 1 ∣ 2 3 1 ∣ 2 ] = [ 14 6 ∣ 11 6 3 ∣ 5 ] ( 可 以 看 到 就 是 前 面 的 两 个 导 函 数 的 矩 阵 表 达 形 式 ! ) 解 得 k = 1 2 , b = 2 3 \begin{bmatrix} 1 & 1 \\ 2 & 1 \\ 3 & 1 \end{bmatrix} \begin{bmatrix} k\\b \end{bmatrix}= \begin{bmatrix} 1\\2\\2 \end{bmatrix}\\ 显然,可以看到左边的矩阵秩3,而解向量秩为2,即\\ \begin{bmatrix} 1&1&|1\\ 2&1&|2\\ 3&1&|2\\ \end{bmatrix}=>\begin{bmatrix} 1&0&0\\ 0&1&0\\ 0&0&1\\ \end{bmatrix}\\ 行变换后为三阶,表明解向量不在列空间中,所以无解\\ 那么怎么使它有解呢?可以把系数向量投影到解空间上。\\ 运用投影矩阵:A^T(b-AX)=0\\ A^Tb=A^TAX\\ x = (A^TA)^{-1} A^T b\\ 这里 \begin{bmatrix} k\\b \end{bmatrix}=( \begin{bmatrix} 1&2&3\\ 1&1&1\\ \end{bmatrix} \begin{bmatrix} 1&1\\ 2&1\\ 3&1\\ \end{bmatrix})^{-1} \begin{bmatrix} 1&2&3\\ 1&1&1\\ \end{bmatrix} \begin{bmatrix} 1\\2\\2 \end{bmatrix}\\ x=A^TA|A^Tb=A^T(A|b)\\ =\begin{bmatrix} 1&2&3\\ 1&1&1\\ \end{bmatrix} \begin{bmatrix} 1&1&|1\\ 2&1&|2\\ 3&1&|2\\ \end{bmatrix}= \begin{bmatrix} 14&6&|11\\ 6&3&|5\\ \end{bmatrix}\\(可以看到就是前面的两个导函数的矩阵表达形式!) 解得k= \frac12, b=\frac23 \\ ⎣⎡​123​111​⎦⎤​[kb​]=⎣⎡​122​⎦⎤​显然,可以看到左边的矩阵秩3,而解向量秩为2,即⎣⎡​123​111​∣1∣2∣2​⎦⎤​=>⎣⎡​100​010​001​⎦⎤​行变换后为三阶,表明解向量不在列空间中,所以无解那么怎么使它有解呢?可以把系数向量投影到解空间上。运用投影矩阵:AT(b−AX)=0ATb=ATAXx=(ATA)−1ATb这里[kb​]=([11​21​31​]⎣⎡​123​111​⎦⎤​)−1[11​21​31​]⎣⎡​122​⎦⎤​x=ATA∣ATb=AT(A∣b)=[11​21​31​]⎣⎡​123​111​∣1∣2∣2​⎦⎤​=[146​63​∣11∣5​](可以看到就是前面的两个导函数的矩阵表达形式!)解得k=21​,b=32​

这里实质上也是投影,只不过用投影矩阵解决

而我们看到的(Ax-b)= 0无解,但是AT(Ax’-b)=0有解 就是最小二乘的表达,这里的x’是近似解,因为没有精确解。

投影矩阵解释最小二乘及线性回归算法

b向量虽然不在列向量中,但是b的投影向量p在列空间中,所以投影矩阵可以把非空间中的向量分解到该空间,和与之垂直的零空间中

将 k , b 代 入 , 取 x = 1 , 2 , 3 得 到 投 影 向 量 p { k + b = 7 6 2 k + b = 5 3 3 k + b = 13 6 p ( 现 / 投 影 解 集 ) = [ 7 6 5 3 13 6 ] , b ( 原 解 集 ) = [ 1 2 2 ] , e ( 误 差 解 集 ) = [ − 1 6 1 3 − 1 6 ] b = p + e 且 可 以 看 到 p , e 点 积 为 0 , 再 次 印 证 p 在 列 空 间 里 , e 在 零 空 间 里 , 将k,b代入,取x=1,2,3得到投影向量p\\ \begin{cases} k+b=\frac76\\ 2k+b=\frac53\\ 3k+b=\frac{13}6 \end{cases}\\ p(现/投影解集)=\begin{bmatrix} \frac76\\ \frac53\\ \frac{13}6 \end{bmatrix}, b(原解集)=\begin{bmatrix} 1\\2\\2 \end{bmatrix}, e(误差解集)=\begin{bmatrix} -\frac16\\ \frac13\\ -\frac16 \end{bmatrix}\\ b=p+e\\ 且可以看到p,e 点积为0,再次印证p在列空间里,e在零空间里, 将k,b代入,取x=1,2,3得到投影向量p⎩⎪⎨⎪⎧​k+b=67​2k+b=35​3k+b=613​​p(现/投影解集)=⎣⎡​67​35​613​​⎦⎤​,b(原解集)=⎣⎡​122​⎦⎤​,e(误差解集)=⎣⎡​−61​31​−61​​⎦⎤​b=p+e且可以看到p,e点积为0,再次印证p在列空间里,e在零空间里,

继续阅读