編者按:子曰:“舉一隅不以三隅反,則不復也”。
人類從少量樣本中去思考,還能用這個做什么;而機器則是見到了上億的數(shù)據(jù),卻希望下一個與之前的相似。
在機器學習領(lǐng)域中,隨著更多應用場景的涌現(xiàn),我們越來越面臨著樣本數(shù)量不足的問題。因此,如何通過舉一反三的方式進行小樣本學習,成為了一個重要的研究方向。
本文中,復旦大學的付彥偉教授,將介紹過去一年中小樣本學習領(lǐng)域的研究進展。
文末,大講堂提供文中提到參考文獻的下載鏈接。
本次報告主要回顧one-shot learning,也可以稱為few-shot learning或low-shot learning領(lǐng)域最近的進展。
首先,one-shot learning產(chǎn)生的動機大家都比較了解?,F(xiàn)在在互聯(lián)網(wǎng),我們主要用large-scale方法處理數(shù)據(jù),但真實情況下,大部分類別我們沒有數(shù)據(jù)積累,large-scale方法不完全適用。所以我們希望在學習了一定類別的大量數(shù)據(jù)后,對于新的類別,我們只需要少量的樣本就能快速學習。
存在的問題一方面是知識缺失,另一方面是需要大量的訓練樣本。第一點在本文中不做討論。
對于第二點,目前考慮的解決方法主要有兩個:
第一個是人能夠識別一個從沒有見過的物體,也就是zero-shot learning;
第二個是從已有任務中學習知識,將其應用到未來模型訓練中,可以認為是一個遷移學習的問題。
那么我們?nèi)绾味xone-shot learning呢? 它的目的是從一個或幾個圖像樣本中學習類別信息。但我們這里的one-shot learning并不限于一般圖像,也可以在文本,醫(yī)療圖像等特殊圖像,或者物理化學中的掃描圖像上進行應用。
One-shot learning的研究主要分為如下幾類:
第一類方法是直接基于有監(jiān)督學習的方法,這是指沒有其他的數(shù)據(jù)源,不將其作為一個遷移學習的問題看待,只利用這些小樣本,在現(xiàn)有信息上訓練模型,然后做分類;
第二個是基于遷移學習的方法,是指有其他數(shù)據(jù)源時,利用這些輔助數(shù)據(jù)集去做遷移學習。這是我今年一篇綜述里提到的模型分類。
對于第一類直接進行有監(jiān)督學習的方法,可以做基于實例的學習,比如KNN,以及非參數(shù)方法。
而基于遷移學習的one-shot learning,首先是基于屬性的學習,比如我們最早在做zero-shot learning的時候,會順便做one-shot learning,把特征投影到一個屬性空間,然后在這個屬性空間中既可以做one-shot learning,又可以做zero-shot learning,但是每個類別都需要屬性標注,也就是需要額外的信息。最近的機器學習領(lǐng)域里,所討論one-shot learning一般不假設(shè)我們知道這些額外信息,大體上可以被分為meta-learning,或者metric-learning。 Meta-learning從數(shù)據(jù)中學習一種泛化的表示,這種泛化的表示可以被直接用于目標數(shù)據(jù)上,小樣本的類別學習過程。Metric-learning從數(shù)據(jù)源中構(gòu)建一個空間。但是本質(zhì)上meta-learning和metric-learning還是有很多相似的地方。
接下來是數(shù)據(jù)增強,這其實是很重要也很容易被忽視的一點,可以有很多方法來實現(xiàn):
第一,利用流信息學習one-shot模型,常見的有半監(jiān)督學習和transductive learning,探討的是如何用無標簽數(shù)據(jù)去做one-shot learning。
第二,在有預訓練模型時,用這些預訓練模型進行數(shù)據(jù)增強。
第三,從相近的類別借用數(shù)據(jù),來增強訓練數(shù)據(jù)集。
第四,合成新的有標簽訓練數(shù)據(jù),用一些遙感里的方法,可以合成一些圖像,或者3d物體。
第五,用GAN來學習合成模型,比如最近用GAN來做personal ID和人臉相關(guān)研究。
第六,屬性引導的增強方法。具體大家可以在文章里進行詳細了解。
首先基于遷移學習的方法,我們目前的實驗結(jié)果顯示:大部分已經(jīng)發(fā)表的one-shot learning方法在miniImageNet數(shù)據(jù)集上的結(jié)果,比不過resnet-18的結(jié)果,這也是很微妙的一點。我們的代碼已經(jīng)放到github上,大家有興趣可以看一下。(如果我們的實驗在什么地方有問題,歡迎大家給我發(fā)郵件)
下面簡單介紹相關(guān)文章。首先是Wang Yuxiong的文章Learning to Learn: Model Regression Networks for Easy Small Sample Learning,他們用原數(shù)據(jù)構(gòu)建了很多模型庫,然后目標數(shù)據(jù)直接回歸這些模型庫。具體就是在source class上訓練一個regression network。對于大量樣本我們可以得到一個比較好的分類器。對于少量樣本我們可以得到一個沒那么好的分類器。這個regression network的目的就是把沒那么好的分類器映射成比較好的分類器。即,把一個分類器的權(quán)重映射到另一個分類器。
第二個是Matching Networks for One Shot Learning,這個文章很有意思,從標題中就能讀出大概做了什么工作。對于一張圖片,我們訓練一個matching network來提取它的feature。然后用一個簡單的數(shù)學公式來判斷feature之間的距離。對于新的圖片,根據(jù)它與已知圖片的距離來進行分類。這篇文章精巧地設(shè)計了訓練的過程,來使得這個過程與測試時的過程一致。
第三是MAML,是與模型無關(guān)的meta-learning的方法,它主要側(cè)重于深度網(wǎng)絡(luò)的快速適應。這篇文章的思想就是找到一個網(wǎng)絡(luò)最好的初始位置,這個初始位置被定義為:經(jīng)過幾個小樣本的調(diào)整后可以得到最好的表現(xiàn)。
第四個是Optimization as a model for few-shot learning,也是meta-learning的方法,將任務組織成一個最優(yōu)化的問題。這篇文章將梯度下降的過程與LSTM的更新相對比,發(fā)現(xiàn)它們非常相似。所以可以用LSTM來學習梯度下降的過程,以此使用LSTM來做梯度下降的工作。
第五個是meta networks,也是meta-learning方法。其中利用了少量樣本在基礎(chǔ)網(wǎng)絡(luò)中產(chǎn)生的梯度,來快速生成新的參數(shù)權(quán)重。
今年NIPS一篇prototypical network,主要是在matching networks的基礎(chǔ)上做了一些更改。它們給每一個類一個原型,樣本與類的距離就是樣本與原型的距離。然后選用歐氏距離替代了matching network的余弦距離。
今年CVPR的Learning to compare: Relation network for few-shot learning。簡單來說就是用embedding module來提取feature。然后用relation module來輸出兩個feature之間的距離。一次來通過距離進行分類選擇。
關(guān)于on-shot learning,還有其他參考文獻,可在文末的鏈接中下載。
下面簡單介紹一下數(shù)據(jù)增強的相關(guān)文章。
上圖是我們今年的提交到ECCV的一個工作,用左邊的encoder-trinet把視覺特征映射到語義空間。因為語義空間上有更豐富的信息,可以在語義空間上做數(shù)據(jù)擴充(添加高斯噪聲和尋找最近鄰),再映射回視覺空間來得到更多的擴充樣例。
ICCV2017這篇文章根據(jù)已有的圖像去生成新的圖像,然后做low-shot 視覺識別。具體來說,比如說你有三張圖片:一張是鳥,一張是鳥站在樹枝上,一張是猴子。那么你可以學習一個網(wǎng)絡(luò)讓它生成猴子站在樹枝上的圖片。本質(zhì)上是,想把一個類的變化遷移到另一個類上,以此來做數(shù)據(jù)擴充。
這是去年在CVPR上發(fā)表的文章AGA,主要針對3D數(shù)據(jù),把圖像投影到一個屬性空間做數(shù)據(jù)增強。這是一個few-shot learning方法。具體就是,給定幾張距離觀測者不同距離的桌子的照片,以及一張凳子的照片,讓機器學會如何去生成不同距離的凳子的照片,以此來做數(shù)據(jù)擴充。
最后在 one-shot learning之上,我們還可能遇到一個問題,one-shot learning只關(guān)注目標類別上的分類問題,我們希望學習到的模型對源數(shù)據(jù)類別也適用,否則將帶來一個問題,被稱為災難性遺忘。
發(fā)表在PNAS的文章提出EWC 模型來解決這個問題。災難性遺忘往往源于我們學習任務B的時候更新網(wǎng)絡(luò),使得任務A做的沒那么好了。EWC提供了一種方法來計算權(quán)重對于任務A的重要性,把重要性引入到損失函數(shù)中,來避免更改會影響A效果的權(quán)重。
還有l(wèi)earning without forgetting這篇文章,也是側(cè)重于解決這個問題。簡單來說就是拿到一個新任務后,我們會更新網(wǎng)絡(luò)。我們希望在更新網(wǎng)絡(luò)前后網(wǎng)絡(luò)沒有太大變化,所以我們添加一個loss來限制網(wǎng)絡(luò)更新前后對于這個新的任務輸出的特征不能有太大變化,也就是一個distill loss。
最后,小樣本學習還有很多可以研究的東西。目前的成果主要還是基于把已知類別的一些信息遷移到新的類別上。可能未來可以嘗試下更多的方向,比如利用無監(jiān)督的信息或者是半監(jiān)督的方法。
-
機器學習
+關(guān)注
關(guān)注
66文章
8418瀏覽量
132654
原文標題:【領(lǐng)域報告】小樣本學習年度進展|VALSE2018
文章出處:【微信號:deeplearningclass,微信公眾號:深度學習大講堂】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論