线性代数拾遗(6)—— 向量空间投影与投影矩阵

  • 参考:麻省理工线性代数
  • 阅读本文前请先了解矩阵四个基本子空间,参考:线性代数拾遗(5) —— 矩阵的四个基本子空间

文章目录

  • 1. 向量投影到一维空间(向量间投影)
  • 2. 向量投影到多维空间
    • 2.1 计算方法
    • 2.2 意义

1. 向量投影到一维空间(向量间投影)

  • 考察二维平面投影,如下将向量 b \pmb{b} bbb 投影到向量 a \pmb{a} aaa 方向,得到 a \pmb{a} aaa 的子空间中的向量 p \pmb{p} ppp,假设是 a \pmb{a} aaa x x x
    线性代数拾遗(6)—— 向量空间投影与投影矩阵_第1张图片

    如图可见 b − p \pmb{b-p} bpbpbp 可以衡量 a , b \pmb{a,b} a,ba,ba,b 间的误差,它与向量 a \pmb{a} aaa 正交,內积为 0,即有
           a ⊤ ( b − p ) = a ⊤ ( b − x a ) = 0 ⇒ x = a ⊤ b a ⊤ a ⇒ p = a x = a a ⊤ b a ⊤ a = ( a a ⊤ a ⊤ a ) b \begin{aligned} &\space\space\space\space\space\space\pmb{a^\top}(\pmb{b-p}) = \pmb{a^\top}(\pmb{b}-x\pmb{a}) = \pmb{0}\\ &\Rightarrow x = \frac{\pmb{a^\top b}}{\pmb{a^\top a}} \\ &\Rightarrow \pmb{p} = \pmb{a}x = \pmb{a} \frac{\pmb{a^\top b}}{\pmb{a^\top a}} = ( \frac{\pmb{aa^\top }}{\pmb{a^\top a}}) \pmb{b} \end{aligned}       aaa(bpbpbp)=aaa(bbbxaaa)=000x=aaaaaaabababppp=aaax=aaaaaaaaaababab=(aaaaaaaaaaaa)bbb 这时,我们把 a a ⊤ a ⊤ a \frac{\mathbf{aa^\top }}{\mathbf{a^\top a}} aaaa 称为 投影矩阵,记为 P \pmb{P} PPP,用它左乘原始向量 b \pmb{b} bbb 就得到投影向量 p \pmb{p} ppp,即 P b = p \pmb{Pb} = \pmb{p} PbPbPb=ppp

  • 两种特殊情况

    1. b \pmb{b} bbb a \pmb{a} aaa 平行,有 P b = b \pmb{Pb} = \pmb{b} PbPbPb=bbb
    2. b \pmb{b} bbb a \pmb{a} aaa 正交,有 P b = 0 \pmb{Pb} = \pmb{0} PbPbPb=000

    二维空间中,平行和正交于向量 a \pmb{a} aaa 的两个向量构成一组基,可以线性表出任意向量,投影本质就是保留平行部分而消除正交部分

  • 研究投影矩阵 P = a a ⊤ a ⊤ a \pmb{P}=\frac{\mathbf{aa^\top }}{\mathbf{a^\top a}} PPP=aaaa 性质

    1. 分子 a ⊤ a \mathbf{a^\top a} aa 是向量內积,是个常数,不管它
    2. 分子 a a ⊤ \mathbf{aa^\top } aa,这是个矩阵,显然有 rank ( A ) = 1 \text{rank}(\pmb{A})=1 rank(AAA)=1,其列空间就是 k a k\pmb{a} kaaa,因此用投影矩阵左乘向量会把向量变换到其列空间 k a k\pmb{a} kaaa 中,实现投影

      注:用矩阵左乘一个向量时,相当于对这个矩阵的列向量做线性组合,得到的向量位于矩阵的列空间中

    3. a a ⊤ \mathbf{aa^\top } aa 对称,所以 p \pmb{p} ppp 是对称矩阵, P = P ⊤ \pmb{P} = \pmb{P^\top} PPP=PPP
    4. 重复投影两次,结果不变,即有 P 2 = P \pmb{P}^2 = \pmb{P} PPP2=PPP

      这个也可以简单地展开计算验证

  • 另外提一句, 假设向量 a , b \pmb{a,b} a,ba,ba,b 夹角为 θ \theta θ,常见的向量内积 a ⊤ b = ∣ ∣ b ∣ ∣ ⋅ ∣ ∣ a ∣ ∣ ⋅ c o s ( θ ) \pmb{a}^\top \pmb{b} = ||b||·||a||·cos(\theta) aaabbb=bacos(θ) 计算的就是一个向量的模乘以另一个向量在此向量上投影的模长。如果把其中某一个向量的模长设为1(即变为单位向量),最后再乘以该向量,就得到投影向量,即
    a 投 影 到 单 位 向 量 b 为 : ( a ⊤ b ) b = ( b ⊤ a ) b = ∣ ∣ a ∣ ∣ c o s ( θ ) b , 其 中 ∣ ∣ b ∣ ∣ = 1 b 投 影 到 单 位 向 量 a 为 : ( a ⊤ b ) a = ( b ⊤ a ) a = ∣ ∣ b ∣ ∣ c o s ( θ ) a , 其 中 ∣ ∣ a ∣ ∣ = 1 \pmb{a}投影到单位向量 \pmb{b} 为: (\pmb{a}^\top \pmb{b})\pmb{b}=(\pmb{b}^\top \pmb{a})\pmb{b} = ||\pmb{a}||cos(\theta)\pmb{b},其中 ||\pmb{b}|| = 1\\ \pmb{b}投影到单位向量 \pmb{a} 为: (\pmb{a}^\top \pmb{b})\pmb{a}=(\pmb{b}^\top \pmb{a})\pmb{a}=||\pmb{b}||cos(\theta)\pmb{a},其中 ||\pmb{a}|| = 1 aaabbb(aaabbb)bbb=(bbbaaa)bbb=aaacos(θ)bbbbbb=1bbbaaa(aaabbb)aaa=(bbbaaa)aaa=bbbcos(θ)aaaaaa=1 当投影方向不是单位向量时,增加其模的倒数进行缩放,如上图中的 p = ∣ ∣ b ∣ ∣ c o s ( θ ) a ∣ ∣ a ∣ ∣ \pmb{p} = ||\pmb{b}||cos(\theta)\frac{\mathbf{a}}{||\mathbf{a}||} ppp=bbbcos(θ)aa

