CVPR 2018 最前沿:讓神經網絡學習比較來實現少樣本學習

 2018-04-06 10:30:00.0

本文作者 Flood Sung,文章基於 CVPR 錄用論文《Learning to Compare: Relation Network for Few-Shot Learning》

1. 前言

相信每一位研究深度學習的朋友都明白,深度學習能夠在這幾年取得如此爆炸式的發展,除了算法本身的改進與創新,最關鍵的因素就是擁有海量的數據和強大的計算資源。那麼,我們很自然的會問:沒有海量數據怎麼辦?現實生活中有很多問題並沒有那麼多的數據可以採集,或者說採集數據所需的成本很高,比如稀有物種的圖片,醫療診斷的圖片。或者更簡單的例子,我們每個人身邊都有很多獨有的物品。難道這些少樣本的東西深度學習就無法處理,無法識別了嘛?不應該呀。原因非常簡單,我們人可以很輕鬆的做到少樣本學習,我們看到一個人就能記住他的樣貌並在下一次認出對方。既然人能做到,那麼深度學習按道理也應該可以實現。因此,少樣本學習成爲了近年來深度學習領域非常重要的一個前沿研究問題。

在本文中,我們將介紹 CVPR2018 最新錄用的一篇少樣本學習的 paper:

Learning to Compare: Relation Network for Few-Shot Learning

鏈接:https://arxiv.org/pdf/1711.06025.pdf

開源代碼: https://github.com/floodsung/LearningToCompare_FSL

在這篇 paper 中,我們提出構建一個關係網絡(Relation Network)來讓其學習如何比較(Learning to Compare),從而實現少樣本學習(Few-Shot Learning)。這個方法非常簡單通用,但是效果很不錯,在少樣本學習及零樣本學習的幾個基準數據集上都取得了相當好的結果。下面,我們就來好好聊聊這篇 paper。

2. 爲什麼有這個 idea?

一般我們在 paper 中,並不會探討這個問題,就是這個 idea 是怎麼產生的。但是在這篇博文中,我就可以先說說 idea 本身。我們想既然人可以實現少樣本學習,那麼我們是不是應該先問這樣一個問題就是爲什麼人可以實現少樣本學習?這個問題可能會比較寬泛,那麼我們把它具體化一下:爲什麼人可以看到 iPhone X 一眼然後就可以認出它?我們很顯然會說:因爲 iPhone X 醜陋的齊劉海,因爲 iPhone X 背後的雙攝像頭是豎着的,和其他手機不一樣!我們發現,我們大腦可以對 iPhone X 的形象提取關鍵特徵,並且和其他手機做比較,從而使其擁有獨特性讓我們能夠識別。我們再舉一個例子:你能夠快速的識別網紅嗎?我不知道其他人能不能,反正我覺得都一個樣,都是網紅臉,傻傻分不出。我們說到了「分不出」這三個字,因爲我們在識別一個人的臉的時候,我們大腦依然是在和其他臉做比較,而網紅臉因爲太像,以至於我們很難區分,也就很難識別。

所以,我們就發現了,我們人之所以能夠識別一個新的東西,在於我們人的視覺系統天生的能夠對任意物體提取特徵,並進行比較。因爲我們能夠比較不同物體,所以我們根本無所謂看到的東西是不是以前就見過。這就是我們人具備少樣本學習能力的關鍵原因。那麼問題又來了:提取特徵很好理解,現在的神經網絡比如卷積神經網絡也是在學習提取特徵,但是這個比較能力又是什麼東西呢?思考清楚這個問題是產生這個 idea 的關鍵。看起來我們人不需要學習先天就擁有視覺比較能力。如果哪天你看到一個人看一個東西卻說出「It doesn’t look like anything to me.」,那你一定不是在現實世界,而是西部世界了。所以,爲什麼人先天擁有視覺比較能力?我不清楚,我只能把它歸結爲一種元知識 (Meta Knowledge)。

少樣本學習一直和元學習(Meta Learning)關係緊密。元學習的目標就是通過學習大量的任務,從而學習到內在的元知識,從而能夠快速的處理新的同類任務,這和少樣本學習的目標設定是一樣的。我們也希望通過很多任務來學習識別物體這種能力,從而面向新的少樣本學習任務,我們能夠充分利用我們已經學習到的識別能力(也就是元知識),來快速實現對新物體的識別。而在這裏,通過前面的分析,我們明白了,我們要研究如何通過元學習的方式來讓神經網絡學會比較這個元知識能力。而因爲任意的知識都可以通過神經網絡來表示,因此呢,我們就想:爲什麼不用一個神經網絡來表示這個視覺比較能力呢?然後利用這個網絡去做少樣本學習?到了這裏,我們的 idea 也就呼之欲出了。

CVPR 2018 最前沿:讓神經網絡學習比較來實現少樣本學習

圖 1 關係網絡示意圖

3. 簡單說說方法論

