博主从一位大神处转载而来的,写得非常好,修改了一处我觉得可能是大神写的一点点小问题,

原地址: https://blog.csdn.net/MyArrow/article/details/53780972

1.1 应用领域

  • 最优化问题:最小二乘问题 (求取最小二乘解的方法一般使用SVD)
  • 统计分析:信号与图像处理
  • 求解线性方程组:Ax=0或Ax=bAx=0或Ax=b
  • 奇异值分解:可以降维,同时可以降低数据存储需求

1.2 矩阵是什么

  • 矩阵是什么取决于应用场景
  • 矩阵可以是: 
    • 只是一堆数:如果不对这堆数建立一些运算规则
    • 矩阵是一列列向量:如果每一列向量列举了对同一个客观事物的多方面的观察值
    • 矩阵是一个图像:它的每个元素代表对应位置的像素值
    • 矩阵是一个线性变换:它可以将一些向量变换为另一些向量

1.3 矩阵与线性变换

  • 矩阵的本质:矩阵的本质就是线性变换

  • 基-坐标系:一个基定义了一个坐标系

  • 矩阵-线性变换:在线性空间中,当选定一组基(相当于确定坐标系)之后,不仅可以用一个向量来描述空间中的任何一个对象,而且可以用矩阵来描述此空间中的任何一个运行(变换),即任何一个线性变换, 都可以用一个确定的矩阵来加以描述

  • 向量:向量描述对象(在选定基之后)

  • 矩阵:矩阵描述对象的运动(在选定基之后)
  • 运动:使某个对象发生要求的运动,就是用描述此运动的矩阵乘以运动对象的向量(运动 * 对象 = 矩阵 * 向量)
  • 特征值-变换:同一个线性变换在同的坐标系(基)下的矩阵不同,但其本质相同, 所以特征值相同
  • 矩阵可进行哪些线性变换? 
    • 旋转
    • 缩放
    • 投影
  • 矩阵包含这么多功能,当我们看着一个数据表,对它的功能一无所知,很是迷茫,为了达到我们人类的目的,大神们把它进行分解,从而达到我们人类理解、使用的目标。
  • 特征向量:都是正交的,即相互垂直
  • 特征值分解和奇异值分解:都是给一个矩阵(线性变换)找一组特殊的基 
    • 特征值分解:找到了特征向量这一组基,在这组基下该线性变换只有缩放效果
    • 奇异值分解(SVD):则是找到两组基,从一组基到另一组的线性变换的旋转、缩放、投影三种功能独立地展示出来了

2. 特征值分解-方阵

  • 只有方阵才能进行特征值分解

  • 奇异值和特征值的重要意义相似,都是为了提取出矩阵的主要特征。

  • 特征值的本质:Ax=λxAx=λx

  • 特征值分解:把方阵分解为缩放矩阵+特征向量矩阵,没有旋转或旋转角度为0

  • 特征值-变化的主次:如果我们想要描述好一个变换,那我们就描述好这个变换主要的变化方向就好了。反过头来看看之前特征值分解的式子,分解得到的∧∧矩阵是一个对角阵,里面的特征值是由大到小排列的,这些特征值所对应的特征向量就是描述这个矩阵变化方向(从主要的变化到次要的变化排列)

  • 高维线性变换:当矩阵是高维的情况下,那么这个矩阵就是高维空间下的一个线性变换,这个线性变化可能没法通过图片来表示,但是可以想象,这个变换也同样有很多的变换方向,我们通过特征值分解得到的前N个特征向量,那么就对应了这个矩阵最主要的N个变化方向。我们利用这前N个变化方向,就可以近似这个矩阵(变换)。也就是之前说的:提取这个矩阵最重要的特征。

  • 特征值分解总结:特征值分解可以得到:

    • 特征值:特征值表示的是这个特征到底有多重要
    • 特征向量:而特征向量表示这个特征是什么,可以将每一个特征向量理解为一个线性的子空间,我们可以利用这些线性的子空间干很多的事情。
    • 特征值分解的局限:特征值分解也有很多的局限,比如说变换的矩阵必须是方阵。

