奇异值分解(SVD)

$ullet$ 特征值分解

特征值分解是针对方阵的,而且这个方阵必须能够相似对角化(如果不了解可以先去阅读一下矩阵相似的博客),那么就有

$$P^{-1}AP = Lambda  ; Rightarrow ; A = PLambda P^{-1}$$

其中 $P$ 由特征向量构成,$Lambda$ 由对应特征值构成的对角矩阵。

进一步得,当 $A$ 为实对称矩阵的时候,即 $A = A^{T}$,那么它可以被分解成如下的形式

$$A = PLambda P^{T}$$

其中,$P$ 为单位正交矩阵。

$ullet$ 奇异值分解

特征值分解是一个提取矩阵特征很不错的方法,但是它只是对方阵而言的,在现实的世界中,我们看到的大部分矩阵都不是方阵。

奇异值分解基本定理:若 $A$ 为 $m imes n$ 实矩阵,则 $A$ 的奇异值分解存在

$$A = U Sigma V^{T}$$

其中,$U$ 是 $m$ 阶单位正交矩阵,称左奇异矩阵,里面的向量称左奇异向量;$V$ 是 $n$ 阶单位正交矩阵,称右奇异矩阵,里面的向量称右奇异向量;

$Sigma$ 是 $m imes n$ 矩形对角矩阵,其对角线元素非负(半正定),且按降序排列。可以发现,$A$ 和 $Sigma$ 是同型矩阵

下面看看怎么得到矩阵 $U,Sigma,V$。

$$AA^{T} = U Sigma V^{T}VSigma^{T}U^{T} = U SigmaSigma^{T}U^{T}  \
A^{T}A = VSigma^{T}U^{T}U Sigma V^{T} = VSigma^{T}Sigma V^{T}$$

其中,$AA^{T}$ 是 $m$ 阶实对称矩阵,$A^{T}A$ 是 $n$ 阶实对称矩阵,$Sigma Sigma ^{T}$ 是 $m$ 阶方阵,$Sigma ^{T} Sigma$ 是 $n$ 阶方阵。

    1)$A^{T}A$ 的特征值均为非负。令 $lambda$ 是 $A^{T}A$ 的一个特征值,$alpha$ 是对应的特征向量,则

$$A^{T}Aalpha = lambda alpha \
Rightarrow ||Aalpha||^{2} = (Aalpha)^{T}(Aalpha) = alpha^{T}A^{T}Aalpha = alpha^{T}lambda alpha = lambda ||alpha ||^{2} \
Rightarrow lambda geq 0$$

    2)$A^{T}A$ 和 $AA^{T}$ 拥有相同的非零特征值,并且保持相同重数,并且属于非零特征值的特征向量间存在制约关系。

       a. 首先证明方程 $Ax = 0$ 和 $A^{T}Ax = 0$ 同解。

          如果 $Ax=0$,则 $A^{T}(Ax)=0$,所以 $Ax=0$ 的解为 $A^{T}Ax=0$ 的解。

          对于 $A^{T}Ax=0$,两边同时乘以 $x^{T}$ ,得到 $x^{T}A^{T}Ax=0$。则有 $(Ax)^{T}(Ax)=0$,即 $||Ax||=0$。所以得到 $Ax=0$。

          所以,$A^{T}Ax=0$ 的解都为 $Ax=0$ 的解。

          所以 $Ax=0$ 和 $A^{T}Ax=0$ 有相同的解空间。所以 $r(A) = r(A^{T}A)$,同理有,$r(A^{T}) = r(AA^{T})$,于是有:

$$r(AA^{T}) = r(A^{T}) = r(A) = r(A^{T}A)$$

       b. 证明:$A^{T}A$ 和 $AA^{T}$ 拥有相同的非零特征值,且特征向量间存在制约关系。

          假设 $x$ 是 $A^{T}A$ 的特征值 $lambda$ 所对应的特征向量,则有

$$A^{T}Ax = lambda x$$

          将上式两边左乘一个矩阵 $A$ 有

$$AA^{T}left (Ax ight ) = lambda left (Ax ight )$$

          那当 $x eq 0$ 时,$Ax$ 是否也是非 $0$ 向量呢?

          因为 $Ax = 0$ 和 $A^{T}Ax = 0$ 同解,所以要证明 $Ax eq 0$,只需要证明 $A^{T}Ax eq 0$,因为

$$A^{T}Ax = lambda x eq 0 ; Rightarrow ; Ax eq 0$$

       c. 证明非 $0$ 特征值有相同的重数

$$egin{bmatrix}
E_{n} & O \
-A & E_{m}
end{bmatrix}
egin{bmatrix}
E_{n} & A^{T} \
A & E_{m}
end{bmatrix} =
egin{bmatrix}
E_{n} & A^{T} \
O & E_{m} - AA^{T}
end{bmatrix}$$

