method_LLE(Locally linear embdding)

局部線性嵌入(Locally Linear Embedding,以下簡稱LLE)也是非常重要的降維方法。和傳統的PCA,LDA等關注樣本方差的降維方法相比,LLE關注於降維時保持樣本局部的線性特徵,由於LLE在降維時保持了樣本的局部特徵,它廣泛的用於圖像圖像識別,高維數據可視化等領域。下面我們就對LLE的原理做一個總結。

1. 流形學習概述

LLE屬於流形學習(Manifold Learning)的一種。因此我們首先看看什麼是流形學習。流形學習是一大類基於流形的框架。數學意義上的流形比較抽象,不過我們可以認爲LLE中的流形是一個不閉合的曲面。這個流形曲面有數據分佈比較均勻,且比較稠密的特徵,有點像流水的味道。基於流行的降維算法就是將流形從高維到低維的降維過程,在降維的過程中我們希望流形在高維的一些特徵可以得到保留。

一個形象的流形降維過程如下圖。我們有一塊捲起來的布,我們希望將其展開到一個二維平面,我們希望展開後的布能夠在局部保持布結構的特徵,其實也就是將其展開的過程,就想兩個人將其拉開一樣。

在局部保持布結構的特徵,或者說數據特徵的方法有很多種,不同的保持方法對應不同的流形算法。比如等距映射(ISOMAP)算法在降維後希望保持樣本之間的測地距離而不是歐式距離,因爲測地距離更能反映樣本之間在流形中的真實距離。

    但是等距映射算法有一個問題就是他要找所有樣本全局的最優解,當數據量很大,樣本維度很高時,計算非常的耗時,鑑於這個問題,LLE通過放棄所有樣本全局最優的降維,只是通過保證局部最優來降維。同時假設樣本集在局部是滿足線性關係的,進一步減少的降維的計算量。

2. LLE思想

    現在我們來看看LLE的算法思想。

    LLE首先假設數據在較小的局部是線性的,也就是說,某一個數據可以由它鄰域中的幾個樣本來線性表示。比如我們有一個樣本x1x1,我們在它的原始高維鄰域裏用K-近鄰思想找到和它最近的三個樣本x2,x3,x4x2,x3,x4. 然後我們假設x1x1可以由x2,x3,x4x2,x3,x4線性表示,即:

x1=w12x2+w13x3+w14x4x1=w12x2+w13x3+w14x4

    其中,w12w13w14w12,w13,w14爲權重係數。在我們通過LLE降維後,我們希望x1x1在低維空間對應的投影x1x1′x2,x3,x4x2,x3,x4對應的投影x2,x3,x4x2′,x3′,x4′也儘量保持同樣的線性關係,即

x1w12x2+w13x3+w14x4x1′≈w12x2′+w13x3′+w14x4′

    也就是說,投影前後線性關係的權重係數w12w13w14w12,w13,w14是儘量不變或者最小改變的。

    從上面可以看出,線性關係只在樣本的附近起作用,離樣本遠的樣本對局部的線性關係沒有影響,因此降維的複雜度降低了很多。

    下面我們推導LLE算法的過程。

3. LLE算法推導

    對於LLE算法,我們首先要確定鄰域大小的選擇,即我們需要多少個鄰域樣本來線性表示某個樣本。假設這個值爲k。我們可以通過和KNN一樣的思想通過距離度量比如歐式距離來選擇某樣本的k個最近鄰。

    在尋找到某個樣本的xixi的k個最近鄰之後我們就需要找到找到xixi和這k個最近鄰之間的線性關係,也就是要找到線性關係的權重係數。找線性關係,這顯然是一個迴歸問題。假設我們有m個n維樣本{x1,x2,...,xm}{x1,x2,…,xm},我們可以用均方差作爲迴歸問題的損失函數:即:

J(w)=i=1m||xij=1kwijxj||22J(w)=∑i=1m||xi−∑j=1kwijxj||22

    一般我們也會對權重係數wijwij做歸一化的限制,即權重係數需要滿足

j=1kwij=1∑j=1kwij=1

    對於不在樣本xixi鄰域內的樣本xjxj,我們令對應的wij=0wij=0

    也就是我們需要通過上面兩個式子求出我們的權重係數。一般我們可以通過矩陣和拉格朗日子乘法來求解這個最優化問題。

    對於第一個式子,我們先將其矩陣化:

