Stanford UFLDL教程 自我学习
自我學習
Contents[hide]
|
綜述
如果已經(jīng)有一個足夠強大的機器學習算法,為了獲得更好的性能,最靠譜的方法之一是給這個算法以更多的數(shù)據(jù)。機器學習界甚至有個說法:“有時候勝出者并非有最好的算法,而是有更多的數(shù)據(jù)。”
人們總是可以嘗試獲取更多的已標注數(shù)據(jù),但是這樣做成本往往很高。例如研究人員已經(jīng)花了相當?shù)木υ谑褂妙愃?AMT(Amazon Mechanical Turk) 這樣的工具上,以期獲取更大的訓練數(shù)據(jù)集。相比大量研究人員通過手工方式構(gòu)建特征,用眾包的方式讓多人手工標數(shù)據(jù)是一個進步,但是我們可以做得更好。具體的說,如果算法能夠從未標注數(shù)據(jù)中學習,那么我們就可以輕易地獲取大量無標注數(shù)據(jù),并從中學習。自學習和無監(jiān)督特征學習就是這種的算法。盡管一個單一的未標注樣本蘊含的信息比一個已標注的樣本要少,但是如果能獲取大量無標注數(shù)據(jù)(比如從互聯(lián)網(wǎng)上下載隨機的、無標注的圖像、音頻剪輯或者是文本),并且算法能夠有效的利用它們,那么相比大規(guī)模的手工構(gòu)建特征和標數(shù)據(jù),算法將會取得更好的性能。
在自學習和無監(jiān)督特征學習問題上,可以給算法以大量的未標注數(shù)據(jù),學習出較好的特征描述。在嘗試解決一個具體的分類問題時,可以基于這些學習出的特征描述和任意的(可能比較少的)已標注數(shù)據(jù),使用有監(jiān)督學習方法完成分類。
在一些擁有大量未標注數(shù)據(jù)和少量的已標注數(shù)據(jù)的場景中,上述思想可能是最有效的。即使在只有已標注數(shù)據(jù)的情況下(這時我們通常忽略訓練數(shù)據(jù)的類標號進行特征學習),以上想法也能得到很好的結(jié)果。
特征學習
我們已經(jīng)了解到如何使用一個自編碼器(autoencoder)從無標注數(shù)據(jù)中學習特征。具體來說,假定有一個無標注的訓練數(shù)據(jù)集 (下標 代表“不帶類標”)。現(xiàn)在用它們訓練一個稀疏自編碼器(可能需要首先對這些數(shù)據(jù)做白化或其它適當?shù)念A處理)。
利用訓練得到的模型參數(shù) ,給定任意的輸入數(shù)據(jù),可以計算隱藏單元的激活量(activations)。如前所述,相比原始輸入 來說, 可能是一個更好的特征描述。下圖的神經(jīng)網(wǎng)絡(luò)描述了特征(激活量 )的計算。
這實際上就是之前得到的稀疏自編碼器,在這里去掉了最后一層。
假定有大小為 的已標注訓練集(下標 表示“帶類標”),我們可以為輸入數(shù)據(jù)找到更好的特征描述。例如,可以將 輸入到稀疏自編碼器,得到隱藏單元激活量。接下來,可以直接使用 來代替原始數(shù)據(jù) (“替代表示”,Replacement Representation)。也可以合二為一,使用新的向量 來代替原始數(shù)據(jù) (“級聯(lián)表示”,Concatenation Representation)。
經(jīng)過變換后,訓練集就變成 或者是(取決于使用 替換 還是將二者合并)。在實踐中,將 和 合并通常表現(xiàn)的更好。但是考慮到內(nèi)存和計算的成本,也可以使用替換操作。
最終,可以訓練出一個有監(jiān)督學習算法(例如 svm, logistic regression 等),得到一個判別函數(shù)對 值進行預測。預測過程如下:給定一個測試樣本,重復之前的過程,將其送入稀疏自編碼器,得到。然后將 (或者 )送入分類器中,得到預測值。
數(shù)據(jù)預處理
在特征學習階段,我們從未標注訓練集 中學習,這一過程中可能計算了各種數(shù)據(jù)預處理參數(shù)。例如計算數(shù)據(jù)均值并且對數(shù)據(jù)做均值標準化(mean normalization);或者對原始數(shù)據(jù)做主成分分析(PCA),然后將原始數(shù)據(jù)表示為 (又或者使用 PCA 白化或 ZCA 白化)。這樣的話,有必要將這些參數(shù)保存起來,并且在后面的訓練和測試階段使用同樣的參數(shù),以保證數(shù)據(jù)進入稀疏自編碼神經(jīng)網(wǎng)絡(luò)之前經(jīng)過了同樣的變換。例如,如果對未標注數(shù)據(jù)集進行PCA預處理,就必須將得到的矩陣 保存起來,并且應(yīng)用到有標注訓練集和測試集上;而不能使用有標注訓練集重新估計出一個不同的矩陣 (也不能重新計算均值并做均值標準化),否則的話可能得到一個完全不一致的數(shù)據(jù)預處理操作,導致進入自編碼器的數(shù)據(jù)分布迥異于訓練自編碼器時的數(shù)據(jù)分布。
無監(jiān)督特征學習的術(shù)語
有兩種常見的無監(jiān)督特征學習方式,區(qū)別在于你有什么樣的未標注數(shù)據(jù)。自學習(self-taught learning) 是其中更為一般的、更強大的學習方式,它不要求未標注數(shù)據(jù) 和已標注數(shù)據(jù) 來自同樣的分布。另外一種帶限制性的方式也被稱為半監(jiān)督學習,它要求和 服從同樣的分布。下面通過例子解釋二者的區(qū)別。
假定有一個計算機視覺方面的任務(wù),目標是區(qū)分汽車和摩托車圖像;也即訓練樣本里面要么是汽車的圖像,要么是摩托車的圖像。哪里可以獲取大量的未標注數(shù)據(jù)呢?最簡單的方式可能是從互聯(lián)網(wǎng)上下載一些隨機的圖像數(shù)據(jù)集,在這些數(shù)據(jù)上訓練出一個稀疏自編碼器,從中得到有用的特征。這個例子里,未標注數(shù)據(jù)完全來自于一個和已標注數(shù)據(jù)不同的分布(未標注數(shù)據(jù)集中,或許其中一些圖像包含汽車或者摩托車,但是不是所有的圖像都如此)。這種情形被稱為自學習。
相反,如果有大量的未標注圖像數(shù)據(jù),要么是汽車圖像,要么是摩托車圖像,僅僅是缺失了類標號(沒有標注每張圖片到底是汽車還是摩托車)。也可以用這些未標注數(shù)據(jù)來學習特征。這種方式,即要求未標注樣本和帶標注樣本服從相同的分布,有時候被稱為半監(jiān)督學習。在實踐中,常常無法找到滿足這種要求的未標注數(shù)據(jù)(到哪里找到一個每張圖像不是汽車就是摩托車,只是丟失了類標號的圖像數(shù)據(jù)庫?)因此,自學習在無標注數(shù)據(jù)集的特征學習中應(yīng)用更廣。
中英文對照
總結(jié)
以上是生活随笔為你收集整理的Stanford UFLDL教程 自我学习的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Stanford UFLDL教程 Sof
- 下一篇: Stanford UFLDL教程 从自我