SRC(稀疏)參考

今天學習了一下稀疏編碼,自己做點筆記,SRC算法就是利用訓練樣本數據和測試樣本數據之間的關係找到一個稀疏矩陣,本質就是尋找這樣一個矩陣,即一個稀疏的、超完備基向量集,來覆蓋我們的輸入數據空間。

Xi表示第i類的訓練樣本,大小爲d*li,d爲特徵維數,li爲樣本數量。將所有類別(K類)的訓練樣本組合成一個矩陣爲D=[X1 ... Xi ... XK],大小爲d*l。對於任意一個測試樣本,可以表示成如下的線性方式:

                                                       y = Da                    (1)

根據線性代數的知識,已知Dy,係數a可以方便的求解出來。但是,一般情況下,遠大於d。因此,公式(1)沒有唯一的解。爲了得到唯一的解,需要添加一個約束條件,即係數儘可能的稀疏。因此公式(1)演變爲如下的最優問題

                  y = Da   s.t. min ||a|| 1            (2)

上述的問題等同於如下問題:

                                                       min ||a|| 1  s.t.y = Da        (3)

該問題屬於一種線性約束的最優化問題。

求解得到合適的最優係數a*後,利用殘差來確定相應的類別,方法如下:
                                             y* = arg mini ei(y), ei(y) = ||y - Xiai*||2          (4)
通過公式(4)求解對應的類別。


以下主要是根據SRC的部分改進,其中之一是利用每一類樣本單獨進行訓練得到字典,我看的文章主要是針對測試樣本不能用訓練樣本稀疏表示,採用的是先對測試樣本進行效正,在利用效正後的測試樣本進行稀疏表示求解。


算法模型如式5):   τ=argminx1+e1subj Tyτ=Ax+e5
其中y是原始圖像τ是仿射變換參數T(·)是仿射變換算子Tyτ表示測試樣本y 經過仿射變換與訓練樣本對齊後的圖像

爲了避免陷入局部最小值本算法將每一類用戶的訓練圖像單獨用作訓練字典算法模型變爲式6):
τ=argmine1subj Tyτ=Aix+ei=12k6其中k 表示訓練圖像中的種類
假設測試樣本與訓練樣本只存在微小的平移偏差 則可以通過一階泰勒展開式來近似校正後的測試圖像

T(y,τ)≈y+Δx·Yx +Δy·Yy(7)其中 ,Yx是圖像 y 水 平 方 向 的 一 階 導 數 ,Yy表示圖像 y豎直方向的一階導數

再將每次得到的相對偏移量累加,最終得到原始的測試樣本相對於同類訓練樣本偏移量。

τ=argmin‖e‖1 subj y+Δx·Yx+Δy·Yy=Ai x+e   (8)
等價τ=argmine1subj y=Aix-Δx·Yx-Δy·Yy+e=Bw9 

(中間計算和推理有省略)

最後將模型寫成:
arg minx01+e01subj y=TAiτ-1i x+ei=12k) (10
Idetifyy=arg minei2i=12k) (11 

我想到了以下幾點:
第一是正則化,個人認爲就是原始模型擬合得不夠理想的時候,加入正則化可以使得模型擬合得更爲理想;
第二就是稀疏編碼,自編碼神經網絡也屬於稀疏編碼,可以將以上的改進方法將稀疏自編碼結合。

第三在求解的時候最後採用的是L1和L2範數的混合使用,可以考慮不同範數,比如Lp範數等等。

文章上面的內容是別人滴進行的個人總結,文章最後提出了自己的改進想法和觀點





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