歡迎大家關(guān)注微信公眾號:baihuaML,白話機器學(xué)習(xí)。
碼字不易,如轉(zhuǎn)載請私信我!!原文鏈接:https://zhuanlan.zhihu.com/p/56365256

在這里,我們一起分享AI的故事。
您可以在后臺留言,關(guān)于機器學(xué)習(xí)、深度學(xué)習(xí)的問題,我們會選擇其中的優(yōu)質(zhì)問題進行回答!
本期問題
關(guān)于深度學(xué)習(xí)中的小樣本問題,有哪些研究進展?
正所謂“巧婦難為無米之炊”,在是使用深度學(xué)習(xí)解決各種問題的時候,難免會遇到樣本不充足的情況。那這個時候應(yīng)該怎樣做呢?
什么是小樣本問題?
小樣本問題是指研究如何從少量的樣本中去學(xué)習(xí)。眾所周知,深度學(xué)習(xí)的訓(xùn)練需要大量的數(shù)據(jù),然而,在實際的生產(chǎn)生活中,可能由于數(shù)據(jù)采集困難,樣本標注代價高等問題,使得訓(xùn)練樣本的規(guī)模不大,因此,小樣本問題就成為了機器學(xué)習(xí)領(lǐng)域中重要的研究方向之一。本。
小樣本會對模型訓(xùn)練帶來什么影響?
小樣本訓(xùn)練模型時,容易產(chǎn)生過擬合現(xiàn)象。具體以分類問題為例:
對于classification model,有如下結(jié)論

訓(xùn)練樣本N,h為Vc維數(shù),詳見https://www.cnblogs.com/HappyAngel/p/3633989.html
如果現(xiàn)在訓(xùn)練模型的算法能使得training error很小,而model complexity penalty又很小,就能保證test error也很小的概率是 1-η。所以要使得模型的generalization比較好,要保證training error和model complexity penalty都能比較小。觀察model complexity penalty項,可以看到,h越大,model complexity penalty就會越大。N越大,model complexity penalty則會越小。大致上講,越復(fù)雜的模型有著越大的h(VC dimension),所以為了使得模型有著好的generalization,需要有較大的N來壓低model complexity penalty。 這就是為什么深度學(xué)習(xí)的模型需要大量的數(shù)據(jù)來訓(xùn)練,否則模型的generalization會比較差,也就是過擬合。
目前關(guān)于小樣本問題,有哪些研究進展?
對于小樣本問題的研究主要有:
1. zero-shot learning(零樣本學(xué)習(xí)),即要識別訓(xùn)練集中沒有出現(xiàn)過的類別樣本,雖然類別不存在,但是我們可以學(xué)習(xí)到一個映射X->Y。如果這個映射足夠好的話,我們就可以處理沒有看到的類了。 比如,我們在訓(xùn)練時沒有看見過獅子的圖像,但是我們可以用這個映射得到獅子的特征。一個好的獅子特征,可能就和貓,老虎等等比較接近,和汽車,飛機比較遠離。

最早出現(xiàn)zero-shot的文章:
http://www.cs.cmu.edu/afs/cs/project/theo-73/www/papers/zero-shot-learning.pdf?(zero-shot)
目前關(guān)于zero-shot已經(jīng)出現(xiàn)很多優(yōu)秀的成果,比如:
【1】Zero-Shot Object Detection
【2】Zero-Shot Recognition using Dual Visual-Semantic Mapping Paths
【3】Zero-shot Recognition via Semantic Embeddings and Knowledge Graphs
【4】Xian Y, Lampert C H, Schiele B, et al.?Zero-shot learning-A comprehensive evaluation of the good, the bad and the ugly[J]. IEEE transactions on pattern analysis and machine intelligence, 2018
【4】等等
2. one-shot learning/few shot learning,即在訓(xùn)練集中,每一類都有一張或者幾張樣,主要方法可以關(guān)注遷移學(xué)習(xí)、meta-learning,metric-learning的相關(guān)研究進展。單例學(xué)習(xí)是遷移學(xué)習(xí)/Domain Adaptation的一個特例。模型在source domain訓(xùn)練好之后,遷移到target domain,target domain只用一個標記樣本去訓(xùn)練模型的參數(shù)就可以了。

圖8 平衡車單例識別
比如識別平衡車。訓(xùn)練時,source domain有大量標記樣本,比如自行車、獨行車、摩托車和轎車等類別,模型可以從source domain學(xué)到表示車的有效特征,比如有輪子、輪子尺寸大小、有踏板、方向盤或龍頭等。測試時,在target domian,只需要一個或很少一些target domain的標記樣本,比如只需要在模型可以準確識別車的條件下,給模型一張平衡車的標記圖片就可以了。
更多內(nèi)容推薦閱讀:
【領(lǐng)域報告】小樣本學(xué)習(xí)年度進展|VALSE2018,連接地址:https://blog.csdn.net/XWUkefr2tnh4/article/details/80729940
《few shot learning調(diào)研》鏈接地址:https://zhuanlan.zhihu.com/p/56014325
最早出現(xiàn)one-shot的文章:http://vision.stanford.edu/documents/Fei-FeiFergusPerona2006.pdf?(one-shot)
實際上,Zero/One-shot learning都屬于transfer learning,要點在于先學(xué)到好的X->Y的關(guān)系,希望能應(yīng)用到其他問題上。
3. 從數(shù)據(jù)增強的角度來看,也可以用來解決one-shot,zero-shot的相關(guān)問題
第一,利用流信息學(xué)習(xí)one-shot模型,常見的有半監(jiān)督學(xué)習(xí)和transductive learning,探討的是如何用無標簽數(shù)據(jù)去做one-shot learning。
第二,在有預(yù)訓(xùn)練模型時,用這些預(yù)訓(xùn)練模型進行數(shù)據(jù)增強。
第三,從相近的類別借用數(shù)據(jù),來增強訓(xùn)練數(shù)據(jù)集。
第四,合成新的有標簽訓(xùn)練數(shù)據(jù),用一些遙感里的方法,可以合成一些圖像,或者3d物體。
第五,用GAN來學(xué)習(xí)合成模型,比如最近用GAN來做personal ID和人臉相關(guān)研究。
第六,屬性引導(dǎo)的增強方法。具體大家可以在文章里進行詳細了解。?
幾個小樣本問題的數(shù)據(jù)集
1. 提供幾個最常用的Zero-Shot Learning的數(shù)據(jù)集,均為GoogleNet提取的圖片特征,引用相應(yīng)數(shù)據(jù)時,請注意對應(yīng)作者的引用說明。
AwA:http://pan.baidu.com/s/1nvPzsXb
CUB:http://pan.baidu.com/s/1nv3KCYH
aPaY:http://pan.baidu.com/s/1hseSzVe
SUN:http://pan.baidu.com/s/1gfAc33X
ImageNet2:http://pan.baidu.com/s/1pLfZYQ3
2. one-shot learning 數(shù)據(jù)集
Omniglot
行人Reid數(shù)據(jù)集:Viper/CUHK01
歡迎加入深度學(xué)習(xí)、機器學(xué)習(xí)技術(shù)研討群!
745224003

歡迎關(guān)注我們的微信公眾號:baihuaML,白話機器學(xué)習(xí)

關(guān)注知乎“會寫代碼的好廚師”
