奇异值分解(SVD)原理详解及推导
今天学习SVD原理,查看一些博文与资料,为了方便复习,做一下学习笔记。
SVD不仅是一个数学问题,在工程应用中的很多地方都有它的身影,比如前面讲的PCA,掌握了SVD原理后再去看PCA那是相当简单的,在推荐系统方面,SVD更是名声大噪,将它应用于推荐系统的是Netflix大奖的获得者Koren,可以在Google上找到他写的文章。
满秩分解
设
A∈Cm×nr ,那么存在B∈Cm×rr ,C∈Cr×nr ,使得A=BC ,其中B为列满秩矩阵,C为行满秩矩阵;这样的分解为矩阵的满秩分解。
正交矩阵
定义
AAT=E (E 为单位矩阵,AT 表示“矩阵A的转置矩阵”。)或ATA=E ,则n阶实矩阵A称为正交矩阵。
正交变换
正交矩阵是在欧几里得空间里的叫法,在酉空间里叫酉矩阵,一个正交矩阵对应的变换叫正交变换,这个变换的特点是不改变向量的尺寸和向量间的夹角,那么它到底是个什么样的变换呢?看下面这张图1:
通过图1,可知:
向量
x=[ab] ,e1 与e2 相互正交的单位向量,e1′ 与e2′ 相互正交的单位向量;设oa′=M⋅e1 ,ob′=M⋅e2 ,其中M 为线性变换的矩阵(即将坐标旋转)。设置
M⋅e1 在e11 模为σ1 ,M⋅e2 在e21 的模为σ2 ,则M⋅e1=σ1⋅e1′(1) M⋅e2=σ2⋅e2′(2)
通过向量的性质我们知道:x=(e1⋅x)⋅e1+(e2⋅x)⋅e2(3) Mx=(e1⋅x)M⋅e1+(e2⋅x)M⋅e2(4)
因为(1)与(2),则:Mx=(e1⋅x)⋅σ1⋅e1′+(e2⋅x)⋅σ2⋅e2′(5)
在(5)中e1⋅x 与e2⋅x 是向量的内积,我们转换成向量转置来表示:Mx=(e1Tx)⋅σ1⋅e1′+(e2Tx)⋅σ2⋅e2′(6) M=e1′⋅σ1⋅e1T+e2′⋅σ2⋅(e2T)(7)
通过(7)知道:M=UΣVT(8)
其中U 矩阵的列向量分别是e1′ 和e2′ ,Σ 是一个对角矩阵,对角元素分别是对应的σ1 和 σ2,V矩阵的列向量分别是e1 和e2 。上角标T 表示矩阵V 的转置。
总结
这就表明任意的矩阵 M 是可以分解成三个矩阵。V表示了原始域的标准正交基,U表示经过M 变换后的co-domain的标准正交基,Σ表示了V 中的向量与U中相对应向量之间的关系。
未完待续。。。。。。。