线性代数-矩阵分解(Matrix Factorization)

A = L U A = LU A=LU(LU分解)
A = Q R A=QR A=QR(QR分解)
A = X Λ X − 1 A = X\Lambda X^{-1} A=XΛX1 (谱分解)
S = Q Λ Q T S=Q\Lambda Q^T S=QΛQT (正交对角化)
A = U Σ V T A = U\Sigma V^T A=UΣVT(奇异值分解)

1 LU分解

LU分解实际上就是 高斯消元法(Gaussian Elimination) 的矩阵表现形式,其中L指的是下三角矩阵(lower triangular matrix),U指的是一个上三角矩阵(upper triangular matrix)


2 QR分解

QR分解将一个矩阵A,分解成一个正交矩阵Q与上三角矩阵R相乘的形式。可以通过Gram-Schmidt方法构造,先通过Gram-Schmidt构造出正交矩阵Q,然后 R = Q T A R=Q^TA R=QTA,得到R。


3 谱分解(Spectral Decomposition)

所谓的 谱(spectrum) 就是一个矩阵 特征值(eigenvalue) 的集合。那么特征值是什么?特征值是指一个矩阵将一个特殊的向量线性转换的程度,这个特殊的向量称之为特征向量(eigenvector) ,所以对于一个矩阵而言特征向量要比特征值重要一些。

3.1 特征值和特征向量

这里详细分析一下特征值和特征向量。首先从定义来看一下:

给定一个 的矩阵 A A A x x x是非零向量,若存在一个数使 A x = λ x Ax = \lambda x Ax=λx 成立,那么我们称 λ \lambda λ 为矩阵 A A A的特征值,称 x x x为对应于 λ \lambda λ的特征向量。

举个简单的例子,设 A = ( 3 2 2 0 ) A= \left(\begin{array}{ccc}3 & 2 \\ 2 & 0 \\ \end{array} \right) A=(3220),可以验证 u = ( 2 1 ) u = \left( \begin{array}{ccc} 2 \\ 1\\\end{array} \right) u=(21)是对应 λ = 4 \lambda = 4 λ=4的特征向量,而 v = ( 1 2 ) v =\left( \begin{array}{ccc} 1 \\ 2 \\ \end{array} \right) v=(12)不是 A A A的特征向量,即 A u = ( 3 2 2 0 ) ( 2 1 ) = ( 8 4 ) = 4 u Au = \left( \begin{array}{ccc} 3 & 2 \\ 2 & 0 \\ \end{array} \right) \left( \begin{array}{ccc} 2 \\ 1 \\ \end{array} \right) = \left( \begin{array}{ccc} 8 \\ 4 \\ \end{array} \right) =4 u Au=(3220)(21)=(84)=4u成立,而 A v = ( 3 2 2 0 ) ( 1 2 ) = ( 7 2 ) A v = \left( \begin{array}{ccc} 3 & 2 \\ 2 & 0 \\ \end{array} \right) \left( \begin{array}{ccc} 1 \\ 2 \\ \end{array} \right) = \left( \begin{array}{ccc} 7 \\ 2 \\ \end{array} \right) Av=(3220)(12)=(72) ,找不到一个 λ \lambda λ使得等式 A v = λ v Av=\lambda v Av=λv成立。

我们怎么理解这个等式呢,先看左边的向量,所以左边乘法的结果必然是还一个 n × 1 n\times 1 n×1 的向量,也就是说一个 n × 1 n\times1 n×1的向量左乘一个 n × n n\times n n×n的方阵的结果依然在这个 R n \mathbb{R}^n Rn 的向量空间内。接下来我们看一下等式的右边, 4 u 4u 4u 相当于对 u u u线性的“拉长”了,却并未更改方向。这样我们就能够对特征向量有个直观的认识了,就是对于方阵 A A A 而言,在 R n \mathbb{R}^n Rn 的向量空间内有些特殊的向量,这些向量能够在左乘 A A A 之后,只做线性大小的伸缩,而方向上不做改变。站在矩阵 A A A 的视角看,这种向量非常的特殊,针对A而言是独特的,因此我们给它起了个名字叫做特征向量。

借助下面的图我们可以直观的感受一下线性转换(linear tranfromation),可以看出 A u Au Au u u u 的方向是一致的,而 A v Av Av 的方向却与 v v v 不同。