J(W)=i=1m||xij=1kwijxj||22=i=1m||j=1kwijxij=1kwijxj||22=i=1m||j=1kwij(xixj)||22=i=1m||(xixj)Wi||22=i=1mWTi(xixj)T(xixj)Wi(1)(2)(3)(4)(5)(1)J(W)=∑i=1m||xi−∑j=1kwijxj||22(2)=∑i=1m||∑j=1kwijxi−∑j=1kwijxj||22(3)=∑i=1m||∑j=1kwij(xi−xj)||22(4)=∑i=1m||(xi−xj)Wi||22(5)=∑i=1mWiT(xi−xj)T(xi−xj)Wi

    其中Wi=(wi1,wi2,...wik)Wi=(wi1,wi2,…wik)

    我們令矩陣Zi=(xixj)T(xixj)Zi=(xi−xj)T(xi−xj),則第一個式子進一步簡化爲J(W)=i=1mWTiZiWiJ(W)=∑i=1mWiTZiWi.對於第二個式子,我們可以矩陣化爲:

j=1kwij=WTi1k=1∑j=1kwij=WiT1k=1

    其中1k1k爲k維全1向量。

    現在我們將矩陣化的兩個式子用拉格朗日子乘法合爲一個優化目標:

L(W)=i=1mWTiZiWi+λ(WTi1k1)L(W)=∑i=1mWiTZiWi+λ(WiT1k−1)

    對WW求導並令其值爲0,我們得到

2ZiWi+λ1k=02ZiWi+λ1k=0

    即我們的

Wi=λZ1i1kWi=λ′Zi−11k

    其中 λ=12λλ′=−12λ爲一個常數。利用 WTi1k=1WiT1k=1,對WiWi歸一化,那麼最終我們的權重係數WiWi爲:

Wi=Z1i1k1TkZ1i1kWi=Zi−11k1kTZi−11k

 

    現在我們得到了高維的權重係數,那麼我們希望這些權重係數對應的線性關係在降維後的低維一樣得到保持。假設我們的n維樣本集{x1,x2,...,xm}{x1,x2,…,xm}在低維的d維度對應投影爲{y1,y2,...,ym}{y1,y2,…,ym}, 則我們希望保持線性關係,也就是希望對應的均方差損失函數最小,即最小化損失函數J(Y)J(Y)如下:

J(y)=i=1m||yij=1kwijyj||22J(y)=∑i=1m||yi−∑j=1kwijyj||22

    可以看到這個式子和我們在高維的損失函數幾乎相同,唯一的區別是高維的式子中,高維數據已知,目標是求最小值對應的權重係數WW,而我們在低維是權重係數WW已知,求對應的低維數據。

    爲了得到標準化的低維數據,一般我們也會加入約束條件如下:

i=1myi=0;1mi=1myiyTi=I∑i=1myi=0;1m∑i=1myiyiT=I

    首先我們將目標損失函數矩陣化:

J(Y)=i=1m||yij=1kwijyj||22=i=1m||YIiYWi||22=tr(YT(IW)T(IW)Y)(6)(7)(8)(6)J(Y)=∑i=1m||yi−∑j=1kwijyj||22(7)=∑i=1m||YIi−YWi||22(8)=tr(YT(I−W)T(I−W)Y)

    如果我們令M=(IW)T(IW)M=(I−W)T(I−W),則優化函數轉變爲最小化下式:J(Y)=tr(YTMY)J(Y)=tr(YTMY),tr爲跡函數。約束函數矩陣化爲:YTY=mIYTY=mI

    如果大家熟悉譜聚類和PCA的優化,就會發現這裏的優化過程幾乎一樣。其實最小化J(Y)對應的Y就是M的最小的d個特徵值所對應的d個特徵向量組成的矩陣。當然我們也可以通過拉格朗日函數來得到這個:

