目录

7.2-奇异值分解的基与矩阵

7.2 奇异值分解的基与矩阵

一、奇异值分解

奇异值分解(SVD)是线性代数的高光时刻。

A A

A 是一个

m × n m\times n

m

×

n 的矩阵,可以是方阵或者长方形矩阵,秩为

r r

r 。我们要对角化

A A

A ,但并不是把它化成

X − 1 A X X^{-1}A X

X

1

A

X 的形式。这是因为

X X

X 中的特征向量有三个大问题:它们通常并不正交,并不总是有足够数量的特征向量,并且

A x

λ x A\boldsymbol x=\lambda\boldsymbol x

A

x

=

λ

x 要求

A A

A 是方阵。

A A

A 的 奇异值向量Singular vectors )完美的解决了这些问题。

由 SVD 我们可以得到: 四个基本子空间合适的基 。下面是按照基向量的 重要性顺序 ,来求得这些基向量的步骤。

我们需要有 两组奇异值向量

u i \boldsymbol u_i

u

i

v i \boldsymbol v_i

v

i

,其中

u i \boldsymbol u_i

u

i

R m \pmb {\textrm R}^m

R

m 中,

v i \boldsymbol v_i

v

i

R n \textrm{\pmb R}^n

R

n 中,它们将分别是

m × m m\times m

m

×

m 的矩阵

U \pmb U

U 和

n × n n\times n

n

×

n 的矩阵

V \pmb V

V 的列。下面会先根据这些基向量来描述 SVD,然后再根据正交矩阵

U U

U 和

V V

V 来描述 SVD。其基本思想是,在行空间中找到一组基标准交向量

v i \boldsymbol v_i

v

i

,然后通过

A v i

σ i u i A\boldsymbol v_i=\sigma_i\boldsymbol u_i

A

v

i

=

σ

i

u

i

映射到列空间中的

u i \boldsymbol u_i

u

i

,我们的目标是

v i \boldsymbol v_i

v

i

是特殊的标准正交向量,映射到

u i \boldsymbol u_i

u

i

也是标准正交。

向量角度

u i \boldsymbol u_i

u

i

v j \boldsymbol v_j

v

j

给出了

A A

A 的四个基本子空间的基:

u 1 , u 2 , ⋯   , u r 是 列空间 的标准正交基 u r + 1 , u r + 2 , ⋯   , u m 是 左零空间   N ( A T )   的标准正交基 v 1 , v 2 , ⋯   , v r 是 行空间 的标准正交基 v r + 1 , v r + 2 , ⋯   , v n 是 零空间   N ( A )   的标准正交基 \begin{array}{ll}\boldsymbol u_1,\boldsymbol u_2,\cdots,\boldsymbol u_r&是\pmb{列空间}的标准正交基\\boldsymbol u_{r+1},\boldsymbol u_{r+2},\cdots,\boldsymbol u_m&是\pmb{左零空间,N(A^T),}的标准正交基\\boldsymbol v_1,\boldsymbol v_2,\cdots,\boldsymbol v_r&是\pmb{行空间}的标准正交基\\boldsymbol v_{r+1},\boldsymbol v_{r+2},\cdots,\boldsymbol v_n&是\pmb{零空间},N(A),的标准正交基\end{array}

u

1

,

u

2

,

,

u

r

u

r

1

,

u

r

2

,

,

u

m

v

1

,

v

2

,

,

v

r

v

r

1

,

v

r

2

,

,

v

n

列空间

的标准正交基

左零空间

N

(

A

T

)

的标准正交基

行空间

的标准正交基

零空间

N

(

A

)

的标准正交基

这些基向量不仅正交,而且可以对角化矩阵

A A

A :

**“对角化

A \pmb A

A ”**

\kern 20pt

A v 1

σ 1 u 1 , A v 2

σ 2 u 2 , ⋯   , A v r

σ r u r ( 7.2.1 ) {\color{blue}A\boldsymbol v_1=\sigma_1\boldsymbol u_1,\kern 5ptA\boldsymbol v_2=\sigma_2\boldsymbol u_2,\kern 5pt\cdots,\kern 5ptA\boldsymbol v_r=\sigma_r\boldsymbol u_r}\kern 20pt(7.2.1)

A

v

1

=

σ

1

u

1

,

A

v

2

=

σ

2

u

2

,

,

A

v

r

=

σ

r

u

r

(

7.2.1

)

这些 奇异值

σ 1 , σ 2 , ⋯   , σ r \pmb{\sigma_1,\sigma_2,\cdots,\sigma_r}

σ

1

,

σ

2

,

,

σ

r

都是正数,

σ i \sigma_i

σ

i

A v i A\boldsymbol v_i

A

v

i

的长度。对角矩阵

Σ \Sigma

Σ 的对角元素除了奇异值

σ i \sigma_i

σ

i

外都是零。

矩阵角度 )由于

u i \boldsymbol u_i

u

i

是标准正交的,所以由

r r

r 个列向量组成的矩阵

U r U_r

U

r

U r T U r

I U_r^TU_r=I

U

r

T

U

r

=

I ,而

v i \boldsymbol v_i

v

i

也是标准正交的,所以矩阵

V r V_r

V

r

V r T V r

I V_r^TV_r=I

V

r

T

V

r

=

I 。则由方程

A v i

σ i u i A\boldsymbol v_i=\sigma_i\boldsymbol u_i

A

v

i

=

σ

i

u

i

推出

A V r

U r Σ r \pmb{AV_r=U_r\Sigma_r}

A

V

r

=

U

r

Σ

r

的各列成立:

( m × n ) ( n × r ) A V r

U r Σ r ( m × r ) ( r × r ) A [ v 1 v 2 ⋯ v r ]

[ u 1 u 2 ⋯ u r ] [ σ 1 σ 2 ⋱ σ r ] ( 7.2.2 ) \begin{array}{l}(m\times n)(n\times r)\\pmb{AV_r=U_r\Sigma_r}\(m\times r)(r\times r)\end{array}\kern 10ptA\begin{bmatrix}\boldsymbol v_1&\boldsymbol v_2&\cdots&\boldsymbol v_r\end{bmatrix}=\begin{bmatrix}\boldsymbol u_1&\boldsymbol u_2&\cdots&\boldsymbol u_r\end{bmatrix}\begin{bmatrix}\sigma_1\&\sigma_2\&&\ddots\&&&\sigma_r\end{bmatrix}\kern 15pt(7.2.2)

(

m

×

n

)

(

n

×

r

)

A

V

r

=

U

r

Σ

r

(

m

×

r

)

(

r

×

r

)

A

[

v

1

v

2

v

r

]

=

[

u

1

u

2

u

r

]

σ

1

σ

2

σ

r

(

7.2.2

) 这个是 SVD 的核心,但是 SVD 并不是只有这些内容。这些

v i \boldsymbol v_i

v

i

u i \boldsymbol u_i

u

i

可以生成

A A

A 的行空间和列空间,还可以从零空间

N ( A ) \pmb N(A)

N

(

A

) 和左零空间

N ( A T ) \pmb N(A^T)

N

(

A

T

) 得到

n − r n-r

n

r 个

v j \boldsymbol v_j

v

j

m − r m-r

m

r 个

u i \boldsymbol u_i

u

i

,它们也和前面的

v i \boldsymbol v_i

v

i

u i \boldsymbol u_i

u

i

正交(这是因为四个基本子空间配对正交)。我们现在在

V V

V 和

U U

U 中包含所有的

v j \boldsymbol v_j

v

j

u i \boldsymbol u_i

u

i

,这两个矩阵就变成了方阵, 仍然有

A V

U Σ \pmb{AV=U\Sigma}

A

V

=

U

Σ 。

( m × n ) ( n × n ) A V

U Σ ( m × m ) ( m × n ) A [ v 1 ⋯ v r ⋯ v n ]