2. 向量投影到多维空间

2.1 计算方法

  • 完全和第 1 节中二维情况完全类似,现有矩阵 A \pmb{A} AAA,将向量 b \pmb{b} bbb 投影到 A \pmb{A} AAA 列向量 a 1 , a 2 , . . . , a n \pmb{a}_1,\pmb{a}_2,...,\pmb{a}_n aaa1,aaa2,...,aaan 张成的空间中得到 p \pmb{p} ppp。三维情况示意图如下 线性代数拾遗(6)—— 向量空间投影与投影矩阵_第2张图片
    可见这时仍有 e = b − p \pmb{e} = \pmb{b-p} eee=bpbpbp 可以衡量 b \pmb{b} bbb A \pmb{A} AAA 列空间间的误差,我们希望希望二者正交(也就是希望误差最小化),这意味着 b \pmb{b} bbb A \pmb{A} AAA 的所有列向量正交,內积均为 0;另一方面,这时 p \pmb{p} ppp A \pmb{A} AAA 列空间中,故能用 A \pmb{A} AAA 的列向量线性表示,设 p = A x ^ \pmb{p}=\pmb{A\hat{x}} ppp=Ax^Ax^Ax^,则有
         [ a 1 ⊤ a 2 ⊤ ⋮ a m ⊤ ] ( b − p ) = [ a 1 ⊤ a 2 ⊤ ⋮ a m ⊤ ] ( b − A x ^ ) = [ 0 0 ⋮ 0 ] ⇒ A ⊤ ( b − A x ^ ) = 0 ⇒ x ^ = ( A ⊤ A ) − 1 A ⊤ b ⇒ p = A x ^ = A ( A ⊤ A ) − 1 A ⊤ b \begin{aligned} &\space\space\space\space\begin{bmatrix} \pmb{a}_1^\top \\ \pmb{a}_2^\top \\ \vdots\\ \pmb{a}_m^\top \end{bmatrix} (\pmb{b-p}) = \begin{bmatrix} \pmb{a}_1^\top \\ \pmb{a}_2^\top \\ \vdots\\ \pmb{a}_m^\top \end{bmatrix} (\pmb{b}-\pmb{A}\pmb{\hat{x}}) = \begin{bmatrix} \pmb{0}\\ \pmb{0} \\ \vdots\\ \pmb{0} \end{bmatrix} \\ &\Rightarrow \pmb{A^\top}(\pmb{b-\pmb{A}\hat{x}}) = \pmb{0}\\ &\Rightarrow \pmb{\hat{x}} = (\pmb{A^\top A})^{-1}\pmb{A^\top b} \\ &\Rightarrow \pmb{p} = \pmb{A\hat{x}} = \pmb{A}(\pmb{A^\top A})^{-1}\pmb{A^\top b} \end{aligned}     aaa1aaa2aaam(bpbpbp)=aaa1aaa2aaam(bbbAAAx^x^x^)=000000000AAA(bAAAx^bAAAx^bAAAx^)=000x^x^x^=(AAAAAA)1AbAbAbppp=Ax^Ax^Ax^=AAA(AAAAAA)1AbAbAb 这时,我们把 A ( A ⊤ A ) − 1 A ⊤ \pmb{A}(\pmb{A^\top A})^{-1}\pmb{A^\top} AAA(AAAAAA)1AAA 称为 投影矩阵,记为 P \pmb{P} PPP,用它左乘原始向量 b \pmb{b} bbb 就得到投影向量 p \pmb{p} ppp,即 P b = p \pmb{Pb} = \pmb{p} PbPbPb=ppp

  • 两种特殊情况

    1. b ∈ C ( A ) \pmb{b} \in C(\pmb{A}) bbbC(AAA),有 P b = b \pmb{Pb} = \pmb{b} PbPbPb=bbb

      这时 b = A x \pmb{b} = \pmb{Ax} bbb=AxAxAx A \pmb{A} AAA 的线性组合,有 P b = A ( A ⊤ A ) − 1 A ⊤ A x = A x = b \pmb{Pb} = \pmb{A}(\pmb{A^\top A})^{-1}\pmb{A^\top Ax }= \pmb{Ax}=\pmb{b} PbPbPb=AAA(AAAAAA)1AAxAAxAAx=AxAxAx=bbb

    2. b ⊥ C ( A ) \pmb{b} \perp C(\pmb{A}) bbbC(AAA),即 b ∈ N ( A ⊤ ) \pmb{b} \in N(\pmb{A^\top}) bbbN(AAA),有 P b = 0 \pmb{Pb} = \pmb{0} PbPbPb=000

      这时 A ⊤ b = 0 \pmb{A^\top b} = \pmb{0} AbAbAb=000,有 P b = A ( A ⊤ A ) − 1 A ⊤ x = 0 \pmb{Pb} = \pmb{A}(\pmb{A^\top A})^{-1}\pmb{A^\top x }= \pmb{0} PbPbPb=AAA(AAAAAA)1AxAxAx=000

    m m m 维( A \pmb{A} AAA 列向量尺寸)空间可以分解为 C ( A ) C(\pmb{A}) C(AAA) N ( A ⊤ ) N(\pmb{A^\top}) N(AAA) 的正交直和,因此这两个空间的基放在一起就构成 m m m 维空间的一组基,可以线性表出任意向量,投影本质就是保留 C ( A ) C(\pmb{A}) C(AAA) 中部分而消除 N ( A ⊤ ) N(\pmb{A^\top}) N(AAA) 中部分,可以用子空间关系图如下表示
    线性代数拾遗(6)—— 向量空间投影与投影矩阵_第3张图片
    如图可见,除了上述投影 P b = p \pmb{Pb=p} Pb=pPb=pPb=p b \pmb{b} bbb 投影到 C ( A ) C(\pmb{A}) C(AAA) 中以外,还有另一个投影 ( I − P ) b = e (\pmb{I-P})\pmb{b} = \pmb{e} (IPIPIP)bbb=eee b \pmb{b} bbb 投影到 N ( A ⊤ ) N(\pmb{A^\top}) N(AAA) 中,可见 P \pmb{P} PPP 是投影矩阵时, I − P \pmb{I-P} IPIPIP 也是一个投影矩阵

  • 研究投影矩阵 P = A ( A ⊤ A ) − 1 A ⊤ \pmb{P}=\pmb{A}(\pmb{A^\top A})^{-1}\pmb{A^\top} PPP=AAA(AAAAAA)1AAA 性质

    1. A \pmb{A} AAA 非方阵时, A \pmb{A} AAA 列满秩 ⇔ A ⊤ A \Leftrightarrow \pmb{A^\top A} AAAAAA 可逆,
    2. A \pmb{A} AAA 是可逆方阵时,其中的括号可以打开,这时有 P = I \pmb{P}=\pmb{I} PPP=III,即投影矩阵做的是恒等映射。确实如此,因为 A \pmb{A} AAA 可逆,意味着列满秩,其列空间是整个 n n n 维空间,投影前后都在同一个空间中,那么恒等映射显然是误差最小的
    3. 简单计算即可得到 P \pmb{P} PPP 是对称矩阵,即有 P = P ⊤ \pmb{P} = \pmb{P^\top} PPP=PPP
    4. 重复投影两次,结果不变,即有 P 2 = P \pmb{P}^2 = \pmb{P} PPP2=PPP,也可从代数角度简单计算验证
    5. P \pmb{P} PPP 是投影矩阵时, I − P \pmb{I-P} IPIPIP 也是一个投影矩阵

