字典學習 稀疏表示學習筆記

2021-07-10 03:20:41 字數 1246 閱讀 2089

首先向大家安利一下南大周志華老師寫的《機器學習》這本書,作為乙個對此一竅不通的人看了都覺得很有意思,受益匪淺。語言平實卻又乾貨十足,比某些故弄玄虛泛泛而談的其它國內教材高到不知**去了。

最近看的**涉及到稀疏表示,正好這本書有講到。這兩天看了一下該書關於稀疏表示的部分(第11章),將核心知識點總結歸納一下,以免遺忘。若有錯誤,望大家賜教。

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)。

2.字典學習求解

求解上述最優化問題的總體策略是,對字典b以及樣本稀疏表示alphai交替迭代優化。即先初始化字典b,1.固定字典b對alphai進行優化。2.固定a對字典b進行優化。重複上述兩步,求得最終b以及x的稀疏表示a。

其中第一步可採用與lasso正則化相似的方法(如proximal gradient desent法)進行求解,第二步可採用ksvd方法進行求解。具體步驟參看該書11.5章節內容或search the internet,因為我也不是很懂·····

稀疏表示 字典學習

online learning toolbox francesco orabona machine perception toolbox mpt 偶然的機會發現了這個工具箱,雖說05年都沒有再更新了,但是很多東西還是可以借鑑的。很好的乙個工具箱,功能包含face detection,eye dete...

字典學習與稀疏表示

假設我們用乙個m n的矩陣表示資料集x,每一行代表乙個樣本,每一列代表樣本的乙個屬性,一般而言,該矩陣是稠密的,即大多數元素不為0。稀疏表示的含義是,尋找乙個係數矩陣a k n 以及乙個字典矩陣b m k 使得b a盡可能的還原x,且a盡可能的稀疏。a便是x的稀疏表示。x是y的稀疏表示 sparse...

稀疏表示和字典學習

稀疏表示 假設有乙個mn的矩陣y,我們要找到乙個mk的字典矩陣d和乙個稀疏的kn的係數矩陣x,使得使得y盡可能由dx表示,x就是y的稀疏表示。字典學習 字典學習包括兩個階段,一是字典構建階段,而是利用字典稀疏地表示樣本階段,每個階段都有不同的演算法可以選擇。龐大資料可以由字典裡的基本元素通過不同組合...