[ u 1 ⋯ u r ⋯ u m ] [ σ 1 σ 2 ⋱ σ r ] ( 7.2.3 ) \begin{array}{l}(m\times n)(n\times n)\\pmb{AV=U\Sigma}\(m\times m)(m\times n)\end{array}\kern 10ptA\begin{bmatrix}\boldsymbol v_1&\cdots&\boldsymbol v_r&\cdots&\boldsymbol v_n\end{bmatrix}=\begin{bmatrix}\boldsymbol u_1&\cdots&\boldsymbol u_r&\cdots&\boldsymbol u_m\end{bmatrix}\begin{bmatrix}\sigma_1\&\sigma_2\&&\ddots\&&&\sigma_r\&\end{bmatrix}\kern 15pt(7.2.3)

(

m

×

n

)

(

n

×

n

)

A

V

=

U

Σ

(

m

×

m

)

(

m

×

n

)

A

[

v

1

v

r

v

n

]

=

[

u

1

u

r

u

m

]

σ

1

σ

2

σ

r

(

7.2.3

) 新的

Σ \Sigma

Σ 是

m × n m\times n

m

×

n 的矩阵,它是(7.3.2)中的

r × r r\times r

r

×

r 矩阵下面添加

m − r m-r

m

r 个零行,右侧添加

n − r n-r

n

r 个零列。真正的变化是

U U

U 和

V V

V 的形状,它们变成了方阵,并且有

V − 1

V T V^{-1}=V^T

V

1

=

V

T ,所以

A V

U Σ AV=U\Sigma

A

V

=

U

Σ 就变成了

A

U Σ V T \pmb{A=U\Sigma V^T}

A

=

U

Σ

V

T ,这个就是 奇异值分解(Singular Value Decompositon) ,可以用

U Σ U\Sigma

U

Σ 中的列

u i σ i \boldsymbol u_i\sigma_i

u

i

σ

i

乘上

V T V^T

V

T 的行:

SVD

A

U Σ V T

u 1 σ 1 v 1 T + u 2 σ 2 v 2 T + ⋯ + u r σ r v r T ( 7.2.4 ) \kern 30pt{\color{blue}A=U\Sigma V^T=\boldsymbol u_1\sigma_1\boldsymbol v_1^T+\boldsymbol u_2\sigma_2\boldsymbol v_2^T+\cdots+\boldsymbol u_r\sigma_r\boldsymbol v_r^T}\kern 20pt(7.2.4)

A

=

U

Σ

V

T

=

u

1

σ

1

v

1

T

u

2

σ

2

v

2

T

u

r

σ

r

v

r

T

(

7.2.4

)

式(7.3.2)是 “缩略版的 SVD(reduced SVD)”,它只包含行空间和列空间的基,式(7.3.3)是完整版的 SVD,它将零空间的基也包含了进去。这两个式子都是将

A A

A 分解成同样的

r r

r 个秩一矩阵

u i σ r v i T \boldsymbol u_i\sigma_r\boldsymbol v_i^T

u

i

σ

r

v

i

T

的和。列乘行是矩阵乘法的第四种方式。

我们后面能够看到每个

σ i 2 \sigma_i^2

σ

i

2

既是

A T A A^TA

A

T

A 的特征值,也是

A A T AA^T

A

A

T 的特征值。我们将奇异值按照降序排列:

σ 1 ≥ σ 2 ≥ ⋯ ≥ σ r

0 \sigma_1\geq\sigma_2\geq\cdots\geq\sigma_r>0

σ

1

σ

2

σ

r

0 ,式(7.2.4)中的分解就是按照 重要性顺序 得到的

A A

A 的

r r

r 个秩一项,这一点非常重要。

例1 】什么时候

A

U Σ V T A=U\Sigma V^T

A

=

U

Σ

V

T (奇异值)和

X Λ X − 1 X\Lambda X^{-1}

X

Λ

X

1 相同(特征值)?

解:

A A

A 的特征向量需要标准正交,才有

X

U

V X=U=V

X

=

U

=

V ,如果

A

Σ A=\Sigma

A

=

Σ ,也需要特征值

λ ≥ 0 \lambda\geq0

λ

0 ,所以

A A

A 必须是一个 半正定(或正定)的对称矩阵 。只有这样,才会有

A

X Λ X − 1 A=X\Lambda X^{-1}

A

=

X

Λ

X

1 ,就是

Q Λ Q T Q\Lambda Q^{T}

Q

Λ

Q

T 和

A

U Σ V T A=U\Sigma V^{T}

A

=

U

Σ

V

T 一致。

例2 】如果

A

x y T A=\boldsymbol x \boldsymbol y^T

A

=

x

y

T (秩一),其中

x \boldsymbol x

x 和

y \boldsymbol y

y 都是单位向量,那么

A A

A 的 SVD 是什么?

解: 式(7.2.2)中缩略版的 SVD 就是

x y T \boldsymbol x\boldsymbol y^T

x

y

T ,秩为

r

1 r=1

r

=

1 ,其中

u 1

x \boldsymbol u_1=\boldsymbol x

u

1

=

x ,

v 1

y \boldsymbol v_1=\boldsymbol y

v

1

=

y 且

σ 1

1 \sigma_1=1

σ

1

=

1 。完全版的 SVD,要将

u 1

x \boldsymbol u_1=\boldsymbol x

u

1

=

x 扩充为标准正交基

u i \boldsymbol u_i

u

i

,然后将

v 1

y \boldsymbol v_1=\boldsymbol y

v

1

=

y 扩充为标准正交基

v j \boldsymbol v_j

v

j

,没有新的

σ \sigma

σ ,只有一个

σ 1

1 \sigma_1=1

σ

1

=

1 。

二、SVD 的证明

我们需要知道这令人惊叹的

u i \boldsymbol u_i

u

i

v j \boldsymbol v_j

v

j

是如何构造出来的。

v j \boldsymbol v_j

v

j

A T A \pmb{A^TA}

A

T

A 的特征向量 ,这个一定是正确的,因为我们的目标是:

A T A

( U Σ V T ) T ( U Σ V T )

V Σ T U T U Σ V T

V Σ T Σ V T ( 7.2.5 ) \pmb{A^TA}=(U\Sigma V^T)^T(U\Sigma V^T)=V\Sigma^TU^TU\Sigma V^T=\pmb{V\Sigma^T\Sigma V^T}\kern 20pt(7.2.5)

A

T

A

=

(

U

Σ

V

T

)

T

(

U

Σ

V

T

)

=

V

Σ

T

U

T

U

Σ

V

T

=

V

Σ

T

Σ

V

T

(

7.2.5

) 右侧包含了对称(半)正定矩阵

A T A A^TA

A

T

A 的特征向量矩阵

V V

V ,并且

( Σ T Σ ) (\Sigma^T\Sigma)

(

Σ

T

Σ

) 是

( A T A ) (A^TA)

(

A

T

A

) 的特征值矩阵:每个

σ 2 \sigma^2

σ

2 就是

( A T A ) (A^TA)

(

A

T

A

) 特征值

λ ( A T A ) \lambda(A^TA)

λ

(

A

T

A

) !

现在由

A v i

σ i u i A\boldsymbol v_i=\sigma_i\boldsymbol u_i

A

v

i

=

σ

i

u

i

可以得到单位向量

u 1 , u 2 , ⋯   , u r \boldsymbol u_1,\boldsymbol u_2,\cdots,\boldsymbol u_r

u

1

,

u

2

,

,

u

r

,这就是关键的式(7.2.1),核心点,也就是 SVD 成功的全部原因,是这些单位向量

u 1 , u 2 , ⋯   , u r \boldsymbol u_1,\boldsymbol u_2,\cdots,\boldsymbol u_r

u

1

,

u

2

,

,

u

r

一定是两两正交(因为

v i \boldsymbol v_i

v

i

是正交的):

关键步骤 i ≠ j u i T u j

( A v i σ i ) T ( A v j σ j )

v i T A T A v j σ i σ j

σ j 2 σ i σ j v i T v j

0 ( 7.2.6 ) \begin{array}{}\pmb{关键步骤}\\pmb{i\neq j}\end{array}\kern 20pt\boldsymbol u_i^T\boldsymbol u_j=(\frac{A\boldsymbol v_i}{\sigma_i})^T(\frac{A\boldsymbol v_j}{\sigma_j})=\frac{\boldsymbol v_i^TA^TA\boldsymbol v_j}{\sigma_i\sigma_j}=\frac{\sigma_j^2}{\sigma_i\sigma_j}\boldsymbol v_i^T\boldsymbol v_j=0\kern 20pt(7.2.6)

