重温基础数学--矩阵分解

1. 理论

1.1 矩阵里的几个概念

  • 矩阵:
    矩阵是线性空间里的变换描述
    在教材里,一般这么说:在一个线性空间V里的一个线性变换T,当选定一组基之后,就可以表示为矩阵

1.1.1 变换和线性变换

  • 变换
    变换是从空间的一个点(矢量)跃迁(旋转)到另一个点(矢量)。

  • 线性变换
    在已知变换的概念的基础上,线性变换的定义是很简单的:
    设有一种变换T,使得对于线性空间V中间任何两个不相同的对象x和y,以及任意实数a和b,有:

    T(ax+by)=aT(x)+bT(y) T ( a x + b y ) = a T ( x ) + b T ( y )

    那么就称T为线性变换【注】:线性的概念
    直观感觉:
    就是从一个线性空间V的某一个点跃迁到另一个线性空间W的另一个点的运动。


【注】:惯导系统里,姿态矩阵是现实中最常用、最有用、最简单、最特殊的一种变换。
姿态矩阵是 3次基本旋转对应的变换矩阵的乘积。
旋转过程存在于真实世界中,且逆向旋转可以回到原始姿态,且飞机旋转前后不变形。
用数学语言来说,变换是在同一个线性空间之内进行的,且可逆,且内积不变。
那么姿态矩阵有的三个性质就是,方阵、非奇异(可逆)、正交矩阵。

1.1.2 描述

矩阵是线性空间里的变换描述

比如有一头猪,你打算给它拍照片,只要你给照相机选定了一个镜头位置,那么就可以给这头猪拍一张照片A。A可以看成是这头猪的一个描述,但只是一个片面的的描述。
因为换一个镜头位置给这头猪拍照,能得到一张不同的照片B,B也是这头猪的另一个片面的描述。
所有这样照出来的照片都是这同一头猪的描述,但是又都不是这头猪本身。

  • 选一组基,等价于 选一个坐标系。

  • 变换 是一头猪,是一个对象,只有一个;描述 是一张张照片,是一个个 引用,可以有多个。

所有这些照片之间有一个共同的特点,它们描述了同一头猪;
所有这一系列矩阵之间有一个共同的特点,它们描述了同一个变换;
这些矩阵互为相似矩阵。

照片虽然描述同一头猪,但有美丑之分;
这些矩阵虽然描述同一个变换,但其自身拥有的性质,揭示变换本质的能力,有优劣之分。
这是我们不遗余力进行相似变换的原因。

  • 相似变换
    定义:若 B=P1AP B = P − 1 A P (等价地 A=PBP1 A = P B P − 1 ),则,称 A A B B 相似。

1.2 特征值、特征向量、特征值分解

1.2.1 特征值的定义

对于矩阵 A A ,若对于 λ0 λ 0 ,存在非零向量 x x ,使下式成立

Ax=λ0x A x = λ 0 x

则,称 λ0 λ 0 为特征值, x x 为特征向量。
直观感觉
矩阵是线性空间里变换的描述,矩阵 A A 和向量 x x 相乘,本质上是对 x x 做一次旋转或拉伸。而常值 λ0 λ 0 和向量 x x 相乘,即对 x x 做一次拉伸。
所以,当我们求 特征值特征向量的时候,就是为了求矩阵 A A 能使 哪些向量(特征向量)只发生拉伸,而拉伸的程度,自然就是 特征值 λ0 λ 0 了。

如果选择矩阵 A A 的所有特征向量,作为 A A 的一组基,可以想象它们围成的单位图形(立方体、超立方体),只会有伸缩,不会发生“形变”。

1.2.2 特征值分解

如果把这组由特征向量组成的基,进行单位正交化(Schmidt正交化),组成正交矩阵 Q Q (复数域里叫酉矩阵),则, A A 有如下等式成立

A=QΣQ1 A = Q Σ Q − 1

Σ Σ 是一个由特征值组成的对角阵。
这就是特征值分解。

【注】:可以看出,特征值分解 中, A A Σ Σ 满足矩阵相似的条件。即,它们描述了同一个变换。而矩阵 Σ Σ 是 最能揭示这个变换本质的(提取特征的)、最简洁的 那个描述。
【注2】:特征值分解的局限就是,要求必须是方阵。

1.3 奇异值分解(SVD)

特征值分解是一个提取矩阵特征很不错的方法。
但是,特征值分解最大的问题是只能针对方阵,即, nn n ∗ n 的矩阵。而在实际应用场景中,大部分不是方阵。此时,可以使用SVD.

1.3.1 定义

A A 是一个 mn m ∗ n 阶的矩阵,若存在一个分解

A=UDVT=U[Σ0(mr)×r0r×(nr)0(mr)×(nr)]VT A = U D V T = U [ Σ 0 r × ( n − r ) 0 ( m − r ) × r 0 ( m − r ) × ( n − r ) ] V T

就叫做 A A 的奇异值分解。
其中, U U mm m ∗ m 阶酉矩阵; VT V T V V 的转置,是 nn n ∗ n 阶的酉矩阵;
Σ=diag{σ1,σ2,,σr} Σ = d i a g { σ 1 , σ 2 , ⋯ , σ r } ,而 σ1,σ2,,σr σ 1 , σ 2 , ⋯ , σ r A A 的奇异值,且按照从大到小的顺序排列。

【注】:求解方法见P193

上述SVD过程示意图:
重温基础数学--矩阵分解_第1张图片
经过这样一番分解之后的结果是,(1)得到了关于奇异值的一些信息;(2)可以使用 三个矩阵和两次矩阵乘法来表示矩阵 A A ;(但这种表示不仅存储规模大,而且运算复杂度高,没有优势)

1.3.2 SVD的应用

但是,奇异值有个很好的性质:在大部分情况下,奇异值从大到小排序之后,会发现其减小的速度特别快。很多时候,前10%甚至前1%的奇异值的和就占了全部奇异值和的99%以上。(特征值越大,对矢量的伸展越大,奇异值类似;相反,奇异值越小,对矢量变换的影响越小)
所以,一个矩阵可以由前面 r r 个奇异值来近似( rn r ≤ n ):

Am×nUm×rΣr×rVTr×n A m × n ≈ U m × r Σ r × r V r × n T

重温基础数学--矩阵分解_第2张图片
这样SVD就具有了实用性。
选取的 r r 越接近 n n ,右边三个小矩阵的乘积与原矩阵 A A 的相似度就越高,但同时,存储和计算的成本就越高;因此可以根据实际需要选取 r r 的大小。
因此, 降维和压缩是SVD两个天然的应用。

2. Matlab编程实现

  • 特征值分解:
    d = eig(A) %求矩阵A的特征值d,以向量形式存放d。
  • 奇异值分解:
    s = svd (A) %返回矩阵X的奇异值向量
    [U,S,V] = svd (A) %返回一个与A同大小的对角矩阵S,两个酉矩阵U和V,且满足 A=USVT A = U S V T 。若A为m×n阵,则U为m×m阵,V为n×n阵。奇异值在S的对角线上,非负且按降序排列。

【1】几种常见的矩阵分解:https://blog.csdn.net/bitcarmanlee/article/details/52662518
【2】SVD分解:https://blog.csdn.net/bitcarmanlee/article/details/52068118
【3】矩阵是线性空间里的变换的描述:https://blog.csdn.net/bitcarmanlee/article/details/52067985 理解“变换”这个概念。

你可能感兴趣的:(▶,数学基础温习)