线性代数(22)——矩阵SVD分解

对称矩阵

借助对称矩阵可以处理任何矩阵,将任何矩阵都分解成希望的形式。

概念

对称矩阵中所有元素沿主对角线对称,主对角线元素不要求实相同的。用数学语言表述为 A = A T A=A^T A=AT。对称矩阵也一定是方阵。

对称矩阵性质

  1. 对称矩阵的特征值一定是实数
  2. 对称矩阵出现多重特征值时,其几何重数一定等于代数重数。也就意味着对称矩阵一定有 n n n个线性无关的特征向量。
  3. 对称矩阵一定可以被对角化。这实际上与上一条性质等价。

在之前的笔记中,特征值和特征向量的计算过程涉及到几何重数是否等于代数重数、 n n n个特征向量是否线性无关等判断。而在面对对称矩阵时,这些运算都可以免去。也就是说,对称矩阵减去了先前特征值计算过程中的各类复杂情况。

正交对角化

对称矩阵一定可以被正交对角化

正交对角化是对称矩阵另一个良好的性质,对称矩阵的所有的不同的特征值对应的特征向量相互垂直

对上面的性质进行证明,
在这里插入图片描述
对于对称矩阵具有多重特征值的情况,因为对称矩阵几何重数等于代数重数, k k k重相同特征值的特征空间也是 k k k维,所以在这个空间中找到 k k k个正交基是没有问题的。
在这里插入图片描述
也就是说对称矩阵一定可以被正交对角化

其中 Q Q Q是标准正交矩阵, Q Q Q矩阵也同样具有良好的性质, Q − 1 = Q T Q^{-1}=Q^T Q1=QT,所以对称矩阵一定满足 A = Q D Q T A= QDQ^T A=QDQT,这也称为对矩阵 A A A进行了正交对角化。实际上就是在保证了对角化的基础上,同时满足矩阵 P P P是一个标准正交矩阵。

如果一个矩阵能够被正交对角化,则它一定是对称矩阵

对该性质进行证明,
在这里插入图片描述

谱定理

实际上就是上面的两个互为充要的条件,因为在有些地方矩阵的特征值或奇异值称为
在这里插入图片描述

奇异值

之前讨论的特征值、特征向量、相似型、对角化、对称矩阵和正交对角化的内容都是针对方阵而言的。但是在实际工作中,大部分的数据都是非方阵的。若 A A A是一个 m × n m×n m×n的矩阵,则 A T A A^TA ATA是一个 n × n n×n n×n的方阵,且该方阵是对称矩阵。

对上面的结论进行证明,
在这里插入图片描述
由此,所有的对阵矩阵的良好性质都能够应用。即 A T A A^TA ATA可以被正交对角化,拥有 n n n个实数特征值,且相应的特征向量线性无关。

概念

基于上面得证的 A T A A^TA ATA的性质,进行下面的一步操作,目前先不考虑这样操作的原因,具体原因会在后面说明,
在这里插入图片描述
这就将 A A A A T A A^TA ATA的特征值和特征向量之间建立联系,因为 ∣ ∣ A v i ⃗ ∣ ∣ 2 ||A\vec{v_i}||^2 Avi 2是模的平方,所以 A T A A^TA ATA的特征值一定是 ≥ 0 ≥0 0的,

奇异值(singular value), σ i = λ i \sigma_i=\sqrt{\lambda_i} σi=λi ,就是 A v i ⃗ A\vec{v_i} Avi 对应的向量的长度。

一般情况下,计算得到的奇异值按照从大到小的顺序进行排序。

奇异值几何意义

{ A v i ⃗ } \{A\vec{v_i}\} {Avi } A A A的列空间的一组正交基,同时满足特征向量 v i ⃗ \vec{v_i} vi 对应的特征值 λ i ≠ 0 λ_i ≠ 0 λi̸=0。对这一结论进行证明分成两部分,

  1. 证明 A v i ⃗ A\vec{v_i} Avi 之间的正交性
    在这里插入图片描述
  2. 证明 A v i ⃗ A\vec{v_i} Avi 构成 A A A的列空间的正交基
    在这里插入图片描述
    λ i λ_i λi等于0时, A v i ⃗ A\vec{v_i} Avi 对应的向量就是一个零向量,相应的奇异值也为0。如果矩阵 A A A r r r个不为0的奇异值,则 { A v 1 ⃗ , A v 2 ⃗ , … … , A v r ⃗ } \{ A\vec{v_1}, A\vec{v_2}, ……, A\vec{v_r} \} {Av1 ,Av2 ,,Avr }是矩阵 A A A的列空间的一组正交基。 A A A的列空间的维度为 r r r,即 A A A矩阵的秩 r a n k ( A ) = r rank(A)=r rank(A)=r { A v 1 ⃗ σ 1 , A v 2 ⃗ σ 2 , … … , A v r ⃗ σ r } \{ \frac{A\vec{v_1}}{σ_1}, \frac{A\vec{v_2}}{σ_2}, ……, \frac{A\vec{v_r}}{σ_r} \} {σ1Av1 ,σ2Av2 ,,σrAvr }是矩阵 A A A的列空间的一组标准正交基。

