1. 程式人生 > >【領域報告】小樣本學習年度進展|VALSE2018

【領域報告】小樣本學習年度進展|VALSE2018

編者按:子曰:“舉一隅不以三隅反,則不復也”。

人類從少量樣本中去思考,還能用這個做什麼;而機器則是見到了上億的資料,卻希望下一個與之前的相似。

在機器學習領域中,隨著更多應用場景的湧現,我們越來越面臨著樣本數量不足的問題。因此,如何通過舉一反三的方式進行小樣本學習,成為了一個重要的研究方向。

本文中,復旦大學的付彥偉教授,將介紹過去一年中小樣本學習領域的研究進展。

文末,大講堂提供文中提到參考文獻的下載連結。

640?wx_fmt=png640?wx_fmt=png

本次報告主要回顧one-shot learning,也可以稱為few-shot learning或low-shot learning領域最近的進展。

640?wx_fmt=png640?wx_fmt=png

首先,one-shot learning產生的動機大家都比較瞭解。現在在網際網路,我們主要用large-scale方法處理資料,但真實情況下,大部分類別我們沒有資料積累,large-scale方法不完全適用。所以我們希望在學習了一定類別的大量資料後,對於新的類別,我們只需要少量的樣本就能快速學習。

640?wx_fmt=png

存在的問題一方面是知識缺失,另一方面是需要大量的訓練樣本。第一點在本文中不做討論。

640?wx_fmt=png

對於第二點,目前考慮的解決方法主要有兩個:

第一個是人能夠識別一個從沒有見過的物體,也就是zero-shot learning;

第二個是從已有任務中學習知識,將其應用到未來模型訓練中,可以認為是一個遷移學習的問題。

640?wx_fmt=png

那麼我們如何定義one-shot learning呢? 它的目的是從一個或幾個影象樣本中學習類別資訊。但我們這裡的one-shot learning並不限於一般影象,也可以在文字,醫療影象等特殊影象,或者物理化學中的掃描影象上進行應用。

640?wx_fmt=png640?wx_fmt=png

One-shot learning的研究主要分為如下幾類:

第一類方法是直接基於有監督學習的方法,這是指沒有其他的資料來源,不將其作為一個遷移學習的問題看待,只利用這些小樣本,在現有資訊上訓練模型,然後做分類;

第二個是基於遷移學習的方法,是指有其他資料來源時,利用這些輔助資料集去做遷移學習。這是我今年一篇綜述裡提到的模型分類。

640?wx_fmt=png

對於第一類直接進行有監督學習的方法,可以做基於例項的學習,比如KNN,以及非引數方法。

640?wx_fmt=png

而基於遷移學習的one-shot learning,首先是基於屬性的學習,比如我們最早在做zero-shot learning的時候,會順便做one-shot learning,把特徵投影到一個屬性空間,然後在這個屬性空間中既可以做one-shot learning,又可以做zero-shot learning,但是每個類別都需要屬性標註,也就是需要額外的資訊。最近的機器學習領域裡,所討論one-shot learning一般不假設我們知道這些額外資訊,大體上可以被分為meta-learning,或者metric-learning。 Meta-learning從資料中學習一種泛化的表示,這種泛化的表示可以被直接用於目標資料上,小樣本的類別學習過程。Metric-learning從資料來源中構建一個空間。但是本質上meta-learning和metric-learning還是有很多相似的地方。

640?wx_fmt=png

接下來是資料增強,這其實是很重要也很容易被忽視的一點,可以有很多方法來實現:

第一,利用流資訊學習one-shot模型,常見的有半監督學習和transductive learning,探討的是如何用無標籤資料去做one-shot learning。

第二,在有預訓練模型時,用這些預訓練模型進行資料增強。

第三,從相近的類別借用資料,來增強訓練資料集。

第四,合成新的有標籤訓練資料,用一些遙感裡的方法,可以合成一些影象,或者3d物體。

第五,用GAN來學習合成模型,比如最近用GAN來做personal ID和人臉相關研究。

第六,屬性引導的增強方法。具體大家可以在文章裡進行詳細瞭解。

640?wx_fmt=png

首先基於遷移學習的方法,我們目前的實驗結果顯示:大部分已經發表的one-shot learning方法在miniImageNet資料集上的結果,比不過resnet-18的結果,這也是很微妙的一點。我們的程式碼已經放到github上,大家有興趣可以看一下。(如果我們的實驗在什麼地方有問題,歡迎大家給我發郵件)

640?wx_fmt=png

下面簡單介紹相關文章。首先是Wang Yuxiong的文章Learning to Learn: Model Regression Networks for Easy Small Sample Learning,他們用原資料構建了很多模型庫,然後目標資料直接回歸這些模型庫。具體就是在source class上訓練一個regression network。對於大量樣本我們可以得到一個比較好的分類器。對於少量樣本我們可以得到一個沒那麼好的分類器。這個regression network的目的就是把沒那麼好的分類器對映成比較好的分類器。即,把一個分類器的權重對映到另一個分類器。

640?wx_fmt=png

第二個是Matching Networks for One Shot Learning,這個文章很有意思,從標題中就能讀出大概做了什麼工作。對於一張圖片,我們訓練一個matching network來提取它的feature。然後用一個簡單的數學公式來判斷feature之間的距離。對於新的圖片,根據它與已知圖片的距離來進行分類。這篇文章精巧地設計了訓練的過程,來使得這個過程與測試時的過程一致。

640?wx_fmt=png

第三是MAML,是與模型無關的meta-learning的方法,它主要側重於深度網路的快速適應。這篇文章的思想就是找到一個網路最好的初始位置,這個初始位置被定義為:經過幾個小樣本的調整後可以得到最好的表現。

640?wx_fmt=png

