矩阵分析之 实矩阵分解(1)特征分解与奇异值分解

  • 前言
  • 特征分解(又称谱分解、对角化)
  • 奇异值分解SVD
  • SVD的进一步理解

前言

本篇开始学习记录矩阵分解内容。需要说明的是,目前我所触及的矩阵基本上没有出现复数域,因此所做的讨论都局限于实矩阵分析。

特征分解(又称谱分解、对角化)

n阶方阵AAA具有n个线性无关的特征向量时,可以将AAA特征分解为可逆矩阵与对角矩阵的乘积:
A=PΛP−1A=P\Lambda P^{-1} A=PΛP−1
其中,PPP是对应于Λ\LambdaΛ主对角特征值的特征向量组。特征分解的方法可能不唯一。

此外,如果AAA是实对称矩阵,则必然存在正交矩阵QQQ使得A=QΛQTA=Q\Lambda Q^TA=QΛQT。

奇异值分解SVD

特征分解不仅要求矩阵是方阵,而且方阵的线性无关的特征向量要与阶数相同。而数值计算中许多线性方程都不适定,矩阵行列数不一致。奇异值分解SVD弥补了这个缺陷。

对于任意矩阵A∈Rm×nA\in R^{m\times n}A∈Rm×n,都可以进行进行奇异值分解A=UΣVTA=U\Sigma V^TA=UΣVT,其中U,VU,VU,V是正交矩阵,Σ\SigmaΣ是半正定对角矩阵,主对角元素包含大于0的奇异值和0。

奇异值
对于矩阵A∈Rm×nA\in R^{m\times n}A∈Rm×n,其奇异值是ATAA^TAATA的特征值的算术平方根λ\sqrt{\lambda}λ​,通常将奇异值从大到小进行排列。

奇异值分解
由SVD式可得到ATAA^TAATA和AATAA^TAAT:
ATA=VΣTUTUΣVT=VΣ2VTAAT=UΣVTVΣTUT=UΣ2UTA^TA=V\Sigma^TU^TU\Sigma V^T=V\Sigma^2V^T \\ AA^T = U\Sigma V^TV\Sigma^TU^T =U\Sigma^2U^T \\ ATA=VΣTUTUΣVT=VΣ2VTAAT=UΣVTVΣTUT=UΣ2UT
又ATA,AATA^TA,AA^TATA,AAT都是n阶实对称矩阵,可以进行正交对角化,则V,UV,UV,U实际上就是使ATA,AATA^TA,AA^TATA,AAT正交对角化的正交矩阵。

