稀疏編碼 Contents [hide] 1稀疏編碼 2機率解釋 [基於1996年Olshausen與Field的理論] 3學習演算法 4中英文對照 5中文譯者 稀疏編碼
稀疏編碼演算法是一種無監督學習方法,它用來尋找一組“超完備”基向量來更高效地表示樣本資料。稀疏編碼演算法的目的就是找到一組基向量 ,使得我們能將輸入向量 表示為這些基向量的線性組合:
雖然形如主成分分析技術(PCA)能使我們方便地找到一組“完備”基向量,但是這裡我們想要做的是找到一組“超完備”基向量來表示輸入向量 (也就是說,k >n)。超完備基的好處是它們能更有效地找出隱含在輸入資料內部的結構與模式。然而,對於超完備基來說,係數 ai 不再由輸入向量 唯一確定。因此,在稀疏編碼演算法中,我們另加了一個評判標準“稀疏性”來解決因超完備而導致的退化(degeneracy)問題。
這裡,我們把“稀疏性”定義為:只有很少的幾個非零元素或只有很少的幾個遠大於零的元素。要求係數 ai 是稀疏的意思就是說:對於一組輸入向量,我們只想有儘可能少的幾個係數遠大於零。選擇使用具有稀疏性的分量來表示我們的輸入資料是有原因的,因為絕大多數的感官資料,比如自然映像,可以被表示成少量基本元素的疊加,在映像中這些基本元素可以是面或者線。同時,比如與初級視覺皮層的類比過程也因此得到了提升。
我們把有 m 個輸入向量的稀疏編碼代價函數定義為:
此處 S(.) 是一個稀疏代價函數,由它來對遠大於零的 ai 進行“懲罰”。我們可以把稀疏編碼目標函式的第一項解釋為一個重構項,這一項迫使稀疏編碼演算法能為輸入向量 提供一個高擬合度的線性運算式,而公式第二項即“稀疏懲罰”項,它使 的運算式變得“稀疏”。常量λ 是一個變換量,由它來控制這兩項式子的相對重要性。
雖然“稀疏性”的最直接測度標準是 "L0" 範式(),但這是不可微的,而且通常很難進行最佳化。在實際中,稀疏代價函數S(.) 的普遍選擇是L1 範式代價函數 及對數代價函數 。
此外,很有可能因為減小 ai 或增加 至很大的常量,使得稀疏懲罰變得非常小。為防止此類事件發生,我們將限制 要小於某常量C 。包含了限制條件的稀疏編碼代價函數的完整形式如下:
機率解釋 [基於1996年Olshausen與Field的理論]
到目前為止,我們所考慮的稀疏編碼,是為了尋找到一個稀疏的、超完備基向量集,來覆蓋我們的輸入資料空間。現在換一種方式,我們可以從機率的角度出發,將稀疏編碼演算法當作一種“產生模型”。
我們將自然映像建模問題看成是一種線性疊加,疊加元素包括 k 個獨立的源特徵 以及加性雜訊ν :
我們的目標是找到一組特徵基向量 ,它使得映像的分布函數 儘可能地近似於輸入資料的經驗分布函數 。一種實現方式是,最小化 與 之間的 KL 散度,此 KL 散度表示如下:
因為無論我們如何選擇 ,經驗分布函數 都是常量,也就是說我們只需要最大化對數似然函數 。假設ν 是具有方差 σ2 的高斯白噪音,則有下式:
為了確定分布 ,我們需要指定先驗分布 。假定我們的特徵變數是獨立的,我們就可以將先驗機率分解為:
此時,我們將“稀疏”假設加入進來——假設任何一幅映像都是由相對較少的一些源特徵組合起來的。因此,我們希望 ai 的機率分布在零值附近是凸起的,而且峰值很高。一個方便的參數化先驗分布就是:
這裡 S(ai) 是決定先驗分布的形狀的函數。
當定義了 和 後,我們就可以寫出在由 定義的模型之下的資料 的機率分布:
那麼,我們的問題就簡化為尋找:
這裡 < . > 表示的是輸入資料的期望值。
不幸的是,通過對 的積分計算 通常是難以實現的。雖然如此,我們注意到如果 的分布(對於相應的 )足夠陡峭的話,我們就可以用 的最大值來估算以上積分。估算方法如下:
跟之前一樣,我們可以通過減小 ai 或增大 來增加機率的估算值(因為P(ai) 在零值附近陡升)。因此我們要對特徵向量 加一個限制以防止這種情況發生。
最後,我們可以定義一種線性產生模型的能量函數,從而將原先的代價函數重新表述為:
其中 λ = 2σ2β ,並且關係不大的常量已被隱藏起來。因為最大化對數似然函數等同於最小化能量函數,我們就可以將原先的最佳化問題重新表述為:
使用機率理論來分析,我們可以發現,選擇 L1 懲罰和 懲罰作為函數S(.) ,分別對應於使用了拉普拉斯機率 和柯西先驗機率 。
學習演算法
使用稀疏編碼演算法學習基向量集的方法,是由兩個獨立的最佳化過程組合起來的。第一個是逐個使用訓練樣本 來最佳化係數ai ,第二個是一次性處理多個樣本對基向量 進行最佳化。
如果使用 L1 範式作為稀疏懲罰函數,對 的學習過程就簡化為求解 由L1 範式正則化的最小二乘法問題,這個問題函數在域 內為凸,已經有很多技術方法來解決這個問題(諸如CVX之類的凸最佳化軟體可以用來解決L1正則化的最小二乘法問題)。如果S(.) 是可微的,比如是對數懲罰函數,則可以採用基於梯度演算法的方法,如共軛梯度法。
用 L2 範式約束來學習基向量,同樣可以簡化為一個帶有二次約束的最小二乘問題,其問題函數在域 內也為凸。標準的凸最佳化軟體(如CVX)或其它迭代方法就可以用來求解,雖然已經有了更有效方法,比如求解拉格朗日對偶函數(Lagrange dual)。
根據前面的的描述,稀疏編碼是有一個明顯的局限性的,這就是即使已經學習得到一組基向量,如果為了對新的資料樣本進行“編碼”,我們必須再次執行最佳化過程來得到所需的係數。這個顯著的“即時”消耗意味著,即使是在測試中,實現稀疏編碼也需要高昂的計算成本,尤其是與典型的前饋結構演算法相比。
中英文對照 稀疏編碼 Sparse Coding 無監督學習 unsupervised method 超完備基 over-complete bases 主成分分析 PCA 稀疏性 sparsity 退化 degeneracy 代價函數 cost function 重構項 reconstruction term 稀疏懲罰項 sparsity penalty 範式 norm 產生模型 generative model 線性疊加 linear superposition 加性雜訊 additive noise 特徵基向量 basis feature vectors 經驗分布函數 the empirical distribution KL 散度 KL divergence 對數似然函數 the log-likelihood 高斯白噪音 Gaussian white noise 先驗分布 the prior distribution 先驗機率 prior probability 源特徵 source features 能量函數 the energy function 正則化 regularized 最小二乘法 least squares 凸最佳化軟體convex optimization software 共軛梯度法 conjugate gradient methods 二次約束 quadratic constraints 拉格朗日對偶函數 the Lagrange dual
前饋結構演算法 feedforward architectures from: http://ufldl.stanford.edu/wiki/index.php/%E7%A8%80%E7%96%8F%E7%BC%96%E7%A0%81