快速稀疏编码算法
【self-taught?learning】快速稀疏編碼算法
?
Self-taught?learning是Honglak?Lee等開發的一個matlab框架,能夠實現他們在論文Self-taught?Learning?Transfer?Learningfrom?Unlabeled?Data和Efficient?sparse?coding?algorithms中提出的快速實現圖像稀疏編碼的算法。
?
先看第一篇論文《Self-taught?Learning:Transfer?Learning?from?Unlabeled?Data》
?
主要思想:
在監督分類算法的數據中,加入部分unlabel的數據,未標數據不一定和訓練集數據從屬同一類類別,在建模過程中,首先根據未標數據訓練出一組基,然后對訓練集的數據用該空間的基表示,最后使用SVM或其他分類算法進行分類。
?
PS.
這種方法不同于semi-supervised?learning,后者需要加入的未標數據,必須跟訓練集具有相同類型的類別,例如想要對大象和犀牛的圖像集分類,就必須加入大象和犀牛的未標圖像,而self-taught?learning可以加入任意圖像比如自然景色等。
加入未標數據是為了使圖像的特征變得稀疏,能夠加速訓練的計算速度。
?
符號約定:
?
算法介紹
?
第一步:根據未標數據學習一組表示圖像的基。
?
對于未標數據,提出如下的優化公式:
?
優化的目標是基向量組b和稀疏系數a。k是輸入數據的個數,s是新空間的維度,n是原始輸入空間的維度。所以,b是s*n的矩陣,a是k*s的矩陣。上面的公式有兩項需要優化,左邊項的目的是用一組基來表示輸入數據,并且使得誤差最小,右邊項引入了L1規則作為懲罰項,使得學習出來的系數a大部分是零。
保持a不變求b,或者保持b不變求a,都是凸優化問題,可以用梯度下降等方法求得。
這里補充一下L1/L2規則化。(在第二篇論文里提到過)
常用的規則化函數有下面三種:
?
第一種是L1規則化,即1范數。第二種是加上參數的L1規則化。第三種是log規則化。前兩種作為稀疏函數求解都是凸優化的問題,所以比較常用,而且L1規則化通常用于產生稀疏,對不相關特征也有很好的魯棒性。
?
第二步:根據上步的基,表示已標數據。
?
對每個已標數據,根據第一步中得到的一組基,通過優化下面的公式得到其稀疏系數a:
?
這就變成了L1規則化最小二乘問題,可以優化出稀疏向量來表示輸入。
?
第三步:將得到的數據特征輸入分類器進行分類。
?
將上步得到的訓練數據的特征輸入分類器(例如SVM)中進行分類。
?
完整算法偽代碼:
?
?
論文中還涉及到了與其他算法(PCA)的對比,以及實驗,這里略過不提。
?
?
再看第二篇論文《Efficient?sparse?coding?algorithms》
?
有了上面的基礎,如何快速稀疏編碼就會更容易理解,大體思路是一樣的,不同之處在于優化公式有所改變,如下:
?
生成模型的誤差服從(mean=0,?cov=σ2I)的高斯分布,上式用矩陣表示如下:
?
當B固定求S,或者S固定求B的時候,都是凸優化問題。在這篇論文里,交替的求B和S(保持另一個固定)。當學習B時,問題變成了最小二乘優化問題,解決方法有QCQP、梯度下降,問題是QCQP求解速度慢,梯度下降收斂慢,論文提出使用“Lagrange?dual”求解。當學習S時,問題變成了規則化最小二乘問題,論文里使用“generic?QP”方法解決。
?
這篇論文我還沒有看完,現在存在這樣的問題:
1、我還不太明白最小二乘、規則化最小二乘是啥意思。
2、Lagrange?dual方法還沒看具體是怎樣推導的。
3、generic?QP也沒看怎么推導的。
?
?
Matlab代碼的使用方法
作者提供了self-taught?learning框架的matlab代碼,下載。
?
使用方法:
?
1.?download?IMAGES.mat?from?http://redwood.berkeley.edu/bruno/sparsenet/
2.?copy?IMAGES.mat?to?./data?directory
3.?move?to?./code?
4.?run?matlab?and?execute:
????????"demo_fast_sc(1)":?epsilon-L1?sparsity?penalty
????????"demo_fast_sc(2)":?L1?sparsity?penalty
?
Note:?You?can?apply?sparse?coding?to?any?type?of?general?data.?See?sparse_coding.m?for?details.
總結
- 上一篇: 训练MNIST数据集模型
- 下一篇: 递归神经网络不可思议的有效性