從因果關係來看小樣本學習

AIBigbull2050發表於2020-10-09
2020-10-05 19:08:38

從因果關係來看小樣本學習

作者 | 嶽中琪

編輯 | 陳彩嫻

本文主要介紹一篇被NeurIPS 2020接受的論文《Interventional Few-Shot Learning》。

這篇工作根據小樣本學習當中的因果關係,提出了一種新的基於因果乾預的分類器IFSL,去除了預訓練帶來的摻雜效果,在各種方法上取得了穩定的提升。

從因果關係來看小樣本學習

主要的優勢有:

  1. 廣泛適用於各種基於微調(fine-tune)或是元學習(meta-learning)的方法,即插即用;

  2. 無需額外的訓練步驟,原來模型咋訓練,加上IFSL還是咋訓練;

  3. 如果預訓練資料集不公開,比如一些商用資料集只公開分類器和特徵提取器,那麼元學習的方法就不適用了,只能用微調。在這種情況下,IFSL還是可以大幅提高效能。

從因果關係來看小樣本學習

論文連結:

Github開源地址:

論文第一作者:嶽中琪,目前是阿里巴巴和新加坡南洋理工大學聯合博士專案在讀2年級,在MReal實驗室進行遷移學習和因果關係方面的研究,導師是張含望老師。本科是由新加坡企業獎學金全額贊助、在南洋理工大學畢業。

1 小樣本學習的介紹

2019年,Open AI Five以碾壓的表現戰勝了Dota2世界冠軍戰隊OG,然而在這令人驚歎的表現背後,是12.8萬個CPU和256塊P100數個月訓練的結果,相當於不間斷練習了45000年的遊戲。

很顯然,目前一個魯棒的機器學習模型還難以離開大量的資料、長時間的訓練以及高昂的訓練成本。而小樣本學習就致力於透過極少的訓練資料(1-5個樣本/類)來實現模型的泛化。

那麼,如何進行小樣本學習呢?

這一點我們可以觀察人是如何快速學習的。例如一個人玩策略遊戲帝國時代很厲害,那麼如果去學習諸如星際爭霸的其他策略遊戲,就比較容易上手,因為可以運用以前的遊戲經驗,一通百通。同樣的,對於機器而言,在少量樣本上快速泛化的核心,就是藉助先驗知識。

預訓練是(Pre-training)大家都熟悉且非常有效的獲取先驗知識的方法。具體就是在大型資料集上,學習一個強大的神經網路作為特徵提取器,例如CV裡面常見的在ImageNet上預訓練的ResNet網路,或是NLP裡面在Wikipedia上訓練的BERT,都代表一種特徵表達的先驗知識。

在預訓練基礎上,我們只需在樣本數量少的目標任務中,微調部分(例如只訓練最後一層fc分類器)或者全部網路的引數,便得到了一個可以解決小樣本學習問題的模型。

預訓練相當於給了小樣本學習一個好的起點,就像一個人在上課前預習了大量的知識點。不過想要更上一層樓,還需要有效的學習方法。元學習(meta learning)的目的就是找到這種方法。

具體來說,我們可以從預訓練集中,每次取樣出來一個“沙盒”版小樣本任務,例如選5個類,每個類選5張圖片作為訓練集(support set),再選15張作為測試集(query set),然後我們要求模型在support set訓練的結果,能夠在query set上面取得好的表現。

其實這種學習策略在我們身邊隨處可見,例如準備考試的時候,我們會提前做一些模擬測試,瞭解題型,規劃答題節奏等等,這就是一種元學習。在小樣本學習的實際操作中,我們可以使用元學習訓練一個模型的初始化引數(MAML),或是一個分類器引數的生成網路(LEO)等等。

透過元學習得到的知識,就構成了一種學習方法的先驗知識,在預訓練的網路之上,進一步提升小樣本學習的表現。

綜上所述,小樣本學習的解決思路,可以用下面這張圖來概括:

我們先在一個大的資料集 上面預訓練一個特徵提取網路 ,之後我們既可以直接使用 在每一個小樣本任務中微調(紅色方塊的Fine-Tuning);

也可以進一步使用元學習(Meta-Learning),將 拆成一個個由support set 和query set 組成的沙盒任務 ,訓練高效的學習方法 ;

