天天看點

如何更好地應對下遊小樣本圖像資料?

作者:極市平台

作者丨嬉嬉皮

來源丨皮皮嬉

編輯丨極市平台

正常遷移學習中,源域和目标域間的分布偏移問題可以通過fine-tuning緩解。但在小樣本問題中,可供fine-tuning的有标簽資料不足(也就是常說的每個小樣本任務中的support set),分布偏移問題難以解決,是以面對小樣本問題時,fine-tuning政策是需要額外關照的。本文回顧了一系列不花哨的、實實在在的方法,讨論ConvNets和ViT預訓練模型如何在小樣本資料上更好的fine-tuning。我們首先回顧兩種baseline,再以此做一些延申。

Baseline

基于ConvNets經典的小樣本圖像分類文章[10]證明了基于距離分類器的baseline++可以打敗很多sota meta-learning方法,驗證了遷移學習在該項任務中的超能力。baseline及其改進版baseline++在微調時都固定了特征提取器(body)權重,而隻微調分類器,二者隻在分類器設計上有差別。标準的遷移學習pipeline中,全量的微調在有标簽資料太少時效果不如linear probing,如下圖,縱軸為全量fine-tuning準确率減去linear probing準确率的結果,橫軸為不同資料集,不同顔色的柱狀圖示識不同的有标簽資料量。我們看到在k很小時linear probing是更優的選擇,k變大時,全量fine-tuning會逐漸奪回優勢。

如何更好地應對下遊小樣本圖像資料?

我們首先介紹baseline的流程:

  1. 先用特征提取器+線性分類器 Wb 在基類資料上使用交叉熵從頭開始訓練;
  2. 再使用固定的特征提取器+新的可訓練的線性分類器 Wn 在目前小樣本任務中的有标簽資料進行 fine-tune, 損失函數仍是交叉熵分類損失。

baseline的改進版baseline++ 訓練過程與baseline一緻,仍有Wb和Wn,但不再使用線性分類器。以Wb∈Rd×c為例,可視為c個類别的d維原型表示,是以可以通過計算樣本特征與它的餘弦相似度并使用softmax得到最終的預測機率分布。得到的預測結果仍使用交叉熵分類損失。該分類器相比線性分類器可以進一步減少類内差異。

下表對比了baseline,baseline++與經典元學習算法的對比,注意使用了資料增強。結果上看,baseline是打不過元學習算法的,而baseline++則可以掰掰手腕,這說明了在小樣本分類問題中減少類内差異的重要性。

如何更好地應對下遊小樣本圖像資料?

不過上表基于較淺的四層卷積網絡進行實驗的,當網絡更deep且源域與目标域域間分布差異不大時,上表幾種元學習和遷移學習方法的性能差異會縮小,但如果網絡deep但域間差異較大,基于遷移學習的政策還是會呈現出優勢,如下圖:(ProtoNet還是穩健,不愧經典廣流傳)

如何更好地應對下遊小樣本圖像資料?

基于ResNet-18和更大的跨域問題時,也顯示出了遷移學習政策baseline&baseline++的優勢(下表)。元學習方法的meta-training階段是在基類資料進行的,故其learn to learn能力也局限在基類分布内,正如我們看到的,在跨域問題時,在分布外learn to learn能力受到了影響。而baseline是對每個小樣本任務重新初始化的分類器,一定程度上減少了分布偏移的影響。雖然baseline++也重新初始化了分類器,但可能是因為額外降低類内差異影響了跨域問題中的适應性,導緻baseline++不如baseline(但也比大部分對比的元學習算法好一些)。

如何更好地應對下遊小樣本圖像資料?

再如下圖,随着域差異的增大,基于少數新類資料的自适應變得越來越重要。

如何更好地應對下遊小樣本圖像資料?

另外一個有意思的事情。

MAML[11]中有inner-loop和outer-loop設定,其中inner-loop蘊含着對目前任務中支援集樣本的fine-tune,在MAML中稱為對目前任務的fast adaptation,是以這一步的梯度下降不會執行太多次,不然就不fast了,在MAML原文實驗中是訓練時5次測試時10次。而baseline&baseline++這倆方法在fine-tune時都訓練了100次疊代,那麼如果我們放棄MAML中的快速适應,轉而像baseline&baseline++一樣增大其inner-loop中對支援集的疊代次數會發生什麼?

