矩阵分解及其应用总结 第1篇
PCA也叫主成分分析,通过对矩阵特征值分解来找到变换的主方向,对于一段视频而言,将所有帧图像组织成一个矩阵,也就是矩阵的每一列都是一帧图像,对这个矩阵施行主成分分析,就能够实现不变的背景和变化的前景分离。
我们要实现的目标:
将这个矩阵显示出来:
条状的代表背景,波浪的代表运动的前景,PCA的目的就是要构造下面的等式:,M代表原始矩阵,L是低阶矩阵,低阶矩阵意味着有很多冗余信息,也就是不变的背景,S是稀疏矩阵,也就是运动的前景。
PCA通过优化下面函数进行求解:
最终效果如下:
除了PCA,还可以通过SVD进行求解。
矩阵分解及其应用总结 第2篇
我们称复方阵可以做三角分解或LU分解,若 A=LR , 其中 L 和 R 分别是下三角和上三角方阵.
不是所有矩阵都能做三角分解。关于满秩矩阵的三角分解,有下面的定理进行刻画,注意这是个充要条件。
关于非满秩矩阵的三角分解,也有下面的定理进行刻画,注意这是个充分非必要条件。
上述分解形式不唯一, 做约束后方便得到唯一分解性. Doolittle分解: L是单位下三角; Crout分解: R是单位上三角; LDR 分解: 若A=LDR, 其中D是对角矩阵, L是单位下三角, R是单位上三角.
下面给出矩阵可以做LDR分解的充要条件。
三角分解的例子:
\[\begin{pmatrix} 2& -1& 3\\ 1& 2& 1\\ 2& 4& 3 \end{pmatrix}=\begin{pmatrix} 1& 0& 0\\ \frac12& 1& 0\\ 1& 2& 1 \end{pmatrix}\begin{pmatrix} 2& -1& 3\\ 0& \frac52& -\frac12\\ 0& 0& 1 \end{pmatrix}=\begin{pmatrix} 2& 0& 0\\ 1& \frac52& 0\\ 2& 5& 1 \end{pmatrix} \begin{pmatrix} 1& -\frac12& \frac32\\ 0& 1& -\frac15\\ 0& 0& 1 \end{pmatrix}\]
利用LDR分解的唯一性,可以得到正定矩阵的Cholesky分解。
Proof:由于A正定,故其顺序主子式均大于0,因此可以做LDR分解:A=LDR,且D对角线元素均大于0。由于 A^H=A ,故
LDR=A=A^H=R^HD^HL^H,
其中 R^H 是下三角矩阵。由LDR分解的唯一性可得, R=L^H . 因此
A=LDL^H=(LD^{1/2})(LD^{1/2})^H=\tilde{L}\tilde{L}^H.
这里 D^{1/2} 是将D的对角线元素开方后得到的对角矩阵,因此 \tilde{L}=LD^{1/2} 是下三角矩阵。 \square
利用Cholesky分解可以得到下面的推论。
Proof:注意到交换矩阵 J=[e_n,\cdots,e_1] 是对称正交矩阵, 因此 JAJ 也是正定矩阵, 故存在下三角矩阵 L\in\mathbb{C}^{n\times n} , 使得
\[ JAJ=LL^H\Rightarrow A=JLL^HJ=JLJJL^HJ=(JLJ)(JLJ)^H=RR^H. \]
这里的 R=JLJ 就是上三角矩阵. \square
矩阵分解及其应用总结 第3篇
特征值分解(EVD分解)及奇异值分解(SVD分解)恐怕是我觉得最重要的一类分解方法了,考虑到特征值和特征向量本身的重要性。这里推荐一下关于特征值和特征向量的理解,如果之前没有很透彻的话,看完后绝对茅塞顿开!先看机器学习中的数学(5)-强大的矩阵奇异值分解(SVD)及其应用的第一部分,然后看如何理解矩阵特征值和特征向量?,这位同学辛苦做了互动的处理,可以直观地看到特征值和特征向量对矩阵的作用。
关于特征值分解,针对的是方阵,分解成 ,其中Q是可逆矩阵,是一个对角阵,对角元就是从大到小排列的特征值,而Q的列向量就是对应的特征向量。看到这个表达应该很眼熟,因为这就是相似矩阵的定义,可以看成是A~Σ。再推荐一个讲相似矩阵的,同样让人神清气爽,茅塞顿开:相似矩阵有什么用?这样来看,特征值分解其实就是一种基变换,Q是过渡矩阵,将A变到以特征向量为基的空间上来,就是A矩阵表达的线性变换在以特征向量为基的空间上的表达,这个线性变换是A和所共有的,这也是相似矩阵的内涵。当然以上结论是在A为对称阵,即Q的列向量是正交的情况下才成立的,只有这样Q中的列向量也就是A的特征向量才可以构成一组基。
特征值分解只能用在方阵上,那如果不是方阵该怎么办呢?这时候就轮到奇异值分解登场了!奇异值分解就是对于一个一般的矩阵A,有,U和V都是正交阵,Σ是对角阵。对这个一般的矩阵A,我们可以构造一个方阵,也就是或者(顺序不同得到的奇异值向量就不同),这样我们就可以进行特征值分解了。那么(这里用到了U是正交阵的性质)。这样一来,Σ2的对角元就是的特征值,V的列向量就是的特征向量,如果定义λ是的特征值,那么Σ的对角元就是λ的平方根。如此,定义V为A的右奇异向量。同理,,那么U定义为A的左奇异向量。
之所以做奇异值分解或者特征分解,是因为一般来讲,矩阵的特征值或者奇异值大小相差很多,最大的几个特征值或者奇异值之和就能占据所有特征值或者奇异值之和的99%了,这样用最大的几个就可以近似原矩阵了,实现了压缩和近似。
参考资料:
适用范围:特征值分解只适用于方阵,奇异值分解则适用于任何矩阵。
应用:也可以参考上面的文章。
小插曲
这里再简单提一下PCA。PCA详解,参考此详解 ;PCA和LDA的区别和联系,参考此内容。其实PCA就是协方差矩阵特征值分解或SVD分解的应用,而SVD分解做PCA与特征值分解做PCA差别在于,SVD可以解出左右奇异向量U和V,用U和V可以对数据的行列分别进行降维,即不止压缩特征的长度,还可以对近似的样本进行合并压缩。而PCA与KLT,可以参考此文章,可以说PCA是离散化的KLT。PCA还有一个直接的应用,就是特征脸Eigenface,几乎是直接应用,差别可能在于协方差矩阵太大,不能直接使用。因为没做过人脸识别,所以不具备太多的发言权,参考此内容。
5、小结
以上是几种常用的矩阵分解方法。当然了,矩阵分解本身就是一个值得研究的方向,有很多有效的应用,今后有时间可以再继续深挖。欢迎大家批评指正!!!
矩阵分解及其应用总结 第4篇
对于推荐系统来说存在两大场景即评分预测(rating prediction)与Top-N推荐(item recommendation,item ranking)。矩阵分解主要应用于评分预测场景。
推荐系统的评分预测场景可看做是一个矩阵补全的游戏,矩阵补全是推荐系统的任务,矩阵分解是其达到目的的手段。因此,矩阵分解是为了更好的完成矩阵补全任务(欲其补全,先其分解之)。之所以可以利用矩阵分解来完成矩阵补全的操作,那是因为基于这样的假设:假设UI矩阵是低秩的,即在大千世界中,总会存在相似的人或物,即物以类聚,人以群分,然后我们可以利用两个小矩阵相乘来还原它。
矩阵分解就是把原来的大矩阵,近似的分解成小矩阵的乘积,在实际推荐计算时不再使用大矩阵,而是使用分解得到的两个小矩阵。
具体来说就是,假设用户物品的评分矩阵A是m乘n维,即一共有m个用户,n个物品.通过一套算法转化为两个矩阵U和V,矩阵U的维度是m乘k,矩阵V的维度是n乘k。
这两个矩阵的要求就是通过下面这个公式可以复原矩阵A: