矩阵分解算法原理及实现(Matrix Factorization)

项目地址:https://github.com/Daya-Jin/ML_for_learner
原博客:https://daya-jin.github.io/2019/01/07/MatrixFactorization/

概述

在机器学习领域通常会用到矩阵分解技术,目的就是维度规约或压缩存储,本文做一个简单的总结与概述。

EVD

特征值分解(Eigenvalue Decomposition),假设对于一个的方阵,有如下等式成立:

其中为常数,为列向量。那么满足上式的为矩阵的特征值,对应的为特征向量,方阵的特征向量是相互正交的。写成矩阵形式有:

其中为特征值由大到小排列构成的对角矩阵,为特征向量构成的方阵。选取前大的特征值,那么降维后的可以表示成:

EVD即是PCA的原理。

SVD

奇异值分解(Singular Value Decomposition),假设对一个的矩阵,SVD的目标是把分解成如下形式:

其中是与同形状的奇异值矩阵。由矩阵乘法的性质可得,矩阵的形状为,的形状为。同样类似的,与都是正交方阵。

SVD可以通过EVD来实现,注意到:

不难发现可以分别通过对和做EVD可以得到和,而则是特征值的开方。选取前大的奇异值,那么可以近似压缩存储成:

对于降维,有:

你可能感兴趣的:(矩阵分解算法原理及实现(Matrix Factorization))