矩阵论——奇异值分解

闲话

没点关系的闲话

经过了一段时间的自学,终于达到了“能听懂老师讲课”的层次,受到老师启发,想着记录一下自己对老师课程的感悟,所以写一下。

有点关系的闲话

很久以前,大概学线性代数的时候吧,有一个问题困扰着我——矩阵是啥?
现在留下的记忆就是表征信息的列表,所以说矩阵是什么都行。但是这不算回答了这个问题,因为对于我不背定理的学生而言,除非拿出图像或者工程应用来佐证某个定理描述的内容,基本上是学完就忘的(因为不知道学这东西有什么用处,也对其没有把握)。其实在课上,老师就工程方面讲了不少例子,但奈何自己才疏学浅,还是没能理解老师的意思,所以对于矩阵,还是迷迷糊糊的

正题

首先,还是说点题外话,对于矩阵分解而言,我自己说不出有什么工程用途,就算是结合数值分析的学习,我对于矩阵分解的认识也就是迭代解方程组的用途,老师上课的时候举了几个例子但是我也没有学过控制理论,所以,只是一听。

正交对角分解

假设一个矩阵A,这个矩阵比较特殊,是个实对称阵就是可以正交相似于对角阵公式表示为QTAQ= d i a g diag diag( λ 1 \lambda_1 λ1, λ 2 \lambda_2 λ2~,……, λ n \lambda_n λn)λ是A的特征值,而Q是个标准正交阵(列向量模长为1,且相互正交,数学表示为Q-1=QT

所以,两边左乘Q右乘QT 就有 A = Q d i a g ( λ i ) Q T A =Qdiag(\lambda_i)Q^T A=Qdiag(λi)QT
这样A就可以写成A = ∑ i = 1 n λ i q i q i T \sum_{i=1}^n \lambda_iq_iq_i^T i=1nλiqiqiT 注:其中 q q q λ n \lambda_n λn的特征向量以三阶为例
A = ∑ i = 1 3 λ i [ a 1 a 2 a 3 ] × [ a 1 a 2 a 3 ] = λ i × ∑ i = 1 3 [ b 1 b 2 b 3 b 4 b 5 b 6 b 7 b 8 b 9 ] A=\sum_{i=1}^3\lambda_i \left[ \begin{matrix} a_1 \\ a_2 \\ a_3 \end{matrix} \right] \times \left[ \begin{matrix} a_1 & a_2 & a_3 \end{matrix} \right] =\lambda_i \times \sum_{i=1}^3 \left[ \begin{matrix} b_1 &b_ 2 &b_ 3 \\ b_4 & b_5 & b_6 \\ b_7 & b_8 & b_9 \end{matrix} \right] A=i=13λia1a2a3×[a1a2a3]=λi×i=13b1b4b7b2b5b8b3b6b9
以上就是所谓的特征值分解,数学上已经讲完了,于是,出于一个感性的认识,这样做为什么?有什么用?
老师给出的解释是, A A A被分解成了 n n n个分量而用 E i j E_{ij} Eij除了第i行第j列的元素为1外,其他均为0进行拆分表示的时候是有 n × n n\times n n×n个分量,表达效率成倍提升。
老师还提供了个例子——当双方都知道基的话,传递特征值就能完成情报的交换(所谓的无损压缩)

由特征值分解到奇异值分解

可以进行特征值分解的矩阵是极为特殊的,也就是 实对称(或者厄米矩阵共轭对称的方阵) 这在实际工程中基本上是不存在的,条件限制的太苛刻了,所以,进行条件的放宽,人们仿造特征值分解的样子,假设 A m × n = U D V T A_{m\times n}=UDV^T Am×n=UDVT U U U D D D V T V^T VT分别具有不同的形态 U 是 m × m 阶 V 是 n × n 阶 U 是m \times m阶 V是n \times n阶 Um×mVn×n D D D是分块对角的,下式中的 Σ r \Sigma_r Σr就是一个对角矩阵
D = [ Σ r 0 0 0 ] Σ = d i a g ( o i ) o i = λ i 其 中 λ i 为 A T A 的 特 征 值 且 λ 1 ≥ λ 2 ≥ λ 3 ≥ … ≥ λ i ≥ 0 D= \left[ \begin{matrix} \Sigma_r&0 \\ 0 &0 \end{matrix} \right] \\ \Sigma=diag(o_i)\\ o_i=\sqrt{\lambda_i}其中\lambda_i为A^TA的特征值\\ 且\lambda_1 \ge \lambda_2 \ge \lambda_3 \ge…\ge\lambda_i \ge 0 D=[Σr000]Σ=diag(oi)oi=λi λiATAλ1λ2λ3λi0
A ∈ C r m × n ( 复 数 域 ) 时 依 旧 成 立 A\in C_r^{m \times n}(复数域)时依旧成立 ACrm×n()可以推广
( A A T ) m × m = ( U D V T ) ( U D V T ) T = U D V T V D T U T = U ( D D T ) m × m U T = U m × m [ Σ r 2 0 0 0 ] m × m U m × m T (AA^T)_{m \times m} =(UDV^T)(UDV^T)^T\\=UDV^TVD^TU^T\\=U(DD^T)_{m \times m}U^T \\=U_{m \times m}\left[ \begin{matrix} \Sigma^2_r &0 \\ 0 & 0 \end{matrix} \right] _{m \times m}U^T_{m \times m} (AAT)m×m=(UDVT)(UDVT)T=UDVTVDTUT=U(DDT)m×mUT=Um×m[Σr2000]m×mUm×mT
由于 D D D是一个分块对角的矩阵,所以 D D T DD^T DDT可以写做上式,同时也佐证了 A A T AA^T AAT D D T DD^T DDT是正交相似(合同)的。

对于U而言

U U U拆分成 [ u 1 , u 2 … u m ] [u_1,u_2…u_m] [u1,u2um] × A A T A A T U = ( U D D T U T ) U = [ Σ r 2 0 0 0 ] [ u 1 , u 2 … u m ] = [ λ i u i ] m \times AA^T\\AA^TU=(UDD^TU^T)U=\left[ \begin{matrix} \Sigma^2_r &0 \\ 0 & 0 \end{matrix} \right][u_1,u_2…u_m]=[\lambda_iu_i]_m ×AATAATU=(UDDTUT)U=[Σr2000][u1,u2um]=[λiui]m
所以 U U U的列向量是 A A T AA^T AAT的特征向量

对于V而言

仅需要改变成 A T A A^TA ATA即可得到 n × n n \times n n×n的矩阵,便可对 V 矩 阵 进 行 求 证 与 计 算 V矩阵进行求证与计算 V

总结

于是问题来了,这个奇异值分解有什么用?先看一个比较有意思的现象 A m × n A_{m \times n} Am×n
A A T AA^T AAT A T A A^TA ATA前者维度为 m × m m \times m m×m后者维度为 n × n n\times n n×n那么这两个矩阵有什么联系呢?答案是显而易见的,两者相似对角化(这里说的有点不准确,应该是化成上面的 Σ 2 \Sigma^2 Σ2块是一样的,区别在于两者0特征值的个数不同,带来的维度不同。)
至于说工程上有什么具体的应用,我觉得应该是信息的压缩吧,将 n − m n-m nm维不必要的部分压缩掉。

题外话

希望有大佬能带带我,嘤嘤嘤。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值