关键步骤

i

=

j

u

i

T

u

j

=

(

σ

i

A

v

i

)

T

(

σ

j

A

v

j

)

=

σ

i

σ

j

v

i

T

A

T

A

v

j

=

σ

i

σ

j

σ

j

2

v

i

T

v

j

=

0

(

7.2.6

)

v i \boldsymbol v_i

v

i

A T A A^TA

A

T

A (对称)的特征向量,它们是正交的并且得到

u i \boldsymbol u_i

u

i

也是正交的。实际上

u i \boldsymbol u_i

u

i

A A T AA^T

A

A

T 的特征向量。

最终,在

v j \boldsymbol v_j

v

j

u i \boldsymbol u_i

u

i

的基础上分别构造出了零空间

N ( A ) \pmb N(A)

N

(

A

) 和 左零空间

N ( A T ) \pmb N(A^T)

N

(

A

T

) 的标准正交基,得到

n n

n 个

v j \boldsymbol v_j

v

j

m m

m 个

u i \boldsymbol u_i

u

i

,得到

A

U Σ V T A=U\Sigma V^T

A

=

U

Σ

V

T 中的

V , Σ V,\Sigma

V

,

Σ 和

U U

U 。

三、SVD 的一个例子

下例演示了

A

U Σ V T A=U\Sigma V^T

A

=

U

Σ

V

T 中全部三个矩阵的计算过程。

例3 】矩阵

A

[ 3 0 4 5 ] A=\begin{bmatrix}3&0\4&5\end{bmatrix}

A

=

[

3

4

0

5

] ,秩为

r

2 r=2

r

=

2 ,求出对应的矩阵

U , Σ , V U,\Sigma,V

U

,

Σ

,

V 。

解: 由于秩

r

2 r=2

r

=

2 ,所以

A A

A 有两个正的奇异值

σ 1 \sigma_1

σ

1

σ 2 \sigma_2

σ

2

,下面会看到

σ 1 \sigma_1

σ

1

比特征值

λ m a x

5 \lambda_{max}=5

λ

ma

x

=

5 更大,

σ 2 \sigma_2

σ

2

比特征值

λ m i n

3 \lambda_{min}=3

λ

min

=

3 要更小,先从

A T A A^TA

A

T

A 和

A A T AA^T

A

A

T 开始:

A T A

[ 25 20 20 25 ] A A T

[ 9 12 12 41 ] A^TA=\begin{bmatrix}25&20\20&25\end{bmatrix}\kern 20ptAA^T=\begin{bmatrix}\kern 4pt9&12\12&41\end{bmatrix}

A

T

A

=

[

25

20

20

25

]

A

A

T

=

[

9

12

12

41

] 它们有相同的迹

( 50 ) (50)

(

50

) 和相同的特征值

σ 1 2

45 \sigma_1^2=45

σ

1

2

=

45 和

σ 2 2

5 \sigma_2^2=5

σ

2

2

=

5 ,取算术平方根得

σ 1

45 \sigma_1=\pmb{\sqrt{45}}

σ

1

=

45

σ 2

5 \sigma_2=\pmb{\sqrt5}

σ

2

=

5

,则

σ 1 σ 2

15 \sigma_1\sigma_2=15

σ

1

σ

2

=

15 ,也就是

A A

A 的行列式。

关键步骤是求

A T A A^TA

A

T

A 的特征向量(分别对应特征值

45 45

45 和

5 5

5 ):

[ 25 20 20 25 ] [ 1 1 ]

45 [ 1 1 ] [ 25 20 20 25 ] [ − 1 1 ]

5 [ − 1 1 ] \begin{bmatrix}25&20\20&25\end{bmatrix}\begin{bmatrix}1\1\end{bmatrix}=\pmb{45}\begin{bmatrix}1\1\end{bmatrix}\kern 20pt\begin{bmatrix}25&20\20&25\end{bmatrix}\begin{bmatrix}-1\\kern 7pt1\end{bmatrix}=\pmb5\begin{bmatrix}-1\\kern 7pt1\end{bmatrix}

[

25

20

20

25

]

[

1

1

]

=

45

[

1

1

]

[

25

20

20

25

]

[

1

1

]

=

5

[

1

1

] 然后将这些正交特征向量单位化,都除以

2 \sqrt2

2

,即得到

v 1 \boldsymbol v_1

v

1

v 2 \boldsymbol v_2

v

2

右奇异向量 v 1

1 2 [ 1 1 ] v 2

1 2 [ − 1 1 ] 左奇异向量 u i

A v i σ i \pmb{右奇异向量}\kern 10pt\boldsymbol v_1=\frac{1}{\sqrt2}\begin{bmatrix}1\1\end{bmatrix}\kern 5pt\boldsymbol v_2=\frac{1}{\sqrt2}\begin{bmatrix}-1\\kern 7pt1\end{bmatrix}\kern 10pt\pmb{左奇异向量}\kern 5pt\boldsymbol u_i=\frac{A\boldsymbol v_i}{\sigma_i}

右奇异向量

v

1

=

2

1

[

1

1

]

v

2

=

2

1

[

1

1

]

左奇异向量

u

i

=

σ

i

A

v

i

现在计算

A v 1 A\boldsymbol v_1

A

v

1

A v 2 A\boldsymbol v_2

A

v

2

,它们分别是

σ 1 u 1

45 u 1 \sigma_1\boldsymbol u_1=\sqrt{45}\boldsymbol u_1

σ

1

u

1

=

45

u

1

σ 2 u 2

5 u 2 \sigma_2\boldsymbol u_2=\sqrt5\boldsymbol u_2

σ

2

u

2

=

5

u

2

A v 1

3 2 [ 1 3 ]

45 1 10 [ 1 3 ]

σ 1 u 1 A v 2

1 2 [ − 3 1 ]

5 1 10 [ − 3 1 ]

σ 2 u 2 \begin{array}{l}A\boldsymbol v_1=\displaystyle\frac{3}{\sqrt2}\begin{bmatrix}1\3\end{bmatrix}=\sqrt{45}\pmb{\frac{1}{\sqrt{10}}\begin{bmatrix}1\3\end{bmatrix}}=\sigma_1\boldsymbol u_1\\A\boldsymbol v_2=\displaystyle\frac{1}{\sqrt2}\begin{bmatrix}-3\\kern 7pt1\end{bmatrix}=\sqrt5\pmb{\frac{1}{\sqrt{10}}\begin{bmatrix}-3\\kern 7pt1\end{bmatrix}}=\sigma_2\boldsymbol u_2\end{array}

A

v

1

=

2

3

[

1

3

]

=

45

10

1

[

1

3

]

=

σ

1

u

1

A

v

2

=

2

1

[

3

1

]

=

5

10

1

[

3

1

]

=

σ

2

u

2

除以

10 \sqrt{10}

10

使得

u 1 \boldsymbol u_1

u

1

u 2 \boldsymbol u_2

u

2

标准正交,然后可以得到预期的

σ 1

45 \sigma_1=\sqrt{45}

σ

1

=

45

σ 2

5 \sigma_2=\sqrt5

σ

2

=

5

A A

A 的奇异值分解就是

U Σ V T U\Sigma V^T

U

Σ

V

T 。

U

1 10 [ 1 − 3 3 1 ] Σ

[ 45 5 ] V

1 2 [ 1 − 1 1 1 ] ( 7.2.7 ) \pmb U=\frac{1}{\sqrt{10}}\begin{bmatrix}1&-3\3&\kern 7pt1\end{bmatrix}\kern 15pt\pmb\Sigma=\begin{bmatrix}\sqrt{45}\&\sqrt5\end{bmatrix}\kern 15pt\pmb V=\frac{1}{\sqrt2}\begin{bmatrix}1&-1\1&\kern 7pt1\end{bmatrix}\kern 20pt(7.2.7)

U

=

10

1

[

1

3

3

1

]

Σ

=

[

45

5

]

V

=

2

1

[

1

1

1

1

]

(

7.2.7

)

U U

U 和

V V

V 包含列空间和行空间(两个空间都是

R 2 \pmb{\textrm R}^2

R

2 )的标准正交基。真正要做的是使用两组基对角化

A A

A :

A V

