稀疏模型與結構性稀疏模型

稀疏編碼系列:

---------------------------------------------------------------------------

       

        之前幾次講到了ScSPM,以及改進的LLC。SPM是不帶結構性的稀疏編碼,而LLC是考慮了結構性的稀疏編碼。這次,我想更加全面地介紹一些結構性稀疏的內容。文章的最後會給出幾個典型的例子,附加源代碼(matlab版本的)和引文的pdf,供大家實驗。

        Data representation(不僅僅侷限於圖像)往往基於如下最小化問題:

         (1)

       其中X是觀測到的數據的特徵矩陣,D是字典,Z是字典上的描述。約束項使得字典dictionary和描述code具有一定結構性。當D給定時,確定Z的過程叫做representation persuit。當D和Z同時未知時,確定D就是dictionary learning的問題。

      稀疏表示,通常對Z做約束,使得Z中的每一列只能取少量的非0係數。其中最簡單的約束項就是

       (2)

        這時問題就變成了LASSO。K-means + Hard-VQ則是一種更嚴格的稀疏編碼,相比L1-norm的約束,Hard-VQ引入了嚴重的重建誤差,所以效果會比較差。這是介紹ScSPM和LLC時候的內容了,這裏簡單重複一下。

        LASSO被LLC改進的一個很重要原因,就是缺少smooth,其潛在的原因便是Z中的非0元素缺少結構信息(unstructured sparse coding)。所以,後面很多論文的工作就是提出帶結構性的稀疏模型。我們將字典D中的每一個碼字稱爲dictionary atoms。令表示爲D中一些碼字的集合,並將所有這類集合定義爲G,即。G中每一個group可以overlap也可以不overlap(這就對應於不同的group sparse model)。而約束項可以表示爲:

      (3)

        其中的子向量(只取了group中的元素)。可以看出,對每一個group內部,利用了L2-norm。由於L2-norm本身不小於0,故group之間其實是L1-norm。這樣的約束造成了group選擇特性,即group成組地取0或不取0。這樣仍然不夠完美,因爲group內部的各個atom不能滿足稀疏性。於是就有方法提出,在(3)式之後再加(2)式作爲約束,以保證group內的稀疏性,即:

 

   (4)

 

可以看出當且各,(3)就退化成了lasso。

        關於常見的一些結構性稀疏,列舉如下:

        Hierarchical Sparse Coding[code | read more],認爲非0的係數之間存在層次結構,即group與group之間要麼不overlap,如果overlap則一個group必會包含另一個group。一種典型的層次結構就是tree結構

        Overlapping group sparse coding[code |read more],則將約束relax,即允許group之間相互overlap。這個模型據說在genetic data的描述中十分有效,大家不妨試試

        Graph-Guided Sparse Coding[code |read more],建立一個graph,graph中各結點是dictionary中的各個atom。Graph-Guided不同於以上的group sparse coding,它可以加入更加複雜的結構信息。它的形式是:

  (5)

        不同就不同在,這裏。從直觀上理解,dictionary中的每個atom被視爲圖中的一個節點,而則代表節點之間邊的權重。而權重是可以做很多文章的,比如考慮atom與atom之間在語義層次上的關聯、結構層次上的關聯,等等。

 

-----------------

作者:jiang1st2010

轉載請註明出處:http://blog.csdn.net/jwh_bupt/article/details/12070273

 

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