什么是投影?
向量上的投影
首先什么是投影,如下图
如果我们想将向量x投影到向量v上,那么这个投影x‾\displaystyle \overline{x}x应该还是在v这个方向上,但只是相差了一个常数倍:
x‾=c∗v
\overline{x} =c^{*} v
x=c∗v
而投影点的一个性质就是这个点是在v的方向上,是到x最短的距离:
∥x‾−x∥⩽∥cv−x∥⟹∥c∗v−x∥⩽∥cv−x∥
\| \overline{x} -x\| \leqslant \| cv-x\| \\
\Longrightarrow \| c^{*} v-x\| \leqslant \| cv-x\|
∥x−x∥⩽∥cv−x∥⟹∥c∗v−x∥⩽∥cv−x∥
因此,我们可以通过最优化这个c,来找到这个投影点:
argminc(∥x‾−x∥)=argminc(∑i(x‾i−xi)2)=argminc(∑i(x‾i−xi)2)=argminc(∑i(cvi−xi)2) this is quadratic in c, so minimum lies when ddc∑i(cvi−xi)2=0ddc∑i(cvi−xi)2=∑i2vi(cvi−xi)=2(∑icvi2−∑ivixi)=2(cvTv−vTx) at minimum, ddc∑i=2(cvTv−vTx)=0⇒vTc∗v−vTx=0c∗vTv=vTxc∗=(vTv)−1vTxx‾=vc∗=v(vTv)−1vTx=Px where P=v(vTv)−1vT
\begin{aligned}
& \arg\min_{c}( \| \overline{x} -x\| )\\
& =\arg\min_{c}\left(\sqrt{\sum _{i}(\overline{x}_{i} -x_{i})^{2}}\right)\\
& =\arg\min_{c}\left(\sum _{i}(\overline{x}_{i} -x_{i})^{2}\right)\\
& =\arg\min_{c}\left(\sum _{i}( cv_{i} -x_{i})^{2}\right)\\
& \text{ this is quadratic in } c,\text{ so minimum lies when }\frac{d}{dc}\sum _{i}( cv_{i} -x_{i})^{2} =0\\
& \frac{d}{dc}\sum _{i}( cv_{i} -x_{i})^{2} =\sum _{i} 2v_{i}( cv_{i} -x_{i})\\
& =2\left(\sum _{i} cv_{i}^{2} -\sum _{i} v_{i} x_{i}\right)\\
& =2\left( cv^{T} v-v^{T} x\right)\\
& \text{ at minimum, }\frac{d}{dc}\sum _{i} =2\left( cv^{T} v-v^{T} x\right) =0\Rightarrow v^{T} c^{*} v-v^{T} x=0\\
& c^{*} v^{T} v=v^{T} x\\
& c^{*} =(v^{T} v)^{-1} v^{T} x\\
& \overline{x} =vc^{*} =v(v^{T} v)^{-1} v^{T} x=Px\ \mathrm{where} \ P=v(v^{T} v)^{-1} v^{T}
\end{aligned}
argcmin(∥x−x∥)=argcmini∑(xi−xi)2=argcmin(i∑(xi−xi)2)=argcmin(i∑(cvi−xi)2) this is quadratic in c, so minimum lies when dcdi∑(cvi−xi)2=0dcdi∑(cvi−xi)2=i∑2vi(cvi−xi)=2(i∑cvi2−i∑vixi)=2(cvTv−vTx) at minimum, dcdi∑=2(cvTv−vTx)=0⇒vTc∗v−vTx=0c∗vTv=vTxc∗=(vTv)−1vTxx=vc∗=v(vTv)−1vTx=Px where P=v(vTv)−1vT
从上面的推导我们可以看出,x‾\displaystyle \overline{x}x其实是可以通过对x作一个线性变换P\displaystyle PP得到的:
x‾=vc∗=v(vTv)−1vTx=Px where P=v(vTv)−1vT
\overline{x} =vc^{*} =v(v^{T} v)^{-1} v^{T} x=Px\ \mathrm{where} \ P=v(v^{T} v)^{-1} v^{T}
x=vc∗=v(vTv)−1vTx=Px where P=v(vTv)−1vT
这个P也称为投影矩阵,而且我们发现这个P跟x是无关的,也就是这个P可以对任意的x作变换从而找到对应的投影向量。
同时,这个投影矩阵还具有性质
PP=v(vTv)−1vTv(vTv)−1vT=v(vTv)−1(vTv)(vTv)−1vT=v(vTv)−1vT=P
\begin{aligned}
PP & =v(v^{T} v)^{-1} v^{T} v(v^{T} v)^{-1} v^{T}\\
& =v(v^{T} v)^{-1}\left( v^{T} v\right) (v^{T} v)^{-1} v^{T}\\
& =v(v^{T} v)^{-1} v^{T} =P
\end{aligned}
PP=v(vTv)−1vTv(vTv)−1vT=v(vTv)−1(vTv)(vTv)−1vT=v(vTv)−1vT=P
这意味着这个投影矩阵Pn=P\displaystyle P^{n} =PPn=P,因此他的特征值必然是1或者0。直觉上,为什么会有这个性质呢?其实很简单,因为P就是将x变成v上的投影,那经过一次变换后的向量就已经在v上了,再投影一次其实还是在原地,所以他必然满足P2=P\displaystyle P^{2} =PP2=P。
而且图1所示,向量x‾−x\displaystyle \overline{x} -xx−x与v\displaystyle vv是成一个垂直关系的,因此
Px−x⊥v
Px-x\bot v
Px−x⊥v
我们一般称x−Px=(I−P)x=r\displaystyle \mathbf{x} -P\mathbf{x} =( I-P)\mathbf{x} =rx−Px=(I−P)x=r为残差,因此,I−P\displaystyle I-PI−P也被称为residual maker matrix。
从垂直这个性质,我们可以用几何的方法来推出同样的P矩阵,首先因为他们垂直,我们有
vT(Px−x)=0
v^{T} (Px-x)=0
vT(Px−x)=0
又因为,Px=cv\displaystyle Px=cvPx=cv,所以
vT(cv−x)=0
v^{T} (cv-x)=0
vT(cv−x)=0
于是
c=(vTv)−1vTx
c=\left( v^{T} v\right)^{-1} v^{T} x
c=(vTv)−1vTx
因此,
Px=v(vTv)−1vTx
Px=v\left( v^{T} v\right)^{-1} v^{T} x
Px=v(vTv)−1vTx
我们同样推出了P的形式。
子空间上的投影
更一般的,如果v\displaystyle vv是一个子空间(或者平面),我们可以将问题推广到将向量xxx 投影到子空间VVV 上。设VVV 是一个子空间,其基向量为{v1,v2,…,vk}\{v_{1} ,v_{2} ,\dotsc ,v_{k} \}{v1,v2,…,vk},我们需要找到投影矩阵PPP,使得PxPxPx 是xxx 在VVV 上的投影,且Px−xPx-xPx−x 与VVV 中的任意向量垂直。
投影PxPxPx 应满足:
Px∈V
Px\in V
Px∈V
即PxPxPx 可以表示为基向量的线性组合:
Px=∑i=1kcivi
Px=\sum _{i=1}^{k} c_{i} v_{i}
Px=i=1∑kcivi
根据垂直条件,Px−xPx-xPx−x 应与VVV 中的任意向量垂直,即:
vjT(Px−x)=0 ∀j=1,2,…,k
v_{j}^{T} (Px-x)=0\ \ \forall j=1,2,\dotsc ,k
vjT(Px−x)=0 ∀j=1,2,…,k
将Px=∑i=1kciviPx=\sum _{i=1}^{k} c_{i} v_{i}Px=∑i=1kcivi 代入:
vjT(∑i=1kcivi−x)=0
v_{j}^{T}\left(\sum _{i=1}^{k} c_{i} v_{i} -x\right) =0
vjT(i=1∑kcivi−x)=0
展开后得到:
∑i=1kci(vjTvi)−vjTx=0
\sum _{i=1}^{k} c_{i} (v_{j}^{T} v_{i} )-v_{j}^{T} x=0
i=1∑kci(vjTvi)−vjTx=0
列出所有的j,这可以写成矩阵形式:
ATAc=ATx
A^{T} Ac=A^{T} x
ATAc=ATx
其中,AAA 是子空间VVV 的基向量组成的矩阵,A=[v1,v2,…,vk]A=[v_{1} ,v_{2} ,\dotsc ,v_{k} ]A=[v1,v2,…,vk],ccc 是系数向量,c=[c1,c2,…,ck]Tc=[c_{1} ,c_{2} ,\dotsc ,c_{k} ]^{T}c=[c1,c2,…,ck]T。
通过解上述方程,可以得到系数向量ccc:
c=(ATA)−1ATx
c=(A^{T} A)^{-1} A^{T} x
c=(ATA)−1ATx
因此,投影PxPxPx 为:
Px=Ac=A(ATA)−1ATx
Px=Ac=A(A^{T} A)^{-1} A^{T} x
Px=Ac=A(ATA)−1ATx
于是,投影矩阵PPP 为:
P=A(ATA)−1AT
P=A(A^{T} A)^{-1} A^{T}
P=A(ATA)−1AT
显然,如果VVV 是单个向量vvv那就会退化为之前的结果,P=v(vTv)−1vT\displaystyle P=v\left( v^{T} v\right)^{-1} v^{T}P=v(vTv)−1vT,而如果VVV 是正交基组成的子空间,则ATA=IA^{T} A=IATA=I,投影矩阵简化为P=AAT\displaystyle P=AA^{T}P=AAT。
Column space上的投影
对于更一般的情况,矩阵A\displaystyle AA的每一列并不一定是由基向量组成,这时候,矩阵A的每一列会张成一个column space,此时,向量x在这个column space上的投影为:
Px=Ac
Px=Ac
Px=Ac
这里P是投影矩阵,A=[v1,v2,…,vk]\displaystyle A=[v_{1} ,v_{2} ,\dotsc ,v_{k} ]A=[v1,v2,…,vk]是任意列组成的矩阵,c=[c1,c2,…,ck]T\displaystyle c=[c_{1} ,c_{2} ,\dotsc ,c_{k} ]^{T}c=[c1,c2,…,ck]T是一个向量,Ac\displaystyle AcAc表示这些列的任意线性组合,因此Ac∈Column space(A)\displaystyle Ac\in \text{Column space}( A)Ac∈Column space(A)是列空间上的元素(因为是由列元素线性组合而成),于是,根据正交性质,Px−x\displaystyle Px-xPx−x应当与A\displaystyle AA的每一列都垂直,因此
AT(Px−x)=0⟹AT(Ac−x)=0⟹c=(ATA)−1ATx
\begin{aligned}
& A^{T} (Px-x)=0\\
\Longrightarrow & A^{T} (Ac-x)=0\\
\Longrightarrow & c=\left( A^{T} A\right)^{-1} A^{T} x
\end{aligned}
⟹⟹AT(Px−x)=0AT(Ac−x)=0c=(ATA)−1ATx
于是,我们有
Px=Ac=A(ATA)−1ATx
Px=Ac=A\left( A^{T} A\right)^{-1} A^{T} x
Px=Ac=A(ATA)−1ATx
因此,P=A(ATA)−1AT\displaystyle P=A\left( A^{T} A\right)^{-1} A^{T}P=A(ATA)−1AT,还是同一个东西。
投影性质
根据投影的性质,x在A上的投影到x的距离,一定是A的列空间中所有元素中离x最近的,因此我们有
∥Px−x∥=∥Ac∗−x∥⩽∥Ac−x∥
\| Px-x\| =\| Ac^{*} -x\| \leqslant \| Ac-x\|
∥Px−x∥=∥Ac∗−x∥⩽∥Ac−x∥
线性回归与投影的联系
令A=[x1,...,xk]∈Rm×k\mathbf{A} =[ x_{1} ,...,x_{k}] \in \mathbb{R}^{m\times k}A=[x1,...,xk]∈Rm×k 表示自变量的设计矩阵,包含mmm 个样本和kkk 个特征,向量y∈Rn\mathbf{y} \in \mathbb{R}^{n}y∈Rn 表示因变量。线性回归的目标是找到系数向量w∈Rk\mathbf{w} \in \mathbb{R}^{k}w∈Rk,使得预测值Aw\mathbf{Aw}Aw 尽可能接近真实值y\mathbf{y}y:
minw ∥y−Aw∥2.
\min_{\mathbf{w}} \ \| \mathbf{y} -A\mathbf{w} \| ^{2} .
wmin ∥y−Aw∥2.
看到这个式子,我们似乎想要找到一个最优的w∗\displaystyle \mathbf{w}^{*}w∗,使得
∥y−Aw∗∥2⩽ ∥y−Aw∥2
\ \| \mathbf{y} -A\mathbf{w}^{*} \| ^{2} \leqslant \ \| \mathbf{y} -A\mathbf{w} \| ^{2}
∥y−Aw∗∥2⩽ ∥y−Aw∥2
有没有发现很熟悉,从投影的角度,我们其实就是在找y\displaystyle \mathbf{y}y在A\displaystyle AA上的投影,从而
∥y−Py∥2=∥y−Aw∗∥2⩽∥y−Aw∥2.
\| \mathbf{y} -P\mathbf{y} \| ^{2} =\| \mathbf{y} -A\mathbf{w}^{*} \| ^{2} \leqslant \| \mathbf{y} -A\mathbf{w} \| ^{2} .
∥y−Py∥2=∥y−Aw∗∥2⩽∥y−Aw∥2.
这里Aw\displaystyle A\mathbf{w}Aw就是列空间A上的任意元素(投影必须落在这个空间上),于是,根据我们前面一节的推导,我们有
w∗=(ATA)−1ATy
\mathbf{w}^{*} =\left( A^{T} A\right)^{-1} A^{T}\mathbf{y}
w∗=(ATA)−1ATy
直觉上,如果A满秩,而且有足够多样本的话,那么A就形成了一个k维列空间,而我们目的就是要找到y在这个k维列空间上的投影,也就是找到这个空间上距离y最近的那个点,本质上就是在搜索最优的k维的w,使得残差最小。