SVD过程举例
A=[100100]ATA=[200000000]λ=2,0,0,x1=(1,0,0)T,x2=(0,1,0)T,x3=(0,0,1)TAAT=[1111]λ=2,0,x1=(2/2,2/2),x2=(−2/2,2/2)U=[2/2−2/22/22/2],V=[100010001],Σ=[200000]UΣVT=[100100]=AA=\begin{bmatrix} 1 & 0 & 0 \\ 1 & 0 & 0 \\ \end{bmatrix} \\ \quad \\ A^TA=\begin{bmatrix} 2 & 0 & 0 \\ 0 & 0 & 0 \\ 0 & 0 & 0 \\ \end{bmatrix} \\ \quad \\ \lambda = 2,0,0,x_1=(1,0,0)^T,x_2=(0,1,0)^T,x_3=(0,0,1)^T \\ \quad \\ AA^T = \begin{bmatrix} 1 & 1 \\ 1 & 1 \\ \end{bmatrix} \\ \quad \\ \lambda=2,0,x_1=(\sqrt2/2,\sqrt2/2),x_2=(-\sqrt2/2,\sqrt2/2) \\ \quad \\ U=\begin{bmatrix} \sqrt2/2 & -\sqrt2/2 \\ \sqrt2/2 & \sqrt2/2 \\ \end{bmatrix}, V=\begin{bmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \\ \end{bmatrix}, \Sigma=\begin{bmatrix} \sqrt2 & 0 & 0 \\ 0 & 0 & 0 \\ \end{bmatrix} \\ \quad \\ U\Sigma V^T=\begin{bmatrix} 1 & 0 & 0 \\ 1 & 0 & 0 \\ \end{bmatrix} = A A=[11​00​00​]ATA=⎣⎡​200​000​000​⎦⎤​λ=2,0,0,x1​=(1,0,0)T,x2​=(0,1,0)T,x3​=(0,0,1)TAAT=[11​11​]λ=2,0,x1​=(2​/2,2​/2),x2​=(−2​/2,2​/2)U=[2​/22​/2​−2​/22​/2​],V=⎣⎡​100​010​001​⎦⎤​,Σ=[2​0​00​00​]UΣVT=[11​00​00​]=A

SVD的进一步理解

假设有一个矩阵A∈Rm×nA\in R^{m\times n}A∈Rm×n,对于线性变换有Ax=UΣVTx,x∈Rn。U,VAx=U\Sigma V^Tx,x\in R^n。U,VAx=UΣVTx,x∈Rn。U,V都是正交矩阵,因此可以看作两个单位正交基。

Ax=UΣVTx,x∈RnAx=U\Sigma V^Tx,x\in R^nAx=UΣVTx,x∈Rn,将xxx视为在正交基VVV上的线性组合,则VTxV^TxVTx表示对xxx进行一次旋转,旋转的结果使得xxx映射回到标准基上(如(1,0),(0,1)),ΣVTx\Sigma V^TxΣVTx表示将标准基的基向量进行比例伸缩,UΣVTxU\Sigma V^TxUΣVTx表示将比例伸缩后的基再旋转到新的方向上。

因此,SVD中,VTV^TVT表征了原正交基的旋转,UUU表征了新基的旋转,奇异值刻画了原正交基旋转后各个基方向的伸缩情况(也即每个基的重要程度)。

矩阵分析之 实矩阵分解(1)特征分解与奇异值分解SVD相关推荐

  1. 矩阵的各种分解: LU分解, QR分解, 特征分解, 对称对角化, 奇异值分解 SVD

    本文主要关注的是有关 "怎样的矩阵能够进行 XX 分解" 的问题,具体分解的实现方式在这里不做归纳. 欢迎访问我的个人主页 zhekaili.github.io,已查看更多的线性代 ...

  2. 特征分解(Eigendecomposition)

    身为一个刚进入研究生学习的学生,在此记录下我的学习过程,目前在整理机器学习所需要的线代知识,所记录的线代知识大部分为考研之外的知识点. 分解矩阵的方式可以向我们展示在矩阵的元素排列表示中不明显的那些信 ...

  3. 矩阵分解(1)-- 矩阵分解之LU分解

    目录 1. 分类 2. LU分解 2.1 定义 2.2 存在性和唯一性 2.3 实例 2.4 应用 1. 分类 矩阵分解(decomposition, factorization)是多半将矩阵拆解为数 ...

  4. 矩阵分析之 实矩阵分解(2)LU,PLU分解

    矩阵分析之 实矩阵分解(2)LU分解 前言 LU分解(Doolittle杜立特解法) 分解条件 分解方法 分解的唯一性 复杂度 PLU分解 前言 之前提到了特征分解和奇异值分解两种矩阵分解的方法,其中 ...

  5. 矩阵分析之 实矩阵分解(5)矩阵分解法总结

    矩阵分析之 实矩阵分解(5)总结 前言 特征分解(谱分解) SVD分解 LU和PLU分解 Cholesky分解(LLT,LDLT分解) 满秩分解 QR分解 使用场景推荐 前言 之前的四篇内容分别介绍了 ...

  6. 矩阵特征分解介绍及雅克比(Jacobi)方法实现特征值和特征向量的求解(C++/OpenCV/Eigen)

    对角矩阵(diagonal matrix):只在主对角线上含有非零元素,其它位置都是零,对角线上的元素可以为0或其它值.形式上,矩阵D是对角矩阵,当且仅当对于所有的i≠j, Di,j= 0. 单位矩阵 ...

  7. 机器学习的数学基础 - 特征分解与奇异值分解

    特征分解 奇异值分解(Singular Value Decomposition, SVD)

  8. 特征分解与奇异值分解

    特征分解 特征分解是针对方阵的,奇异值分解是应用于矩阵的. 方阵AAA的特征向量是指与AAA相乘后相当于对原向量进行缩放的非0向量vvv: Av=λvAv = \lambda v Av=λv 标量λ\ ...

  9. 从特征分解到协方差矩阵:详细剖析和实现PCA算法

    从特征分解到协方差矩阵:详细剖析和实现PCA算法 本文先简要明了地介绍了特征向量和其与矩阵的关系,然后再以其为基础解释协方差矩阵和主成分分析法的基本概念,最后我们结合协方差矩阵和主成分分析法实现数据降 ...

最新文章

  1. ASP.Net中让网页“立即过时”
  2. linux 解决 gvfsd-smb-browse CPU 100%占用
  3. linux内核网络协议栈--数据包的网卡缓冲区(二十四)
  4. phpAmin如何导入导出大数据文件?
  5. Nutch爬虫解决页面相对路径问题
  6. hashmap为什么是2的倍数_HashMap源码解析(jdk1.8)
  7. vue3——ref reactive函数
  8. 农行笔试编程题(Java)记录
  9. 【HTML5】创造一款成功HTML5游戏的完整指南
  10. 平民版均线量化交易模型
  11. Java使用Thylemeaf + iText实现html(带图片)转pdf文件
  12. android友盟错误统计,Android—友盟统计收集错误和在线统计
  13. 接入支付宝支付接口,以及SDK用法,Thinkphp6。
  14. linux重新mac,用 Linux 让旧 MacBook 重获新生
  15. python与金融量化_day33 Python与金融量化分析(三)
  16. 图像金字塔的简单理解
  17. python常用小脚本总结
  18. Beanstalkd源码分析—bury和kick命令的实现
  19. 【解决方案】A session ended very soon after starting. Check that the command in profile “XXX” is correct.
  20. 教师计算机返岗实践方案,国培计划返岗实践方案

热门文章

  1. python 优化求解器_Python SciPy 优化器(Optimizers)
  2. 设置input只读不能修改
  3. FPGA中值滤波实现并Modelsim仿真,与MATLAB中值滤波进行对比
  4. 我就喜欢 6大N饭永不投诚经典语录
  5. (JavaScript学习记录):数组
  6. 感恩有你,我们大会见?
  7. 经验总结-RecyclerView列表中获取每个item中已经选择的CheckBox值
  8. Oracle【ORA-00257错误】解决办法及归档模式切换总结整理
  9. XML做带边框的背景drawable
  10. Python安全编程