如何更好地應對下遊小樣本圖像資料?

可見MAML增大inner-loop中的疊代次數後性能有明顯的提升,這引出的思考是如何在擷取快速适應能力的同時又能保證如fine-tuner一樣有力的性能表現。

Fine-tuning和Meta-learning如何強強聯手

如何更好地應對下遊小樣本圖像資料?

上圖橫軸為适應成本,以适應單個任務所需的乘加累積操作數(MACs)來衡量,縱軸為視覺任務适應基準測試在18個資料集上的平均分類精度。

上圖說明的是,fine-tuners實作了比meta-learner更高的分類精度,但适應成本更高。阻礙fine-tuners快速自适應能力的主要瓶頸是需要在整個網絡參數上進行多次梯度調整,隻fine-tune分類頭雖能提速但又會犧牲性能,全量的fine-tune又會在小樣本資料上有比較嚴重的過拟合。

另外我們在上一節中讨論過全量fine-tuning和linear probing之間的關系(下表),其實二者都是極端的,一個全量,一個隻微調分類頭,那自然就會引導我們讨論折中的方案:對特征提取器(body)也動動手腳。

如何更好地應對下遊小樣本圖像資料?

在擁有pretrained特征提取器後,尋找一種快速适應特征提取器的方法是潛在的解決方案。

UpperCaSE[9]給出的方案是:用meta-learner在outer-loop中學習特征提取器,用fine-tuner在inner-loop中學習分類頭。

  1. adjusting the body of the network in a single forward pass over the context
  2. reserving the use of expensive fine-tuning routines for the linear head

當然特征提取器的學習不是全量更新的,其中原始預訓練的參數是固定住的,而會meta-train額外附加的參數,這裡的思路是預訓練模型對應任務無關的泛化性較強的特征,而附加的參數是task-specific的,即:

attach task-specific weights to a learned task-agnostic model, and estimate them from scratch given the support set.

UpperCaSE中的CaSE如下圖,左側SE中的Spatial Pooling + MLP就是附着在卷積主幹上的參數,但SE是基于instance的,如果我們希望在meta-learning下應用SE,最好能夠融合每個小樣本任務内的上下文資訊,是以CaSE額外增加了Context Pooling用以捕捉每個任務内的上下文資訊,最終elementwise乘回去γ用來調整主幹feature map通道之間的關系,即利用任務上下文資訊使特征提取器擁有task-specific能力。

CaSE的優化是在outer-loop中進行的,也就是說CaSE的參數在所有任務中共享task-common。

inner-loop中就是去fine-tune分類頭的參數,是以分類頭的參數是task-specific的,如下algorithm中所示,在每個inner-loop開始前,分類頭參數是重新初始化為0的,這樣使分類頭足夠task-specific且不受其他任務幹擾,與工作[13]一緻,該工作證明了在每個inner-loop開始前重新初始化分類器為0等同于将MAML架構近似為對比學習,使query特征趨近于同類support,遠離異類support。

如何更好地應對下遊小樣本圖像資料?

測試時,CaSE參數不再更新,如上面架構圖最右側說明。

如何更好地應對下遊小樣本圖像資料?

最後,torch-style模型核心代碼可以更直覺的看下實作以及元訓練和元測試時的差別:

如何更好地應對下遊小樣本圖像資料?

這種将部分參數附着在預訓練網絡上的工作是解決小樣本問題行之有效的途徑之一,類似的方案還有[6],該方法在ResNet中的每一個module上attach了一個task-specific子產品,并在支援集上微調。下圖為該方法的結構,其中 rα 為attach到resnet中的參數, Aβ 是task-specific分類器參數。

如何更好地應對下遊小樣本圖像資料?

我們看到CaSE是将上下文資訊pooling後用來賦予task-specific能力,但從實作中看到γ是對channels之間關系的調整,于是我們可以思考分布差異問題是否影響着channels間關系的正确性。

Channel Matters in ConvNets