2.1 方阵的分解

  • 设A∈Rn×nA∈Rn×n,则A可表示为:

    A=X∧X−1A=X∧X−1

  • X的列:为A的特征向量

  • ∧∧为对角矩阵:对角线上的值为A的特征值,按从大到小的顺序排列

2.2 实对称矩阵的分解

  • 设S∈Rn×nS∈Rn×n,且是对称矩阵,则S可表示为:

    S=U∧UTS=U∧UT

  • U的列:为S的单位正交特征向量,即U是正交矩阵(列/行向量正交性、归一化,且U−1=UTU−1=UT)

  • ∧∧为对角矩阵:对角线上的值为S的特征值,按从大到小的顺序排列
  • U就是矩阵A所定义的坐标系:U的n个列向量组成A的一个完备的标准正交特征向量系

3. 奇异值分解(SVD) - 非方阵

  • 只有非方阵才能进行奇异值分解

  • SVD分解:把矩阵分解为缩放矩阵+旋转矩阵+特征向量矩阵

  • A的非0奇异值的个数等于它的秩rr

3.1 SVD定义

  • 设A∈Rm×nA∈Rm×n,且rank(A)rank(A) = rr (rr > 0),则矩阵A的奇异值分解(SVD)可表示为:

    A=UΣVTA=UΣVT

    A=U[Σ000]VT=σ1u1vT1+σ2u2vT2+σrurvTrA=U[Σ000]VT=σ1u1v1T+σ2u2v2T+σrurvrT
  • UU和VV都为正交矩阵

  • 几何含义:

    • 表示找到了UU和VV这样两组基:A矩阵的作用是将一个向量从VV这组正交基向量的空间旋转到UU这组正交基向量的空间,并对每个方向进行了一定的缩放(由ΣΣ决定),缩放因子就是各个奇异值。如果VV的维度比UU 大,则表示还进行了投影。
    • 奇异值分解:将一个矩阵原本混合在一起的三种作用效果,分解出来了。
  • SVD分解如下图所示: 

  • U∈Rm×mU∈Rm×m(左奇异向量):UU的列为AATAAT的正交特征向量

  • V∈Rn×nV∈Rn×n(右奇异向量):VV的列为ATAATA的正交特征向量

  • AATAAT与ATAATA:是实对称正定矩阵,且其特征值为非负实数 (这里博主认为应该是正数)

  • rank(AATAAT) = rank(ATAATA) = rank(A)

  • AATAAT与ATAATA的特征值相同:为λ1,λ2,...,λrλ1,λ2,...,λr,且λi≥λi+1,λi≥0 (这里博主认为应该是>0)λi≥λi+1,λi≥0

  • Σ∈Rm×nΣ∈Rm×n:σi=Σii=λi‾‾√σi=Σii=λi,其它元素的值为0

  • ΣΣ = diag(σ1,σ2,...,σr)diag(σ1,σ2,...,σr)

  • σi(i=1,2,...,r),σ1≥...≥σr>0σi(i=1,2,...,r),σ1≥...≥σr>0:为矩阵A的全部奇异值

  • 奇异值σ跟特征值类似,在矩阵Σ中也是从大到小排列,而且σ的减少特别的快,在很多情况下,前10%甚至1%的奇异值的和就占了全部的奇异值之和的99%以上了。也就是说,我们也可以用前kk个大的奇异值来近似描述矩阵,这里定义一下部分奇异值分解:
Am×n≈Um×kΣk×kVTk×nAm×n≈Um×kΣk×kVk×nT
  • 右边的三个矩阵相乘的结果将会是一个接近于A的矩阵,在这儿,k越接近于n,则相乘的结果越接近于A。而这三个矩阵的面积之和(在存储观点来说,矩阵面积越小,存储量就越小)要远远小于原始的矩阵A,我们如果想要压缩空间来表示原矩阵A,我们存下这里的三个矩阵:U、Σ、V就好了。