矩阵SVD分解

这是矩阵最重要的分解形式。SVD分解的全称为“Singular Value Decomposition”,即通过矩阵的奇异值进行分解。SVD分解的优势在于,该方法对矩阵没有任何限制,对于任意形状的矩阵都适用

SVD分解

SVD分解将矩阵分为三部分
在这里插入图片描述
矩阵U和V都是标准正交矩阵

唯一不是方阵的 ∑ ∑ 比较特殊,
在这里插入图片描述

证明SVD分解成立

结合SVD分解的公式,因为U和V都是标准正交矩阵,依据标准正交矩阵的性质 V T = V − 1 V^T = V^{-1} VT=V1
在这里插入图片描述
在这里插入图片描述

SVD分解过程

对于一个 m × n m×n m×n的矩阵 A A A,进行SVD分解的步骤如下,

  1. 求解对称矩阵 A T A A^TA ATA 的特征值和特征向量
  2. 用所有非零的特征值得到所有非零的奇异值 m × n m×n m×n ∑ ∑ ∑ ∑ 中对角线上的奇异值按照从大到小的顺序进行排列
  3. 将所有特征向量标准化后得到 n × n n×n n×n的矩阵 V V V
  4. 使用 A T A A^TA ATA这个矩阵所有 r r r个不为0的特征值及其对应的 r r r个非零特征向量求取 U U U矩阵的列向量 u i ⃗ \vec{u_i} ui ,其中 u i ⃗ = A v i ⃗ σ i \vec{ui}=\frac{A\vec{v_i}}{σ_i} ui =σiAvi 。如果 r &lt; m r&lt;m r<m,则使用Gram-Schmidt方法对 u i ⃗ \vec{u_i} ui 进行扩充,最终得到 m m m维空间的一组正交基。

实现矩阵SVD分解

使用Scipy模块实现SVD分解,

import numpy as np
from scipy.linalg import svd

if __name__ == "__main__":
    A = np.array([[1, 2],
                  [3, 4],
                  [5, 6]])
    U, s, VT = svd(A)
    print(U)    # 3×3的矩阵
    print(s)    # 返回一个一维向量,其中每个元素都是矩阵A^(T)A的奇异值
    print(VT)    # 2×2的矩阵

    # 先创建 ∑ 矩阵
    Sigma = np.zeros(A.shape)
    for i in range(len(s)):    
        Sigma[i][i] = s[i]

    print(U.dot(Sigma).dot(VT))    # 与A矩阵相同
    

SVD分解的用途

SVD分解使用很广泛,几乎在使用线性代数的地方都脱离不开SVD分解。举例说明,

  1. 将矩阵 A A A看做变换
    U U U V V V看做是 m m m维和 n n n维空间的标准正交基。若向量 x ⃗ \vec{x} x V V V矩阵所在空间的向量,则向量 x ⃗ \vec{x} x 可以被矩阵 V V V中的列向量表示。
    在这里插入图片描述
    对上面最后一行式子进行说明, A A A矩阵的变换被放在 U U U这个坐标系下看,与此同时变换结果的值是在之前 U U U坐标系中的值的基础上拉伸奇异值倍。
  2. 将奇异值视为权值
    在这里插入图片描述
    对上式进行整理可以得到,
    在这里插入图片描述
    所以SVD可以对原始数据进行压缩、降维、去噪(奇异值很小的数据可以视为噪音)。上式表示将 A A A这个 m × n m×n m×n的数据,看做是一个 r r r维的数据,其中( r &lt; = m i n ( m , n ) r &lt;= min(m, n) r<=min(m,n))。

SVD在图像领域的应用很广泛,利用SVD分解,减少了一定的数据量但是依旧可以很好的表达图像的语义。

  • 2
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值