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)。l1正則化常用於稀疏,可以獲得稀疏解。如下圖表示,l1正則化交點在軸上,所得的解一般只是在某個軸上有實數,另外的軸為0,從而最終得到稀疏解。
2.字典學習求解 (學習字典、稀疏表示)
求解上述最優化問題的總體策略是,對字典b以及樣本稀疏表示alphai交替迭代優化。即先初始化字典b,
1.固定字典b對alphai進行優化。2.固定a對字典b進行優化。重複上述兩步,求得最終b以及x的稀疏表示a。
其中第一步可採用與lasso正則化相似的方法(如proximal gradient desent法)進行求解,第二步可採用ksvd方法進行求解。具體步驟參看該書11.5章節內容
參考:
稀疏表示 字典學習
online learning toolbox francesco orabona machine perception toolbox mpt 偶然的機會發現了這個工具箱,雖說05年都沒有再更新了,但是很多東西還是可以借鑑的。很好的乙個工具箱,功能包含face detection,eye dete...
稀疏表示(機器學習 周志華)
1.提出問題 什麼是稀疏表示 假設我們用乙個m n的矩陣表示資料集x,每一行代表乙個樣本,每一列代表樣本的乙個屬性,一般而言,該矩陣是稠密的,即大多數元素不為0。稀疏表示的含義是,尋找乙個係數矩陣a k n 以及乙個字典矩陣b m k 使得b a盡可能的還原x,且a盡可能的稀疏。a便是x的稀疏表示。...
字典學習與稀疏表示
假設我們用乙個m n的矩陣表示資料集x,每一行代表乙個樣本,每一列代表樣本的乙個屬性,一般而言,該矩陣是稠密的,即大多數元素不為0。稀疏表示的含義是,尋找乙個係數矩陣a k n 以及乙個字典矩陣b m k 使得b a盡可能的還原x,且a盡可能的稀疏。a便是x的稀疏表示。x是y的稀疏表示 sparse...