L(Y)=tr(YTMY)+λ(YTYmI)L(Y)=tr(YTMY)+λ(YTY−mI)

    對Y求導並令其爲0,我們得到2MY+2λY=02MY+2λY=0,即MY=λYMY=λY,這樣我們就很清楚了,要得到最小的d維數據集,我們需要求出矩陣M最小的d個特徵值所對應的d個特徵向量組成的矩陣Y=(y1,y2,...yd)Y=(y1,y2,…yd)即可。

    一般的,由於M的最小特徵值爲0不能反應數據特徵,此時對應的特徵向量爲全1。我們通常選擇M的第2個到第d+1個最小的特徵值對應的特徵向量M=(y2,y3,...yd+1)M=(y2,y3,…yd+1)來得到最終的Y。爲什麼M的最小特徵值爲0呢?這是因爲WTe=eWTe=e, 得到|WTI|e=0|WT−I|e=0,由於e0e≠0,所以只有WTI=0WT−I=0,即 (IW)T=0(I−W)T=0,兩邊同時右乘IWI−W,即可得到(IW)T(IW)e=0e(I−W)T(I−W)e=0e,即M的最小特徵值爲0.

4. LLE算法流程

    在上一節我們已經基本推導了LLE降維的整個流程,現在我們對算法過程做一個總結。整個LLE算法用一張圖可以表示如下:

    從圖中可以看出,LLE算法主要分爲三步,第一步是求K近鄰的過程,這個過程使用了和KNN算法一樣的求最近鄰的方法。第二步,就是對每個樣本求它在鄰域裏的K個近鄰的線性關係,得到線性關係權重係數W,具體過程在第三節第一部分。第三步就是利用權重係數來在低維裏重構樣本數據,具體過程在第三節第二部分。

    具體過程如下:

    輸入:樣本集D={x1,x2,...,xm}D={x1,x2,…,xm}, 最近鄰數k,降維到的維數d

    輸出: 低維樣本集矩陣DD′

    1) for i 1 to m,  按歐式距離作爲度量,計算和xixi最近的的k個最近鄰(xi1,xi2,...,xik,)(xi1,xi2,…,xik,)

    2) for i 1 to m, 求出局部協方差矩陣Zi=(xixj)T(xixj)Zi=(xi−xj)T(xi−xj),並求出對應的權重係數向量:

Wi=Z1i1k1TkZ1i1kWi=Zi−11k1kTZi−11k

    3) 由權重係數向量WiWi組成權重係數矩陣WW,計算矩陣M=(IW)T(IW)M=(I−W)T(I−W)

    4) 計算矩陣M的前d+1個特徵值,並計算這d+1個特徵值對應的特徵向量{y1,y2,...yd+1}{y1,y2,…yd+1}

    5)由第二個特徵向量到第d+1個特徵向量所張成的矩陣即爲輸出低維樣本集矩陣D=(y2,y3,...yd+1)D′=(y2,y3,…yd+1)      

5. LLE的一些改進算法

    LLE算法很簡單高效,但是卻有一些問題,比如如果近鄰數k大於低維的維度d時,我們的權重係數矩陣不是滿秩的。爲了解決這樣類似的問題,有一些LLE的變種產生出來。比如:Modified Locally Linear Embedding(MLLE)和Hessian Based LLE(HLLE)。對於HLLE,它不是考慮保持局部的線性關係,而是保持局部的Hessian矩陣的二次型的關係。而對於MLLE,它對搜索到的最近鄰的權重進行了度量,我們一般都是找距離最近的k個最近鄰就可以了,而MLLE在找距離最近的k個最近鄰的同時要考慮近鄰的分佈權重,它希望找到的近鄰的分佈權重儘量在樣本的各個方向,而不是集中在一側。

    另一個比較好的LLE的變種是Local tangent space alignment(LTSA),它希望保持數據集局部的幾何關係,在降維後希望局部的幾何關係得以保持,同時利用了局部幾何到整體性質過渡的技巧。

    這些算法原理都是基於LLE,基本都是在LLE這三步過程中尋求優化的方法。具體這裏就不多講了。

6. LLE總結

    LLE是廣泛使用的圖形圖像降維方法,它實現簡單,但是對數據的流形分佈特徵有嚴格的要求。比如不能是閉合流形,不能是稀疏的數據集,不能是分佈不均勻的數據集等等,這限制了它的應用。下面總結下LLE算法的優缺點。

    LLE算法的主要優點有:

    1)可以學習任意維的局部線性的低維流形

    2)算法歸結爲稀疏矩陣特徵分解,計算複雜度相對較小,實現容易。

    LLE算法的主要缺點有:

    1)算法所學習的流形只能是不閉合的,且樣本集是稠密均勻的。

    2)算法對最近鄰樣本數的選擇敏感,不同的最近鄰數對最後的降維結果有很大影響。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章