1、奇異值分解介紹
在機器學習或數(shù)據(jù)分析中,有時樣本數(shù)據(jù)會比較大,這樣對計算機的內(nèi)存會有很大的負擔。此時,通過一些方法來提取數(shù)據(jù)中的主要成分,而忽略其中可以忽略不計的成分,將大大減少計算量。本文講簡單介紹奇異值分解(SVD)方法。
在機器學習中,數(shù)據(jù)一般以矩陣的形式作為輸入,放入模型中進行訓練或計算。矩陣的一行代表一個樣本,矩陣的一列代表樣本的特征。提取矩陣重要特征的方法有特征值分解和奇異值分解(可能還有其他,目前我只了解這兩種)。
在特征值分解種,分解可以特征值和特征向量,特征值標示這個特征到底有多重要,而特征向量標示這個特征是什么,可以將每一個特征向量理解為一個線性的子空間。但是特征值分解有很多局限,比如變換的矩陣必須是方陣。
而奇異值分解(SVD)就沒有這個限制,奇異值分解是一個能適用于任意矩陣的分解方法。
這里寫圖片描述
如上圖,圖中將一個m*n矩陣分解為右邊三個矩陣。其中,中是由A的奇異值組成的對角矩陣,且該矩陣中的奇異值從上到下遞減。奇異值越大,表示特征越重要。因此,只需取中較大的奇異值及其左右u、v矩陣中相應成分,所組成的新的矩陣乘積即可近似代替原來的矩陣A。如下圖
這里寫圖片描述
由此,便可以減少數(shù)據(jù)量的存儲。
2、奇異值分解方法
假設(shè)在原始域中有一個單位圓,如下圖所示。經(jīng)過矩陣變換以后在co-domain中單位圓會變成一個橢圓,它的長軸和短軸分別對應轉(zhuǎn)換后的兩個標準正交向量,也是在橢圓范圍內(nèi)最長和最短的兩個向量。
這里寫圖片描述
對于矩陣A,我們可以有,由于是對稱矩陣,由此不同特征值對應的特征向量都是互相正交的,我們用來表示的特征向量,于是,奇異值為,向量為方向上的單位向量。由此,就可以有