有了上面的分析,我們得到的模型就非常簡單了,可以說完全模擬人識別物體的過程:如上圖所示,是一個典型的 5way 1shot 的少樣本學習問題,也就是我們要對 5 個新類別的物體進行識別,但是每一類物體我們只給出一個樣本。上圖中,最左側的 5 張圖片就是我們擁有的訓練樣本(一般稱爲 support set)而旁邊的一個圖片則是我們用來測試的樣本(一般稱爲 testing set)。我們先構造一個嵌入單元(embedding module)來提取每一張圖片的特徵信息,是什麼特徵我們不管,然後我們把要測試的圖片特徵和訓練樣本的圖片特徵連起來輸入到關係單元(relation module)中做比較,然後我們根據比較的結果(relation score)來判斷這個測試圖片到底屬於哪一個類。這很好理解,比如上圖中測試圖片是狗,那麼它跟訓練樣本中狗的圖片相似度比較高,那麼我們就認爲這個新的圖片是狗。所以,整個識別過程是非常簡單,完全模擬人的識別過程的。我們把上圖中的嵌入單元和關係單元合起來統稱爲關係網絡(relation network)。

那麼怎麼來訓練這個網絡呢?我們有一個擁有大量數據的訓練集(training set),我們利用這個訓練集來構造出和測試時類似的數據結構,也就是 sample set 和 query set 來模擬測試時的 support set 和 testing set。我們可以使用訓練集來生成巨量的模擬任務,從而在 meta 層面上訓練整個關係網絡。我們把輸出的 relation score 看做是一個從 0 到 1 的數值。0 就代表極不相似,而 1 則代表完全相似。因此,我們就非常直接地採用平方差 MSE 作爲網絡訓練的 loss。

只做少樣本學習不是這個模型的全部,我們很容易地把它做一些改變,就能直接用於零樣本學習。零樣本學習和少樣本學習不一樣的地方在於零樣本學習不給樣本,而是給出一個代表某一類物體語義的嵌入向量,我們要直接利用這個嵌入向量來對物體做分類。那麼,在我們的關係網絡中,我們只需要把訓練樣本(support set)改成這個語義嵌入向量就可以來做零樣本學習了。

CVPR 2018 最前沿:讓神經網絡學習比較來實現少樣本學習

圖 2 少樣本學習網絡結構

CVPR 2018 最前沿:讓神經網絡學習比較來實現少樣本學習

圖 3 零樣本學習網絡結構

4. 具體實驗

這裏也稍微說一下實驗。在少樣本學習上,我們使用目前領域內都在使用的 Omniglot 和 MiniImagenet 作爲我們的基準數據集,而在零樣本學習上,我們則使用廣泛採用的 AwA 和 CUB 數據集進行測試。無論在哪個數據集上,我們都取得了 state-of-the-art 或者相當好的結果:

CVPR 2018 最前沿:讓神經網絡學習比較來實現少樣本學習

圖 4 omniglot 實驗結果 

CVPR 2018 最前沿:讓神經網絡學習比較來實現少樣本學習

圖 5 零樣本學習實驗結果

從這些實驗中,我們可以看到我們模型的有效性。更詳細的實驗過程請閱讀 paper 原文及已開源的代碼。

5. 關於關係網絡的思考,爲什麼它能 work?

在少樣本學習領域,我們的方法可以認爲是一種基於度量(metric-based)的方法,但是我們的方法很不一樣的一點,也是創新的一點在於我們完全使用神經網絡來學習這種度量方式,並且使用元學習的訓練方式。而一般的基於度量的方法都是人爲的設計一種度量,比如最簡單的歐式距離。顯然,人爲設計的方式總是有缺陷的,那麼我們就想來看看,使用神經網絡來學習的度量是不是能比人爲設計的好。因此,我們做了個小實驗來印證這個想法。這個小實驗是一個 2 維數據的比較實驗。比如這樣兩個數據(1,2)和(-2,-1),這兩個數據看起來是不相關的,但是它們在某一些狀態下可能屬於同一個類別。那麼這種情況,其實傳統的人爲設計的度量方式實際上就失效了。我們只能通過神經網絡去學習這種度量。所以像下圖這樣複雜的螺旋曲線關係數據情況,我們通過關係網絡(relation network)可以學的不錯,而人爲度量則完全不行。

CVPR 2018 最前沿:讓神經網絡學習比較來實現少樣本學習

圖 6 關係網絡有效性試驗示意圖

因此,我們這篇 paper 也是想給大家一個啓示,用神經網絡進一步去替代一些之前還是人爲設計的東西,有希望取得更好的效果!像目前元學習(Meta Learning)在研究的一個方向就是用神經網絡學習來生成網絡結構,也是一個意思。

6. 小結

在這篇博文中,我們簡單的介紹了 CVPR2018 這篇最新少樣本學習的 paper,和大家分析了一下 paper idea 的核心思想。對於這個 idea,我們拓展一下就有一個非常重要的問題值得去思考,也就是「其他領域有多少問題其實也是依靠元知識 Meta Knowledge 來驅動的?」如果我們發現了這樣元知識的需求,就可以考慮使用類似的方法——元學習(Meta Learning)的方法來實現。

展望一下,元學習方興未艾,接下來會有越來越多的相關文章出現,進一步推動少樣本學習,快速學習,自適應學習,終身學習等等領域的發展。讓我們拭目以待!

文章來源:雷鋒網