在ConvNet的global average pooling後,不同channels代表着不同的模式[1][2]。但神經網絡會過拟合預訓練資料channels間關系,當源域和目标域出現分布偏移時将不再适用。正常的遷移學習有條件用充足的目标域資料做fine-tune來克服分布偏移,但在小樣本問題中可沒這麼優越的條件。那麼分布偏移(包括類别、領域、粒度)為什麼會對模型造成影響呢?我們以類别為例說明該問題。假設我們在預訓練時關注昆蟲類别,他們會經常出現在葉子上面,但此時葉子特征并不是模型需要考慮的判别資訊。那麼當該模型需要去在目标域中判别葉子(植物)類别時,模型并不能很好的掌握其判别資訊。而模型對這些判别資訊的權衡,蘊含在channels之間。那麼如果我們可以調整channels間的關系,就可以令模型調整對對判别模式的關注度,提升目标域資料的分類性能。這也是為什麼上文介紹的CaSE會重新權重channel之間的關系。

一種無learnable參數的方法也可供我們參考,我們可以定義如下函數[3]分别作用于每個channel:

如何更好地應對下遊小樣本圖像資料?

注意該函數的輸入 λ≥0, 意味着我們需要使用 ReLU。當 λ<0 時, 性能會有所下降。且該函數僅在源域和目标域有明顯的分布偏移時奏效。根據該函數導數資訊:

一階導的正性保證了channels間的相對關系不會發生改變,二階導的負性保證了channels間的gaps能得到縮減。說白了就是令channels間分布更加平滑,抑制高數值channels,放大低數值channels。該函數帶來的性能提升見下表,少量的負面影響是因為源域和目标域間分布差異不明顯,平滑處理反而是過度的。

如何更好地應對下遊小樣本圖像資料?

這種parameter-less的思路很實用,類似的還有[7][8],這裡不過多介紹。

既然channel matters,還有什麼關于分布差異的要素是重要的嗎?

BN Matters in ConvNets

上文提到了分布偏移問題,是說源域和目标域之間的分布差異大,而BatchNorm的統計資訊又包含了領域分布知識[15],是以我們也可以通過關注BN的行為緩解分布偏移問題,提升預訓練模型在小樣本問題上的表現[14]。

BN首先對輸入進行normalization(記為Feature Normalization, FN),再通過affine參數對normalized feature進行scale和shift。

下表中:BN表示預訓練時使用BN,微調時隻微調分類頭;FN表示預訓練時隻是用FN,微調時隻微調分類頭;BN✖️表示預訓練使用BN,微調時微調分類頭+affine參數;FN✖️表示預訓練使用FN,微調時微調分類頭+affine參數;

如何更好地應對下遊小樣本圖像資料?

我們看到:affine參數的微調會帶來task-specific收益,pretrain時若僅使用FN還會帶來進一步收益。該結果也啟發我們在小樣本問題中,對源域分布資訊的弱化以及對目标域分布資訊的增強可能是行之有效的。

另外,既然全量的微調會造成過拟合,微調特征提取器中的BN的參數這種partial形式帶來了可觀的收益,附着上一些額外參數也是很OK的,那麼對其他部分參數的微調又會如何呢?是不是隻要不是全量的,而是部分的,就能權衡好過拟合和task-specific之間的平衡?Partial is better than all[16]這項工作通過演化搜尋來尋找在目前任務中微調哪部分參數,下表Searched表示其實驗結果,性能收益也是比較穩定的。

如何更好地應對下遊小樣本圖像資料?

ViT如何在小樣本域fine-tuning

聊完了ConvNets,我們看看ViT for few-shot learning。

我們參考LT+NCC的範式:Linear Transformation + Nearest Centroid Classifier

如何更好地應對下遊小樣本圖像資料?

以上為LT+NCC範式[4]。

但它的缺陷是僅有linear transformation的參數可以fine-tuning,不夠task-specific,而在ViT中能夠得到task-specific embedding的關鍵之一在MSA中,是以可以在MSA中附上一些task-specific元素,在fine-tuning時仍然當機pretrained的fθ,然後去fine-tuning附着上的參數,比如下圖中彩色部分,就是将task-specific參數拼接到MSA中[5]。