U Σ AV=U\Sigma

A

V

=

U

Σ 。矩阵

A A

A 分解成了两个秩一矩阵(列乘行)的组合:

σ 1 u 1 v 1 T + σ 2 u 2 v 2 T

45 20 [ 1 1 3 3 ] + 5 20 [ 3 − 3 − 1 1 ]

[ 3 0 4 5 ]

A \sigma_1\boldsymbol u_1\boldsymbol v_1^T+\sigma_2\boldsymbol u_2\boldsymbol v_2^T=\pmb{\frac{\sqrt{45}}{\sqrt{20}}\begin{bmatrix}1&1\3&3\end{bmatrix}+\frac{\sqrt5}{\sqrt{20}}\begin{bmatrix}\kern 7pt3&-3\-1&\kern 7pt1\end{bmatrix}}=\begin{bmatrix}3&0\4&5\end{bmatrix}=A

σ

1

u

1

v

1

T

σ

2

u

2

v

2

T

=

20

45

[

1

3

1

3

]

20

5

[

3

1

3

1

]

=

[

3

4

0

5

]

=

A

四、一个极端的矩阵

下面是一个阶数更大的矩阵的例子,它的

u i \boldsymbol u_i

u

i

v i \boldsymbol v_i

v

i

都是单位矩阵的列,所以计算很简单,但是要注意列的顺序。矩阵

A A

A 非常的不平衡(它是一个严格的三角形矩阵),它所有的特征值都为零,

A A T AA^T

A

A

T 和

A T A A^TA

A

T

A 并不接近,矩阵

U U

U 和

V V

V 是置换矩阵可以弥补这些问题。

A

[ 0 1 0 0 0 0 2 0 0 0 0 3 0 0 0 0 ] 特征值   λ

0 , 0 , 0 , 0   全是零! 只有一个特征向量   ( 1 , 0 , 0 , 0 ) 奇异值   σ

3 , 2 , 1 奇异向量是   I   的列 A=\begin{bmatrix}0&\pmb1&0&0\0&0&\pmb2&0\0&0&0&\pmb3\0&0&0&0\end{bmatrix}\kern 20pt\begin{array}{l}特征值,\lambda=0,0,0,0,全是零!\只有一个特征向量,(1,0,0,0)\奇异值,\sigma=\pmb3,\pmb2,\pmb1\奇异向量是,I,的列\end{array}

A

=

0

0

0

0

1

0

0

0

0

2

0

0

0

0

3

0

特征值

λ

=

0

,

0

,

0

,

0

全是零!

只有一个特征向量

(

1

,

0

,

0

,

0

)

奇异值

σ

=

3

,

2

,

1

奇异向量是

I

的列

A T A A^TA

A

T

A 和

A A T AA^T

A

A

T 都是对角矩阵(有简单的特征向量,但是顺序不同):

A T A

[ 0 0 0 0 0 1 0 0 0 0 4 0 0 0 0 9 ] A A T

[ 1 0 0 0 0 4 0 0 0 0 9 0 0 0 0 0 ] A^TA=\begin{bmatrix}\pmb0&0&0&0\0&\pmb1&0&0\0&0&\pmb4&0\0&0&0&\pmb9\end{bmatrix}\kern 20ptAA^T=\begin{bmatrix}\pmb1&0&0&0\0&\pmb4&0&0\0&0&\pmb9&0\0&0&0&\pmb0\end{bmatrix}

A

T

A

=

0

0

0

0

0

1

0

0

0

0

4

0

0

0

0

9

A

A

T

=

1

0

0

0

0

4

0

0

0

0

9

0

0

0

0

0

它们的特征向量(

u i \boldsymbol u_i

u

i

对应

A A T AA^T

A

A

T ,

v i \boldsymbol v_i

v

i

对应

A T A A^TA

A

T

A )按照特征值减小的顺序

σ 1 2

σ 2 2

σ 3 2 \sigma_1^2>\sigma_2^2>\sigma_3^2

σ

1

2

σ

2

2

σ

3

2

排列,这些特征值是

9 , 4 , 1 9,4,1

9

,

4

,

1 。

U

[ 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 ] Σ

[ 3 2 1 0 ] V

[ 0 0 0 1 0 0 1 0 0 1 0 0 1 0 0 0 ] \pmb U=\begin{bmatrix}0&0&\pmb1&0\0&\pmb1&0&0\\pmb1&0&0&0\0&0&0&\pmb1\end{bmatrix}\kern 15pt\Sigma=\begin{bmatrix}\pmb3\&\pmb2\&&\pmb1\&&&0\end{bmatrix}\kern 15pt\pmb V=\begin{bmatrix}0&0&0&\pmb1\0&0&\pmb1&0\0&\pmb1&0&0\\pmb1&0&0&0\end{bmatrix}

U

=

0

0

1

0

0

1

0

0

1

0

0

0

0

0

0

1

Σ

=

3

2

1

0

V

=

0

0

0

1

0

0

1

0

0

1

0

0

1

0

0

0

U \pmb U

U 和

V \pmb V

V 的第一列

u 1 \boldsymbol u_1

u

1

v 1 \boldsymbol v_1

v

1

的分量

1 1

1 在第

3 3

3 位和第

4 4

4 位,则

u 1 σ 1 v 1 T \boldsymbol u_1\sigma_1\boldsymbol v_1^T

u

1

σ

1

v

1

T

就表示矩阵

A A

A 中最大的数

A 34 A_{34}

A

34

,对于这个极端的例子,SVD 的三个秩一矩阵恰好来自于

A A

A 中的数字

3 , 2 , 1 3,2,1

3

,

2

,

1 。

A

U Σ V T

3 u 1 v 1 T + 2 u 2 v 2 T + 1 u 3 v 3 T \pmb{A=U\Sigma V^T=3\boldsymbol u_1\boldsymbol v_1^T+2\boldsymbol u_2\boldsymbol v_2^T+1\boldsymbol u_3\boldsymbol v_3^T}

A

=

U

Σ

V

T

=

3

u

1

v

1

T

2

u

2

v

2

T

1

u

3

v

3

T

注:假设将

A A

A 的最后一行(全零行)去掉,则

A A

A 是一个

3 × 4 3\times4

3

×

4 的矩阵,

A A T AA^T

A

A

T 是

3 × 3 3\times3

3

×

3 的矩阵 —— 它的第四行和第四列都会消失,

A T A A^TA

A

T

A 和

A A T AA^T

A

A

T 的特征值仍然是

λ

1 , 4 , 9 \lambda=1,4,9

λ

=

1

,

4

,

9 ,也会在

Σ \Sigma

Σ 中得到相同的奇异值

σ

3 , 2 , 1 \sigma=3,2,1

σ

=

3

,

2

,

1 。

A A

A 的最后一行的全零行移除后,现在变成了

3 × 4 3\times4

3

×

4 的矩阵,也会移除

Σ \Sigma

Σ 的最后一行和

U U

U 的最后一列。则

( 3 × 4 )

U Σ V T

( 3 × 3 ) ( 3 × 4 ) ( 4 × 4 ) (3\times4)=U\Sigma V^T=(3\times3)(3\times4)(4\times4)

(

3

×

4

)

=

U

Σ

V

T

=

(

3

×

3

)

(

3

×

4

)

(

4

×

4

) ,SVD 完全适用于长方形矩阵。

一件好的事情是,由于矩阵

A A

A 的行和列经常有完全不同的含义(如电子表格),如果要统计所有课程的成绩,那么可以用各列表示每个学生的情况,而各行表示每个课程的情况:则元素

a i j a_{ij}

a

ij

就表示成绩。那么

σ 1 u 1 v 1 T \sigma_1\boldsymbol u_1\boldsymbol v_1^T

σ

1

u

1

v

1

T

中,

u 1

\boldsymbol u_1=

u

1

= 课程组合

v 1

\boldsymbol v_1=

v

1

= 学生组合 ,而

σ 1 \sigma_1

σ

1

就是这些组合的成绩:最高成绩。

矩阵

A A

A 也可以对一本杂志中关键词的出现频率计数:

A A

A 的列是不同的文章,每一行代表不同的词,那么

A A

A 就是整个杂志的索引,其中最重要的信息就是

