稀疏表示學習
1.提出問題:什麼是稀疏表示
假設我們用一個M*N的矩陣表示資料集X,每一行代表一個樣本,每一列代表樣本的一個屬性,一般而言,該矩陣是稠密的,即大多數元素不為0。
稀疏表示的含義是,尋找一個係數矩陣A(K*N)以及一個字典矩陣B(M*K),使得B*A儘可能的還原X,且A儘可能的稀疏。A便是X的稀疏表示。
書上原文為(將一個大矩陣變成兩個小矩陣,而達到壓縮)
“為普通稠密表達的樣本找到合適的字典,將樣本轉化為合適的稀疏表達形式,從而使學習任務得以簡化,模型複雜度得以降低,通常稱為‘字典學習’(dictionary learning),亦稱‘稀疏編碼’(sparse coding)”塊內容
表達為優化問題的話,字典學習的最簡單形式為:
其中xi為第i個樣本,B為字典矩陣,aphai為xi的稀疏表示,lambda為大於0引數。
上式中第一個累加項說明了字典學習的第一個目標是字典矩陣與稀疏表示的線性組合儘可能的還原樣本;第二個累加項說明了alphai應該儘可能的稀疏。之所以用L1正規化是因為L1正規化正則化更容易獲得稀疏解。具體原因參看該書11.4章或移步機器學習中的範數規則化之(一)L0、L1與L2範數。字典學習便是學習出滿足上述最優化問題的字典B以及樣本的稀疏表示A(A{alpha1,alpha2,…,alphai})。L1正則化常用於稀疏,可以獲得稀疏解。如下圖表示,L1正則化交點在軸上,所得的解一般只是在某個軸上有實數,另外的軸為0,從而最終得到稀疏解。
2.字典學習求解 (學習字典、稀疏表示)
求解上述最優化問題的總體策略是,對字典B以及樣本稀疏表示alphai交替迭代優化。即先初始化字典B,
1.固定字典B對alphai進行優化。2.固定A對字典B進行優化。重複上述兩步,求得最終B以及X的稀疏表示A。
其中第一步可採用與LASSO正則化相似的方法(如Proximal Gradient Desent法)進行求解,第二步可採用KSVD方法進行求解。具體步驟參看該書11.5章節內容
參考:
http://blog.csdn.net/sam92/article/details/50731607
http://blog.csdn.net/zouxy09/article/details/24971995/
相關文章
- ch11 特徵選擇與稀疏學習特徵
- 表示學習介紹
- 如何解決稀疏獎勵下的強化學習?強化學習
- 【SQL 學習】case 表示式SQL
- 正規表示式學習
- 深度強化學習中稀疏獎勵問題Sparse Reward強化學習
- 深度強化學習——第十章稀疏獎勵強化學習
- 正規表示式學習和練習
- 正規表示式的學習
- Oracle正規表示式學習Oracle
- 學習Java:正規表示式Java
- Go 正規表示式學習Go
- 用三列二維陣列表示的稀疏矩陣類陣列矩陣
- 最近學習到的Lambda表示式
- 正規表示式學習筆記筆記
- 正規表示式入門學習
- 如何快速學習正規表示式
- Java Lambda 表示式學習筆記Java筆記
- 正規表示式學習總結
- JavaScript學習1:正規表示式JavaScript
- angular學習筆記(十一)-表示式Angular筆記
- 用十字連結串列表示的稀疏矩陣類矩陣
- 用三元組連結串列表示的稀疏矩陣類矩陣
- java8學習:lambda表示式(2)Java
- java8學習:lambda表示式(1)Java
- Python學習筆記 - lambda表示式Python筆記
- JDK1.8 Lambda 表示式的學習JDK
- 學習正規表示式(js、C#)JSC#
- java 正規表示式語法學習Java
- 你應該學習正規表示式
- Ruby學習筆記-正規表示式筆記
- 正規表示式學習筆記一筆記
- 簡單學習 JavaScript 正規表示式JavaScript
- 基於深度學習的網路表示深度學習
- PERL學習筆記---正規表示式筆記
- 正規表示式學習筆記 (轉)筆記
- 正規表示式學習(2)---字元特性字元
- 工作學習筆記(十一)Lambda 表示式筆記