元學習結束以後,我們就可以用這種高效的學習方法,在小樣本學習的任務中進行微調(綠色方塊的Fine-Tuning)。

從因果關係來看小樣本學習

小樣本學習的兩種解決思路

2 亦正亦邪的預訓練

預訓練是小樣本學習中一個核心的環節,無論是基於微調的,還是基於元學習的方法,都以預訓練為開始。那麼從常理來說,更強的預訓練,應該會帶來更好的小樣本學習的表現,例如在現有文獻中,使用更深層的神經網路架構WRN-28-10的微調結果,往往會比相對較淺的ResNet-10表現好很多。

然而我們在微調的實驗中發現(見左邊的直方圖),雖然平均WRN-28-10(strong )更好,但當query set和support set區別很大的時候,結果是恰恰相反的,淺層的ResNet-10反而表現更佳!這是為什麼呢?

從因果關係來看小樣本學習

上圖的右邊是一個 和 區別很大的例子,其中預訓練時候見過的草的顏色是support set裡的一個誤導因素,分類器容易踩坑,以草的顏色(見過)而非動物本身(沒見過)作為分類依據。

而越強的預訓練模型,這些見過的草,相比於沒見過的動物,就會產生越魯棒的特徵,對於分類器就更加誤導了,聰明反被聰明誤。

為什麼這個問題一直沒有被發現呢?

其實就是因為被現有方法基於隨機取樣後平均的評估策略所掩蓋了。

我們的工作也首次為這個現象提供瞭解釋。

具體來說,剛才講的這個悖論是由小樣本學習當中的因果關係造成的。預訓練在帶來豐富的先驗知識的同時,也成了學習過程中的一個混雜因子(confounder),使得分類器難以找到樣本特徵和樣本標註之間真實的因果關係。我們用一張因果圖來具體說明。

從因果關係來看小樣本學習
  • : 這裡 代表預訓練的先驗知識, 代表圖片的特徵表示,箭頭的意思是,我們用預訓練得到的特徵提取器,獲得樣本的特徵.

  • : 其中C代表一個樣本X在預訓練資料流形上面的投影;一個例子是eigenface,我們將高維的訓練集,透過PCA找到這些圖片的基(也就是eigenface),這樣一張人臉圖片,就可以被表示成這些基的線性組合,而線性組合的係數就是 。類似的現象在深度學習的訓練中也會出現,具體可以參考我們論文裡面的引用。

  • : 當我們用特徵 訓練一個分類器預測標籤 的時候,分類器會不可避免的使用 裡面的資訊;也就是說 是特徵裡面低維度資訊的影響,而 是 裡沒有包含的冗餘資訊帶來的影響。

在這個因果圖中,注意到 是 和 的共因,這樣 被叫做 和 的混雜因子,從而導致觀測到的 ,被混雜的關係 汙染,而不能反映 和 間真實的因果關係了,剛才分類器被草的顏色迷惑的原因,其實就是分類器使用了 裡“草”的語義資訊,作為分類獅子的依據。

那麼當存在混雜因子的時候,我們應該如何學習 真實的因果關係呢?這就要用到干預(intervention),即 。干預 會切斷因果圖中所有指向 的箭頭(如下圖),這樣之前產生混雜的這條路 被堵住了,我們就能安全的學習想要的因果關係了。

從因果關係來看小樣本學習

我們的這篇工作使用後門調整(backdoor adjustment)來實現 ,我們的因果圖對應的後門調整是:

具體來說,就是對預訓練的知識 進行分層(見圖中的 ),每一層有自己的分類器 ,然後把每層分類器的結果透過先驗機率 平均起來。

關於混雜因子、干預和後門調整的具體介紹,大家可以參考一下我們組王譚寫的《無監督的視覺常識特徵學習——因果關係上的一點探索》(CVPR 2020)(論文連結:)。

3 基於干預的去混雜

預訓練在帶來特徵表達的先驗知識的同時,也成為了混雜因子而迷惑了分類器的訓練,而我們打算透過對預訓練知識分層,然後用後門調整來找到 和 之間真實的因果關係。下面講具體如何實現分層和後門調整。

我們是從預訓練的神經網路所自帶的兩個屬性來尋找分層的靈感的:1)特徵維度,例如ResNet-10是512維的特徵,每一個維度代表CNN裡面的一個通道,對應了圖片中的一些視覺資訊;2)預訓練的類別,例如在miniImageNet上預訓練所使用的64個類,那麼預訓練所得到的64類分類器,就可以看作對預訓練資料集知識的一種蒸餾(knowledge distillation)。