线性代数-矩阵分解(Matrix Factorization)_第1张图片

3.2 谱分解

考虑一个 n × n n\times n n×n 的矩阵 A A A ,令 A A A 的特征向量构成的矩阵为 X = [ x 1 , x 2 , . . . , x n ] X=[x_1, x_2, ..., x_n] X=[x1,x2,...,xn]
X X X 中特征向量对应的特征值构成的对角矩阵为 Λ = ( λ 1 0 . . . 0 0 λ 2 . . . 0 . . . . . . . . . . . . 0 0 . . . λ n ) \Lambda = \left( \begin{array}{ccc} \lambda _1 & 0 &...&0 \\ 0& \lambda _2&...&0 \\ ...&...&...&...\\ 0&0&...&\lambda _n \end{array} \right) Λ=λ10...00λ2...0............00...λn,则有等式 A X = X Λ AX=X\Lambda AX=XΛ 成立,下面检验一下:

A X = A [ x 1 , x 2 , . . . , x n ] = [ A x 1 , A x 2 , . . . , A x n ] = [ λ 1 x 1 , λ 2 x 2 , . . . , λ n x n ] = [ x 1 , x 2 , . . . , x n ] ( λ 1 0 . . . 0 0 λ 2 . . . 0 . . . . . . . . . . . . 0 0 . . . λ n ) = X Λ AX=A[x_1, x_2,...,x_n]=[Ax_1,Ax_2,...,Ax_n]=[\lambda_1x_1,\lambda_2x_2,...,\lambda_nx_n] = [x_1, x_2, ...,x_n] \left( \begin{array}{ccc} \lambda _1 & 0 &...&0 \\ 0& \lambda _2&...&0 \\ ...&...&...&...\\ 0&0&...&\lambda _n \end{array} \right) =X\Lambda AX=A[x1,x2,...,xn]=[Ax1,Ax2,...,Axn]=[λ1x1,λ2x2,...,λnxn]=[x1,x2,...,xn]λ10...00λ2...0............00...λn=XΛ

如果X 可逆(invertible) 的话,即 X X X 的列向量线性无关(linearly independent),上式可化简为 A = X Λ X − 1 A=X\Lambda X^{-1} A=XΛX1

也就是说对于方阵A ,能够对其谱分解的前提是 A A A n n n 个线性无关的特征向量,这样它们构成的矩阵 X X X 才是一个可逆矩阵(invertible matrix)

再考虑矩阵向量乘法,如果已知 A x = λ x Ax = \lambda x Ax=λx ,如何求 A n x A^nx Anx :

A n x = A n − 1 ( A x ) = A n − 1 ( λ x ) = λ A n − 1 x = . . . = λ n x A^nx = A^{n-1}(Ax) =A^{n-1}(\lambda x) = \lambda A^{n-1}x =...= \lambda^{n}x Anx=An1(Ax)=An1(λx)=λAn1x=...=λnx

几何上可以理解使用 A A A n n n 次的线性转换,每次使 x x x 变成自身的 λ \lambda λ 倍。


4 对称矩阵的正交对角化

对称矩阵(symmetric matrix),即 S T = S S^T = S ST=S,下面首先给出,对称矩阵的谱定理(the Spectral Theorem):

一个对称的 n × n n\times n n×n 矩阵 S S S 具有下面性质:

  1. S S S n n n 个实数(real)特征值,包含重复的特征值
  2. 对于每一个特征值,对应特征子空间的维数等于作为特征方程的重数
  3. 特征空间相互正交,这种正交性是在特征向量对应不同特征值的意义下成立的
  4. S S S 可正交对角化(orthogonal diagonalization)。

由于对称矩阵有 n n n 个正交的特征向量,用 Q = [ q 1 , q 2 , . . . , q n ] Q = [q_1,q_2,...,q_n] Q=[q1,q2,...,qn] 表示 n n n 个相互正交的特征向量组成的正交矩阵(orthogonal marrix),对称矩阵 S S S 可以谱分解成 S = Q Λ Q − 1 S = Q\Lambda Q^{-1} S=QΛQ1 ,又因为 Q Q Q 是正交矩阵,即 Q Q T = I QQ^T=I QQT=I ,即 Q T = Q − 1 Q^T=Q^{-1} QT=Q1 S = Q Λ Q T S = Q\Lambda Q^{T} S=QΛQT ,所以将矩阵的逆替换成矩阵的转置使得对称矩阵的分解更加简单。