如何更好地應對下遊小樣本圖像資料?

在few-shot learning中,最常被用于代表某個任務特性的是原型,是以[5]用attentive原型實作了上圖中的θp,進而将目前任務的資訊提供給MSA。我們看到,這樣的思路在前面幾節中也都有提及,證明了該系列方案的有效性。

除了LT+NCC的範式,還可以做點什麼?我們知道token間的依賴關系依賴于更多的資料量的大量訓練,那既然few-shot問題中更多的資料量不顯示,我們是不是可以給token間依賴關系加個速。

總結

我們看到本文回顧的方法共性是:微調部分參數,部分參數可能是某些特定的,比如BN[14]和分類頭,也可能是搜尋出來的[16],還可能是額外附着上去的[5][9][6]。這些方法所讨論的關鍵詞是:over fitting和task-specific的權衡、fast adaptation和accuracy的權衡,其本質還是源域和小樣本目标域間的分布偏移問題。當然一定會有差別于本文脈絡的其他思路,還需持續保持關注。

參考文獻

  1. Zhou, B., Khosla, A., Lapedriza, ` A., Oliva, A., and Torralba, A. Object detectors emerge in deep scene cnns. In International Conference on Learning Representations, 2015.
  2. Bau, D., Zhou, B., Khosla, A., Oliva, A., and Torralba, A. Network dissection: Quantifying interpretability of deep visual representations. In Proceedings of the IEEE conference on computer vision and pattern recognition, pp. 6541–6549, 2017.
  3. Luo, Xu, Jing Xu, and Zenglin Xu. "Channel importance matters in few-shot image classification." International conference on machine learning. PMLR, 2022.
  4. Li, Wei-Hong, Xialei Liu, and Hakan Bilen. "Universal representation learning from multiple domains for few-shot classification." Proceedings of the IEEE/CVF International Conference on Computer Vision. 2021.
  5. Xu, Chengming, et al. "Exploring Efficient Few-shot Adaptation for Vision Transformers." arXiv preprint arXiv:2301.02419(2023).
  6. Li, Wei-Hong, Xialei Liu, and Hakan Bilen. "Cross-domain Few-shot Learning with Task-specific Adapters." *Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition.*2022.
  7. Liu, Jinlu, Liang Song, and Yongqiang Qin. "Prototype rectification for few-shot learning." European Conference on Computer Vision. Springer, Cham, 2020.
  8. Cui, Wentao, and Yuhong Guo. "Parameterless transductive feature re-representation for few-shot learning." International Conference on Machine Learning. PMLR, 2021.
  9. Patacchiola, Massimiliano, et al. "Contextual Squeeze-and-Excitation for Efficient Few-Shot Image Classification." Advances in Neural Information Processing Systems, 2022.
  10. Chen, Wei-Yu, et al. "A closer look at few-shot classification." arXiv preprint arXiv:1904.04232 (2019).
  11. Finn, Chelsea, Pieter Abbeel, and Sergey Levine. "Model-agnostic meta-learning for fast adaptation of deep networks." International conference on machine learning. PMLR, 2017.
  12. Kim, Yujin and Oh, Jaehoon and Kim, Sungnyun and Yun, Se-Young,How to Fine-tune Models with Few Samples: Update, Data Augmentation, and Test-time Augmentation,arxiv.2205.07874, 2022
  13. Chia-Hsiang Kao, Wei-Chen Chiu, Pin-Yu Chen,MAML is a Noisy Contrastive Learner in Classification,ICLR 2022
  14. Yazdanpanah, Moslem, et al. "Revisiting Learnable Affines for Batch Norm in Few-Shot Transfer Learning." Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2022.
  15. Yanghao Li, Naiyan Wang, Jianping Shi, Jiaying Liu, and Xiaodi Hou. Revisiting batch normalization for practical domain adaptation. arXiv preprint arXiv:1603.04779, 2016.
  16. Shen, Zhiqiang, et al. "Partial is better than all: revisiting fine-tuning strategy for few-shot learning." Proceedings of the AAAI Conference on Artificial Intelligence. Vol. 35. No. 11. 2021.

繼續閱讀