【線性代數】從子空間到盲矩陣方程的求解

前言

最近在翻張賢達的矩陣分析書, 看到矩陣方程求解這一塊時,又遇到了老熟人“子空間方法”。之前對這一塊掌握的都不是太熟, 順便結合着網上的一些博客以及MIT的課程, 寫下這篇, 以記錄對子空間的理解。

向量空間與子空間

首先要介紹的就是子空間的基本概念, 那就不可避免地涉及向量空間, 姑且可以形象地認爲這是“父空間”的意思。

向量空間: 該空間對空間內向量的線性組合(相加,數乘)封閉。也就是說如果一個向量集合所組成的空間滿足兩種操作(數乘、相加)且通過這兩種操作及他們之間的線性組合後的向量仍然在這個集合所形成的空間中。

比如 R2R^2 (所有的2維實向量)就是一個向量空間。

子空間: 向量空間的一部分

在這裏插入圖片描述
盜一張圖~整個座標系是R2R^2向量空間的話, 紫色的這條直線就可以看做是一個R2R^2的子空間。

數學定義

V=CnV=\mathbb{C}^n, 代表 nn維的復向量空間。 令S={u1,,um}S=\left\{u_{1}, \cdots, u_{m}\right\}是向量空間VV中的向量子集合,其中mnm\le n。則 u1,,umu_{1}, \cdots, u_{m}的所有線性組合的集合WW稱爲由u1,,umu_{1}, \cdots, u_{m}張成的子空間,即:
W=Span{u1,,um}={uu=a1u1++amum}W=\operatorname{Span}\left\{\boldsymbol{u}_{1}, \cdots, \boldsymbol{u}_{m}\right\}=\left\{\boldsymbol{u} | \boldsymbol{u}=a_{1} \boldsymbol{u}_{1}+\cdots+\boldsymbol{a}_{m} \boldsymbol{u}_{m}\right\}

以上圖爲例, V=R2V=R^2, 當m=1m=1時, S={u1}S=\{u_1\}, 若u1=[1,1]Tu_1=[1, 1]^T, 那麼由SS (就u1u_1一個向量)張成的子空間就是這條紫色直線。 (W={uu=a1u1}W=\{u|u=a_1u_1\})

很容易證明一點, 如果張成集 SS中的某個向量可以被表示爲其他向量的線性組合, 那可以從SS中刪去該向量,仍張成相同的子空間WW。 即該向量是冗餘的。

SS中的冗餘向量全部刪除之後, 剩下的pp個向量必定是線性無關的, 且仍能張成子空間WW, 那麼, 這pp個向量就被稱爲是WW的一組基。

繼續舉個例子說明: 如果S={[10],[01],[11]}S=\{\left[\begin{array}{l}1 \\0\end{array}\right], \left[\begin{array}{l}0 \\1\end{array}\right], \left[\begin{array}{l}1 \\1\end{array}\right]\}, 顯然[11]\left[\begin{array}{l}1 \\1\end{array}\right] 可以表示爲前兩者的加和, 故是冗餘的,刪去。 而S={[10],[01]}S=\{\left[\begin{array}{l}1 \\0\end{array}\right], \left[\begin{array}{l}0 \\1\end{array}\right]\}仍能張成這個子空間(其實就是R2R^2本身),這兩個向量就是一組基。 (也正好是一組標準正交基)

一些定理與定義:

  • 一組基的向量個數, 被稱爲該子空間WW的維數 dim(W)\mathrm{dim}(W)
  • B={b1,b2,,bn}B=\left\{b_{1}, b_{2}, \cdots, b_{n}\right\}子空間WW的一組基, 則對於其中任意一個向量xx, 都存在一組唯一的標量c1,c2,,cnc_{1}, c_{2}, \cdots, c_{n},有:
    x=c1b1+c2b2++cnbn\boldsymbol{x}=c_{1} \boldsymbol{b}_{1}+c_{2} \boldsymbol{b}_{2}+\cdots+\boldsymbol{c}_{n} \boldsymbol{b}_{n}
    一個更通俗易接收的說法是: 把基裏的每個向量看做空間的一條座標軸, 那麼空間中任何一個向量都可以通過一組座標在這個座標系中表示。

子空間的物理意義

一些數據, 隨機地分佈在R3R^3這樣一個三維空間內。 而我們感興趣的數據, 存在於該空間內的一個平面之上。這個平面就是一個子空間。 那我們就應該單獨找出這個子空間,並在這個子空間上進行進一步的分析。 下圖就是一個子空間方法的闡釋: 左圖是我們研究的三維空間內的數據。 通過svd等方法,我們找到了他們是聚集在一個平面內(子空間), 並找出了這個子空間的一組基(左圖的紅箭頭),右圖就是我們把數據投影到這個2維平面(子空間)上進行分析,就比一開始在整個三維空間內分析,清晰了許多。