σ 1 u 1 v 1 T \sigma_1\boldsymbol u_1\boldsymbol v_1^T

σ

1

u

1

v

1

T

σ 1 \sigma_1

σ

1

就是高频词

u 1 \boldsymbol u_1

u

1

在高频文章

v 1 \boldsymbol v_1

v

1

出现的最高的频率。

五、奇异值的稳定性对比特征值的不稳定性

通过

4 × 4 4\times4

4

×

4 的矩阵

A A

A 这个例子(一个极端情况)我们可以构造出一个特征值不稳定的例子。 **假设

( 4 , 1 ) (4,1)

(

4

,

1

) 元素** 从零变为

1 / 60000 1/60000

1/60000 ,这个 几乎没有变化 ,秩变成了

4 4

4 。

A

[ 0 1 0 0 0 0 2 0 0 0 0 3 1 60000 0 0 0 ] 仅仅是   1 / 60000   的微小改变, A 的特征值就发生了很大的变化: λ

0 , 0 , 0 , 0   变为了   λ

1 10 , i 10 , − 1 10 , − i 10 A=\begin{bmatrix}0&1&0&0\0&0&2&0\0&0&0&3\\displaystyle\frac{1}{60000}&0&0&0\end{bmatrix}\kern 20pt\begin{array}{l}仅仅是,1/60000,的微小改变,A\的特征值就发生了很大的变化:\\lambda=0,0,0,0,变为了,\pmb{\lambda=\displaystyle\frac{1}{10},\frac{i}{10},\frac{-1}{10},\frac{-i}{10}}\end{array}

A

=

0

0

0

60000

1

1

0

0

0

0

2

0

0

0

0

3

0

仅仅是

1/60000

的微小改变,

A

的特征值就发生了很大的变化:

λ

=

0

,

0

,

0

,

0

变为了

λ

=

10

1

,

10

i

,

10

1

,

10

i

新元素仅仅变化了

1 / 60000 1/60000

1/60000 ,四个特征值就从零变化到了在复平面上以原点为圆心,半径为

1 10 \displaystyle\frac{1}{10}

10

1

的圆上,这表明当

A T A A^TA

A

T

A 远离

A A T AA^T

A

A

T 时特征值严重的不稳定性,在另外的极端情况下,如果

A T A

A A T A^TA=AA^T

A

T

A

=

A

A

T (“正规矩阵”),那么

A A

A 的特征向量正交且

A A

A 的特征值完全稳定。

对比之下, 任意矩阵的奇异值都是稳定的 ,它们不会超过

A A

A 的变化。在这个例子中,新的奇异值是

3 , 2 , 1 \pmb{3,2,1}

3

,

2

,

1 和

1 / 60000 \pmb{1/60000}

1/60000 ,矩阵

U U

U 和

V V

V 保持不变,

A A

A 的 SVD 中的第四项是

σ 4 u 4 v 4 T \sigma_4\boldsymbol u_4\boldsymbol v_4^T

σ

4

u

4

v

4

T

,它有十五个零元素和一个小的元素

σ 4

1 / 60000 \sigma_4=1/60000

σ

4

=

1/60000 。

六、A 的奇异向量和 S = A T A S=A^TA S = A T A 的特征向量

式(7.2.5-7.2.6)同时证明了 SVD,奇异向量

v i \boldsymbol v_i

v

i

S

A T A S=A^TA

S

=

A

T

A 的特征向量

q i \boldsymbol q_i

q

i

S S

S 的特征值

λ i \lambda_i

λ

i

A A

A 相应的奇异值的平方

σ i 2 \sigma_i^2

σ

i

2

相等,

S S

S 的秩

r r

r 等于

A A

A 的秩。特征向量和奇异向量的展开式是完美对应的。

对称矩阵   S S

Q Λ Q T

λ 1 q 1 q 1 T + λ 2 q 2 q 2 T + ⋯ + λ r q r q r T 任意矩阵   A A

U Σ V T

σ 1 u 1 v 1 T + σ 2 u 2 v 2 T + ⋯ + σ r u r v r T \begin{array}{l}\pmb{对称矩阵,S}\kern 25pt\color{blue}S=Q\Lambda Q^T=\lambda_1\boldsymbol q_1\boldsymbol q_1^T+\lambda_2\boldsymbol q_2\boldsymbol q_2^T+\cdots+\lambda_r\boldsymbol q_r\boldsymbol q_r^T\\pmb{任意矩阵,A}\kern 23pt\color{blue}A=U\Sigma V^T=\sigma_1\boldsymbol u_1\boldsymbol v_1^T+\sigma_2\boldsymbol u_2\boldsymbol v_2^T+\cdots+\sigma_r\boldsymbol u_r\boldsymbol v_r^T\end{array}

对称矩阵

S

S

=

Q

Λ

Q

T

=

λ

1

q

1

q

1

T

λ

2

q

2

q

2

T

λ

r

q

r

q

r

T

任意矩阵

A

A

=

U

Σ

V

T

=

σ

1

u

1

v

1

T

σ

2

u

2

v

2

T

σ

r

u

r

v

r

T

各个

q i \boldsymbol q_i

q

i

是正交的,各个

u i \boldsymbol u_i

u

i

是正交的,各个

v i \boldsymbol v_i

v

i

也是正交的,非常漂亮!

但是还要更深入理解,有以下两个原因:其一是要弥补特征值部分的短板, 如果

λ \lambda

λ 是

S S

S 的二重特征值,我们能够且一定可以找出两个标准正交的向量。另一个原因是要明白 SVD 是如何选出在

σ 2 u 2 v 2 T \sigma_2\boldsymbol u_2\boldsymbol v_2^T

σ

2

u

2

v

2

T

之前的最大项

σ 1 u 1 v 1 T \sigma_1\boldsymbol u_1\boldsymbol v_1^T

σ

1

u

1

v

1

T

。需要理解的是

S S

S 的特征值

λ \lambda

λ 和

A A

A 的奇异值

σ \sigma

σ ,而 不只是求出它们

S S

S 最大的特征值

λ 1 \lambda_1

λ

1

开始,它解决了下面的这个问题:

λ 1

max   x T S x x T x \pmb{\lambda_1=\textrm{max},\displaystyle\frac{\boldsymbol x^TS\boldsymbol x}{\boldsymbol x^T\boldsymbol x}}

λ

1

=

max

x

T

x

x

T

S

x

,这个向量是

x

q 1 \boldsymbol x=\boldsymbol q_1

x

=

q

1

,且

S q 1

λ 1 q 1 S\boldsymbol q_1=\lambda_1\boldsymbol q_1\kern 20pt

S

q

1

=

λ

1

q

1

(7.2.8)

,

对比

A A

A 最大的奇异值

σ 1 \sigma_1

σ

1

,它解决的这个问题是:

σ 1

max ⁡ ∣ ∣ A x ∣ ∣ ∣ ∣ x ∣ ∣ \pmb{\sigma_1=\max\displaystyle\frac{||A\boldsymbol x||}{||\boldsymbol x||}}

σ

1

=

max

∣∣

x

∣∣

∣∣

A

x

∣∣

,这个向量是

x

v 1 \boldsymbol x=\boldsymbol v_1

x

=

v

1

A v 1

σ 1 u 1 A\boldsymbol v_1=\sigma_1\boldsymbol u_1\kern 20pt

A

v

1

=

σ

1

u

1

(7.2.9)

从式(7.2.8)可以推出(7.2.9),由于

S

A T A S=A^TA

S

=

A

T

A ,所以

x T S x x T x

x T A T A x x T x

( A x ) T ( A x ) x T x

∣ ∣ A x ∣ ∣ 2 ∣ ∣ x ∣ ∣ 2

σ 2 \displaystyle\frac{\boldsymbol x^TS\boldsymbol x}{\boldsymbol x^T\boldsymbol x}=\frac{\boldsymbol x^TA^TA\boldsymbol x}{\boldsymbol x^T\boldsymbol x}=\frac{(A\boldsymbol x)^T(A\boldsymbol x)}{\boldsymbol x^T\boldsymbol x}=\frac{||A\boldsymbol x||^2}{||\boldsymbol x||^2}=\sigma^2

x

T

x

x

T

S

x

=

x

T

