我之前寫過一篇元遷移學習的論文筆記,一種遷移學習和元學習的集成模型。
但是本文的元遷移學習方法完全不同於上一篇論文。
Abstract
由於深度神經網絡容易對小樣本過擬合,所以元學習傾向於使用淺層神經網絡,但淺層神經網絡限制了模型的性能。本文提出了meta-transfer learning(MTL)模型,MTL模型可以採用深層神經網絡。其中,meta指的是訓練多個任務,transfer指的是爲深層神經網絡的權重學習出縮放和移動函數(scaling and shifting functions)。同時本文還將hard task meta-batch模式作爲課程學習中的課程引入了MTL。實驗結果表明,MTL在多個任務上實現了最好的性能。
Contributions
- 提出了meta-transfer lerning(MTL)方法,該方法綜合應用了遷移學習和元學習的優點。
- 將課程學習引入了元訓練過程。
1 引言
通常而言,小樣本學習方法可以被歸爲兩類:數據增強方法和基於任務的元學習。數據增強一般指通過一種策略來增加樣本數。
元學習方法比較典型的就是MAML了,MAML的任務無關的特性使得它可以應用於監督學習和無監督強化學習。但是,本文的作者認爲MAML有一些侷限性:
- 這些方法往往需要大量的相似任務作爲元學習的輸入,這種代價是很高的
- 每個任務都只能被複雜度較低的base learner訓練,這樣可以避免過擬合。
基於這些侷限性,作者提出了MTL方法,並將課程學習引入了元訓練中。
2 預備知識
2.1 元學習
元學習包括兩個階段:元訓練和元測試。從任務分佈中採樣出一個任務。被劃分爲: 訓練集用於優化base-learner,測試集用於優化meta-learner。一個(模型)未見過的任務將被用於meta-test階段,最後的評估將在。
meta-training階段,這個階段致力於在多個任務上學習出一個meta-learner。這個階段包含兩個步驟,第一個步驟是對base-learner的參數進行更新,第二個步驟是對meta-learner的參數進行更新。
meta-test階段,這個階段將會測試訓練出的Meta-learner在新任務上的拓展性能。給定,meta-learner 通過某種方法教base-learner 快速地適應新任務。
3 方法
如上圖所示,MTL模型包括三個階段:
- 使用大規模數據訓練一個深層神經網絡,同時將低層固定爲特徵提取器
- MTL爲特徵提取神經元學習出縮放和移動參數,爲了提高總的學習效果,作者使用了Hard-task meta-batch策略。
- 執行典型的meta-test階段。
3.1 在大規模數據上訓練深層神經網絡
作者將所有類別的數據合併起來一起用於預訓練,比如作者將64個類別每個類別所有600個樣本均作爲輸入進行訓練,從而訓練出一個分64類的分類器。
作者首先將特徵抽取器(比如ResNets中的卷積層)和分類器(比如ResNets最後的全連接層)隨機初始化,然後使用梯度下降法對它們進行優化:
其中,L指的是下面的經驗損失,
這個階段將學習出特徵抽取器。它將在下面的元訓練和元測試階段被固定住,而學習出的分類器將被丟棄,因爲接下來的任務中將包含不同的分類目標,比如5-class分類而不是訓練時的64-class分類。
3.2 元遷移學習(MTL)
MTL模型通過Hard-Task meta-batch訓練來優化”縮放和移動“操作(縮放和移動操作,即Scaling and Shifting (SS)可以簡潔的表示爲)。下圖展示了通過SS和Fine-Tunning操作進行更新的區別。SS操作,表示爲和,在學習時並沒有改變固定住的的值,但是Fine-Tuning操作更新的是整個。
下面將詳細介紹SS操作。給定一個任務T,則當前base-learner的參數的更新方法爲:
在這個式子中,沒有被更新。需要注意的是,這裏的與前面的大規模分類器中的並不相同。
通過測試損失值來優化,
在這步中,的學習率與式(4)中相同:
與式(3)相比,式(5)中的來自於在的最後一輪base-learning。
接下來,我們描述一下作者如何將應用於固定的神經元。
給定訓練後的,它的第層包含個神經元,我們有對參數,分別爲權重和偏置,記作。
假定爲輸入,我們在上應用:
4.3 Hard task meta-batch
傳統情況下的meta-batch由隨機採樣的任務組成。作者將模型預測錯誤的樣本收集在一起重新組成一個更難的任務,然後重新訓練。這就是hard task meta-batch。
SS操作的參數通過的損失進行優化。我們可以得到模型在上分別對個類別的準確率,然後根據準確率大小進行排序。作者將學習設置成動態的在線學習,所以我們將從準確率較低的類別中重新對任務進行採樣和訓練。
4.4 算法
算法1總結了大規模深層神經網絡的訓練(第1-5行)和元-遷移學習(第6-22行)。第16-20行展示的是Hard Task meta-batch的重採樣和連續訓練階段。
算法2展示的是在單個任務上的學習過程。
5 實驗
5.1 數據集和實現細節
作者在兩個benchmarks上進行了實驗,miniImageNet 和 Fewshot-CIFAR100數據集。
-
miniImageNet有100個類別,每個類別有600個樣本,這100個類別被劃分爲:64,16,20類,分別用於meta-trianing, meta-validation和meta-test階段。
-
Fewshot-CFAR100包括100個類別,每個類別有600個樣本,每個樣本的尺寸是。這100個類別屬於20個超類。超類的劃分爲,分別用於訓練,驗證和測試。
**特徵抽取器**使用的是ResNet-12,它包括4個殘差塊,每個殘差塊包含3個的卷積層,以及1個的最大池化層。
5.2 實驗結果
5.2.1 miniImageNet
上表展示了各個方法在miniImageNet數據集上的實驗結果。可以看到MTL+SS+Hard task meta-batch方法取得了最好的實驗結果。
5.2.2 FC100
6 結論
本文提出了MTL模型,並使用Hard task meta-batch的課程學習策略進行訓練。MTL模型獨立於任何特定的網絡,它可以被很好的進行拓展。而且Hard task meta-batch策略可以很容易地在在線迭代中使用。