3.2 SVD特征

  • 奇异值的比例不变性: 
    即αAαA的奇异值是A的奇异值的|α||α|倍

  • 奇异值的旋转不变性: 
    若PP是正交矩阵且detA=1detA=1(即PP为旋转矩阵),PAPA的奇异值与AA的奇异值相同

  • 奇异值的比例和旋转不变性:在数字图像的旋转、镜像、平移、放大、缩小等几何变换方面有很好的应用

  • 容易得到矩阵AA的秩为kk(k≤rk≤r)的一个最佳逼近矩阵

    • 这个特性可以应用于信号的分解和重构, 提取有用信息,消除信号噪声

      A=UΣVT=σ1u1vT1+σ2u2vT2+σrurvTrA=UΣVT=σ1u1v1T+σ2u2v2T+σrurvrT
    • 权系数大的哪些项对矩阵AA的贡献大,因此当舍去权系数小的一些项后,仍然能较好地接近矩阵AA,这一点在数字图像处理方面非常有用。

    • 矩阵AA的秩kk逼近定义为:

      A=σ1u1vT1+σ2u2vT2+σkukvTk(1≤k≤r)A=σ1u1v1T+σ2u2v2T+σkukvkT(1≤k≤r)
    • 秩rr逼近就精确等于AA,而秩11逼近的误差最大

4. 齐次/非齐次线性方程组

  • 矩阵Am×nAm×n:

    • 方程组数:mm
    • 未知数的数量:nn
  • 齐次线性方程组:Ax=0Ax=0 
    • 如果m<nm<n (行数小于列数,即未知数的数量大于所给方程组数),则齐次线性方程组有非零解。
    • 齐次线性方程组的两个解的和仍是齐次线性方程组的一组解(加法封闭)
    • 齐次线性方程组的解的k倍仍然是齐次线性方程组的解(乘法封闭)
    • 齐次线性方程组的系数矩阵秩rank(A)=n(detA≠0)rank(A)=n(detA≠0),方程组有唯一零解
    • 齐次线性方程组的系数矩阵秩rank(A)<n(detA=0)rank(A)<n(detA=0),方程组有无数多解
    • 齐次线性方程组有非零解的充要条件是其系数行列式(detdet)为零。等价地,方程组有唯一的零解的充要条件是系数矩阵不为零
  • 非齐次线性方程组:Ax=b(b≠0)Ax=b(b≠0) 
    • 非齐次线性方程组 有解的充分必要条件是:系数矩阵的秩等于增广矩阵的秩,即rank(A)=rank(A|b)rank(A)=rank(A|b)(否则为无解)
    • 有唯一解的充要条件是rank(A)=nrank(A)=n
    • 有无穷多解的充要条件是rank(A)<nrank(A)<n
    • 解的结构:非齐次线性方程组的通解=齐次线性方程组的通解+非齐次线性方程组的一个特解 
      η=ζ+η∗η=ζ+η∗

5. SVD解优化问题

