少样本学习原理快速入门,并翻译《Free Lunch for Few-Shot Learning: Distribution Calibration》
ICLR2021 Oral《Free Lunch for Few-Shot Learning: Distribution Calibration》
利用一個樣本估計類別數據分布 9行代碼提高少樣本學習泛化能力
原論文:https://openreview.net/forum?id=JWOiYxMG92s
源碼:https://github.com/ShuoYang-1998/ICLR2021-Oral_Distribution_Calibration
知乎:https://zhuanlan.zhihu.com/p/344531704
什么是少樣本學習(few-shot)
假設你有如下目的:你想用VGG網絡訓練一個通用的花分類器。你手上只有10種常見花分類的數據集,每個類有成千上萬充足的樣本,但是,除此10類花以外,其他類別的花,每一類你只有個位數的樣本,如果直接將這些數據給VGG去分類,結果幾乎將是過擬合那10種樣本充足的類。那如何解決這個問題呢?這就是few-shot問題,即少樣本學習。
本篇論文怎么做的?
- 訓練特征提取器(或分類器):先使用“base數據”集訓練一個分類器,比如訓練一個VGG分類模型。(base數據指樣本量很充足的數據,比如你手上充足的10種常見花的數據集)
- 計算base數據每一個類別所有樣本的總均值和總協方差:分類器訓練好后,將上述所有base數據輸入分類網絡,計算base數據中每一類的所有樣本在網絡特征輸出層(注意不是全連接層的輸出,而是尾端卷積層的輸出特征圖,后續把特征圖拉成了一維向量。)的總均值和總協方差。
- 校正novel數據的特征分布:將“novel數據”每一類的1張或5張樣本(“novel數據”就是你那些樣本極少的類,注意“novel數據”中類別和base數據中沒有重復的類,“novel數據”中可能有N個類,但評價few-shot算法性泛化能力時,一般是5個類,每一個類僅可用1張或5張去充當訓練集,5個類每類1張訓練的叫 5-way-1-shot,5個類每類5張的叫 5-way-5-shot),輸入上述分類器獲得樣本的特征輸出,然后使用第2步中獲得的“base數據”的均值和協方差,校正“novel數據”中每一類的特征分布。
- 訓練一個線性分類器:使用“novel數據”(訓練集)每一類的特征數據(注意:“novel數據”每一個類就1個或5個樣本),以及從“novel數據”校正后的特征分布中隨機抽樣生成(具體生成多少是一個超參數)的新特征數據,兩者一起去訓練一個線性分類器(LR)。
- 特征提取器+線性分類器,實現少樣本的分類:先推理階段,先將????????????
本論文的前提是什么?
論文的本質是根據base數據的特征分布去校正novel數據的特征分布,所以,如果base數據和novel數據類間距離越小,效果一般會越好,因為理論上它們經過特征提取器后的特征分布更相似。反之,如果類間距越大,效果越不好。當然,這種類間距很大的問題,本篇文章之外的其他few-shot方法同樣感到更棘手。
摘要
從有限數量的樣本中學習是具有挑戰性的,因為只有少數訓練樣本形成的偏倚分布,模型很容易過擬合。在本文中,我們對這些樣本較少的類的分布進行了校正,通過轉移具有足夠樣本的類的統計信息,然后從校正后的分布中抽取足夠數量的樣本來擴展分類器的輸入。我們假設特征表示中的每個維都服從高斯分布(即正態分布),這樣分布的均值和方差可以借用類似類的統計數據,這些統計數據可以用足夠的樣本數來更好地估計。我們的方法可以建立在現成的預訓練特征提取器和分類模型之上,不需要額外的參數。我們展示了一個簡單的邏輯回歸分類器,使用從我們的校準分布中采樣的特征訓練,可以在兩個數據集上優于最先進的精度(在miniImageNet上比次之的提高了5%)。這些生成的特征的可視化表明,我們的校準分布是一個準確的估計。
1 介紹
由于收集和注釋大量數據的高成本,從有限數量的訓練樣本中學習越來越受到關注。研究人員已經開發出算法,以提高模型的性能,這些模型是用很少的數據進行訓練的。Finn等人(2017);Snell等人(2017)以元學習的方式訓練模型,使模型能夠在只有少量訓練樣本可用的情況下快速適應任務。Hariharan,Girshick (2017);Wang等人(2018)試圖通過學習生成模型來綜合數據或特征,以緩解數據不足的問題。Ren等人(2018)提出利用未標記數據和預測偽標記來提高少樣本學習的性能。
雖然以前的大多數工作都專注于開發更強的模型,但很少關注數據本身的特性。自然,隨著數據數量的增加,ground truth分布可以更準確地揭示出來。在評估過程中,用大范圍數據訓練的模型具有很好的泛化性。另一方面,當訓練一個只有少量訓練集的模型時,模型傾向于通過盡量減少對這些樣本的訓練損失來對這些樣本進行過擬合。這些現象如圖1所示。這種基于少數數據集的偏倚分布會損害模型的泛化能力,因為它遠遠不能反映評估過程中測試用例抽樣的真實分布。
在這里,我們考慮將這個有偏差的分布校準成一個更準確的ground truth分布的近似。這樣,用從校準分布中采樣的輸入訓練的模型可以從更精確的分布中概括出更廣泛的數據,而不僅僅是擬合那些少數的樣本。我們沒有對原始數據空間的分布進行校準,而是嘗試對特征空間中的分布進行校準,特征空間的維數更低,更容易校準(Xian et al.(2018))。我們假設特征向量的每個維都服從高斯分布,觀察到相似類的特征表示通常有相似的均值和方差,如表1所示。因此,高斯分布的均值和方差可以在相似的類之間轉移(Salakhutdinov等人(2012))。同時,當該類有足夠的樣本時,可以更準確地估計統計量。基于這些觀察,我們重用來自?many-shot類的統計數據,并根據類相似性將它們轉移到更好地估計?few-shot?類的分布。根據估計的分布生成更多的樣本,為分類模型的訓練提供了充分的監督。
在實驗中,我們證明用我們的策略訓練的簡單邏輯回歸分類器可以在兩個數據集上達到最先進的精度。我們的分布校準策略可以與任何分類器和特征提取器配對,不需要額外的可學習參數。在5way1shot任務中,從標定后的分布中選取樣本進行訓練,與僅使用少量樣本進行訓練的基線相比,訓練的準確率提高了12%。我們還將校準過的分布可視化,并表明它是?ground truth的精確近似,可以更好地覆蓋測試用例。
2 相關工作
Few-shot分類是一個具有挑戰性的機器學習問題,研究人員探索了學習學習(learning to learn)或元學習(meta-learning)的思想,以提高快速適應能力,緩解Few-shot的挑戰。元學習最普遍的算法之一是基于優化的算法。Finn等人(2017)和Li等人(2017)提出學習如何優化梯度下降過程,使學習者有良好的初始化、更新方向和學習速率。針對分類問題,研究人員提出了簡單而有效的基于度量學習的算法。MatchingNet (Vinyals等人,2016年)和ProtoNet (Snell等人,2017年)通過比較每個類別代表的距離來對樣本進行分類。我們的分布校準和特征采樣過程不包括任何可學習的參數,分類器是用傳統的監督學習方式訓練的。
另一種算法是通過代償來彌補可用樣本數量的不足。大多數方法使用生成對抗網絡(GANs) (Goodfellow等人,2014年)或自動編碼器(Rumelhart等人,1986年)的思想來生成樣本(Zhang等人(2018年);Chen等(2019b);Schwartz等人(2018);Gao等人(2018))或特征(Xian等人(2018);Zhang et al.(2019))擴充訓練集。具體來說,Zhang et al.(2018)和Xian et al.(2018)提出通過引入基于任務的對抗生成器來合成數據。Zhang等人(2019)試圖學習一種變分自編碼器來近似分布,并根據估計的統計數據預測標簽。自動編碼器還可以通過投射視覺空間和語義空間(Chenetal.,2019b)或rencodingtheintraclassoldings (Schwartz等人,2018)來增強樣本。Liu et al. (2019b)和Liu et al. (2019a)提出通過類層次來生成特征。雖然這些方法可以生成額外的樣本或特征用于訓練,但它們需要設計一個復雜的模型和損失函數來學習如何生成。然而,我們的分布校準策略很簡單,不需要額外的可學習參數。
數據增強是增加訓練樣本數量的一種傳統而有效的方法。Qin等(2020)和Antoniou &Storkey(2019)提出利用傳統的數據增強技術構建無監督Few-shot學習的前置任務。Wang等人(2018)和Hariharan &Girshick(2017)利用了數據增強的一般思想,他們設計了一個幻覺模型,以生成圖像的增強版本,為模型s的輸入提供不同的選擇,即圖像和噪聲(Wang et al., 2018)或多個特征的連接(Hariharan &Girshick, 2017)。Park等人(2020)試圖通過從估計方差中采樣來增強特征表示。當我們試圖估計類級分布時,這些方法學習從原始樣本或它們的特征表示中增加,從而消除單個樣本的感應偏差,并從校準分布中提供更多的世代。
3 主要方法
在本節中,我們將在3.1節中介紹Few-shot分類問題的定義,在3.2節中介紹我們提出的方法的細節。
3.1 問題定義
我們遵循一個典型的?few-shot分類設置。給定一個數據標簽對D = {(x i, y i)}的數據集,其中為樣本的特征向量,,其中C為類的集合。這組類分為基類(base classes)和新類(novel classes),他們具有和。目標是在基類數據上訓練的模型,能夠很好地在新類的數據上應用。為了評估模型的快速適應能力或泛化能力,每個任務T只有少量可用的標記樣本。最常見的構建任務的方法被稱為N-way-K-shot任務(Vinyals et al.(2016)),其中N個類從 novel 集合中采樣,每個類只提供K個(如1或5個)標記的樣本。少數可用的標記數據稱為支持集(support set)并且模型在另一個查詢集(query set)上進行評估,任務中的每個類都有q個test用例。因此,模型的性能是根據從新類中采樣的多個任務(查詢集)的平均精度來評估的。
3.2 分布校準
正如3.1節所介紹的,基類有足夠的數據量,而從新類中采樣的評估任務只有有限數量的標記樣本?;惙植冀y計量的估計比基于?few-shot樣本的估計更準確,而?few-shot樣本的估計是一個不適定(?ill-posed )問題。如表1所示,我們觀察到,假設特征分布為高斯分布,每個類的均值和方差與每個類的語義相似度相關。記住這一點,如果我們知道基類和新類有多么相似,統計數據就可以從基類轉移到新類。在以下幾節中,我們將討論如何利用基類的統計數據(第3.2.1節),在僅使用幾個樣本(第3.2.2節)的情況下校準類的分布估計。我們還將詳細說明如何利用校準分布來提高?few-shot學習的性能(第3.2.3節)。
請注意,我們的分布校準策略超過了特征級別,并且與任何特征提取器無關。因此,它可以建立在任何預先訓練的特征提取器之上,而無需進一步昂貴的微調。在我們的實驗中,我們根據他人之前的工作 (Mangla等人(2020))使用了預先訓練的 WideResNet。WideResNet被訓練來分類基類,以及一個自我監督的前置任務來學習適合于圖像理解任務的通用表示。關于訓練特征提取器的更多細節請參考他們的論文。
3.2.1 基類的統計信息
我們假設基類的特征分布為高斯分布。基類 i 的特征向量的均值計算為該向量中每個維度的均值:
其中是基類 i 中第 j 個樣本的特征向量,是基類 i 中樣本的總數。由于特征向量x j是多維的,我們使用協方差來更好地表示特征向量中任意一對元素之間的方差。第 i 類特征的協方差矩陣計算為:
3.2.2 校正新類的統計數據
這里,我們考慮一個從新類中采樣的n - way - k -shot任務。
Tukey’s Ladder of Powers Transformation(Tukey的冪階變換)
為了使特征分布更像高斯分布,我們首先使用Tukey的冪階變換(Tukey(1977))對目標任務中的支持集和查詢集的特征進行變換。Tukey冪階變換是一類冪變換,它可以減小分布的偏態,使分布更接近高斯分布。Tukey的冪階變換公式為
其中λ是一個超參數來調整如何糾正分布。將λ設為1,可以恢復原始特征。λ減小使分布的正偏度減小,反之亦然。
Calibration through statistics transfer(通過統計遷移校準)
利用3.2.1節中介紹的基類的統計信息,我們將基類的統計信息從在充足數據下估計得更準確的類中轉移到新類中。遷移是基于新類的特征空間與基類i的特征均值之間的歐氏距離,如公式1所示。具體來說,我們從 支持集合 中選擇與樣本x的特征距離最近的 前k個基類:
其中topk(·)是從輸入距離集中選擇頂部元素的運算符。根據一個特征向量x存儲k個最近的基類,然后通過最近基類的統計量來校準分布的均值和協方差:
其中α是一個超參數,它決定了從標定分布中采樣的特征的分散程度。
同比one shot的few-shot學習,上述的分布校準過程需要多次進行,每次使用支持集中的一個特征向量。這避免了一個特定樣本所提供的偏差,并有可能實現更多樣化和更準確的分布估計。因此,為了簡單起見,我們將校準后的分布表示為一組統計數據。對于類y∈C n,我們將統計數據集表示為,是校準的均值和協方差,分別根據類y的支持集中的第i個特征計算。在這里,集合的大小是N-way-K-shot任務中的K值。
3.2.3 如何利用已校準的分布?
在對于類y的目標任務中,我們使用一組校準數據,從校準高斯分布中采樣,生成一組標注y的特征向量:
這里,將每個類生成的特征總數設置為超參數,它們對中的每個校準分布都是平均分布的。然后,生成的特征和原始支持集特征一起作為特定任務分類器的訓練數據。我們通過最小化支持集特征和生成特征特征上的交叉熵損失來訓練分類器:
其中是任務的類集。表示特征轉換經Tukey冪階變換后的支持集,分類器模型以θ參數化。
4 實驗
在本節中,我們將回答以下問題:
- 與最先進的方法相比,我們的分布校準策略表現如何?
- 校準分配看起來像什么?這對這門課來說是一個準確的近似值嗎?
- Tukey冪階變換如何與特征生成(feature generations)互相影響? 它們對性能有多重要?
4.1 實驗設置
4.1.1 數據集
我們評估我們的分布校正策略在miniImageNet (Ravi &Larochelle(2017))、tieredImageNet (Ren等人(2018))和CUB (Welinder等人(2010))。miniImageNet和tieredImageNet有一系列的類,包括各種動物和對象,而CUB是一個更細粒度的數據集,包括各種鳥類。不同粒度級別的數據集的特征空間可能有不同的分布。我們希望在所有三個數據集上展示我們的策略的有效性和通用性。
- miniImageNet來源于ILSVRC-12數據集(Russakovsky et al., 2014)。它包含100個不同的類,每個類有600個樣本。圖像大小為84 84 3。我們使用前人工作中的數據切分方法(Ravi &Larochelle, 2017),它將數據集分為64個基類、16個驗證類和20個新類。
- tieredImageNet是ILSVRC-12數據集的一個較大子集(Russakovsky et al., 2014),該數據集包含608個從分層類別結構中采樣的類。每個類屬于從ImageNet的高級節點中抽樣的34個高級類別中的一個。每個類的平均圖像數量為1281張。我們分別使用351、97和160個類進行培訓、驗證和測試。
- CUB是一個細粒度的少量的分類基準。它包含200個不同類別的鳥類,總共11788張大小為84 84 3的圖片。根據之前的工作(Chen等人,2019a),我們將數據集分為100個基類、50個驗證類和50個新類。
4.1.2?評價指標
我們使用top-1的準確性作為評價指標來衡量我們的方法的性能。我們報告5way1shot和5way5shot設置miniImageNet, tieredImageNet和CUB的準確性。報告的結果是超過10,000個任務的平均分類精度。
4.1.3 實現的細節
對于特征提取器,我們使用(Mangla等人(2020))訓練的WideResNet。對于每個數據集,我們使用基類訓練特征提取器,并使用新類測試性能。注意,特征表示是從特征提取器的倒數第二層(帶有ReLU激活函數)提取的,因此值都是非負的,因此方程3中對Tukey冪階變換的輸入是有效的。在分布校準階段,我們計算基類統計量,并將它們轉移到每個數據集上,對新的類分布進行校準。我們使用了scikit-learn的LR和SVM實現(Pedregosa等人(2011))和默認設置。除了α,我們對所有數據集使用相同的超參數值。具體來說,生成的特性數量為750個;k = 2,λ= 0.5。對于miniImageNet、tieredImageNet和CUB,α分別是0.21, 0.21和0.3。源代碼可在以下地址獲得: https://github.com/ShuoYang-1998/ICLR2021-Oral_Distribution_Calibration
4.2?與最先進技術的比較
表2 和 表3?給出了我們的方法在miniImageNet、tieredImageNet和CUB上的5way1shot和5way5shot分類結果。我們將我們的方法與三組few-shot學習方法、基于優化的、基于度量的和基于生成的進行比較。我們的方法可以建立在任何分類器的基礎上,我們使用SVM和LR這兩個流行且簡單的分類器來證明我們方法的有效性。我們的方法所配備的簡單線性分類器比最先進的few-shot分類方法表現更好,在?1-shot和?5-shot設置的miniImageNet, tieredImageNet和CUB的表現最好。在5way1shot設置方面,我們的分布校準性能比最先進的基于生成的方法高出10%,這證明我們的方法能夠更好地處理極低?low-shot的分類任務。其他基于生成的方法需要設計生成模型,并對可學習參數進行額外的訓練,相比之下,簡單的DC機器學習分類器簡單、有效、靈活,可以配置任何特征提取器和分類器模型結構。具體來說,我們在表2和表3中顯示了三個變量,即DC的最大似然,DC的SVM, DC的Logistic回歸?;谛史植嫉暮唵巫畲笏迫环诸惼鞯男阅軆炗谥暗幕€,使用校準分布的樣本訓練SVM分類器或Logistic回歸分類器可以進一步提高性能。
4.3 生成樣本的可視化
我們通過可視化從分布中采樣生成的特征來顯示校準分布的樣子。在圖2中,我們給出了原始支持集(a)的t-SNE表示(van der Maaten & Hinton (2008)),生成的特征(b,c)和查詢集(d)。在校準分布的基礎上,采樣特征形成一個高斯分布和更多的樣本(c)可以更全面地表示分布。由于支持集中的示例數量有限(在本例中只有1個),查詢集中的示例通常覆蓋更大的區域,與支持集不匹配。這種不匹配在一定程度上可以通過生成的特性來修復,例如,(c)中生成的特性可以重疊查詢集的區域。因此,使用這些生成的特征進行訓練可以緩解僅由?few-shot樣本估計的分布與 ground truth 分布之間的不匹配。
4.4 分布校準的適用性
在不同的backbones上應用分布校準
我們的分布校準策略對主干/特征提取器是不可知的。表5顯示了在不同特征提取器上應用分布校準時性能的一致提升,例如4個卷積層(conv4)、6個卷積層(conv6)、resnet18、WRN28和經過旋轉loss訓練的WRN28。與使用不同基線訓練的骨干相比,分布校準的精度提高了10%左右。
在其他基線上應用分布校準
利用我們的分布校準策略生成的特征進行訓練,可以使各種工作受益。我們將我們的分布校準策略應用于兩種簡單的?few-shot分類算法,Baseline (Chen et al., 2019a)和Baseline++ (Chen et al., 2019a)。表6顯示,我們的分布校準為兩者帶來了超過10%的精度提高。
4.5 用生成的特征進行特征轉換和訓練的效果
燒蝕研究
表4顯示了表現,在訓練我們的模型時,沒有對特征進行Tukey冪階變換,以及在訓練時,在沒有生成特征的情況下進行訓練。很明顯,如果在5way1shot設置中不使用這兩種方法,性能會嚴重下降10%以上。在5way1shot設置中,任何一個的消融都會導致性能下降約5%。
在Tukey冪階變換中冪的選擇(0.5最好)
圖3左側顯示了使用生成的特征(紅色)和不使用生成的特征(藍色)訓練分類器時,對公式3中的Tukey s變換選擇不同冪時的5way1shot精度。注意,當λ= 1時,變換保持原始的特征表示。對于有和沒有這些特征的訓練,我們發現λ= 0.5是最優的選擇。通過Tukey變換,目標任務中查詢集特征的分布與校正后的高斯分布更加一致,從而有利于根據校正后的高斯分布采樣特征訓練分類器。
生成的特性數量(不能太多,也不能太少)
圖3的右側分析了在兩種情況下,是否生成更多的特性會導致一致的改進,即支持和查詢集的特性通過Tukey變換(紅色)進行轉換時,以及它們不進行轉換時(藍色)。我們發現,當生成的特性數量低于500時,兩種情況都可以從生成的特性中獲益。然而,當采樣的特征更多時,測試的分類器在未轉換特征上的性能開始下降。通過使用生成的樣本進行訓練,簡單邏輯回歸分類器在一次分類設置中有12%的相對性能提高。
4.6?其他超參數
我們根據驗證集的性能選擇超參數。公式5中校正新類分布的k基類統計量設為2。圖4顯示了k不同值的影響。方程6中的α是在估計協方差矩陣的每個元素上添加的一個常數,它可以確定從校準分布中采樣的特征的分散程度。適當的α值可以保證分類器具有良好的決策邊界。不同的數據集有不同的統計量,適當的α值可能因不同的數據集而不同。圖5探討了α對三個數據集的影響,即miniImageNet、tieredImageNet和CUB。我們觀察到,在每個數據集中,驗證集和新(測試)集的性能通常具有相同的趨勢,這表明方差是依賴于數據集的,并不是對特定集的過擬合。
5?總結與未來工作
我們提出了一種簡單而有效的分布校準策略來進行few-shot分類。在miniImageNet上,沒有復雜的生成模型、訓練loss和額外的學習參數,用我們的策略生成的特征訓練的簡單邏輯回歸比目前最先進的方法高出5%。對校準后的分布進行了可視化,證明了對特征分布的準確估計。未來的工作將探索分布校準在更多問題設置中的適用性,如多域few-shot分類,以及更多方法,如基于度量的元學習算法。
總結
以上是生活随笔為你收集整理的少样本学习原理快速入门,并翻译《Free Lunch for Few-Shot Learning: Distribution Calibration》的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CV算法复现(分类算法6/6):Mobi
- 下一篇: ubuntu + oepncv + PC