首發(fā):AI公園
作者:Etienne
編譯:ronghuaiyang
導讀
你并不總是有足夠的圖像來訓練一個深度神經(jīng)網(wǎng)絡。下面是教你如何通過幾個樣本讓模型快速學習的方法。
我們?yōu)槭裁匆P心少樣本學習?
1980年,Kunihiko Fukushima開發(fā)了第一個卷積神經(jīng)網(wǎng)絡。自那以后,由于計算能力的不斷增強和機器學習社區(qū)的巨大努力,深度學習算法從未停止提高其在與計算機視覺相關的任務上的性能。2015年,Kaiming He和他的微軟的團隊報告說,他們的模型在從ImageNet分類圖像時比人類表現(xiàn)更好。那時,我們可以說計算機在處理數(shù)十億張圖像來解決特定任務方面比我們做得更好。
但是,如果你不是谷歌或Facebook,你不可能總是能夠構建具有那么多圖像的數(shù)據(jù)集。當你在計算機視覺領域工作時,你有時不得不對圖像進行分類,每個標簽只有一個或兩個樣本。在這場比賽中,人類還是要被打敗的。只要給嬰兒看一張大象的照片,他們從此以后就可以認出大象了。如果你用Resnet50做同樣的事情,你可能會對結果感到失望。這種從少量樣本中學習的問題叫做少樣本學習。
近年來,少樣本學習問題在研究界引起了極大的關注,并且已經(jīng)開發(fā)出了許多優(yōu)雅的解決方案。目前最流行的解決方案是使用元學習,或者用三個詞來概括:learning to learn。如果你想知道元學習是什么以及它是如何工作的,請繼續(xù)閱讀。
少樣本圖像分類任務
首先,我們需要定義N-way K-shot圖像分類任務。給定:
一個由N個標簽組成的支持集,每個標簽對應K個有標簽的圖像
由Q個查詢圖像組成的查詢集
任務是對查詢圖像進行分類。當K很小(通常是K<10)時,我們討論的是少樣本圖像分類(在K=1的情況下,是單樣本圖像分類)。
一個少樣本分類任務的例子:對于支持集中N=3個類中的每個類,給定K=2個樣本,我們希望將查詢集中的Q=4只狗標記為Labrador, saint bernard或Pug。即使你從沒見過Labrador、saint bernard或Pug,這對你來說也很容易。但要用人工智能解決這個問題,我們需要元學習。
元學習范式
1998年,Thrun & Pratt說,要解決一個任務,一個算法學習“如果性能可以隨著經(jīng)驗提升”,同時,給定一族需要解決的問題,一個算法學習”性能隨著經(jīng)驗和任務數(shù)量提升”。我們將后者稱為元學習算法。它不是去學習如何解決一個特定的任務。它可以學會解決許多任務。每學習一項新任務,它就能更好地學習新任務:它學會去學習。
正式的描述一下,如果我們想要解決一個任務T,元學習算法訓練一批任務{(diào)T?}。算法通過嘗試解決這些任務來得到學習的經(jīng)驗,最終去解決終極任務T。
例如,考慮上圖中顯示的任務_T_。它包括有標簽圖像,如Labrador,Saint-Bernard或Pug,使用3x2=6個有標簽圖像。一個訓練任務T?可能是利用6個有標簽圖像把圖像標記為Boxer, Labradoodle或者Rottweiler。meta-training過程是一連串的這些任務T?,每一次都是不同品種的狗。我們期望元學習模型“隨著經(jīng)驗和任務數(shù)量的增加”變得更好。最后,我們在_T_上對模型進行評價。
我們評估了Labradors、Saint-Bernards和Pugs的元學習模型,但我們只在其他品種上訓練。
怎么做呢?假設你想要解決這個任務(Labrador,Saint-Bernard 和Pug)。你需要一個元訓練數(shù)據(jù)集,里面有很多不同品種的狗。例如,你可以使用Stanford Dogs數(shù)據(jù)集,其中包含從ImageNet提取的超過20k只狗。我們將此數(shù)據(jù)集稱為_D_。注意,_D_不需要包含任何Labrador,Saint-Bernard或Pug。
我們從_D_中抽取batch組成episodes。每個episodes 對應于一個N-way K-shot分類任務T?,(通常我們使用相同的N和K)。模型解決了batch中的所有的episodes后(對查詢集中的所有圖像打標簽),它的參數(shù)被更新。這通常是通過對查詢集上的分類不準確造成的損失進行反向傳播來實現(xiàn)的。
這樣,模型跨任務學習,以準確地解決一個新的,看不見的少樣本分類任務。標準學習分類算法學習一個映射_圖像→標簽_,元學習算法學習一個映射:support-set→c(.),其中c是一個映射:query→label。
元學習算法
既然我們知道了算法元訓練意味著什么,一個謎仍然存在:元學習模型是如何解決一個少樣本的分類任務的?當然,解決方案不止一種。我們聚焦在最流行的方案上。
元學習
度量學習的基本思想是學習數(shù)據(jù)點(如圖像)之間的距離函數(shù)。它已經(jīng)被證明對于解決較少樣本的分類任務是非常有用的:度量學習算法不需要對支持集(少量標記圖像)進行微調(diào),而是通過與標記圖像進行比較來對查詢圖像進行分類。
查詢(右側(cè))與支持集的每個圖像進行比較。它的標簽取決于哪些圖像最接近。
當然,你不能逐像素地比較圖像,所以你要做的是在相關的特征空間中比較圖像。為了更清楚一些,讓我們詳細說明度量學習算法如何解決一個少樣本的分類任務(上面定義為一個標簽樣本的支持集,和一個我們想要分類的圖像的查詢集):
1、我們從支持和查詢集的所有圖像中提取嵌入(通常使用卷積神經(jīng)網(wǎng)絡)?,F(xiàn)在,我們在少樣本分類任務中必須考慮的每一幅圖像都可以用一維向量表示。
2、每個查詢根據(jù)其支持圖像集的距離進行分類。距離函數(shù)和分類策略都有很多可能的設計選擇。一個例子就是歐氏距離和k近鄰。
3、在元訓練期間,在episode結束時,通過反向傳播查詢集上分類錯誤造成的損失(通常是交叉熵損失)來更新CNN的參數(shù)。
每年都會發(fā)布幾種度量學習算法來解決少樣本圖像分類的兩個原因是:
1、它們在經(jīng)驗上很有效;
2、唯一的限制是你的想象力。有許多方法可以提取特征,甚至有更多的方法可以比較這些特征。現(xiàn)在我們將回顧一些現(xiàn)有的解決方案。
匹配網(wǎng)絡的算法。特征提取器對于支持集圖像和查詢圖像是不同的。使用余弦相似度將查詢的嵌入與支持集中的每幅圖像進行比較。然后用softmax對其進行分類。
匹配網(wǎng)絡(見上圖)是第一個使用元學習的度量學習算法。在這種方法中,我們不以同樣的方式提取支持圖像和查詢圖像的特征。來自谷歌DeepMind的Oriol Vinyals和他的團隊提出了使用LSTM networks在特征提取期間使所有圖像進行交互的想法。稱為全上下文嵌入,因為你允許網(wǎng)絡找到最合適的嵌入,不僅知道需要嵌入的圖像,而且還知道支持集中的所有其他圖像。這讓他們的模型表現(xiàn)的更好,因為所有的圖像都通過了這個簡單的CNN,但它也需要更多的時間和更大的GPU。
在最近的研究中,我們沒有將查詢圖像與支持集中的每一張圖像進行比較。多倫多大學的研究人員提出了Prototypical Networks。在它們的度量學習算法中,在從圖像中提取特征后,我們計算每個類的原型。為此,他們使用類中每個圖像嵌入的平均值。(但是你可以想象數(shù)以千計的方法來計算這些嵌入。為了反向傳播,函數(shù)只需是可微的即可)一旦原型被計算出來,查詢將使用到原型的歐式距離進行分類(見下圖)。
在原型網(wǎng)絡中,我們將查詢X標記為最接近原型的標簽。
盡管簡單,原型網(wǎng)絡仍然能產(chǎn)生最先進的結果。更復雜的度量學習架構后來被開發(fā)出來,比如一個神經(jīng)網(wǎng)絡來表示距離函數(shù)(而不是歐氏距離)。這略微提高了精確度,但我相信時至今日,原型的想法是在用于少樣本圖像分類的度量學習算法領域中最有價值的想法(如果你不同意,請留下憤怒的評論)。
模型無關元學習
我們將以模型無關元學習 (MAML)來結束這次回顧,這是目前最優(yōu)雅、最有前途的元學習算法之一。它基本上是最純粹的元學習,通過神經(jīng)網(wǎng)絡有兩個層次的反向傳播。
該算法的核心思想是訓練神經(jīng)網(wǎng)絡的參數(shù),可以適應快速和較少的例子,以新的分類任務。下面我將為你提供一個關于MAML如何在一個episode中進行元訓練的可視化例子(例如,在從D中采樣得到的T?上進行few-shot分類任務)。假設你有一個神經(jīng)網(wǎng)絡M參數(shù)為
審核編輯 黃昊宇
-
圖像分類
+關注
關注
0文章
93瀏覽量
11958 -
深度學習
+關注
關注
73文章
5519瀏覽量
121620
發(fā)布評論請先 登錄
相關推薦
xgboost在圖像分類中的應用
如何使用ddc進行數(shù)據(jù)分類
高通AI Hub:輕松實現(xiàn)Android圖像分類
![高通AI Hub:輕松實現(xiàn)Android<b class='flag-5'>圖像</b><b class='flag-5'>分類</b>](https://file1.elecfans.com/web2/M00/0D/4E/wKgaomdFfv-AV-2HAACUww0CQCg180.png)
《DNK210使用指南 -CanMV版 V1.0》第四十八章 自學習分類實驗
使用卷積神經(jīng)網(wǎng)絡進行圖像分類的步驟
主動學習在圖像分類技術中的應用:當前狀態(tài)與未來展望
![主動<b class='flag-5'>學習</b>在<b class='flag-5'>圖像</b><b class='flag-5'>分類</b>技術中的應用:當前狀態(tài)與未來展望](https://file1.elecfans.com/web1/M00/F5/01/wKgZoWc1XZCAdV3RAAAZvwh1ns0533.png)
圖像識別算法都有哪些方法
圖像識別技術的原理是什么
深度學習中的時間序列分類方法
計算機視覺怎么給圖像分類
神經(jīng)元的分類包括哪些
cnn卷積神經(jīng)網(wǎng)絡分類有哪些
基于神經(jīng)網(wǎng)絡的呼吸音分類算法
OpenAI發(fā)布圖像檢測分類器,可區(qū)分AI生成圖像與實拍照片
利用卷積神經(jīng)網(wǎng)絡實現(xiàn)SAR目標分類的研究
![利用卷積神經(jīng)網(wǎng)絡實現(xiàn)SAR目標<b class='flag-5'>分類</b>的研究](https://file1.elecfans.com/web2/M00/C7/59/wKgZomYTS36AK1bbAABp1NmcrDU184.png)
評論