$$egin{bmatrix}
E_{n} & A^{T} \
A & E_{m}
end{bmatrix}
egin{bmatrix}
E_{n} & O \
-A & E_{m}
end{bmatrix} =
egin{bmatrix}
E_{n} - A^{T}A & A^{T} \
O & E_{m}
end{bmatrix}$$

          上面两端取行列式有

$$|E_{m} - AA^{T}| = |E_{n} - A^{T}A|$$

          于是

$$left |lambda E_{m} - AA^{T}  ight | = left |lambda left (E_{m} - frac{1}{lambda}AA^{T}  ight ) ight |$$

$$= lambda^{m} left |E_{m} - frac{1}{lambda}AA^{T}  ight | \
= lambda^{m} left |E_{m} - left (frac{1}{lambda}A  ight )A^{T}  ight | \
= lambda^{m} left |E_{n} - A^{T} left (frac{1}{lambda}A  ight ) ight | \
= lambda^{m - n} lambda^{n}left |E_{n} - A^{T} left (frac{1}{lambda}A  ight ) ight | \
= lambda^{m - n} left |lambda E_{n} - A^{T}A ight |$$

          所以当特征值不为 $0$ 的时候,$AA^{T}$ 和 $A^{T}A$ 的特征多项式同解,即非零特征值重数相同。

现在对矩阵 $A^{T}A$ 进行特征值分解,求出全部的特征值和特征向量,将特征向量进行正交化和单位化,得到 $(v_{1}, v_{2},cdots, v_{k})$。

设 $r(A^{T}A) = k$,将求出来的 $k$ 个非 $0$ 特征值按降序排列,特征值 $lambda_{i}$ 对应的特征向量为 $v_{i}$,即

$$lambda_{1} geq lambda_{2} geq cdots geq lambda_{k} \
(v_{1}, v_{2},cdots, v_{k})$$

由上面分析可知,矩阵 $AA^{T}$ 对应的非 $0$ 特征值也为 $lambda_{i},i=1,2,...,k$,对应的特征向量为

$$(Av_{1}, Av_{2},cdots, Av_{k})$$

对任意两个向量做内积得

$$A^{T}Av_{j} = lambda_{j}v_{j}   \
Rightarrow Av_{i} cdot Av_{j} = (Av_{i})^{T}Av_{j} = v_{i}^{T}A^{T}Av_{j} = lambda_{j} v_{i} cdot v_{j} = 0$$

所以,因为 $v_{i},v_{j}$ 正交,所以任意两个不同向量 $Av_{i}$ 和 $Av_{j}$ 也正交。

现在只需要将其单位化即可,因为

$$A^{T}Av_{i} = lambda_{i}v_{i} \
Rightarrow ||Av_{i}||^{2} = Av_{i} cdot Av_{i} = (Av_{i})^{T}Av_{i} = v_{i}^{T}A^{T}Av_{i} = lambda_{i}  \
Rightarrow ||Av_{i}|| = sqrt{lambda_{i}}$$

所以矩阵 $AA^{T}$ 的 $k$ 个非 $0$ 特征值对应的单位且正交的特征向量组为

$$(frac{1}{sqrt{lambda_{1}}}Av_{1}, frac{1}{sqrt{lambda_{2}}}Av_{2},cdots, frac{1}{sqrt{lambda_{k}}}Av_{k})$$

所以

$$u_{i} = frac{1}{sqrt{lambda_{i}}}Av_{i}, i = 1,2,...,k$$

奇异值为

$$sigma_{i} = sqrt{lambda_{i}}, i = 1,2,...,k$$

所以,将矩阵 $A$ 奇异值分解的最终形式为

$$A = egin{bmatrix}
u_{1} & u_{2} & cdots & u_{k}
end{bmatrix}_{m imes k}
egin{bmatrix}
sigma_{1} &  &  & \
 & sigma_{2} &  & \
 &  & ddots & \
 &  &  & sigma_{k}
end{bmatrix}_{k imes k}
egin{bmatrix}
v_{1}^{T}  \
v_{2}^{T}  \
vdots \
v_{k}^{T}
end{bmatrix}_{k imes n} \
= sigma_{1}u_{1}v_{1}^{T} + sigma_{1}u_{2}v_{2}^{T} + cdots + sigma_{1}u_{k}v_{k}^{T}$$

可见,奇异值为 $0$ 的那些没必要考虑。

$sigma$ 的值减少特别的快,为了节省可见,我们可以保留奇异值较大的若干项,舍去奇异值较小的项。这也是做 SVD 的意义。

奇异值往往对应着矩阵中隐含的重要信息,且重要性和矩阵的大小成正相关,每个矩阵 $A$ 都可以表示为一系列秩为 $1$ 的“小矩阵”之和,

而奇异值则衡量了这些“小矩阵”对于 $A$ 的权重。

下面,我们将奇异值/特征值,奇异向量/特征向量做一个对比。

       

           

原文地址:https://www.cnblogs.com/yanghh/p/13831668.html