x

x

T

A

T

A

x

=

x

T

x

(

A

x

)

T

(

A

x

)

=

∣∣

x

2

∣∣

A

x

2

=

σ

2 。

这个一次找到一个值的方法也可以适用于

λ 2 \lambda_2

λ

2

σ 2 \sigma_2

σ

2

,但是并不是任意的

x \boldsymbol x

x 都可以:

λ 2

max ⁡ x T S x x T x \pmb{\lambda_2=\max\displaystyle\frac{\boldsymbol x^TS\boldsymbol x}{\boldsymbol x^T\boldsymbol x}}

λ

2

=

max

x

T

x

x

T

S

x

,其中

x \boldsymbol x

x 满足

q 1 T x

0 \boldsymbol q_1^T\boldsymbol x=0

q

1

T

x

=

0 ,最大的是

x

q 2 \boldsymbol x=\boldsymbol q_2\kern 20pt

x

=

q

2

(7.2.10)

,

σ 2

max ⁡ ∣ ∣ A x ∣ ∣ ∣ ∣ x ∣ ∣ \pmb{\sigma_2=\max\displaystyle\frac{||A\boldsymbol x||}{||\boldsymbol x||}}

σ

2

=

max

∣∣

x

∣∣

∣∣

A

x

∣∣

,其中

x \boldsymbol x

x 满足

v 1 T x

0 \boldsymbol v_1^T\boldsymbol x=0

v

1

T

x

=

0 ,最大的是

x

v 2 \boldsymbol x=\boldsymbol v_2\kern 20pt

x

=

v

2

(7.2.11)

S

A T A S=A^TA

S

=

A

T

A 时,可以得到

λ 1

σ 1 2 \lambda_1=\sigma_1^2

λ

1

=

σ

1

2

λ 2

σ 2 2 \lambda_2=\sigma_2^2

λ

2

=

σ

2

2

,为什么这个方法会成功呢?

从比值

r ( x )

x T S x x T x r(\boldsymbol x)=\displaystyle\frac{\boldsymbol x^TS\boldsymbol x}{\boldsymbol x^T\boldsymbol x}

r

(

x

)

=

x

T

x

x

T

S

x

开始,这个称为瑞利商(Rayleigh quotient),要求

r ( x ) r(\boldsymbol x)

r

(

x

) 的最大值,要令其偏导数为零:

∂ r ∂ x i

0 , i

1 , 2 , ⋯   , n \displaystyle\frac{\partial r}{\partial x_i}=0,i=1,2,\cdots,n

x

i

r

=

0

i

=

1

,

2

,

,

n 。这些导数的求解比较困难,下面是结果:瑞利商最大时的向量

x \boldsymbol x

x :

当   S x

r ( x ) x   时, r ( x )

x T S x x T x   的偏导数全为零 ( 7.2.12 ) 当,S\boldsymbol x=r(\boldsymbol x)\boldsymbol x,时,\pmb{r(\boldsymbol x)=\frac{\boldsymbol x^TS\boldsymbol x}{\boldsymbol x^T\boldsymbol x},的偏导数全为零}\kern 20pt(7.2.12)

S

x

=

r

(

x

)

x

时,

r

(

x

)

=

x

T

x

x

T

S

x

的偏导数全为零

(

7.2.12

) 所以向量

x \boldsymbol x

x 是

S S

S 的特征向量,最大的比值

r ( x ) r(\boldsymbol x)

r

(

x

) 就是

S S

S 最大的特征值

λ 1 \lambda_1

λ

1

。下面转而讨论

A A

A —— 注意它和

S

A T A S=A^TA

S

=

A

T

A 的联系!

最大化   ∣ ∣ A x ∣ ∣ ∣ ∣ x ∣ ∣ ,也会最大化   ( ∣ ∣ A x ∣ ∣ ∣ ∣ x ∣ ∣ ) 2

x T A T A x x T x

x T S x x x 最大化,\frac{||A\boldsymbol x||}{||\boldsymbol x||},也会最大化,\Big(\frac{||A\boldsymbol x||}{||\boldsymbol x||}\Big)^2=\frac{\boldsymbol x^TA^TA\boldsymbol x}{\boldsymbol x^T\boldsymbol x}=\frac{\boldsymbol x^TS\boldsymbol x}{\boldsymbol x\boldsymbol x}

最大化

∣∣

x

∣∣

∣∣

A

x

∣∣

,也会最大化

(

∣∣

x

∣∣

∣∣

A

x

∣∣

)

2

=

x

T

x

x

T

A

T

A

x

=

x

x

x

T

S

x

所以式(7.2.9)中

x

v 1 \boldsymbol x=\boldsymbol v_1

x

=

v

1

与式(7.2.8)中

S

A T A S=A^TA

S

=

A

T

A 最前面的特征向量

q 1 \boldsymbol q_1

q

1

相同。

下面解释为什么式(7.2.10)和(7.2.11)中的向量为什么是

q 2 \boldsymbol q_2

q

2

v 2 \boldsymbol v_2

v

2

。它们分别与

q 1 \boldsymbol q_1

q

1

v 1 \boldsymbol v_1

v

1

正交,因此是在考虑范围内。

任意的正交向量

Q 1 Q_1

Q

1

的首列是

q 1 \boldsymbol q_1

q

1

,剩余的

n − 1 n-1

n

1 个标准正交列都与

q 1 \boldsymbol q_1

q

1

正交,使用

S q 1

λ 1 q 1 S\boldsymbol q_1=\lambda_1\boldsymbol q_1

S

q

1

=

λ

1

q

1

S Q 1

S [ q 1 q 2 ⋯ q n ]

[ q 1 q 2 ⋯ q n ] [ λ 1 w T 0 S n − 1 ]

Q 1 [ λ 1 w T 0 S n − 1 ] ( 7.2.13 ) SQ_1=S\begin{bmatrix}\boldsymbol q_1&\boldsymbol q_2&\cdots&\boldsymbol q_n\end{bmatrix}=\begin{bmatrix}\boldsymbol q_1&\boldsymbol q_2&\cdots&\boldsymbol q_n\end{bmatrix}\begin{bmatrix}\lambda_1&\boldsymbol w^T\\boldsymbol 0&S_{n-1}\end{bmatrix}=Q_1\begin{bmatrix}\lambda_1&\boldsymbol w^T\\boldsymbol 0&S_{n-1}\end{bmatrix}\kern 15pt(7.2.13)

S

Q

1

=

S

[

q

1

q

2

q

n

]

=

[

q

1

q

2

q

n

]

[

λ

1

0

w

T

S

n

1

]

=

Q

1

[

λ

1

0

w

T

S

n

1

]

(

7.2.13

) 其中

w T \boldsymbol w^T

w

T 表示的是

S S

S 作用于

q 1 \boldsymbol q_1

q

1

S n − 1 S_{n-1}

S

n

1

是降维后的矩阵,利用矩阵的乘法,将它们乘开,第一列即

λ 1 q 1 \lambda_1\boldsymbol q_1

λ

1

q

1

,后面的即为

w T q 1 + S n − 1 [ q 2 ⋯ q n ] \boldsymbol w^T\boldsymbol q_1+S_{n-1}\begin{bmatrix}\boldsymbol q_2&\cdots&\boldsymbol q_n\end{bmatrix}

w

T

q

1

S

n

1

[

q

2

q

n

] 。再用

Q 1 T Q_1^T

Q

1

T

左乘上式,注意到

Q 1 T Q 1

I Q_1^TQ_1=I

Q

1

T

Q

1

=

I ,且

Q 1 T S Q 1 Q_1^TSQ_1

Q

1

T

S

Q

1

是像

S S

S 一样的对称矩阵:

对称矩阵   Q 1 T S Q 1

[ λ 1 w T 0 S n − 1 ] 将强制   w

0   且   S n − 1 T

S n − 1 对称矩阵,Q_1^TSQ_1=\begin{bmatrix}\lambda_1&\boldsymbol w^T\\boldsymbol 0&S_{n-1}\end{bmatrix}将强制,\boldsymbol w=\boldsymbol 0,且,S^T_{n-1}=S_{n-1}

对称矩阵

Q

1

T

S

Q

1

=

[

λ

1

0

w

T

S

n

1

]

