項目地址: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可以得到
和
,而
則是特征值的開方。選取前
大的奇異值,那么
可以近似壓縮存儲成:
對于降維,有: