Paper Information
Mairal, Julien, et al. “Online dictionary learning for sparse coding." Proceedings of the 26th annual international conference on machine learning. ACM, 2009.
Introduction
Sparse coding指的是將高維空間的data想成是一些基本元素(basis)的相加,有點類似抽feature的概念. 論文中要求的D很類似於auto-encoder的decoder的部分,與D不同在於: auto-encoder
不會要求中間的編碼是sparse的. 至於要求sparse的原因是更少的非零基本元素有更佳的解釋效果,也代表model有更好的抽取feature的能力.
Contribution
作者提出利用online learning的方式去得到dictionary,而非傳統的Batch learning,以下為兩者的比較.
Online learning vs Batch learning:
1. Online learning:
Online learning強調的學習是即時的, 每次訓練不用使用全部的資料, 而是以之前訓練好的模型為基礎, 每次處理一筆資料就更新一次模型, 這種方法叫做OGD(online gradient descent)。
2. Batch learning:
每次訓練都需要使用全部資料, 所以無法處理過大的training data。
Summarization
假設有m維的資料x, 那目的就是找到一個m*k維的D(也就是標題dictionary), 讓我們可以找到一組稀疏的線性組合逼近x。在此處k指的的是basis的數目。有了合適的D後, 就可以用basis的weight來代表整個x:
為了避免過大的D可以使得α太小, 每一個column vector的長度不大於1:
統整以上兩者:
因為loss function 為non-convex , 所以作者提出一種iterative學習的方法:
1. 固定D, 學習α
2. 固定α, 學習D
以下為學習的演算法: