論文題目:《Nonlinear Dimensionality Reduction by Locally Linear Embedding 》
發表時間:Science 2000
論文地址:Download
tips:原論文:一篇report ,解釋的不夠清楚,博主查閱眾多資料,以及參考交大於劍老師教材總結。
簡介
局部線性嵌入(Locally Linear Embedding,簡稱LLE)重要的降維方法。
傳統的 PCA,LDA 等方法是關注樣本方差的降維方法,LLE 關注於降維時保持樣本局部的線性特征,由於LLE在降維時保持了樣本的局部特征,所以廣泛用於圖像圖像識別,高維數據可視化等領域。
流形學習
LLE 是流形學習(Manifold Learning)的一種。
流形學習是一大類基於流形的框架。我們可以認為 LLE 中的流形是一個不閉合的曲面,且流形曲面數據分布比較均勻,比較稠密。LLE 算法是將流形從高維到低維的降維過程,在降維過程希望流形在高維的一些特征可以得到保留。
一個形象的流形降維過程如下圖。我們有一塊卷起來的布,我們希望將其展開到一個二維平面,我們希望展開后的布能夠在局部保持布結構的特征,其實也就是將其展開的過程,就想兩個人將其拉開一樣。
對於降維問題,以前的方法是基於多維標度(MDS),計算試圖保持數據點之間的 成對距離 或 廣義差異的嵌入,這些距離是沿着直線測量的,在更具權威性的 MDS 用法中,如 Isomap,沿着限制於觀測數據的流形表示的最短路徑。如等距映射(ISOMAP)算法希望在降維后保持樣本之間的測地距離而不是歐式距離,因為測地距離更能反映樣本之間在流形中的真實距離。
在這里,我們采用一種不同的方法,稱為局部線性嵌入(LLE),這種方法不需要估計廣泛分離的數據點之間的成對距離。
等距映射(ISOMAP)算法需要找所有樣本全局最優解,當數據量很大,樣本維度很高時,計算非常的耗時,鑒於這個問題,LLE 通過放棄所有樣本全局最優的降維,只是通過保證局部最優來降維。同時假設樣本集在局部是滿足線性關系的,進一步減少的降維的計算量。
LLE算法思想
LLE 假設數據在較小局部是線性的,即:某一數據可由它鄰域中幾個樣本線性表示。如有一個樣本$x_1$,我們在它原始高維鄰域里用 KNN 思想找到和它最近的三個樣本 $x_2,x_3,x_4$,然后假設$x_1$可以由 $x_2,x_3,x_4$ 線性表示,即:
$x_{1}=w_{12} x_{2}+w_{13} x_{3}+w_{14} x_{4}$
其中,$w_{12}, w_{13}, w_{14}$為權重系數。在通過 LLE 降維后,我們希望 $x_1$ 在低維空間對應的投影 $x_1'$ 以及 $x_2,x_3,x_4$ 對應的投影 $x_2',x_3',x_4'$ 也盡量保持線性關系,即
$x_{1}^{\prime} \approx w_{12} x_{2}^{\prime}+w_{13} x_{3}^{\prime}+w_{14} x_{4}^{\prime}$
我們希望投影前后線性關系的權重系數 $w_{12}, w_{13}, w_{14}$ 是盡量不變或改變最小。
從上可看出,線性關系只在樣本附近起作用,遠離樣本的數據對局部線性關系沒有影響,因此降維復雜度降低很多。
LLE算法推導
Part 1
首先要確定鄰域大小的選擇,即需要多少個鄰域樣本來線性表示某樣本。假設這個值為 $k$ ,可以通過和 KNN 一樣的思想,采用距離度量如:歐式距離,來選擇某樣本的 $k$ 個最近鄰。
在尋找某樣本 $x_i$ 的 $k$ 個最近鄰之后,就需要找到 $x_i$ 和 這 $k$ 個最近鄰之間的線性關系,即找到線性關系的權重系數。顯然這是一個回歸問題。
我們假設有 $ m$ 個 $n$ 維樣本 $\{x_1,x_2,...,x_m\}$ ,我們可以用均方差作為回歸問題的損失函數:
$J(w)=\sum \limits _{i=1}^{m}\left\|x_{i}-\sum \limits_{j=1}^{k} w_{i j} x_{j}\right\|_{2}^{2}$
一般會對權重系數 $w_{ij}$ 做歸一化的限制(保證 $W$ 的平移不變性),即權重系數需滿足:
$\sum \limits _{j=1}^{k} w_{i j}=1$
對於不在樣本 $x_i$ 鄰域內的樣本 $x_j$,令對應的 $w_{ij} = 0$。
對於 $J(W)$ ,我們需要求出權重系數,可以采用拉格朗日乘法來求解,這里先對 $J(W)$ 矩陣化:
$\begin{aligned}J(W) &=\sum \limits _{i=1}^{m}\left\|x_{i}-\sum \limits_{j=1}^{k} w_{i j} x_{j}\right\|_{2}^{2} \\&=\sum \limits_{i=1}^{m}\left\|\sum \limits_{j=1}^{k} w_{i j} x_{i}-\sum \limits_{j=1}^{k} w_{i j} x_{j}\right\|_{2}^{2} \\&=\sum \limits_{i=1}^{m}\left\|\sum \limits_{j=1}^{k} w_{i j}\left(x_{i}-x_{j}\right)\right\|_{2}^{2} \\&=\sum \limits_{i=1}^{m}\left\|\left(x_{i}-x_{j}\right) W_{i}\right\|_{2}^{2} \\&=\sum \limits_{i=1}^{m} W_{i}^{T}\left(x_{i}-x_{j}\right)^{T}\left(x_{i}-x_{j}\right) W_{i}\end{aligned}$
其中 $W_i =(w_{i1}, w_{i2},...w_{ik})$ 。
令矩陣 $Z_i=(x_i-x_j)^T(x_i-x_j)$ ,則 $J(W)$ 進一步簡化為 $J(W) = \sum\limits_{i=1}^{m} W_i^TZ_iW_i$ 。對於權重約束,可以矩陣化為:
$\sum \limits _{j=1}^{k} w_{i j}=W_{i}^{T} 1_{k}=1$
現在我們將矩陣化的 $J(W)$ 以及權重約束 用拉格朗日子乘法合為一個優化目標:
$L(W)=\sum \limits _{i=1}^{m} W_{i}^{T} Z_{i} W_{i}+\lambda\left(W_{i}^{T} 1_{k}-1\right)$
對 $W$ 求導並令其值為0,得到
$2 Z_{i} W_{i}+\lambda 1_{k}=0$
即
$W_{i}=\lambda^{\prime} Z_{i}^{-1} 1_{k}$
其中 $\lambda' = -\frac{1}{2}\lambda$ 為一個常數。利用 $W_i^T1_k = 1$,對 $W_i$ 歸一化,那么最終的權重系數 $W_i$ 為:
$W_{i}=\frac{Z_{i}^{-1} 1_{k}}{1_{k}^{T} Z_{i}^{-1} 1_{k}}$
Part 2
現在得到了高維的權重系數,我們希望這些權重系數對應的線性關系在降維后的低維一樣得到保持。假設我們的 $n$ 維樣本集 $\{x_1,x_2,...,x_m\}$ 在低維的 $d$ 維度對應投影為 $\{y_1,y_2,...,y_m\}$ ,我們希望保持線性關系,也就是希望對應的均方差損失函數最小,即最小化損失函數 $J(Y)$ 如下:
$J(y)=\sum \limits _{i=1}^{m}\left\|y_{i}-\sum \limits _{j=1}^{k} w_{i j} y_{j}\right\|_{2}^{2}$
可以看到這個式子和高維的損失函數幾乎相同,唯一的區別是高維的式子中,高維數據已知,目標是求最小值對應的權重系數 $W$,而我們在低維是權重系數 $W$ 已知,求對應的低維數據。
為了得到標准化的低維數據,一般也會加入約束條件如下:
$\sum \limits _{i=1}^{m} y_{i}=0 ; \quad \frac{1}{m} \sum \limits _{i=1}^{m} y_{i} y_{i}^{T}=I$
首先我們將目標損失函數矩陣化:
$\begin{aligned}J(Y) &=\sum \limits _{i=1}^{m}\left\|y_{i}-\sum \limits_{j=1}^{k} w_{i j} y_{j}\right\|_{2}^{2} \\&=\sum \limits_{i=1}^{m}\left\|Y I_{i}-Y W_{i}\right\|_{2}^{2} \\&=\operatorname{tr}\left(Y^{T}(I-W)^{T}(I-W) Y\right)\end{aligned}$
如果我們令 $M=(I-W)^T(I-W)$ ,則優化函數轉變為最小化下式:$J(Y) = tr(Y^TMY)$ ,$tr$ 為跡函數。約束函數矩陣化為:$Y^TY=mI$ 。
譜聚類和 $PCA$ 的優化和這里的優化過程幾乎一樣。最小化 $J(Y)$ 對應的 $Y$ 就是 $M$ 的最小的 $d$ 個特征值所對應的 $d$ 個特征向量組成的矩陣。當然我們也可以通過拉格朗日函數來得到這個:
$L(Y)=\operatorname{tr}\left(Y^{T} M Y\right)+\lambda\left(Y^{T} Y-m I\right)$
其中 $Y=\left(y_{ 1}, y_{ 2}, \ldots y_{k}\right)^T$ 。
對 $Y$ 求導並令其為 $0$ ,我們得到 $2MY + 2\lambda Y =0$ ,即 $MY = \lambda Y$ ,要得到最小的 $d$ 維數據集,就需要求出矩陣 $M$ 最小的 $d$ 個特征值所對應的 $d$ 個特征向量組成的矩陣 $Y=(y_1,y_2,...y_d)$ 即可。
一般的,由於 $M$ 的最小特征值為 $0$ 不能反應數據特征,此時對應的特征向量為全 $1$ 。我們通常選擇 $M$ 的第 $ 2$ 個到第 $d+1$ 個最小的特征值對應的特征向量 $M=(y_2,y_3,...y_{d+1})$ 來得到最終的 $Y$。為什么 $M$ 的最小特征值為 $0$ 呢?這是因為 $W^Te =e$,得到 $|W^T-I|e =0$,由於$e \neq 0$,所以只有 $W^T-I =0$,即 $(I-W)^T=0$,兩邊同時右乘 $I-W$,即可得到 $(I-W)^T(I-W)e =0e$,即 $M$ 的最小特征值為 $0$。
LLE算法流程
從圖中可以看出,LLE 算法主要分為三步,第一步是求 $K$ 近鄰的過程,這個過程使用了和 KNN 算法一樣的求最近鄰的方法。第二步,就是對每個樣本求它在鄰域里的 $K$ 個近鄰的線性關系,得到線性關系權重系數 $W$。第三步就是利用權重系數來在低維里重構樣本數據。
具體過程如下:
輸入:樣本集 $D=\{x_1,x_2,...,x_m\}$,最近鄰數 $k$,降維到的維數 $d$
輸出: 低維樣本集矩陣 $D'$
1) for i 1 to m,按歐式距離作為度量,計算和 $x_i$ 最近的的 $k$ 個最近鄰 $(x_{i1}, x_{i2}, ...,x_{ik},)$
2) for i 1 to m,求出局部協方差矩陣 $Z_i=(x_i-x_j)^T(x_i-x_j)$,並求出對應的權重系數向量:
$W_{i}=\frac{Z_{i}^{-1} 1_{k}}{1_{k}^{T} Z_{i}^{-1} 1_{k}}$
3) 由權重系數向量 $W_i$ 組成權重系數矩陣 $W$,計算矩陣 $M=(I-W)^T(I-W)$
4) 計算矩陣 $M$ 的前 $d+1$ 個特征值,並計算這 $d+1$ 個特征值對應的特征向量 $\{y_1,y_2,...y_{d+1}\}$。
5)由第二個特征向量到第 $d+1$ 個特征向量所張成的矩陣即為輸出低維樣本集矩陣 $D' = (y_2,y_3,...y_{d+1})$
LLE總結
LLE是廣泛使用的圖形圖像降維方法,它實現簡單,但是對數據的流形分布特征有嚴格的要求。比如不能是閉合流形,不能是稀疏的數據集,不能是分布不均勻的數據集等等,這限制了它的應用。下面總結下LLE算法的優缺點。
LLE算法的主要優點有:
1)可以學習任意維的局部線性的低維流形
2)算法歸結為稀疏矩陣特征分解,計算復雜度相對較小,實現容易。
LLE算法的主要缺點有:
1)算法所學習的流形只能是不閉合的,且樣本集是稠密均勻的。
2)算法對最近鄰樣本數的選擇敏感,不同的最近鄰數對最后的降維結果有很大影響。
『總結不易,加個關注唄!』