在這裏插入圖片描述

列空間

與矩陣密切相關的,共有四個極爲常用的基本子空間: 行空間, 列空間, 零空間和左零空間。
其中, 列空間我認爲是最重要的。

定義: 對於復矩陣A=[a1,a2,,an]Cm×n\boldsymbol{A}=\left[\boldsymbol{a}_{1}, \boldsymbol{a}_{2}, \cdots, \boldsymbol{a}_{n}\right] \in \mathbb{C}^{m \times n}ai\boldsymbol{a}_{i}m×1m\times 1的向量。 其列向量的所有線性組合的集合構成的子空間, 稱爲A\mathbf{A}的列空間:

Col(A)=Span{a1,a2,,an}={yCmy=j=1nαjaj,αjC}\begin{aligned} \operatorname{Col}(\boldsymbol{A}) &=\operatorname{Span}\left\{\boldsymbol{a}_{1}, \boldsymbol{a}_{2}, \cdots, \boldsymbol{a}_{n}\right\} \\ &=\left\{\boldsymbol{y} \in \mathbb{C}^{m} | \boldsymbol{y}=\sum_{j=1}^{n} \alpha_{j} \boldsymbol{a}_{j}, \alpha_{j} \in \mathbb{C}\right\} \end{aligned}

定義非常的簡單。由之前對子空間的定義也可以知道, 可以將矩陣中線性有關的列去掉, 留下線性無關的一組列,就是列空間的一組基。 因此顯然有:
rank(A)=dim[Col(A)]\operatorname{rank}(A)=\operatorname{dim}[\operatorname{Col}(A)]

再介紹A\mathbf{A}的值域(range),便於後續的理解:

Range(A)={yCmAx=y,xCn}\operatorname{Range}(\boldsymbol{A})=\left\{\boldsymbol{y} \in \mathbb{C}^{m} | \boldsymbol{A} \boldsymbol{x}=\boldsymbol{y}, \quad \boldsymbol{x} \in \mathbb{C}^{n}\right\}

x=[α1,...,αn]Tx=[\alpha_1, ..., \alpha_n]^T, 易知:

Range(A)=Col(A)=Span{a1,a2,,an}\operatorname{Range}(\boldsymbol{A})=\operatorname{Col}(\boldsymbol{A})=\operatorname{Span}\left\{\boldsymbol{a}_{1}, \boldsymbol{a}_{2}, \cdots, \boldsymbol{a}_{n}\right\}.

奇異值分解與列空間

介紹了基本概念之後, 現在步入本文的正題:奇異值分解與列空間的關係, 並進一步引導出盲矩陣方程的求解方法。

首先, 對秩爲rr的矩陣A\mathbf{A},我們有truncated SVD分解(只取奇異值非零部分的奇異值分解)如下:
A=UrΣrVrH=i=1rσiuiviH\boldsymbol{A}=\boldsymbol{U}_{r} \boldsymbol{\Sigma}_{r} \boldsymbol{V}_{r}^{\mathrm{H}}=\sum_{i=1}^{r} \sigma_{i} \boldsymbol{u}_{i} \boldsymbol{v}_{i}^{\mathbf{H}}

接下來,將其與A\mathbf{A}的列空間聯繫起來。

根據我們介紹的值域Range(A)\mathrm{Range}(A)的定義, 有:

Range(A)={yCm:y=Ax,xCn}={yCm:y=i=1rσiuiviHx,xCn}={yCm:y=i=1rui(σiviHx),xCn}={yCm:y=i=1rαiui,αi=σiviHxC}=Span{u1,,ur}\begin{aligned} \operatorname{Range}(\boldsymbol{A}) &=\left\{\boldsymbol{y} \in \mathbb{C}^{m}: \boldsymbol{y}=\boldsymbol{A} \boldsymbol{x}, \quad \boldsymbol{x} \in \mathbb{C}^{n}\right\} \\ &=\left\{\boldsymbol{y} \in \mathbb{C}^{m}: \boldsymbol{y}=\sum_{i=1}^{r} \sigma_{i} \boldsymbol{u}_{i} \boldsymbol{v}_{i}^{\mathrm{H}} \boldsymbol{x}, \quad \boldsymbol{x} \in \mathbb{C}^{n}\right\} \\ &=\left\{\boldsymbol{y} \in \mathbb{C}^{m}: \boldsymbol{y}=\sum_{i=1}^{r} \boldsymbol{u}_{i}\left(\sigma_{i} \boldsymbol{v}_{i}^{\mathbf{H}} \boldsymbol{x}\right), \quad \boldsymbol{x} \in \mathbb{C}^{n}\right\} \\ &=\left\{\boldsymbol{y} \in \mathbb{C}^{m}: \boldsymbol{y}=\sum_{i=1}^{r} \alpha_{i} \boldsymbol{u}_{i}, \quad \alpha_{i}=\sigma_{i} \boldsymbol{v}_{i}^{\mathrm{H}} \boldsymbol{x} \in C\right\} \\ &=\operatorname{Span}\left\{\boldsymbol{u}_{1}, \cdots, \boldsymbol{u}_{r}\right\} \end{aligned}