5.1 SVD解非齐次线性方程组(Ax=bAx=b)

  • 求解非齐次线性方程组Ax=bAx=b
  • Am×nAm×n

    • m<nm<n: 方程个数小于未知变量个数,无唯一解
    • m=nm=n:若A可逆(detA≠0detA≠0 或 rank(A) = n),有唯一解
    • m>nm>n:方程个数多于未知变量个数,若rank(A)=rank(A|b)rank(A)=rank(A|b),则有解
    • 对于m>nm>n, 有如下几种情况: 
      1) r(A)<r(A|b)r(A)<r(A|b): 方程组无解 
      2)r(A)=r(A|b)=nr(A)=r(A|b)=n:方程组有唯一解(约束较强) 
      3)r(A)=r(A|b)<nr(A)=r(A|b)<n:方程组无穷解(约束不够) 
      4)r(A)>r(A|b)r(A)>r(A|b): 不可能,因为增广矩阵的秩大于等于系数矩阵的秩(在矩阵中加入一列,其秩只可能增大,不可能变小)
  • M为正交矩阵,xx为列向量:则有||Mx||2=||x||2或记为:||Mx||=||x||||Mx||2=||x||2或记为:||Mx||=||x||

    • ||x||2=||x||=xTx‾‾‾‾√||x||2=||x||=xTx:即向量xx的长度
  • 以下讨论前提为:m⩾nm⩾n

  • 等价于寻找xx使||Ax−b||2||Ax−b||2最小化 (向量2范数,转化为最优化问题)

    1) 对矩阵A进行SVD分解(Dm×nDm×n对角阵,且rank(A)=nrank(A)=n):

    A=UDVTA=UDVT

    则优化问题变为:

    min(||Ax−b||2)=min(||UDVTx−b||2)=min(||DVTx−UTb||2)min(||Ax−b||2)=min(||UDVTx−b||2)=min(||DVTx−UTb||2)

    2) 令:

    y=VTxb′=UTby=VTxb′=UTb

    则优化问题变为:

    min(||DVTx−UTb||2)=min(||Dy−b′||2)min(||DVTx−UTb||2)=min(||Dy−b′||2)

    3) 求解向量yy:

    • 若Dy−b′=0Dy−b′=0,即Dy=b′Dy=b′,其方程组形式如下图所示: 

    • 则有:yi=b′i/di(i=0,1,...,rank(A))yi=bi′/di(i=0,1,...,rank(A))

4) 求解向量xx:

x=Vyx=Vy

5.1.1 rank(A) = n的求解步骤

5.1.2 rank(A) < n的求解步骤

  • λiλi:是用于参数化的随机值(parametrized by the indeterminate values)

5.2 SVD解齐次线性方程组(Ax=0Ax=0)

  • 相似的情况,我们把问题转化为最小化||Ax||2||Ax||2的非线性优化问题,我们已经知道了x=0x=0是该方程组的一个特解,为了避免x=0x=0这种情况(因为在实际的应用中x=0x=0往往不是我们想要的),我们增加一个约束,比如||x||2=1||x||2=1,这样,问题就变为(带约束的优化问题 s.t. : subject to):

    min||Ax||s.t.:||x||=1min||Ax||s.t.:||x||=1
    min||Ax||=min||UDVTx||=min||DVTx||且||x||=||VTx||min||Ax||=min||UDVTx||=min||DVTx||且||x||=||VTx||
    y=VTx则问题变为:min||Dy||s.t.:||y||=1(因为V为正交矩阵)y=VTx则问题变为:min||Dy||s.t.:||y||=1(因为V为正交矩阵)
  • 由于D是一个对角矩阵,对角元素按降序排列,因此最优解在y=(0,0,...,1)Ty=(0,0,...,1)T时取得,又因为x=Vyx=Vy, 所以最优解就是V的最小奇异值对应的列向量,比如,最小奇异值在第6行6列,那么x 为 V的第6个列向量。
  • 求解步骤: 

