無監督學習中的兩個非概率模型:稀疏編碼與自編碼器

ZhuZhiboSmith發表於2017-06-30

「無監督學習」(Unsupervised Learning)現在已經成為深度學習領域的熱點。和「有監督學習」相比,這種方法的最大優勢就在於其無須給系統進行明確的標註(label)也能夠進行學習。最近,在德國的圖賓根,機器學習夏訓營(Machine Learning Summer School)正在如火如荼地進行,其中來自 CMU 的 Ruslan Salakhutdinov (http://www.cs.cmu.edu/~rsalakhu/) 教授就帶來了很多關於「無監督學習」的精彩內容。今天機器之心給大家分享的正是其「無監督學習中的非概率模型」的相關內容。主要介紹了稀疏編碼(Sparse Coding)和自編碼器(Autoencoder),這兩種結構也是「無監督學習」的基本構件。

無監督學習中的兩個非概率模型:稀疏編碼與自編碼器

一、稀疏編碼(Sparse Coding)

1. 稀疏編碼的概念

稀疏編碼最早由 Olshausen 和 Field 於 1996 年提出,用於解釋大腦中的初期視覺處理(比如邊緣檢測)。

目標:給定一組輸入資料向量 { x1,x2,...,xN },去學習一組基字典(dictionary of bases):

無監督學習中的兩個非概率模型:稀疏編碼與自編碼器

滿足:

無監督學習中的兩個非概率模型:稀疏編碼與自編碼器

其中 ank 的值大部分都為 0,所以稱為「稀疏」。每一個資料向量都由稀疏線性權值與基的組合形式來表達。

2. 稀疏編碼的訓練

無監督學習中的兩個非概率模型:稀疏編碼與自編碼器

為輸入影象片段;

無監督學習中的兩個非概率模型:稀疏編碼與自編碼器

為要學習的基字典(dictionary of bases)。

無監督學習中的兩個非概率模型:稀疏編碼與自編碼器

這個表示式的第一項為重構誤差項;第二項為稀疏懲罰項。

交替性優化:

1. 固定基字典,求解啟用值 a(這是一個標準的 Lasso 問題);

2. 固定啟用值 a,優化基字典(凸二次規劃問題——convex QP problem);

3. 稀疏編碼的測試過程。

  • 輸入為一個新影象片段 x* , 和 K 個可學習的基;
  • 輸出為一個影象片段 x* 的稀疏表達 a(sparse representation)。

無監督學習中的兩個非概率模型:稀疏編碼與自編碼器

無監督學習中的兩個非概率模型:稀疏編碼與自編碼器

[0, 0, ..., 0.8, ..., 0.3 ..., 0.5, ...] 為係數矩陣,也叫做特徵表示(feature representation)。

下圖為應用稀疏編碼進行影象分類的相關實驗結果,該實驗是在 Caltech101 物體類別資料集中完成的,並且用經典的 SVM 作為分類演算法。

無監督學習中的兩個非概率模型:稀疏編碼與自編碼器

4. 稀疏編碼的相關解釋

無監督學習中的兩個非概率模型:稀疏編碼與自編碼器

  • a 是稀疏,且過完備(over-complete)的表徵;
  • 編碼函式 a = f(x) 是 x 的隱函式和非線性函式;
  • 而重構(解碼)函式 x' = g(a) 是線性且顯性的。

二、自編碼器(Autoencoder)

1. 自編碼器結構

無監督學習中的兩個非概率模型:稀疏編碼與自編碼器

  • 編碼器和解碼器內部的詳細資料資訊至關重要;
  • 需要約束條件來避免學習一個特徵。

2. 自編碼器範例

無監督學習中的兩個非概率模型:稀疏編碼與自編碼器

如上圖所示,編碼器的過濾器(filters)為 W,函式為 Sigmoid 函式,

無監督學習中的兩個非概率模型:稀疏編碼與自編碼器

解碼器的過濾器(filters)為 D , 函式為線性迴歸函式。

這是一個擁有 D 個輸入和 D 個輸出的自編碼器,並且包括 K 個隱單元(hidden units), K<D。給定輸入 x,它的重構函式為:

無監督學習中的兩個非概率模型:稀疏編碼與自編碼器

我們可以通過使重構誤差(reconstruction error)最小化來決定網路的引數 W 和 D :

無監督學習中的兩個非概率模型:稀疏編碼與自編碼器

3. 其它自編碼模型

無監督學習中的兩個非概率模型:稀疏編碼與自編碼器

  • 如果隱蔽層(hidden layer)和輸出層是線性的,它將會對隱單元(hidden units)進行學習,這些隱單元是資料的線性方程,並且可以使方差最小化。這 K 個隱單元將會像前 K 個主成分(first k principal components)一樣,覆蓋相同的空間。這些權重向量可能不是正交的。
  • 對於非線性隱單元的情況來說,我們會利用 PCA(Principal Component Analysis)的非線性泛化(nonlinear generalization)來進行處理。

無監督學習中的兩個非概率模型:稀疏編碼與自編碼器

  • 需要額外的約束條件來避免學習一個特徵;
  • 和限制性玻爾茲曼機(Restricted Boltzmann Machines)相關。

預測稀疏分解(Predictive Sparse Decomposition):

無監督學習中的兩個非概率模型:稀疏編碼與自編碼器

在訓練過程中:

無監督學習中的兩個非概率模型:稀疏編碼與自編碼器

可以看到,這種結構在解碼器部分加入了稀疏懲罰項(詳見以上關於稀疏編碼的內容)。

4. 堆疊式自編碼器(Stacked Autoencoder)

無監督學習中的兩個非概率模型:稀疏編碼與自編碼器

這是一種「貪婪」的分層學習。如果我們去掉解碼器部分,並且只使用前饋部分,會發現這是一個標準的類似於卷積神經網路的結構,參考下圖。可以使用反向傳播來對引數進行調校。

無監督學習中的兩個非概率模型:稀疏編碼與自編碼器

5. 深度自編碼器結構及其相關實驗結果

無監督學習中的兩個非概率模型:稀疏編碼與自編碼器

無監督學習中的兩個非概率模型:稀疏編碼與自編碼器

  • 第一行:從測試資料集中隨機取樣;
  • 第二行:用 30 維的自編碼器進行重構得到的結果;
  • 第三行:用 30 維的 PCA 進行重構得到的結果。

相關文章