Q Q Q 是一个正交矩阵,可按列向量展开, Q = [ q 1 , q 2 , . . . , q n ] Q=[q_1, q_2, ..., q_n] Q=[q1,q2,...,qn] ,其中 q i ∈ R n , i = { 1 , 2 , . . . , n } q_i\in \mathbb{R}_n, i=\{1, 2, ... , n\} qiRn,i={1,2,...,n} 是**单位正交(orthonormal)**向量,即 ∣ q i ∣ = q i T q i = 1 , q i T q j = 0 , i ≠ j |q_i| = q_i^T q_i = 1 ,q_i^T q_j = 0, i\ne j qi=qiTqi=1qiTqj=0,i=j.

Λ \Lambda Λ 是一个对角矩阵(diagonal matrix) Λ = ( λ 1 0 . . . 0 0 λ 2 . . . 0 . . . . . . . . . . . . 0 0 . . . λ n ) \Lambda = \left( \begin{array}{ccc} \lambda _1 & 0 &...&0 \\ 0& \lambda _2&...&0 \\ ...&...&...&...\\ 0&0&...&\lambda _n \end{array} \right) Λ=λ10...00λ2...0............00...λn

Q T Q^T QT Q Q Q转置(transpose),因为 Q Q Q 是正交矩阵,所以 Q T = Q − 1 Q^T=Q^{-1} QT=Q1

我们展开一下 S = Q Λ Q T S = Q\Lambda Q^T S=QΛQT :
S = Q Λ Q T = [ q 1 , q 2 , . . . , q n ] ( λ 1 0 . . . 0 0 λ 2 . . . 0 . . . . . . . . . . . . 0 0 . . . λ n ) ( q 1 T q 2 T . . . q n T ) = [ λ 1 q 1 , λ 2 q 2 , . . . , λ n q n ] ( q 1 T q 2 T . . . q n T ) = λ 1 q 1 q 1 T + λ 2 q 2 q 2 T + . . . + λ n q n q n T \begin{aligned} S &=Q\Lambda Q^T \\ &= [q_1, q_2, ..., q_n] \left( \begin{array}{ccc} \lambda _1 & 0 &...&0 \\ 0& \lambda _2&...&0 \\ ...&...&...&...\\ 0&0&...&\lambda _n \end{array} \right) \left( \begin{array}{ccc} q_1^T \\ q_2^T \\ ...\\ q_n^T \end{array} \right) \\ &=[\lambda _1 q_1, \lambda _2 q_2, ..., \lambda _n q_n]\left( \begin{array}{ccc} q_1^T \\ q_2^T \\ ...\\ q_n^T \end{array} \right) \\ &=\lambda _1 q_1 q_1^T+\lambda _2 q_2 q_2^T + ... + \lambda _n q_n q_n^T \end{aligned} S=QΛQT=[q1,q2,...,qn]λ10...00λ2...0............00...λnq1Tq2T...qnT=[λ1q1,λ2q2,...,λnqn]q1Tq2T...qnT=λ1q1q1T+λ2q2q2T+...+λnqnqnT

左右等式同乘一个 S q 1 = λ 1 q 1 q 1 T q 1 + λ 2 q 2 q 2 T q 1 + . . . + λ 1 n q n q n T q 1 Sq_1 = \lambda _1 q_1 q_1^T q_1+\lambda _2 q_2 q_2^T q_1+...+\lambda _1nq_n q_n^T q_1 Sq1=λ1q1q1Tq1+λ2q2q2Tq1+...+λ1nqnqnTq1

因为 q i q_i qi是单位正交向量, q 1 T q 1 = 1 q_1^T q_1=1 q1Tq1=1 q i T q 1 = 0 , i ≠ 1 q_i^T q_1=0, i\ne 1 qiTq1=0,i=1

所以上式化简为 S q 1 = λ 1 q 1 Sq_1=\lambda_1q_1 Sq1=λ1q1