基於這些靈感,我們提出了三種不同的實現方案,分別是基於特徵的調整(feature-wise adjustment),基於類別的調整(class-wise adjustment)以及兩種結合起來(combined adjustment)。具體這三種調整是如何對應後門調整公式的,大家可以參考論文第三章,這裡我只是講一下具體的實現。

  • 基於特徵的調整:將特徵向量 劈成 等份,在每一份對應的維度裡學一個分類器,最終 是把 個分類器softmax後的機率算個平均。例如把ResNet-10的512維分成4份,每128維為一份,學習4個分類器;

  • 基於類別的調整:首先我們在預訓練的個類中,各自算一個平均特徵 ,即把所有屬於這個類的圖片特徵平均一下;對於任務當中的一個樣本特徵 ,我們用預訓練的分類器算出這個樣本屬於 個類的機率 ,使用和,我們能算出來一個新的特徵向量 ;然後我們把原始特徵 和這個 拼起來,用來訓練分類器,注意這裡只訓練了一個分類器,不過分類器輸入的維度是 維度的二倍;

  • 結合調整:相當於先做基於類別的調整,再做基於特徵的調整。還是以ResNet-10和N=4為例子,對於每一個樣本 ,我們算出以後,把和各自劈成4份,然後一一對應的拼起來(比如的前128維拼上的前128維),然後訓練4個分類器, 同樣是把4個分類器的輸出機率算個平均。

可以看到,我們基於干預的這個方法只改變了分類器的架構,因此可以普遍的加入基於微調或元學習的小樣本學習方法,並且無需增加額外的訓練步驟。

4 實驗結果

4.1 普遍適用,漲點明顯

因為我們的方法是在分類器層面的改動,所以可以普遍的加入到各種微調和元學習的方法當中。我們在常用的微調方法(linear,cosine和k-NN),以及5種不同思路的元學習方法上面做了大量的驗證,在miniImageNet和tieredImageNet上面取得了普遍的提高。

從因果關係來看小樣本學習

4.2 去除預訓練的混雜

我們提出了一種新的Hardness-specific Acc來診斷小樣本學習。對於每一個測試樣本,根據它和訓練集support set的相似程度,我們定義了一個難度係數,這樣我們可以觀察模型在不同測試樣本難度下的表現,而越難的樣本就越容易在上面被預訓練的知識誤導。

下圖展示了微調當中baseline和ifsl的hardness-specific acc,可以看到IFSL(實線)在各個難度下都超過了baseline(虛線),說明起到了去除混雜的作用。更詳細的分析可以參考論文。

從因果關係來看小樣本學習

4.3 幫助模型聚焦物體

模型在做預測的時候,是根據圖片上的哪一部分呢?

我們提出了CAM-Acc:在一張圖片上先計算Grad-CAM分數(越高代表模型越關注這一部分),CAM-Acc是Grad-CAM分數高於0.9的區域中,在物體bounding box內部的比重。

我們來看一下Grad-CAM視覺化的結果,以及CAM-Acc的表現。透過視覺化和CAM-Acc的分數,可以看到IFSL的模型的確能夠多注意物體本身。當然也有失敗的時候,比如看到當物體太小的時候(螞蟻),baseline和IFSL都只能依賴背景中的context去做預測了。

從因果關係來看小樣本學習

5 結語

預訓練的先驗知識,是近些年來小樣本學習分數快速提升的重要原因。

我們的這篇工作,其實是從因果的角度分析了預訓練對於學習一個分類模型的影響,揭示了基於 的分類器會被先驗知識混雜,想當然的做出預測;

而基於干預 的去混雜方法,就是在一個不熟悉的小樣本學習任務中,平衡先驗知識的影響,做到三思而後行。在這個思路下,我們提出了IFSL分類器,簡單、普適且有效。

事實上,這種對先驗知識的處理方法,可以被應用於任何使用預訓練的任務當中,因為下游任務中的訓練資料,比起大規模預訓練來說,都相當於小樣本學習了。

本文首發於知乎:






來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69946223/viewspace-2725720/,如需轉載,請註明出處,否則將追究法律責任。

相關文章