2.2 意义

  • 现实生活中常有这样的应用:根据一些测量值求解另一些值,比如根据卫星与几个基站的通讯延时测量其位置。这其实就是在解方程,通常一组观测值解出一个结果,为了提高准确性,通常会收集很多数据,这样就联立到得到方程组 A x = b \pmb{Ax} = \pmb{b} AxAxAx=bbb一般情况下样本量远大于未知数个数,即 A m × n \pmb{A}_{m\times n} AAAm×n m > > n m>>n m>>n,这样的超定方程很难有解析解,除非其中含有多达 m − n m-n mn 个无效约束,因为我们没法对非方阵的 A \pmb{A} AAA 求逆来得到 x = A − 1 b \pmb{x} = \pmb{A}^{-1}\pmb{b} xxx=AAA1bbb
  • 这时我们可以不断地去除方程,直到剩下的方程组有解为止,但这会造成数据浪费。另一种更好的方法是找一个和已知数据 “误差最小” 的解,设这个近似解为 x ^ \pmb{\hat{x}} x^x^x^,我们有
    A x ^ = p \pmb{A\hat{x}} = \pmb{p} Ax^Ax^Ax^=ppp 第 1 节中已分析过,我们这时是通过矩阵 A \pmb{A} AAA 左乘,把向量 x ^ \pmb{\hat{x}} x^x^x^ 变换到了 A \pmb{A} AAA 的列空间中得到 p \pmb{p} ppp,为了保证 “误差最小” ,这时 p \pmb{p} ppp 应当是 b \pmb{b} bbb A \pmb{A} AAA 列空间中的投影
  • 一句话说,可以利用空间投影估计无解线性方程组的最小误差解,基于这个原理可以得到最小二乘法

你可能感兴趣的:(#,线性代数,线性代数,子空间,投影矩阵,空间投影,投影)