??????? 最近在看Ng的深度學習教程,看到self-taught learning的時候,對一些概念感到很陌生。作為還清技術債的一個環節,用半個下午的時間簡單搜了下幾個名詞,以后如果會用到的話再深入去看。
??????? 監督學習在前一篇博客中討論過了,這里主要介紹下遷移學習、自我學習。因為監督學習需要大量訓練樣本為前提,同時對訓練樣本的要求特別嚴格,要求訓練樣本與測試樣本來自于同一分布。要是滿足不了這要求咋辦?那您看看下面幾種學習方法能不能幫上忙吧。
- ?遷移學習 transfer learning
??????? 有時候困擾大家的一個問題在于訓練數據的標定。這將會耗費大量的人力與物力。另外,機器學習假設訓練數據與測試數據服從相同的數據分布。然而許多情況下,這種同分布假設并不滿足。通常可能發生的情況如訓練數據過期,也就是好不容易標定的數據要被丟棄,而另外有一大堆新的數據要重新標定。遷移學習的目標是將從一個環境中學到的知識用來幫助新環境中的學習任務。講白了,就是當前只有少量新的標記的數據,但是有大量舊的已標記的數據(甚至是其他類別的有效數據),這時通過挑選這些舊數據中的有效的數據,加入到當前的訓練數據中,訓練新的模型。用一句原話則是:
???????Transfer learning is what happens when someone finds it much easier to learn to play chess having already learned to play checkers, or to recognize tables having already learned to recognize chairs; or to learn Spanish having already learned Italian。
?????? 遷移學習的代表作是《Boosting for Transfer Learning》有關它的介紹可以看這里,我就不多說啥了,多的我也不懂。
- 自我學習 self-taught learning?
?????? ?自我學習和半監督學習一樣,當前手頭上只有少量訓練樣本,但是周圍手頭上還有大量無標注樣本。舉一個經典的例子,分離大象和犀牛。對于監督學習來說,我們手頭有大量大象的樣本和犀牛的樣本,接下來訓練分類器,進行分類,大家都知道的。對于遷移學習,則是指我們手頭上有大量羊的樣本和馬的樣本(已標記),少量的大象和犀牛的樣本,接下來就要從羊和馬的樣本中選出有效的樣本分別加入到大象和犀牛的標記樣本中,然后再用監督學習的方法訓練分類器。而非監督學習,則是手上僅有少量大象和犀牛的已標記樣本,另外有一堆大象和犀牛的沒有標記的數據(注意它們中要么是大象要么是犀牛,沒有其他物種)。半監督學習就是利用這些樣本訓練分類器,實現分類。而自我學習,同樣是手上僅有少量大象和犀牛的已標記樣本,另外有一大堆自然圖像。所謂自然圖像,就是有大象和犀牛的圖片,還有各種其他物種的圖片。自我學習比半監督學習更適合實際場景-----哪有一堆只有大象和犀牛的圖片給你呢?而自然圖像的來源更加廣泛,可以從互聯網上隨便下載。
?????
?????? 自我學習實現的方法如下圖所示。首先通過未標注的自然圖像提取一組特征(如稀疏字典,sparse coding,很神奇的一個東西,以后還會再研究)。這樣任何一個標注和未標注的圖像都可以用這組特征表示出來。由于每一個標注后的樣本都被表示成了這些特征------注意這些特征捕捉了圖像的高層結構,將表示后的標注的樣本訓練一個分類器進行分類。