0
在大多數(shù)時候,你是沒有足夠的圖像來訓練深度神經網絡的。本文將教你如何從小樣本數(shù)據快速學習你的模型。
1980年, Kunihiko Fukushima 提出了第一個卷積神經網絡。從那時起,由于計算能力的不斷提高和機器學習社區(qū)的巨大努力,深度學習算法在與計算機視覺相關的任務上從未停止過提高它們的性能。2015年,何凱明和他在微軟的團隊報告說,他們的模型在對來自 ImageNet 的圖像進行分類時表現(xiàn)優(yōu)于人類。在那時候,有人可能會說,計算機在利用數(shù)十億圖像來解決特定任務方面變得比我們更強。歡呼!
然而,如果你不是 Google 或者 Facebook,你就不可能總是能夠用這么多的圖像來構建一個數(shù)據集。當您從事計算機視覺工作時,有時您必須對每個標簽只有一個或兩個樣本的圖像進行分類。在這場比賽中,人類仍將被打敗。給嬰兒看一張大象的照片,從現(xiàn)在起他們永遠不會認不出大象。如果你對 Resnet50 做同樣的事情,你可能會對結果感到失望。從少數(shù)的樣本中學習的這個問題,被稱為小樣本學習(few-shot learning)。
近幾年來,小樣本學習的問題引起了研究界的廣泛關注,并形成了許多優(yōu)雅的解決方案。目前最流行的解決方案是使用元學習(meta-learning),又稱為:learning to learn。如果你想知道它是什么,以及它是如何用于小樣本圖像分類,請繼續(xù)閱讀。
首先,我們需要定義N個類別,K張圖片(譯者注:針對每個類別)的分類任務。假設以下的場景:
1. 一個支持數(shù)據集,包含N個分類標簽,針對每個標簽有K個已分類的圖片。
2. 一個查詢數(shù)據集,包含Q張查詢圖片。
任務是利用支持數(shù)據集中的N*K個圖片,將查詢數(shù)據集中的圖片分類為N個類別(譯者注:可以理解為訓練集有N*K個圖片,將測試集在N個類別進行分類)。當K值很小時(通常K<10),我們稱這種分類任務為極少樣本分類任務(當K=1時,變成單樣本分類任務)
極少樣本分類任務的一個例子:在支持集中,給定N=3(3類),每類K=2,即每種類別兩張圖片,我們希望將查詢集中(查詢集Q=4,即4張查詢圖片)的狗標注為拉普拉多狗,圣伯納德狗或哈巴狗。即使你從未見過任何的哈巴狗、圣伯納德狗或拉普拉多狗,這項任務對你來說也不困難。但使用AI來解決這個問題,我們需要進行一些元學習。
1998年,Thrun和Pratt指出,對于一個指定的任務,一個算法“如果隨著經驗的增長,在該任務上的表現(xiàn)得到改進”,則認為該算法能夠學習。與此同時,與此同時,對于一族待解決的多個任務,一個算法“如果隨著經驗和任務數(shù)量的增長,在每個任務上的表現(xiàn)得到改進”,則認為該算法能夠學習如何學習,我們將后者稱為元學習算法。它不學習如何解決一個特定的問題,但可以成功學習如何解決多個任務。每當它學會解決一個新的任務,它就越有能力解決其他新的任務:它學會如何學習。
如果我們希望解決一項任務T,會在一批訓練任務{Ti}上訓練元學習算法。算法在被訓練解決這些任務的過程中得到的經驗將被用于解決最終的任務T。
比如,考慮上個圖像中提到的任務T。它的目標是通過使用3x2=6張已標記的同品種狗的圖片,來識別(新的)圖片是屬于拉普拉多狗,圣伯納德狗或哈巴狗。訓練任務{Ti}中的某一項任務Ti可以是通過使用3x2=6的已標記的同品種狗圖片中獲取信息,將新圖片標記為拳師狗、圣伯納德狗或洛特維勒牧狗。元學習過程就是由一系列這樣的每一次針對不同品種的狗的訓練任務Ti所組成的。我們希望元學習模型“隨著經驗和任務數(shù)量的增長”得到不斷地改進。最終,我們在T任務上評估模型。
我們評估了拉布拉多犬、圣伯納德犬和八哥的元學習模型,但我們只是在其他所有品種上進行訓練。
現(xiàn)在我們該怎么做?假設你想解決任務T(里面有拉布拉多,圣伯納德和 八哥),那么你需要一個元訓練數(shù)據集,里面有很多不同品種的狗。 你可以使用 Stanford Dogs 數(shù)據集(http://vision.stanford.edu/aditya86/ImageNetDogs),其中包含從ImageNet中提取的超過20k 只狗。我們將把這個數(shù)據集命名為D。注意,這個過程不需要包含任何拉布拉多、圣伯納德或八哥。
我們從D中采樣了一批(如下),每集對應于一個 N-way K-shot 分類任務 T? 類似T(通常我們使用相同的N和K)。 模型解決了每一集(即標記了每一個查詢集的圖像)后,它的參數(shù)會更新,這通常是通過對查詢集的分類不準確造成的損失進行反向跟蹤來實現(xiàn)的。
這樣,模型就可以跨任務學習準確地解決一個新的、不可見的少鏡頭分類任務。 標準的學習分類算法學習映射圖像→標簽,元學習算法通常學習映射支持集→c(.),其中c是映射查詢→標簽。
既然我們知道了算法元訓練的含義,那么還有一個謎團:元學習模型是如何解決一個少鏡頭分類任務的?當然,解決方案不止一個。在這里,我們將關注最受歡迎的方案。
度量學習的基本思想是學習數(shù)據點(如圖像)之間的距離函數(shù)。事實證明,它對于解決少樣本分類任務非常有用:度量學習算法不必在支持集(少量的帶標簽圖像)上進行微調,而是通過將查詢圖像與帶標簽圖像進行比較來對其進行分類。
將查詢圖像(在右側)與支持集的每個圖像進行比較,它的標簽取決于與其最接近的圖像。當然,你不能逐個像素地比較圖像,你要做的是在相關的特征空間中比較圖像。為了清楚起見,讓我們詳細說明度量學習算法是如何解決少樣本分類任務的(上面定義為帶標簽樣本的支持集,以及我們要分類的查詢圖像集):
我們從支持集和查詢集的所有圖像中提取特征(通常使用卷積神經網絡)?,F(xiàn)在,我們在少樣本分類任務中必須考慮的每個圖像都由一個一維向量表示。
每個查詢圖像根據其與支持集圖像的距離進行分類。對于距離函數(shù)和分類策略,可以有許多可能的設計選擇。例如,歐氏距離和k-最近鄰分類。
在元訓練期間,在每一場景(episode)結束時,對由查詢集的分類錯誤產生的損失值(通常是交叉熵損失)進行反向傳播,從而更新CNN的參數(shù)。
每年都會提出幾種度量學習算法來解決少樣本圖像分類問題,這其中的兩個原因是:
他們憑經驗可以做得很好;
唯一的限制就是你的想象力。有很多方法可以提取特性,甚至還有更多方法可以比較這些特性。我們現(xiàn)在將介紹一些現(xiàn)有的解決方案。
匹配網絡算法。對于支持集圖像(左)和查詢圖像(底部),特征提取器是不同的。使用余弦相似性,將查詢的嵌入特征與支持集中的每個圖像進行比較。然后用softmax進行分類。上圖來自Oriol等。
匹配網絡(見上文)是第一個使用元學習的度量學習算法。在這個方法中,我們不會以同樣的方式提取支持圖像和查詢圖像的特征。來自 Google DeepMind 的Oriol Vinyals和他的團隊有一個想法,即在特征提取過程中使用LSTM網絡使所有圖像交互。他們稱之為完全上下文嵌入,因為你允許網絡找到最合適的嵌入,這不僅知道要嵌入的圖像,還知道支持集中的所有其他圖像。這使得他們的模型比所有的圖像都通過一個簡單的CNN時表現(xiàn)得更好,但它也需要更多的時間和更大的GPU。
在最近的工作中,我們不會將查詢圖像與支持集中的每個圖像進行比較。多倫多大學的研究人員提出了原型網絡。在他們的度量學習算法中,從圖像中提取特征后,我們?yōu)槊總€類計算一個原型。為此,他們使用類中每個圖像嵌入的平均值。(但是你可以想出成千上萬的方法來計算這些嵌入。為了反向傳播,函數(shù)只需要是可微的。)一旦計算出原型,就可以計算查詢圖像到原型的歐式距離,從而對查詢圖像進行分類(見下圖)。
在原型網絡中,我們將查詢X標記為與其最接近的原型的標簽。
盡管簡單,但原型網絡仍然可以產生最好的結果。更復雜的度量學習架構后來被開發(fā)出來,比如用神經網絡來表示距離函數(shù)(而不是歐幾里得距離)。這略微提高了準確性,但我相信到目前為止,原型理念在少樣本圖像分類的度量學習算法領域是最有價值的想法(如果你不同意,請留下評論)。
模型無關的元學習
我們將以模型無關的元學習(MAML)結束這篇綜述,MAML是目前最優(yōu)雅和最有潛力的元學習算法之一。它基本上是最純粹的元學習形式,通過神經網絡進行兩級反向傳播。
該算法的核心思想是訓練一個神經網絡,使其能夠僅用少量樣本就能快速適應新的分類任務。下圖將展示MAML如何在元訓練的一個場景(即,從數(shù)據集D中采樣得到的少樣本分類任務T?)中工作的。假設你有一個用?參數(shù)化的神經網絡M:
用?參數(shù)化的MAML模型的元訓練步驟:
創(chuàng)建M的副本(此處命名為f),并用?對其進行初始化(在圖中,??=?)。
快速微調支持集上的f(只有少量梯度下降)。
在查詢集上應用微調過的f。
在整個過程中,對分類錯誤造成的損失進行反向傳播,并更新?。
然后,在下一場景中,我們創(chuàng)建一個更新后模型M的副本,我們在新的少樣本分類任務上運行該過程,依此類推。
在元訓練期間,MAML學習初始化參數(shù),這些參數(shù)允許模型快速有效地適應新的少樣本任務,其中這個任務有著新的、未知的類別。
公平地說,MAML目前在流行的少樣本圖像分類基準測試中的效果不如度量學習算法。由于訓練分為兩個層次,模型的訓練難度很大,因此超參數(shù)搜索更為復雜。此外,元的反向傳播意味著需要計算梯度的梯度,因此你必須使用近似值來在標準GPU上進行訓練。出于這些原因,你可能更愿意在家里或工作中為你的項目使用度量學習算法。
但是,模型無關的元學習之所以如此令人興奮,是因為它的模型是不可知的。這意味著它幾乎可以應用于任何神經網絡,適用于任何任務。掌握MAML意味著只需少量樣本就能夠訓練任何神經網絡以快速適應新的任務。MAML的作者Chelsea Finn和Sergey Levine將其應用于有監(jiān)督的少樣本分類,監(jiān)督回歸和強化學習。但是通過想象和努力研究,你可以用它把任何一個神經網絡轉換成少樣本有效的神經網絡!
這就是這次在元學習這個令人興奮的世界里的旅行。少樣本學習最近引起了計算機視覺研究的廣泛關注,因此該領域的發(fā)展非常迅速(如果你在2020年閱讀這篇文章,我建議你尋找更新的信息來源)。誰知道未來幾年,神經網絡會變得有多好,是否能一眼就學習到視覺概念?
via https://blog.sicara.com/meta-learning-for-few-shot-computer-vision-1a2655ac0f3a
點擊【圖像樣本不夠用?元學習幫你解決】即可訪問相關內容和參考文獻!
今日資源推薦:資料 | Python學習材料(基礎+進階+考試+答案)
包含以下內容:
Python 測驗20題(含答案)
【初步】簡明Python教程.pdf
【進階】Python for Data Analysis, 2nd Edition.pdf
【進階】python_tutorial.pdf
【進階】深入理解Python中文版(Dive into Python).pdf
Python測驗20題_答案另附文檔.ipynb
點擊鏈接獲取:https://ai.yanxishe.com/page/resourceDetail/535
雷鋒網雷鋒網雷鋒網
雷峰網原創(chuàng)文章,未經授權禁止轉載。詳情見轉載須知。