自我學習 Contents [hide] 1綜述 2特徵學習 3資料預先處理 4無監督特徵學習的術語 5中英文對照 6中文譯者 綜述
如果已經有一個足夠強大的機器學習演算法,為了獲得更好的效能,最靠譜的方法之一是給這個演算法以更多的資料。機器學習界甚至有個說法:“有時候勝出者並非有最好的演算法,而是有更多的資料。”
人們總是可以嘗試擷取更多的已標註資料,但是這樣做成本往往很高。例如研究人員已經花了相當的精力在使用類似 AMT(Amazon Mechanical Turk) 這樣的工具上,以期擷取更大的訓練資料集。相比大量研究人員通過手工方式構建特徵,用眾包的方式讓多人手工標資料是一個進步,但是我們可以做得更好。具體的說,如果演算法能夠從未標註資料中學習,那麼我們就可以輕易地擷取大量無標註資料,並從中學習。自學習和無監督特徵學習就是這種的演算法。儘管一個單一的未標註樣本蘊含的資訊比一個已標註的樣本要少,但是如果能擷取大量無標註資料(比如從互連網上下載隨機的、無標註的映像、音頻剪輯或者是文本),並且演算法能夠有效利用它們,那麼相比大規模的手工構建特徵和標資料,演算法將會取得更好的效能。
在自學習和無監督特徵學習問題上,可以給演算法以大量的未標註資料,學習出較好的特徵描述。在嘗試解決一個具體的分類問題時,可以基於這些學習出的特徵描述和任意的(可能比較少的)已標註資料,使用有監督學習方法完成分類。
在一些擁有大量未標註資料和少量的已標註資料的情境中,上述思想可能是最有效。即使在只有已標註資料的情況下(這時我們通常忽略訓練資料的類標號進行特徵學習),以上想法也能得到很好的結果。
特徵學習
我們已經瞭解到如何使用一個自編碼器(autoencoder)從無標註資料中學習特徵。具體來說,假定有一個無標註的訓練資料集 (下標 代表“不帶類標”)。現在用它們訓練一個稀疏自編碼器(可能需要首先對這些資料做白化或其它適當的預先處理)。
利用訓練得到的模型參數 ,給定任意的輸入資料,可以計算隱藏單元的啟用量(activations)。如前所述,相比原始輸入 來說, 可能是一個更好的特徵描述。下圖的神經網路描述了特徵(啟用量 )的計算。
這實際上就是之前得到的稀疏自編碼器,在這裡去掉了最後一層。
假定有大小為 的已標註訓練集(下標 表示“帶類標”),我們可以為輸入資料找到更好的特徵描述。例如,可以將 輸入到稀疏自編碼器,得到隱藏單元啟用量。接下來,可以直接使用 來代替未經處理資料 (“替代表示”,Replacement Representation)。也可以合二為一,使用新的向量 來代替未經處理資料 (“級聯表示”,Concatenation Representation)。
經過變換後,訓練集就變成 或者是(取決於使用 替換 還是將二者合并)。在實踐中,將 和 合并通常表現的更好。但是考慮到記憶體和計算的成本,也可以使用替換操作。
最終,可以訓練出一個有監督學習演算法(例如 svm, logistic regression 等),得到一個判別函數對 值進行預測。預測過程如下:給定一個測試樣本,重複之前的過程,將其送入稀疏自編碼器,得到。然後將 (或者 )送入分類器中,得到預測值。
資料預先處理
在特徵學習階段,我們從未標註訓練集 中學習,這一過程中可能計算了各種資料預先處理參數。例如計算資料均值並且對資料做均值標準化(mean normalization);或者對未經處理資料做主成分分析(PCA),然後將未經處理資料表示為 (又或者使用 PCA 白化或 ZCA 白化)。這樣的話,有必要將這些參數儲存起來,並且在後面的訓練和測試階段使用同樣的參數,以保證資料進入稀疏自編碼神經網路之前經過了同樣的變換。例如,如果對未標註資料集進行PCA預先處理,就必須將得到的矩陣 儲存起來,並且應用到有標註訓練集和測試集上;而不能使用有標註訓練集重新估計出一個不同的矩陣 (也不能重新計算均值並做均值標準化),否則的話可能得到一個完全不一致的資料預先處理操作,導致進入自編碼器的資料分布迥異於訓練自編碼器時的資料分布。
無監督特徵學習的術語
有兩種常見的無監督特徵學習方式,區別在於你有什麼樣的未標註資料。自學習(self-taught learning) 是其中更為一般的、更強大的學習方式,它不要求未標註資料 和已標註資料 來自同樣的分布。另外一種帶限制性的方式也被稱為半監督學習,它要求和 服從同樣的分布。下面通過例子解釋二者的區別。
假定有一個電腦視覺方面的任務,目標是區分汽車和>機車映像;也即訓練樣本裡面要麼是汽車的映像,要麼是>機車的映像。哪裡可以擷取大量的未標註資料呢。最簡單的方式可能是從互連網上下載一些隨機的映像資料集,在這些資料上訓練出一個稀疏自編碼器,從中得到有用的特徵。這個例子裡,未標註資料完全來自於一個和已標註資料不同的分布(未標註資料集中,或許其中一些映像包含汽車或者>機車,但是不是所有的映像都如此)。這種情形被稱為自學習。
相反,如果有大量的未標註映像資料,要麼是汽車映像,要麼是>機車映像,僅僅是缺失了類標號(沒有標註每張圖片到底是汽車還是>機車)。也可以用這些未標註資料來學習特徵。這種方式,即要求未標註樣本和帶標註樣本服從相同的分布,有時候被稱為半監督學習。在實踐中,常常無法找到滿足這種要求的未標註資料(到哪裡找到一個每張映像不是汽車就是>機車,只是丟失了類標號的映像資料庫。)因此,自學習在無標註資料集的特徵學習中應用更廣。
中英文對照 自我學習/自學習 self-taught learning 無監督特徵學習 unsupervised feature learning 自編碼器 autoencoder 白化 whitening 啟用量 activation 稀疏自編碼器 sparse autoencoder 半監督學習 semi-supervised learning from: http://ufldl.stanford.edu/wiki/index.php/%E8%87%AA%E6%88%91%E5%AD%A6%E4%B9%A0