SVD奇异值分解
Posted cold-city
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SVD奇异值分解相关的知识,希望对你有一定的参考价值。
SVD奇异值分解
1 正交矩阵
正交矩阵对应的行(列)向量都是相互正交的单位向量,且满足逆矩阵等于转置矩阵。
正交矩阵对应的变换为正交变换,正交变换映射表现为旋转和反射:
正交变换不改变向量的尺寸和夹角,如图,对应在正交坐标系基向量为[e1,e2]下的A为[a,b],对应进行正交变换后,只是对A用另一组正交坐标基[e1‘,e2‘]表示,对应变换后的A为[a‘,b‘],对向量A没有拉伸。这种变换为旋转变换。
正交变换对应有一组正交坐标基映射为另一组正交坐标基。
对应求得正交变换矩阵U:
由图可知:
所以U为:
2 特征值分解
设m*m矩阵A为对称矩阵,则A必能相似对角化,且不同特征值对应的特征向量相互正交:
可以得到A的特征值分解:
现在假设有一个x向量,用A对x进行变换:
也就是先对用UT对x进行正交变换,假设x在新的坐标系(坐标基为A的特征项向量)下为:
转变为:
接着对在新坐标系下的x进行拉伸和压缩,如果对应位置的特征向量为0,则发生维度退化,之后再用U进行正交变换,U是UT的逆变换,使又回到原来的坐标系下:
如果A是2*2矩阵,其特征向量对应矩形,其边,经过UT变换后,坐标基为矩形边所在的方向,在经过拉伸后,进行U变换,回到原来坐标系,这样经过变换后还是矩形。
3 奇异值分解
奇异值分解就是对任意m*n矩阵,找到这样的一个正交坐标基,使其变换后还是正交坐标基。
假设m*n矩阵A,在n维空间中找到一组正交坐标基,使其经过A变换后还是正交坐标基。
假设正交坐标基为,vi是n*1向量:
经过A变换后:
同时保证变换后还是正交坐标基:
使vj使ATA的第j个特征向量的话:
又因为:
所以vj是ATA的第j个特征向量保证了变换后还是正交坐标基。
再将映射后的正交基单位化:
取单位向量:
由此可得:
再将{u1,u2,...,uk}扩展为{u1,u2,...,um},使得其为m维空间的一组单位正交基。
再将{v1,v2,...,vk}扩展为{v1,v2,...,vn},其中{vk+1,...vn}为AX=0的基础解系,对应的奇异值σ为0。
可得:
最后得A的奇异值分解:
4 满秩分解
定义:对于m×n的矩阵A,假设其秩rr,若存在秩同样为r两个矩阵:Fm×r(列满秩)和Gr×n(行满秩),使得A=FG,则称其为矩阵A的满秩分解。
任何一个非零矩阵都有满秩分解。
利用SVD进行满秩分解:
利用分块矩阵乘法得:
第二项为0:
令:
则A=XY即是A的满秩分解。
以上是关于SVD奇异值分解的主要内容,如果未能解决你的问题,请参考以下文章