将强制

w

=

0

S

n

1

T

=

S

n

1

根据条件

q 1 T x

0 \boldsymbol q_1^T\boldsymbol x=0

q

1

T

x

=

0 将问题(7.2.10)的最大值问题简化成了

n − 1 n-1

n

1 阶的情况,

S n − 1 S_{n-1}

S

n

1

最大的特征值将是

S S

S 的第二大特征值, **就是

λ 2 \lambda_2

λ

2

​** ,式(7.2.10)中的向量是特征向量

q 2 \boldsymbol q_2

q

2

S q 2

λ 2 q 2 S\boldsymbol q_2=\lambda_2\boldsymbol q_2

S

q

2

=

λ

2

q

2

继续下去,或者使用数学归纳法,就可以得到所有的特征向量

q 1 , q 2 , ⋯   , q 2 \boldsymbol q_1,\boldsymbol q_2,\cdots,\boldsymbol q_2

q

1

,

q

2

,

,

q

2

和它们对应的特征值

λ 1 , λ 2 , ⋯   λ n \lambda_1,\lambda_2,\cdots,\lambda_n

λ

1

,

λ

2

,

λ

n

,即使存在重复的特征值,谱定理

S

Q Λ Q T S=Q\Lambda Q^T

S

=

Q

Λ

Q

T 也可以被证明。所有的对称矩阵都可被对角化。

类似的,SVD 可以从式(7.2.9)和(7.2.11)中一步一步的得到。下面有一个很重要的问题: **实际情况中如何计算

λ \lambda

λ 和

σ \sigma

σ 呢?**

七、计算 S 的特征值和 A 的奇异值

A A

A 的奇异值

σ i \sigma_i

σ

i

S

A T A S=A^TA

S

=

A

T

A 特征值

λ i \lambda_i

λ

i

的算术平方根,这个将 SVD 和对称矩阵的特征值问题联系了起来,这个很好;但是我们不想使用

A T A A^TA

A

T

A 乘

A A

A ,因为这个运算非常耗时,这个很不好。

首先想到的是 **尽可能将

A A

A 和

S S

S 的元素都变成零** , 而不改变任何的

σ \sigma

σ 和

λ \lambda

λ 。奇异向量和特征向量会改变 —— 这个没有问题。相似矩阵

Q − 1 S Q Q^{-1}SQ

Q

1

SQ 和

S S

S 的特征值

λ \lambda

λ 相同,如果

S S

S 正交,那么这个矩阵就是

Q T S Q Q^TSQ

Q

T

SQ 也是对称的。

对于二阶的对称矩阵可以构造出

2 × 2 2\times2

2

×

2 的旋转矩阵

Q Q

Q ,使得

Q T S Q Q^TSQ

Q

T

SQ 是 对称的三对角矩阵(symmetric and tridiagonal matrix) ,它含有大量的零元素,但是旋转无法保证总能得到对角矩阵,所以要想求得

S S

S 所有的特征值,需要新的方法。

对于 SVD,和

Q T S Q Q^TSQ

Q

T

SQ 相对应的是什么?我们不想改变

A A

A 任何的奇异值,那么就是:在

A A

A 的两边分别乘上不同的正交矩阵

Q 1 Q_1

Q

1

Q 2 Q_2

Q

2

,利用这两个在矩阵

Q 1 T A Q 2 Q_1^TAQ_2

Q

1

T

A

Q

2

中生成零元素,而

σ \sigma

σ 不会改变:

( Q 1 T A Q 2 ) T ( Q 1 T A Q 2 )

Q 2 T A T A Q 2

Q 2 T S Q 2 得到相同的   σ ( A )   和   λ ( S ) (Q_1^TAQ_2)^T(Q_1^TAQ_2)=Q_2^TA^TAQ_2=Q_2^TSQ_2\kern 10pt得到相同的,\sigma(A),和,\lambda(S)

(

Q

1

T

A

Q

2

)

T

(

Q

1

T

A

Q

2

)

=

Q

2

T

A

T

A

Q

2

=

Q

2

T

S

Q

2

得到相同的

σ

(

A

)

λ

(

S

) 两个自由选取的

Q Q

Q 将可以使得

Q 1 T A Q 2 Q_1^TAQ_2

Q

1

T

A

Q

2

两对角矩阵(bidiagonal matrix) ,这个完美对应了

Q T S Q Q^TSQ

Q

T

SQ 是三对角矩阵,它们之间的联系是:

( 两对角矩阵 ) T ( 两对角矩阵 )

三对角矩阵 (两对角矩阵)^T(两对角矩阵)=三对角矩阵

(

两对角矩阵

)

T

(

两对角矩阵

)

=

三对角矩阵 。

最后要算出对角矩阵

Λ \Lambda

Λ 和对角矩阵

Σ \Sigma

Σ 的步骤需要更多的新思路,这个也不简单,因为有些要解的

det ⁡ ( S − λ I )

0 \det(S-\lambda I)=0

det

(

S

λ

I

)

=

0 是

n

100 n=100

n

=

100 或

1000 1000

1000 甚至是更多次数的多项式,而我们不可能去求解这些多项式!

LAPACK 中求解

λ \lambda

λ 和

σ \sigma

σ 是使用简单的正交矩阵来逼近

Q T S Q

Λ Q^TSQ=\Lambda

Q

T

SQ

=

Λ 和

U T A V

Σ U^TAV=\Sigma

U

T

A

V

=

Σ , **当很接近

Λ \Lambda

Λ 和

Σ \Sigma

Σ 时就停止。**

这两步(先是零元素)方法在指令 eig(S)svd(A) 中内置了。

八、主要内容总结

  1. SVD 将

    A A

    A 分解成

    U Σ V T U\Sigma V^T

    U

    Σ

    V

    T ,共有

    r r

    r 个奇异值

    σ 1 ≥ σ 2 ≥ ⋯ ≥ σ r

    0 \sigma_1\geq\sigma_2\geq\cdots\geq\sigma_r>0

    σ

    1

    σ

    2

    σ

    r

    0 .

  2. 数值

    σ 1 2 , σ 2 2 , ⋯   , σ r 2 \sigma_1^2,\sigma_2^2,\cdots,\sigma_r^2

    σ

    1

    2

    ,

    σ

    2

    2

    ,

    ,

    σ

    r

    2

    A A T AA^T

    A

    A

    T 和

    A T A A^TA

    A

    T

    A 非零的特征值。

  3. U U

    U 和

    V V

    V 的标准正交列是

    A A T AA^T

    A

    A

    T 和

    A T A A^TA

    A

    T

    A 的特征向量。

  4. 这些列包含了矩阵

    A A

    A 四个基本子空间的标准正交基。

  5. 这些基对角化矩阵

    A A

    A :

    A v i

    σ i u i ,   i ≤ r A\boldsymbol v_i=\sigma_i\boldsymbol u_i,,i\leq r

    A

    v

    i

    =

    σ

    i

    u

    i

    ,

    i

    r ,即是

    A V

    U Σ \pmb{AV=U\Sigma}

    A

    V

    =

    U

    Σ .

  6. A

    σ 1 u 1 v 1 T + σ 2 u 2 v 2 T + ⋯ + σ r u r v r T A=\sigma_1\boldsymbol u_1\boldsymbol v_1^T+\sigma_2\boldsymbol u_2\boldsymbol v_2^T+\cdots+\sigma_r\boldsymbol u_r\boldsymbol v_r^T

    A

    =

    σ

    1

    u

    1

    v

    1

    T

σ

2

u

2

v

2

T

σ

r

u

r

v

r

T

,其中

σ 1 \sigma_1

σ

1

是比值

∣ ∣ A x ∣ ∣ ∣ ∣ x ∣ ∣ \displaystyle\frac{||A\boldsymbol x||}{||\boldsymbol x||}

∣∣

x

∣∣

∣∣

A

x

∣∣

的最大值。

九、例题

例4 】识别出下列将

A A

