科研項目1-2:子空間聚類的學習

         項目中的的創新點選擇使用稀疏子空間聚類來對實驗中的數據點進行分割,因此查閱了很多的子空間聚類的文獻,並學習了Nicolas.Gillis的SR_SSC的理論和代碼,現在做一個小小的總結。

      一:子空間聚類       

        從高維數據中,去尋找一個最具代表性的低維子空間,一直都是機器學習和計算機視覺中的一個重要課題。而降維,則是理解和預處理數據集的重要方式,這其中,主成分分析法則是這之中最流行的一種。然而,主成分分析法忽略了數據集中往往包含了不同內在的數據結構的事實。比如,不同的光照下,多個個體的人臉圖像,是屬於多個流形。對於這個問題,我們需要使用多個子空間來逼近,而不是僅僅假設爲一個。這也就是子空間聚類的思想。

        形式上,子空間聚類的問題可以定義爲:給定N個數據點:$$ X=\left\{x_{i} \in \mathbb{R}^{d}\right\}_{i=1}^{N} $$,來自於n個子空間S_{1},S_{2},S_{3},S_{4},.......,S_{n},其中,d_{1},d_{2},d_{3},......,d_{n},   (d_{n}<d),其目標是根據數據點所在的子空間對其進行劃分(聚類),並估計每個聚類對應的子空間參數。

        近幾年,人們提出了許多方法來解決這個問題。它們通常分爲四類:迭代法、統計法、代數法和基於譜的方法。隨着稀疏表示的進展,一組新的方法在基於譜的方法中引起了很多關注。其關鍵思想是每個數據點可以表示爲同一子空間內其他數據點的稀疏線性組合。一種通常被稱爲自我表達的屬性。這一類的三種主要代表方法是稀疏子空間聚類(SSC)、低階表示子空間聚類(LRR)和最小二乘迴歸(LSR)。這三種方法都基於以下模型:

                             $$ \min _{C \in \mathbb{R}^{N \times N}} f(C)+\lambda g(E) \quad \text { such that } \quad X=X C+E \text { and } C_{i, i}=0 \text { for all } i $$                                        (1)

       其中,$$ X \in \mathbb{R}^{d \times N} $$爲輸入數據,$$ E \in \mathbb{R}^{d \times N} $$爲噪聲,$$ C \in \mathbb{R}^{N \times N} $$爲親和矩陣。

      二:稀疏子空間聚類     

       在這裏,項目中主要使用的是稀疏子空間聚類,因此本博客主要記錄了對稀疏子空間聚類的學習和理解。

       公式(1)中的f(.)在SSC、LRR、LSR中都存在着不一樣的表示方法,其中,在SSC中,主要表示爲{||C||}_1  =  {\sum}_{i, j}\left|C_{i, j}\right|||.||_{1}表示爲L1範數,用於約束C矩陣的稀疏性。在假設噪聲不存在的理想情況下,將公式(1)進行修改,並使用拉格朗日乘子法。因此,SSC問題可以表示如下:

                                            $$ \min _{C \in \mathbb{R}^{N \times N}} ||C||_{1} + \frac{\upsilon }{2}||X - XC||^2_F\quad \text { such that } C_{i, i}=0 \text { for all } i $$                                              (2)

對式子(2)進行求解後,獲得$$ C \in \mathbb{R}^{N \times N} $$,其中C_{i, j} \neq 0表示爲i、j特徵點之間存在着某種聯繫,他們有可能來自於同一子空間。最終,我們設置仿射矩陣W=||C|| + ||C||^T,對仿射矩陣W進行譜聚類,最終可以獲取聚類結果。同時,我們可以通過譜聚類,觀察鄰接矩陣的拉普拉斯特徵值的衰減,來估計簇的數量。

       在本人的項目中,主要參考了Nicolas.Gillis的論文《Scalable and Robust Sparse Subspace Clustering Using Randomized Clustering and Multilayer Graphs》,論文從降低SSC本身的LASSO問題的規模入手,利用隨機層次聚類的方法,從原始數據$$ X \in \mathbb{R}^{d \times N} $$中選出部分數據$$ D \in \mathbb{R}^{d \times k} $$,其中k< N。我們可以理解爲,從N個數據點中,選擇出k個數據點作爲整個數據集的支持集(錨定點)將自表達公式改爲:X = DC$$ C \in \mathbb{R}^{k \times N} $$。 由此,SSC的公式可以修改爲:

                                                 $$ \min _{C \in \mathbb{R}^{k \times N}} ||C||_{1} + \frac{\upsilon }{2}||X - DC||^2_F\quad \text { such that } C_{i, i}=0 \text { for all } i $$

由於,在無任何先驗條件的基礎上,選擇一組具有很好的代表性的D是非常困難的。因此,爲了降低D選擇好壞對算法帶來的決定性,我們選擇L組D的方式,每一組字典集D都進行一次求解,將獲取得到的L組親和矩陣C,通過圖論的方式進行組合,並確定最終的親和矩陣C。因此,我們假定選擇的L組數據集定義爲:\sigma ^{(j)} (j = 1, 2, . . . , L),其中$$ \left\{D^{(i)}=X\left(:, \Omega^{(i)}\right) \in \mathbb{R}^{d \times k}\right\}_{i=1}^{L} $$。最終的表達式可以表示如下:

                                $$ \min _{C^{(i)} \in \mathbb{R}^{k \times N}}\left\|C^{(i)}\right\|_{1}+\frac{\mu}{2}\left\|X-D^{(i)} C^{(i)}\right\|_{F}^{2}\text { such that }C_{j, \Omega^{(i)}(j)}^{(i)}=0 \text { for } j=1,2, \ldots, k $$                          (3)

上述式子(3)可以使用ADMM算法進行求解。       

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