本讲我们介绍将一个矩阵写为 A = U Σ V T A=U\varSigma V^T A=UΣVT,分解的因子分别为正交矩阵、对角矩阵、正交矩阵,与前面几讲的分解不同的是,这两个正交矩阵通常是不同的,而且这个式子可以对任意矩阵使用,不仅限于方阵、可对角化的方阵等。
-
在正定一讲中(第二十八讲)我们知道一个正定矩阵可以分解为 A = Q Λ Q T A=Q\Lambda Q^T A=QΛQT的形式,由于 A A A对称性其特征向量是正交的,且其 Λ \Lambda Λ矩阵中的元素皆为正,这就是正定矩阵的奇异值分解。在这种特殊的分解中,我们只需要一个正交矩阵 Q Q Q就可以使等式成立。
-
在对角化一讲中(第二十二讲),我们知道可对角化的矩阵能够分解为 A = S Λ S T A=S\Lambda S^T A=SΛST的形式,其中 S S S的列向量由 A A A的特征向量组成,但 S S S并不是正交矩阵,所以这不是我们希望得到的奇异值分解。
我们现在要做的是,在 A A A的列空间中找到一组特殊的正交基 v 1 , v 2 , ⋯ , v r v_1,v_2,\cdots,v_r v1,v2,⋯,vr,这组基在 A A A的作用下可以转换为 A A A的行空间中的一组正交基 u 1 , u 2 , ⋯ , u r u_1,u_2,\cdots,u_r u1,u2,⋯,ur。
用矩阵语言描述为 A [ v 1 v 2 ⋯ v r ] = [ σ 1 u 1 σ 2 u 2 ⋯ σ r u r ] = [ u 1 u 2 ⋯ u r ] [ σ 1 σ 2 ⋱ σ n ] A\Bigg[v_1\ v_2\ \cdots\ v_r\Bigg]=\Bigg[\sigma_1u_1\ \sigma_2u_2\ \cdots\ \sigma_ru_r\Bigg]=\Bigg[u_1\ u_2\ \cdots\ u_r\Bigg]\begin{bmatrix}\sigma_1&&&\\&\sigma_2&&\\&&\ddots&\\&&&\sigma_n\end{bmatrix} A[v1 v2 ⋯ vr]=[σ1u1 σ2u2 ⋯ σrur]=[u1 u2 ⋯ ur]⎣⎢⎢⎡σ1σ2⋱σn⎦⎥⎥⎤,即 A v 1 = σ 1 u 1 , A v 2 = σ 2 u 2 , ⋯ , A v r = σ r u r Av_1=\sigma_1u_1,\ Av_2=\sigma_2u_2,\cdots,Av_r=\sigma_ru_r Av1=σ1u1, Av2=σ2u2,⋯,Avr=σrur,这些 σ \sigma σ是缩放因子,表示在转换过程中有拉伸或压缩。而 A A A的左零空间和零空间将体现在 σ \sigma σ的零值中。
另外,如果算上左零、零空间,我们同样可以对左零、零空间取标准正交基,然后写为 A [ v 1 v 2 ⋯ v r v r + 1 ⋯ v m ] = [ u 1 u 2 ⋯ u r u r + 1 ⋯ u n ] [ σ 1 ⋱ σ r [ 0 ] ] A\Bigg[v_1\ v_2\ \cdots\ v_r\ v_{r+1}\ \cdots\ v_m\Bigg]=\Bigg[u_1\ u_2\ \cdots\ u_r\ u_{r+1}\ \cdots \ u_n\Bigg]\left[\begin{array}{c c c|c}\sigma_1&&&\\&\ddots&&\\&&\sigma_r&\\\hline&&&\begin{bmatrix}0\end{bmatrix}\end{array}\right] A[v1 v2 ⋯ vr vr+1 ⋯ vm]=[u1 u2 ⋯ ur ur+1 ⋯ un]⎣⎢⎢⎡σ1⋱σr[0]⎦⎥⎥⎤,此时 U U U是 m × m m\times m m×m正交矩阵, Σ \varSigma Σ是 m × n m\times n m×n对角矩阵, V T V^T VT是 n × n n\times n n×n正交矩阵。
最终可以写为 A V = U Σ AV=U\varSigma AV=UΣ,可以看出这十分类似对角化的公式,矩阵 A A A被转化为对角矩阵 Σ \varSigma Σ,我们也注意到 U , V U,\ V U, V是两组不同的正交基。(在正定的情况下, U , V U,\ V U, V都变成了 Q Q Q。)。进一步可以写作 A = U Σ V − 1 A=U\varSigma V^{-1} A=UΣV−1,因为 V V V是标准正交矩阵所以可以写为 A = U Σ V T A=U\varSigma V^T A=UΣVT
计算一个例子, A = [ 4 4 − 3 3 ] A=\begin{bmatrix}4&4\\-3&3\end{bmatrix} A=[4−343],我们需要找到:
- 行空间 R 2 \mathbb{R}^2 R2的标准正交基 v 1 , v 2 v_1,v_2 v1,v2;
- 列空间 R 2 \mathbb{R}^2 R2的标准正交基 u 1 , u 2 u_1,u_2 u1,u2;
- σ 1 > 0 , σ 2 > 0 \sigma_1>0, \sigma_2>0 σ1>0,σ2>0。
在 A = U Σ V T A=U\varSigma V^T A=UΣVT中有两个标准正交矩阵需要求解,我们希望一次只解一个,如何先将 U U U消去来求 V V V?
这个技巧会经常出现在长方形矩阵中:求 A T A A^TA ATA,这是一个对称正定矩阵(至少是半正定矩阵),于是有 A T A = V Σ T U T U Σ V T A^TA=V\varSigma^TU^TU\varSigma V^T ATA=VΣTUTUΣVT,由于 U U U是标准正交矩阵,所以 U T U = I U^TU=I UTU=I,而 Σ T Σ \varSigma^T\varSigma ΣTΣ是对角线元素为 σ 2 \sigma^2 σ2的对角矩阵。
现在有 A T A = V [ σ 1 σ 2 ⋱ σ n ] V T A^TA=V\begin{bmatrix}\sigma_1&&&\\&\sigma_2&&\\&&\ddots&\\&&&\sigma_n\end{bmatrix}V^T ATA=V⎣⎢⎢⎡σ1σ2⋱σn⎦⎥⎥⎤VT,这个式子中 V V V即是 A T A A^TA ATA的特征向量矩阵而 Σ 2 \varSigma^2 Σ2是其特征值矩阵。
同理,我们只想求 U U U时,用 A A T AA^T AAT消掉 V V V即可。
我们来计算 A T A = [ 4 − 3 4 3 ] [ 4 4 − 3 3 ] = [ 25 7 7 25 ] A^TA=\begin{bmatrix}4&-3\\4&3\end{bmatrix}\begin{bmatrix}4&4\\-3&3\end{bmatrix}=\begin{bmatrix}25&7\\7&25\end{bmatrix} ATA=[44−33][4−343]=[257725],对于简单的矩阵可以直接观察得到特征向量 A T A [ 1 1 ] = 32 [ 1 1 ] , A T A [ 1 − 1 ] = 18 [ 1 − 1 ] A^TA\begin{bmatrix}1\\1\end{bmatrix}=32\begin{bmatrix}1\\1\end{bmatrix},\ A^TA\begin{bmatrix}1\\-1\end{bmatrix}=18\begin{bmatrix}1\\-1\end{bmatrix} ATA[11]=32[11], ATA[1−1]=18[1−1],化为单位向量有 σ 1 = 32 , v 1 = [ 1 2 1 2 ] , σ 2 = 18 , v 2 = [ 1 2 − 1 2 ] \sigma_1=32,\ v_1=\begin{bmatrix}\frac{1}{\sqrt{2}}\\\frac{1}{\sqrt{2}}\end{bmatrix},\ \sigma_2=18,\ v_2=\begin{bmatrix}\frac{1}{\sqrt{2}}\\-\frac{1}{\sqrt{2}}\end{bmatrix} σ1=32, v1=[2121], σ2=18, v2=[21−21]。
到目前为止,我们得到 [ 4 4 − 3 3 ] = [ u ? u ? u ? u ? ] [ 32 0 0 18 ] [ 1 2 1 2 1 2 − 1 2 ] \begin{bmatrix}4&4\\-3&3\end{bmatrix}=\begin{bmatrix}u_?&u_?\\u_?&u_?\end{bmatrix}\begin{bmatrix}\sqrt{32}&0\\0&\sqrt{18}\end{bmatrix}\begin{bmatrix}\frac{1}{\sqrt{2}}&\frac{1}{\sqrt{2}}\\\frac{1}{\sqrt{2}}&-\frac{1}{\sqrt{2}}\end{bmatrix} [4−343]=[u?u?u?u?][320018][212121−21],接下来继续求解 U U U。
A A T = U Σ V T V Σ T U T = U Σ 2 U T AA^T=U\varSigma V^TV\varSigma^TU^T=U\varSigma^2U^T AAT=UΣVTVΣTUT=UΣ2UT,求出 A A T AA^T AAT的特征向量即可得到 U U U, [ 4 4 − 3 3 ] [ 4 − 3 4 3 ] = [ 32 0 0 18 ] \begin{bmatrix}4&4\\-3&3\end{bmatrix}\begin{bmatrix}4&-3\\4&3\end{bmatrix}=\begin{bmatrix}32&0\\0&18\end{bmatrix} [4−343][44−33]=[320018],观察得 A A T [ 1 0 ] = 32 [ 1 0 ] , A A T [ 0 1 ] = 18 [ 0 1 ] AA^T\begin{bmatrix}1\\0\end{bmatrix}=32\begin{bmatrix}1\\0\end{bmatrix},\ AA^T\begin{bmatrix}0\\1\end{bmatrix}=18\begin{bmatrix}0\\1\end{bmatrix} AAT[10]=32[10], AAT[01]=18[01]。但是我们不能直接使用这一组特征向量,因为式子 A V = U Σ AV=U\varSigma AV=UΣ明确告诉我们,一旦 V V V确定下来, U U U也必须取能够满足该式的向量,所以此处 A v 2 = [ 0 − 18 ] = u 2 σ 2 = [ 0 − 1 ] 18 Av_2=\begin{bmatrix}0\\-\sqrt{18}\end{bmatrix}=u_2\sigma_2=\begin{bmatrix}0\\-1\end{bmatrix}\sqrt{18} Av2=[0−18]=u2σ2=[0−1]18,则 u 1 = [ 1 0 ] , u 2 = [ 0 − 1 ] u_1=\begin{bmatrix}1\\0\end{bmatrix},\ u_2=\begin{bmatrix}0\\-1\end{bmatrix} u1=[10], u2=[0−1]。(这个问题在本讲的官方笔记中有详细说明。)
-
补充: A B AB AB的特征值与 B A BA BA的特征值相同,证明来自Are the eigenvalues of AB equal to the eigenvalues of BA? (Citation needed!):
取 λ ≠ 0 \lambda\neq 0 λ=0, v v v是 A B AB AB在特征值取 λ \lambda λ时的的特征向量,则有 B v ≠ 0 Bv\neq 0 Bv=0,并有 λ B v = B ( λ v ) = B ( A B v ) = ( B A ) B v \lambda Bv=B(\lambda v)=B(ABv)=(BA)Bv λBv=B(λv)=B(ABv)=(BA)Bv,所以 B v Bv Bv是 B A BA BA在特征值取同一个 λ \lambda λ时的特征向量。
再取 A B AB AB的特征值 λ = 0 \lambda=0 λ=0,则 0 = det A B = det A det B = det B A 0=\det{AB}=\det{A}\det{B}=\det{BA} 0=detAB=detAdetB=detBA,所以 λ = 0 \lambda=0 λ=0也是 B A BA BA的特征值,得证。
最终,我们得到 [ 4 4 − 3 3 ] = [ 1 0 0 − 1 ] [ 32 0 0 18 ] [ 1 2 1 2 1 2 − 1 2 ] \begin{bmatrix}4&4\\-3&3\end{bmatrix}=\begin{bmatrix}1&0\\0&-1\end{bmatrix}\begin{bmatrix}\sqrt{32}&0\\0&\sqrt{18}\end{bmatrix}\begin{bmatrix}\frac{1}{\sqrt{2}}&\frac{1}{\sqrt{2}}\\\frac{1}{\sqrt{2}}&-\frac{1}{\sqrt{2}}\end{bmatrix} [4−343]=[100−1][320018][212121−21]。
再做一个例子, A = [ 4 3 8 6 ] A=\begin{bmatrix}4&3\\8&6\end{bmatrix} A=[4836],这是个秩一矩阵,有零空间。 A A A的行空间为 [ 4 3 ] \begin{bmatrix}4\\3\end{bmatrix} [43]的倍数, A A A的列空间为 [ 4 8 ] \begin{bmatrix}4\\8\end{bmatrix} [48]的倍数。
- 标准化向量得 v 1 = [ 0.8 0.6 ] , u 1 = 1 5 [ 1 2 ] v_1=\begin{bmatrix}0.8\\0.6\end{bmatrix},\ u_1=\frac{1}{\sqrt{5}}\begin{bmatrix}1\\2\end{bmatrix} v1=[0.80.6], u1=51[12]。
- A T A = [ 4 8 3 6 ] [ 4 3 8 6 ] = [ 80 60 60 45 ] A^TA=\begin{bmatrix}4&8\\3&6\end{bmatrix}\begin{bmatrix}4&3\\8&6\end{bmatrix}=\begin{bmatrix}80&60\\60&45\end{bmatrix} ATA=[4386][4836]=[80606045],由于 A A A是秩一矩阵,则 A T A A^TA ATA也不满秩,所以必有特征值 0 0 0,则另特征值一个由迹可知为 125 125 125。
- 继续求零空间的特征向量,有 v 2 = [ 0.6 − 0 , 8 ] , u 1 = 1 5 [ 2 − 1 ] v_2=\begin{bmatrix}0.6\\-0,8\end{bmatrix},\ u_1=\frac{1}{\sqrt{5}}\begin{bmatrix}2\\-1\end{bmatrix} v2=[0.6−0,8], u1=51[2−1]
最终得到 [ 4 3 8 6 ] = [ 1 2 ‾ 2 − 1 ‾ ] [ 125 0 0 0 ‾ ] [ 0.8 0.6 0.6 ‾ − 0.8 ‾ ] \begin{bmatrix}4&3\\8&6\end{bmatrix}=\begin{bmatrix}1&\underline {2}\\2&\underline{-1}\end{bmatrix}\begin{bmatrix}\sqrt{125}&0\\0&\underline{0}\end{bmatrix}\begin{bmatrix}0.8&0.6\\\underline{0.6}&\underline{-0.8}\end{bmatrix} [4836]=[122−1][125000][0.80.60.6−0.8],其中下划线部分都是与零空间相关的部分。
- v 1 , ⋯ , v r v_1,\ \cdots,\ v_r v1, ⋯, vr是行空间的标准正交基;
- u 1 , ⋯ , u r u_1,\ \cdots,\ u_r u1, ⋯, ur是列空间的标准正交基;
- v r + 1 , ⋯ , v n v_{r+1},\ \cdots,\ v_n vr+1, ⋯, vn是零空间的标准正交基;
- u r + 1 , ⋯ , u m u_{r+1},\ \cdots,\ u_m ur+1, ⋯, um是左零空间的标准正交基。
通过将矩阵写为 A v i = σ i u i Av_i=\sigma_iu_i Avi=σiui形式,将矩阵对角化,向量 u , v u,\ v u, v之间没有耦合, A A A乘以每个 v v v都能得到一个相应的 u u u。