由於值域與列空間的等價關係:
Col(A)=Range(A)=Span{u1,,ur}\operatorname{Col}(\boldsymbol{A})=\operatorname{Range}(\boldsymbol{A})=\operatorname{Span}\left\{\boldsymbol{u}_{1}, \cdots, \boldsymbol{u}_{r}\right\}

可知, u1,,ur\boldsymbol{u}_{1}, \cdots, \boldsymbol{u}_{r}Col(A)\operatorname{Col}(\boldsymbol{A})的一組基。

正交基: 當一組基兩兩互相正交, 被稱爲正交基
標準正交基: 當一組正交基,每個基的模爲1時,被稱爲標準正交基。

由以上定義及SVD分解的性質可知: u1,,ur\boldsymbol{u}_{1}, \cdots, \boldsymbol{u}_{r}歸一化後是一組標準正交基。

盲矩陣求解的子空間法

介紹完概念之後, 我們通過子空間的方法來求解盲矩陣問題:

現有以下方程:
X=AS\boldsymbol{X}=\boldsymbol{A} \boldsymbol{S}

X\mathbf{X}是我們的觀測數據, 我們希望基於此反推出未知的A\mathbf{A}S\mathbf{S}。現假設兩者都是滿秩。

顯然,我們有: Col(X)=Col(A)\operatorname{Col}(\mathbf{X}) = \operatorname{Col}(\mathbf{A}).

證明: 第n列, Xn=A×Sn=ΣSi,nAi\mathbf{X}_n = \mathbf{A} \times \mathbf{S}_n =\Sigma \mathbf{S}_{i,n}\mathbf{A}_i。 所以X\mathbf{X}的每一列都是A\mathbf{A}的列向量的線性組合,即,位於AA的列空間內。

X\mathbf{X}的截尾奇異值分解(truncated SVD)爲:
X=U^Σ^V^H\boldsymbol{X}=\hat{\boldsymbol{U}} \hat{\boldsymbol{\Sigma}} \hat{\boldsymbol{V}}^{\mathbf{H}}

由上面分析的奇異值分解與列空間的關係,可知:

Col(U^)=Col(A)\operatorname{Col}(\hat{\mathbf{U}}) = \operatorname{Col}(\mathbf{A}).

而張成同一個子空間的兩個矩陣,可以有如下的表示

U^=AT\hat{\boldsymbol{U}}=\boldsymbol{A} \boldsymbol{T}

T\mathbf{T}是一個非奇異矩陣。
這個式子很容易理解: 因爲U^\hat{\mathbf{U}}A\mathbf{A}是在同一個列空間內, 也就是說, 可以通過對A\mathbf{A}的列進行線性變換,得到U^\hat{\mathbf{U}}中的每一列。 那麼用線性代數的寫法就是上述的式子了。 而因爲U^\hat{\mathbf{U}}滿秩,又假設了A\mathbf{A}滿秩, 那麼T\mathbf{T}也必然就是一個滿秩的非奇異矩陣了。

根據以上推理, 盲矩陣估計問題可以這樣的步驟下求解:

在這裏插入圖片描述
最簡單的, 如果A\mathbf{A}已知, 那麼T=A1U^T=\mathbf{A}^{-1}\hat{\mathbf{U}}, 那麼最後一步的S=A1U^UT^X=A1X.\mathbf{S}=\mathbf{A}^{-1}\hat{\mathbf{U}}\hat{\mathbf{U}^T}\mathbf{X}=\mathbf{A}^{-1}\mathbf{X}. 也就是最正常的解。

但現在的問題在於, 如果A\mathbf{A}未知呢?

通信中的盲矩陣方程求解

通信問題中,A\mathbf{A}矩陣雖然未知, 但有其特定的結構, 因此可以解出答案。 這裏沒有一般性,簡單截取了張賢達書中的一個例子:

在這裏插入圖片描述
在這裏插入圖片描述
利用A\mathbf{A}的特殊結構,就能求解這個問題了。

結語

本文的核心是理解子空間與列空間的概念,並大概瞭解其如何應用。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章