同样方法可得表达式 S q i = λ i q i , i = { 1 , 2 , . . . , n } Sq_i=\lambda_iq_i, i=\{ 1, 2, ..., n\} Sqi=λiqi,i={1,2,...,n},易见 S S S 对应特征值 λ i \lambda_i λi 的特征向量。


5 奇异值分解(Singular Value Decomposition, SVD)

不是所有矩阵都能分解成 A = X Λ X − 1 A=X\Lambda X^{-1} A=XΛX1 的样子,但是我们可以通过一个小的技巧实现对任意 m × n m\times n m×n 的矩阵分解成 A = U Σ V T A=U\Sigma V^{T} A=UΣVT 的样子,这类分解称之为奇异值分解。

首先给出奇异值的定义,令 m × n m\times n m×n 的矩阵,我们可以通过 A T A A^TA ATA来构造一个对称矩阵,这样就能够对其正交对角化了。( 因为 ( A T A ) T = A T A (A^TA)^T=A^TA (ATA)T=ATA ,所以它是一个对称矩阵)

有对称矩阵的谱定理知, A T A A^TA ATA 对称矩阵有 n n n单位正交(orthonormal) 的特征向量,且其特征值都是非负的实数,令特征值从大到小排列,则有 λ 1 ≥ λ 2 ≥ . . . ≥ λ n ≥ 0 \lambda_1 \geq \lambda_2\geq ...\geq\lambda_n\geq0 λ1λ2...λn0 ,对应单位正交的特征向量分别为 q 1 , q 2 , . . . , q n q_1,q_2, ...,q_n q1,q2,...,qn

考虑 ∣ ∣ A q i ∣ ∣ 2 = ( A q i ) T ( A q i ) = q i T A T A q i = q i T λ i q i = λ i q i T q i = λ i ||Aq_i||^2 =(Aq_i)^T(Aq_i)= q_i^TA^TAq_i=q_i^T\lambda_iq_i=\lambda_i q_i^Tq_i=\lambda_i Aqi2=(Aqi)T(Aqi)=qiTATAqi=qiTλiqi=λiqiTqi=λi

这里定义 σ i = ∣ ∣ A q i ∣ ∣ = λ i \sigma_i=||Aq_i||=\sqrt{\lambda_i} σi=Aqi=λi 为矩阵 A A A 的奇异值,可见它是矩阵 A T A A^TA ATA 特征值的平方根,从几何角度理解,奇异值 σ i \sigma_i σi 就是向量 A q i Aq_i Aqi 的长度。

然后看两个对称矩阵, A A T AA^T AAT A T A A^TA ATA,令 A A T = U Λ U T AA^T=U\Lambda U^T AAT=UΛUT,令 A T A = V Λ V T A^TA=V\Lambda V^T ATA=VΛVT,关于 A A A的奇异值分解就要用到上述的两个正交矩阵: U U U V V V,下面演示一下为什么 A A A可以分解成 A = U Σ V T A=U\Sigma V^{T} A=UΣVT
A T A = V Λ V T = V ( Σ T Σ ) V T = V Σ T ( U U T ) Σ V T = V Σ T U U T Σ V T = ( U T Σ V T ) T U T Σ V T A^TA = V\Lambda V^T = V(\Sigma^T\Sigma)V^T = V\Sigma^T (U U^T)\Sigma V^T = V\Sigma^T U U^T\Sigma V^T = {(U^T\Sigma V^T)}^TU^T\Sigma V^T ATA=VΛVT=V(ΣTΣ)VT=VΣT(UUT)ΣVT=VΣTUUTΣVT=(UTΣVT)TUTΣVT

A = U Σ V T A=U\Sigma V^{T} A=UΣVT,变换一下得 A V = U Σ AV=U\Sigma AV=UΣ,展开如下(其中 r r r A A A的rank):
A ⋅ v 1 = σ 1 u 1 A ⋅ v 2 = σ 2 u 2 . . . . . . A ⋅ v r = σ r u r \begin{aligned} &A\cdot v_1 = \sigma_1u_1 \\ &A\cdot v_2 = \sigma_2u_2 \\ &... \quad ...\\ &A\cdot v_r = \sigma_ru_r \end{aligned} Av1=σ1u1Av2=σ2u2......Avr=σrur
相当于一系列的正交向量( V V V),在乘 A A A后仍然还是正交向量( U U U)。

你可能感兴趣的:(线性代数/矩阵分析)