第四個是Optimization as a model for few-shot learning,也是meta-learning的方法,將任務組織成一個最優化的問題。這篇文章將梯度下降的過程與LSTM的更新相對比,發現它們非常相似。所以可以用LSTM來學習梯度下降的過程,以此使用LSTM來做梯度下降的工作。

640?wx_fmt=png

第五個是meta networks,也是meta-learning方法。其中利用了少量樣本在基礎網路中產生的梯度,來快速生成新的引數權重。

640?wx_fmt=png今年NIPS一篇prototypical network,主要是在matching networks的基礎上做了一些更改。它們給每一個類一個原型,樣本與類的距離就是樣本與原型的距離。然後選用歐氏距離替代了matching network的餘弦距離。640?wx_fmt=png

今年CVPR的Learning to compare: Relation network for few-shot learning。簡單來說就是用embedding module來提取feature。然後用relation module來輸出兩個feature之間的距離。一次來通過距離進行分類選擇。

640?wx_fmt=png

關於on-shot learning,還有其他參考文獻,可在文末的連結中下載。

640?wx_fmt=png

下面簡單介紹一下資料增強的相關文章。

640?wx_fmt=png

上圖是我們今年的提交到ECCV的一個工作,用左邊的encoder-trinet把視覺特徵對映到語義空間。因為語義空間上有更豐富的資訊,可以在語義空間上做資料擴充(新增高斯噪聲和尋找最近鄰),再映射回視覺空間來得到更多的擴充樣例。

640?wx_fmt=png

ICCV2017這篇文章根據已有的影象去生成新的影象,然後做low-shot 視覺識別。具體來說,比如說你有三張圖片:一張是鳥,一張是鳥站在樹枝上,一張是猴子。那麼你可以學習一個網路讓它生成猴子站在樹枝上的圖片。本質上是,想把一個類的變化遷移到另一個類上,以此來做資料擴充。

640?wx_fmt=png

這是去年在CVPR上發表的文章AGA,主要針對3D資料,把影象投影到一個屬性空間做資料增強。這是一個few-shot learning方法。具體就是,給定幾張距離觀測者不同距離的桌子的照片,以及一張凳子的照片,讓機器學會如何去生成不同距離的凳子的照片,以此來做資料擴充。

640?wx_fmt=png

最後在 one-shot learning之上,我們還可能遇到一個問題,one-shot learning只關注目標類別上的分類問題,我們希望學習到的模型對源資料類別也適用,否則將帶來一個問題,被稱為災難性遺忘。

640?wx_fmt=png

發表在PNAS的文章提出EWC 模型來解決這個問題。災難性遺忘往往源於我們學習任務B的時候更新網路,使得任務A做的沒那麼好了。EWC提供了一種方法來計算權重對於任務A的重要性,把重要性引入到損失函式中,來避免更改會影響A效果的權重。

640?wx_fmt=png

還有learning without forgetting這篇文章,也是側重於解決這個問題。簡單來說就是拿到一個新任務後,我們會更新網路。我們希望在更新網路前後網路沒有太大變化,所以我們新增一個loss來限制網路更新前後對於這個新的任務輸出的特徵不能有太大變化,也就是一個distill loss。

最後,小樣本學習還有很多可以研究的東西。目前的成果主要還是基於把已知類別的一些資訊遷移到新的類別上。可能未來可以嘗試下更多的方向,比如利用無監督的資訊或者是半監督的方法。

參考文獻連結:

https://pan.baidu.com/s/1yzoSeuaZvMjKMQlMfD1Yzw 

密碼: xmap

主編:袁基睿  編輯:程一

整理:陳梓天、曲英男、楊茹茵、高科、高黎明

--end--

該文章屬於“深度學習大講堂”原創,如需要轉載,請聯絡 Emily_0167。

作者簡介:

640?wx_fmt=png

付彥偉,復旦大學青年副研究員(tenure-track),2014年獲得倫敦大學瑪麗皇后學院博士學位,導師: Prof. Tao Xiang and Prof. Shaogang Gong. 2014年12月至2016年7月,在美國Disney Research做博士後研究。入選2017年度上海高校特聘教授 (東方學者) , 2018年獲國家青年千人計劃資助。 主要研究領域包括零樣本、小樣本識別、終生學習演算法,人臉識別及行人再識別,及視訊情感分析等。有IEEE TPAMI, CVPR等頂級期刊會議論文20篇,15項中國、2項美國專利等。論文被美國多家科技媒體報道,如Science 2.0, PhyORG, Science Newsline Technology, Science 2.0, Communications of ACM, Business Standard, Science Newsline Technology, PhyORG, EurekAlert! AAAS等。

往期精彩回顧


640?wx_fmt=jpeg

640?wx_fmt=png

640?wx_fmt=png

歡迎關注我們!

深度學習大講堂是由中科視拓運營的高質量原創內容平臺,邀請學術界、工業界一線專家撰稿,致力於推送人工智慧與深度學習最新技術、產品和活動資訊!

中科視拓(SeetaTech)將秉持“開源開放共發展”的合作思路,為企業客戶提供人臉識別、計算機視覺與機器學習領域“企業研究院式”的技術、人才和知識服務,幫助企業在人工智慧時代獲得可自主迭代和自我學習的人工智慧研發和創新能力。

中科視拓目前正在招聘: 人臉識別演算法研究員,深度學習演算法工程師,GPU研發工程師, C++研發工程師,Python研發工程師,嵌入式視覺研發工程師,運營經理。有興趣可以發郵件至:[email protected],想了解更多可以訪問,www.seetatech.com

640?wx_fmt=jpeg640?wx_fmt=jpeg

中科視拓

640?wx_fmt=jpeg

深度學習大講堂

點選閱讀原文開啟中科視拓官方網站