田字壹中(鄭州大學)和野調(江蘇科技大學)
點評|李唐,皮塔
如果把AI比作電,那麽數據就是創造電的煤。
不幸的是,正如我們看到可用的煤炭是消耗品壹樣,許多人工智能應用程序很少或沒有數據可訪問。
新技術彌補了物質資源的不足;還需要新的技術來保證程序在數據很少的情況下正常運行。這正在成為壹個非常熱門的領域,核心問題:N-shot學習。
1.n次學習
妳可能會問,什麽是鏡頭?好問題。shot只使用壹個樣本進行訓練。在N-shot學習中,我們有N個訓練樣本。“小樣本學習”這個術語中的“小”通常在0到5之間,也就是說,訓練壹個沒有樣本的模型叫做零拍,壹個樣本就是壹拍學習,以此類推。
1-1為什麽需要N拍?
我們在ImageNet中的分類錯誤率小於4%。我們為什麽需要這個?
首先,ImageNet的數據集包含許多機器學習的例子,但在醫學成像、藥物發現和AI可能至關重要的許多其他領域,情況並非總是如此。典型的深度學習架構依賴於大量的數據訓練來獲得可靠的結果。例如,ImageNet需要訓練數百張熱狗圖像,才能判斷壹張新圖像是否是熱狗。有些數據集,像7月4日慶典後冰箱裏沒有熱狗,非常缺乏圖像。
機器學習的很多案例數據非常匱乏,這也是N-Shot技術發揮作用的地方。我們需要訓練壹個深度學習模型,有幾百萬甚至幾十億個參數(都是隨機初始化的),但是可以用來訓練的圖像不超過五個。簡單來說,我們的模型必須用非常有限的熱狗圖像進行訓練。
處理這麽復雜的問題,首先需要知道N拍的定義。
對我來說,最有趣的子領域是零拍學習。該領域的目標是在沒有訓練圖像的情況下對未知類別進行分類。
在沒有任何數據可用的情況下,如何訓練和學習?
想想這種情況。妳能給壹個未知的物體分類嗎?
夜空中的仙後座(來源:/constellation/仙後座)
可以,如果妳對這個物體的外觀、屬性、功能有足夠的了解,就可以實現。想想妳小時候是怎麽理解這個世界的。晚上知道火星的顏色和位置後,就可以在夜空中找到火星。或者妳可以通過知道仙後座基本上是天空中壹個變形的‘W’來識別仙後座。
按照今年NLP的趨勢,零射學習會變得更有效(/ten-trends-in-deep-learning-NLP/# 9-Zero-shot-learning-will-been-more-effective)。
計算機使用圖像的元數據來執行相同的任務。元數據只是與圖像相關聯的功能。以下是這方面的幾篇論文,取得了優異的成績。
在壹次性學習中,我們每個類別只有壹個例子。現在的任務是用壹幅圖像進行訓練,最後將測試圖像分成不同的類。為了實現這個目標,出現了許多不同的體系結構,例如連體神經網絡(/questions/1 149 40/what ' s difference-between-metric-spaces-and-vector-spaces)。
現在我們已經了解了這個背景,可以開始了解原型網絡是如何不直接對圖像進行分類,而是在度量空間中尋找圖像之間的映射關系的。如上圖所示,同壹類的圖像經過編碼器映射後彼此距離很近,而不同類的圖像距離很遠。這意味著每當給出新的示例時,網絡只需要檢查新示例的最接近的圖像集,並將示例圖像分類到其相應的類別中。原型網絡中把圖像映射到度量空間的基本模型可以稱為“Image2Vector”模型,這是壹種基於卷積神經網絡(CNN)的架構。
現在,對於那些不知道CNN的人,妳可以在這裏閱讀更多內容:
簡單來說,他們的目標是訓練分類器。然後,分類器可以概括訓練期間不可用的新類別,並且只需要每個新類別的幾個示例。因此,訓練集包含壹個類別的圖像,而我們的測試集包含另壹個類別的圖像,這與之前的組完全無關。在該模型中,實例被隨機分為支持集和查詢集。
少數鏡頭原型ck計算為每類嵌入支持示例的平均值。編碼器映射新圖像(X)並將其分類到最接近的類中,例如上圖中的C2(source:/questions/64 5672/what-is-a-point-and-a-vector)。
負對數概率原理,來源:/brendenlake/omnilot)
該網絡在Omniglot數據集(/brendenlake/omniglot)上進行訓練。Omniglot數據集是專門為開發更類似於人類學習的算法而設計的。它包含50個不同的字母,1623個不同的手寫字符。為了增加類別數,將所有圖像分別旋轉90度、180度和270度,每個旋轉後的圖像視為壹個新的類別。所以總類數達到了6492 (1,623+4)類。我們用4200類圖像作為訓練數據,剩下的用於測試。對於每個集合,我們根據64個隨機選擇的類中的每個示例來訓練模型。我們對模型進行了1小時的訓練,達到了88%左右的準確率。官方文件顯示,經過幾個小時的訓練和壹些參數的調整,準確率達到了99.7%。
是時候自己動手了!
您可以通過訪問以下鏈接輕松運行該代碼:
代碼地址:/hsankesara/prototypic-networks
運行地址:/run?template =/Hsankesara/prototypic-Networks
讓我們深入學習代碼!(向左滑動查看完整代碼)
以上代碼是Image2Vector CNN結構的壹個實現。其輸入圖像的尺寸為28*28*3,其返回的特征向量的長度為64。
上面的代碼片段是原型網絡中單個結構的實現。如果您有任何問題,請在評論中提問或在此提問。非常歡迎您的參與和評論。
網絡概述。來源:/n-shot-learning/
本文由雷鋒字幕組成員翻譯,這是壹個由AI愛好者組成的字幕翻譯團隊。團隊成員包括大數據專家、算法工程師、圖像處理工程師、產品經理、產品運營、IT顧問、在校師生;誌願者來自IBM、AVL、Adobe、阿裏、百度等知名企業,以及北大、清華、港大、中科院、南卡羅來納大學、早稻田大學等國內外高校的科研院所。了解字幕組請加微信~