奇异值分解与特征值分解详解相关推荐

  1. 什么是奇异值?奇异值分解是什么?SVD分解详解及实战

    什么是奇异值?奇异值分解是什么?SVD(Singular Value Decomposition)分解详解及实战 TSVD:Truncated Singular Value Decomposition ...

  2. 奇异值分解 VS 特征值分解

    参考文章:http://www.cnblogs.com/liangflying/archive/2012/09/25/2701148.html 本文由LeftNotEasy发布于http://left ...

  3. 奇异值分解(SVD)的原理详解及推导

    1. 写在前面 最近整理推荐系统模型的时候, 第二个模型打算整理一下隐语义模型, 这里面绕不开一种思想就是矩阵分解, 而作为矩阵分解的经典方法SVD感觉这次有必要学学了, SVD不仅是一个数学问题,在 ...

  4. 奇异值分解(SVD)详解

    SVD分解 SVD分解是LSA的数学基础,本文是我的LSA学习笔记的一部分,之所以单独拿出来,是因为SVD可以说是LSA的基础,要理解LSA必须了解SVD,因此将LSA笔记的SVD一节单独作为一篇文章 ...

  5. 数据库范式概念以及范式分解详解

    几个重要知识点 平凡函数依赖与非平凡函数依赖 X→Y,但Y⊈X则称X→Y是非平凡的函数依赖. X→Y,但Y⊆X 则称X→Y是平凡的函数依赖. 完全函数依赖与部分函数依赖 在R(U)中, 如果X→Y,并 ...

  6. 模式分解详解,分解为3NF与分解为BCNF

    3NF:不存在非主属性对码的传递函数依赖或部分函数依赖. 如AB-C,A->C  码为(A,B),A,B是主属性,C是非主属性,C部分函数依赖于码,即不满足3NF BCNF:每个决定因素都包含码 ...

  7. 强连通分量分解详解 超级详细

    (写的有点小多,慢慢看,会有收获的) (1) 首先我们得了解,什么是强连通? 如果在一个有向图顶点子集内,任取两个点 u 和 v ,都能找到一条路径从 u 到 v ,则称该子集为强连通 (2) 其次我 ...

  8. emd分解详解一种自适应的数据处理或挖掘方法

    EMD,(Empirical Mode Decomposition),经验模态分解,美国工程院士黄锷博士于1998年提出的一种信号分析方法.  是一种自适应的数据处理或挖掘方法,非常适合非线性,非平稳 ...

  9. 张量分解——CP分解与Tucker分解详解

    关于张量分解一些简单的介绍,可以看我的这篇 张量的CP分解模型 一般而言,给定一个大小为 n 1 × n 2 × n 3 n_1 \times n_2 \times n_3 n

最新文章

  1. AD恢复(3)使用AD回收站
  2. Java排序算法之——希尔排序
  3. php psr4 控制器调用模型,控制器中调用模型添加数据
  4. oracle数据库的诊断目标位置,刚安装的数据库卸载 指定数据库的诊断目标位置不存在...
  5. jdk中提供的Collection、Collections、Collector、Collectors你分的清楚?
  6. python来进行社团划分
  7. requests模块报错:Use body.encode('utf-8') if you want to send it encoded in UTF-8.
  8. 从入门到入土:Python requests代理 proxy配置 HTTP
  9. 7-4 超速判断 (10 分)
  10. 找出单身狗java_Java单身狗 —— 单例模式
  11. [Matlab科学绘图] Matlab画图常用函数和命令
  12. java 卡密_【java实现点卡生成】
  13. 关于U盘被写保护无法格式化的解决方法
  14. 『Python学习笔记』ZipFile解压中文路径乱码[以及rar、7z解压方法]
  15. 算术运算符——加号的多种和自增自减
  16. RAS - Reliability, Availability and Serviceability
  17. 第1关 Numpy创建数组 (educoder
  18. Excel设置自动恢复功能以及数据恢复教程
  19. JDK1.7和JDK1.8下载
  20. Java中哪些集合是有序的?

热门文章

  1. 异常Exception 和 运行时异常RuntimeException
  2. 混合性肌肤的美白护肤
  3. linux 774是什么权限,Linux 权限位,权限值,权限管理
  4. jQuery中隐藏元素的hide方法
  5. 计蒜客2018蓝桥杯省赛B组模拟赛(一)题目及解析
  6. 短视频开发,短视频功能如何实现
  7. 在TP5使用 captcha 验证码验证码功能
  8. 拥抱开源还是坚守阵地:传统数据库供应商面临抉择
  9. 数据恢复软件如何换机使用?
  10. css元素特殊性及元素分类,详细解释。