A 分解成列乘行的和的分解方式的类型:

  正交列 u 1 σ 1 , u 2 σ 2 , ⋯   , u r σ r 乘 标准正交行 v 1 T , v 2 T , ⋯   , v r T 2.   标准正交列 q 1 , q 2 , ⋯   , q r 乘 三角形矩阵的行 r 1 T , r 2 T , ⋯   , r r T 3.   三角形矩阵的列 l 1 , l 2 , ⋯   , l r 乘 三角形矩阵的行 u 1 T , u 2 T ⋯   , u r T \begin{array}{llll}1.,正交列&\boldsymbol u_1\sigma_1,\boldsymbol u_2\sigma_2,\cdots,\boldsymbol u_r\sigma_r&乘&标准正交行&\boldsymbol v_1^T,\boldsymbol v_2^T,\cdots,\boldsymbol v_r^T\2.,标准正交列&\boldsymbol q_1,\boldsymbol q_2,\cdots,\boldsymbol q_r&乘&三角形矩阵的行&\boldsymbol r_1^T,\boldsymbol r_2^T,\cdots,\boldsymbol r_r^T\3.,三角形矩阵的列&\boldsymbol l_1,\boldsymbol l_2,\cdots,\boldsymbol l_r&乘&三角形矩阵的行&\boldsymbol u_1^T,\boldsymbol u_2^T\cdots,\boldsymbol u_r^T\end{array}

正交列

标准正交列

三角形矩阵的列

u

1

σ

1

,

u

2

σ

2

,

,

u

r

σ

r

q

1

,

q

2

,

,

q

r

l

1

,

l

2

,

,

l

r

标准正交行

三角形矩阵的行

三角形矩阵的行

v

1

T

,

v

2

T

,

,

v

r

T

r

1

T

,

r

2

T

,

,

r

r

T

u

1

T

,

u

2

T

,

u

r

T

A A

A 的秩、主元和奇异值在上述分解中的哪里出现?

解: 这三种分解不管是对理论数学还是应用数学中的线性代数都是基础:

  1. 奇异值分解 Singular Value Decompositon

    A

    U Σ V T \pmb{A=U\Sigma V^T}

    A

    =

    U

    Σ

    V

    T

  2. 格拉姆-施密特正交化 Gram-Schmidt Orthogonalization

    A

    Q R \pmb{A=QR}

    A

    =

    QR

  3. 高斯消元法 Gaussian Elimination

    A

    L U \pmb{A=LU}

    A

    =

    LU

可以将奇异值

σ i \pmb{\sigma_i}

σ

i

、高度

h i \pmb{h_i}

h

i

和主元

d i \pmb{d_i}

d

i

单独表示:

  1. A

    U Σ V T A=U\Sigma V^T

    A

    =

    U

    Σ

    V

    T ,其中

    U U

    U 和

    V V

    V 的列都是单位向量, **r r

    r 个奇异值

    σ i \sigma_i

    σ

    i

    Σ \Sigma

    Σ 中** .

  2. A

    Q H R A=QHR

    A

    =

    Q

    H

    R ,其中

    Q Q

    Q 的列是单位向量,

    R R

    R 中的对角元素都是

    1 1

    1 , **r r

    r 个高度

    h i h_i

    h

    i

    H H

    H 中** .

  3. A

    L D U A=LDU

    A

    =

    L

    D

    U ,其中

    L L

    L 和

    U U

    U 的对角元素都是

    1 1

    1 , **r r

    r 个主元在

    D D

    D 中** .

每个

h i h_i

h

i

表示第

i i

i 列到由第

1 , 2 , ⋯   , i − 1 1,2,\cdots,i-1

1

,

2

,

,

i

1 列所形成平面的高度,当

r

m

n r=m=n

r

=

m

=

n 时,

n n

n 维的 “平行多面体”(以

A A

A 各列为同一顶点处的棱)的体积可以由

A

U Σ V T

L D U

Q H R A=U\Sigma V^T=LDU=QHR

A

=

U

Σ

V

T

=

L

D

U

=

Q

H

R 求得:

∣ det ⁡ A ∣

∣ σ i 的乘积 ∣

∣ d i   的乘积 ∣

∣ h i   的乘积 ∣ \pmb{|\det A|=|\sigma_i 的乘积|=|d_i,的乘积|=|h_i,的乘积|}

det

A

=

σ

i

的乘积

=

d

i

的乘积

=

h

i

的乘积

∣ 【 例5 】 **证明

σ 1 ≥ ∣ λ ∣ max \pmb{\sigma_1\ge|\lambda|_{\textrm{max}}}

σ

1

λ

max

,最大的奇异值大于或等于所有的特征值** 。

证明:

A

U Σ V T A=U\Sigma V^T

A

=

U

Σ

V

T ,注意到左乘一个正交矩阵并不改变这个向量的长度:

∣ ∣ Q x ∣ ∣

∣ ∣ x ∣ ∣ ||Q\boldsymbol x||=||\boldsymbol x||

∣∣

Q

x

∣∣

=

∣∣

x

∣∣ ,这是因为

∣ ∣ Q x ∣ ∣ 2

x T Q T Q x

x T x

∣ ∣ x ∣ ∣ 2 ||Q\boldsymbol x||^2=\boldsymbol x^TQ^TQ\boldsymbol x=\boldsymbol x^T\boldsymbol x=||\boldsymbol x||^2

∣∣

Q

x

2

=

x

T

Q

T

Q

x

=

x

T

x

=

∣∣

x

2 ,这个也适用于

Q

U Q=U

Q

=

U 和

Q

V T Q=V^T

Q

=

V

T ,这两个矩阵的中间是对角矩阵

Σ \Sigma

Σ :

∣ ∣ A x ∣ ∣

∣ ∣ U Σ V T x ∣ ∣

∣ ∣ Σ V T x ∣ ∣ ≤ σ 1 ∣ ∣ V T x ∣ ∣

σ 1 ∣ ∣ x ∣ ∣ ( 7.2.14 ) ||A\boldsymbol x||=||U\Sigma V^T\boldsymbol x||=||\Sigma V^T\boldsymbol x||\le\sigma_1||V^T\boldsymbol x||=\sigma_1||\boldsymbol x||\kern 20pt(7.2.14)

∣∣

A

x

∣∣

=

∣∣

U

Σ

V

T

x

∣∣

=

∣∣Σ

V

T

x

∣∣

σ

1

∣∣

V

T

x

∣∣

=

σ

1

∣∣

x

∣∣

(

7.2.14

) 特征向量满足

∣ ∣ A x ∣ ∣

∣ λ ∣ ∣ ∣ x ∣ ∣ ||A\boldsymbol x||=|\lambda|||\boldsymbol x||

∣∣

A

x

∣∣

=

λ

∣∣∣

x

∣∣ ,所以式(7.2.14)表明

∣ λ ∣ ∣ ∣ x ∣ ∣ ≤ σ 1 ∣ ∣ x ∣ ∣ |\lambda|||\boldsymbol x||\le\sigma_1||\boldsymbol x||

λ

∣∣∣

x

∣∣

σ

1

∣∣

x

∣∣ ,所以

∣ λ ∣ ≤ σ 1 \pmb{|\lambda|\le\sigma_1}

λ

σ

1

.

x

( 1 , 0 , ⋯   , 0 ) \boldsymbol x=(1,0,\cdots,0)

x

=

(

1

,

0

,

,

0

) 为单位向量,则

A x A\boldsymbol x

A

x 就是

A A

A 的第一列,然后由不等式(7.2.14)可得,这列的长度小于或等于

σ 1 \sigma_1

σ

1

。所以

A A

A 的每个元素都有

∣ a i j ∣ ≤ σ 1 |a_{ij}|\le\sigma_1

a

ij

σ

1

.

式(7.2.14)再次证明了 **∣ ∣ A x ∣ ∣ ∣ ∣ x ∣ ∣ \displaystyle\frac{||A\boldsymbol x||}{||\boldsymbol x||}

∣∣

x

∣∣

∣∣

A

x

∣∣

的最大值等于

σ 1 \sigma_1

σ

1

.**

在求解

A x

b A\boldsymbol x=\boldsymbol b

A

x

=

b 时,条件数(condition number)

σ max σ min \displaystyle\frac{\sigma_{\textrm{max}}}{\sigma_{\textrm{min}}}

σ

min

σ

max

控制舍入的误差,如果条件数太大,那么 MATLAB 会警告此时的

x \boldsymbol x

x 不可靠。