首頁  >  文章  >  科技週邊  >  OpenAI 研究員:當資料不足時,如何實現監督學習

OpenAI 研究員:當資料不足時,如何實現監督學習

王林
王林轉載
2023-04-12 08:58:091106瀏覽

本文轉自雷鋒網,如需轉載請至雷鋒網官網申請授權。

現實應用程式中,資料易得,而有標籤的資料少有。

一般而言,當監督學習任務面臨標籤資料不足問題時,可以考慮以下四個解決方法:

1.預訓練微調:首先在一個大規模無監督資料語料庫上對一個強大的任務無關模型進行預訓練(例如透過自監督學習在自由文字上對語言模型進行預訓練,或在無標籤影像上對視覺模型進行預訓練),之後再使用一小組標籤樣本在下游任務上對此模型進行微調。

2.半監督學習:同時從標籤樣本和無標籤樣本中學習,研究者使用該方法在視覺任務上進行了大量研究。

3.主動學習:標註成本高,即便成本預算有限,也希望盡可能收集更多的標籤資料。主動學習學習選擇最有價值的無標籤樣本,並在接下來的收集過程中收集此類數據,在預算有限的情況下,幫助模型盡可能達到預期效果。

4.預訓練 資料集自動產生:給定一個強大的預訓練模型,可以利用該模型來自動產生更多得多的標籤樣本。受小樣本學習大獲成功的驅動,此方法在語言領域的應用尤其普遍。

本文全面介紹半監督學習此方法,作者為OpenAI研究員Lilian Weng,部落格網址:https://lilianweng.github.io/

#1 什麼是半監督學習?

半監督學習同時使用標籤資料和無標籤資料來訓練模型。有趣的是,現有關於半監督學習的文獻大多集中在視覺任務上。而預訓練 微調方法才是語言任務中較常見的範式。本文所提到的所有方法的損失,都由兩部分構成:OpenAI 研究员:数据不足时,如何实现监督学习。其中監督損失OpenAI 研究员:数据不足时,如何实现监督学习在樣本全部為標籤樣本的情況下非常容易計算出來。我們需要專注於如何設計無監督損失OpenAI 研究员:数据不足时,如何实现监督学习。加權項OpenAI 研究员:数据不足时,如何实现监督学习通常選擇使用斜坡函數,其中t是訓練步數,隨著訓練次數的增加,OpenAI 研究员:数据不足时,如何实现监督学习的佔比提升。聲明:此文並未涵蓋所有半監督方法,僅聚焦於模型架構調優方面的。關於在半監督學習中,如何使用生成模型和基於圖的方法,可以參考《深度半監督學習全覽》(An Overview of Deep Semi-Supervised Learning)這篇論文。

2 符號說明表

唯一標籤的數量。 是真實標籤的獨熱表示。 #無標籤資料集。 #整個資料集,包括標籤樣本和無標籤樣本。 選擇合格的預測結果的置信度閾值。

#符號

#

意義

OpenAI 研究员:数据不足时,如何实现监督学习

OpenAI 研究员:数据不足时,如何实现监督学习

OpenAI 研究员:数据不足时,如何实现监督学习

#標籤資料集,其中

OpenAI 研究员:数据不足时,如何实现监督学习

OpenAI 研究员:数据不足时,如何实现监督学习

OpenAI 研究员:数据不足时,如何实现监督学习

##########

可以表示無標籤樣本, 也可以表示標籤樣本。

OpenAI 研究员:数据不足时,如何实现监督学习

#經過增強處理的無標籤樣本或標籤樣本。

OpenAI 研究员:数据不足时,如何实现监督学习

第i個樣本。

OpenAI 研究员:数据不足时,如何实现监督学习

#分別表示損失,監督損失,無監督損失

OpenAI 研究员:数据不足时,如何实现监督学习

無監督損失權重,隨著訓練步數增加而增加。

OpenAI 研究员:数据不足时,如何实现监督学习

#給定輸入情況下,標籤資料集的條件機率。

OpenAI 研究员:数据不足时,如何实现监督学习

#使用加權θ#產生的神經網絡,即期望訓練出的模型。

OpenAI 研究员:数据不足时,如何实现监督学习

邏輯函數f的輸出值的向量。

OpenAI 研究员:数据不足时,如何实现监督学习

預測的標籤分佈。

OpenAI 研究员:数据不足时,如何实现监督学习

兩個分佈間的距離函數,例如均方誤差、交叉熵、KL散度等。

OpenAI 研究员:数据不足时,如何实现监督学习

######## #Teacher 模型權重的移動平均線加權超參數。 ##########

OpenAI 研究员:数据不足时,如何实现监督学习

#α為混合樣本的 係數,OpenAI 研究员:数据不足时,如何实现监督学习

OpenAI 研究员:数据不足时,如何实现监督学习

銳利化預測分佈的溫度。

OpenAI 研究员:数据不足时,如何实现监督学习

##################

3 假設

在已有研究文獻中,討論了以下幾種假設來支撐對半監督學習方法中的某些設計進行決策。

假設1:平滑度假設(Smoothness Assumptions)

如果兩個資料樣本在特徵空間的高密度區域接近,它們的標籤應該會相同或非常相似。

假設2:聚類假設(Cluster Assumptions)

特徵空間既有密集區域,也有稀疏區域。密集分組的資料點自然形成聚類。同一聚類中的樣本應具有相同的標籤。這是對假設1的一個小擴展。

假設3:低密度分離假設(Low-density Separation Assumptions)

類別之間的決策邊界往往位於稀疏的低密度區域,因為如果不這樣的話,決策邊界就會將高密度聚類分割為分別對應兩個聚類的兩個類,這就會導致假設1和假設2都失效。

假設4:流形假設(Manifold Assumptions)

高維資料往往位於低維流形上。儘管現實世界的數據可能是在非常高的維度上被觀察到的(例如,真實世界的物體/場景的圖像),但它們實際上可以被更低維的流形捕獲,這種低維流形上會捕捉資料的某些屬性,並將一些相似的資料點進行緊密組合(例如真實世界的物件/場景的影像,並不是源自於所有像素組合的均勻分佈)。這就使得模型能夠學習一種更有效的表徵方法去發現和評估無標籤資料點之間的相似性。這也是表徵學習的基礎。關於這個假設,更詳細的闡述可參考《如何理解半監督學習中的流行假設》這篇文章。

連結:https://stats.stackexchange.com/questions/66939/what-is-the-manifold-assumption-in-semi-supervised-learning

4 一致性正規化(Consistency Regularization)

一致性正則化,也叫一致性訓練,假設給定相同輸入,神經網路中的隨機性(例如使用 Dropout演算法)或資料增強轉換不會變更模型預測。本節中的每個方法都有一個一致性正規化損失:OpenAI 研究员:数据不足时,如何实现监督学习。 SimCLR、BYOL、SimCSE 等多個自監督學習方法都採用了這個想法。相同樣本的不同增強版本,產生的表徵都相同。語言建模中的交叉視圖訓練(Cross-view training )和自我監督學習中的多視圖學習(Multi-view learning)的研究動機相同。

(1).Π模型

OpenAI 研究员:数据不足时,如何实现监督学习

#圖1:Π-模型概覽。同一個輸入經過不同的隨機增強和 dropout掩膜的擾動產生兩個版本,透過網路得到兩個輸出,Π-模型預測這兩個輸出是一致的。 (圖片來源:Laine 、 Aila  2017發表的論文《半監督學習的時序整合》)

#

Sajjadi 等人在2016年發表的論文《深度半監督學習的隨機變換和擾動正則化》(Regularization With Stochastic Transformations and Perturbations for Deep Semi-Supervised Learning)中,提出了一種無監督學習損失,它能夠將同一數據點經過隨機變換(例如dropout、隨機​​最大池化)產生兩個版本,並在通過網路後輸出的兩個結果之間的差異最小化。由於其標籤沒有被明確使用,所以該損失可以應用到無標籤資料集。 Laine 、Aila 後來在2017年發表的論文《半監督學習的時序整合》(Temporal Ensembling for Semi-Supervised Learning)中,為這種處理方式取了一個名字,叫做 Π模型。 OpenAI 研究员:数据不足时,如何实现监督学习其中,OpenAI 研究员:数据不足时,如何实现监督学习指同一個神經網路應用不同的隨機增強或dropout掩膜的取值。該損失使用整個資料集。

(2)時序集成(Temporal ensembling)

OpenAI 研究员:数据不足时,如何实现监督学习

圖2:時序集成概覽。其學習目標是對每個樣本的指數移動平均值( EMA)做出標籤預測。 (圖片來源:Laine 、 Aila  2017發表的論文《半監督學習的時序整合》)

Π模型需要每個樣本通過神經網路兩次,這使得計算成本增加一倍。為了減少成本,時序整合模型持續將每個訓練樣本OpenAI 研究员:数据不足时,如何实现监督学习的即時模型預測的指數移動平均值(EMA)作為學習目標,EMA 在每輪迭代中僅需計算和更新一次。由於時序集成模型的輸出OpenAI 研究员:数据不足时,如何实现监督学习被初始化為0,因而除以OpenAI 研究员:数据不足时,如何实现监督学习進行歸一化來修正此啟動偏差。出於同一原因,Adam 優化器也有這樣的偏差修正項。 OpenAI 研究员:数据不足时,如何实现监督学习其中OpenAI 研究员:数据不足时,如何实现监督学习是在第t輪迭代中的整合預測,OpenAI 研究员:数据不足时,如何实现监督学习是在當前回合的模型預測。需要注意的是,由於OpenAI 研究员:数据不足时,如何实现监督学习=0,進行偏差修正後,OpenAI 研究员:数据不足时,如何实现监督学习就完全等於在第1輪迭代中的模型預測值OpenAI 研究员:数据不足时,如何实现监督学习

(3)均值教師(Mean teachers)

OpenAI 研究员:数据不足时,如何实现监督学习

#圖3:Mean Teacher框架概覽(圖片來源:Tarvaninen、 Valpola在2017年發表的論文《均值教師模型是表現更好的模範模型:加權平均一致性目標優化半監督深度學習結果》)

#時序整合模型將追蹤每個訓練樣本的標籤預測的指數移動平均值作為學習目標。然而,這種標籤預測僅在每一次迭代中發生變化,當訓練資料集很大時,這種方法就顯得冗餘。為了克服目標更新速度慢的問題,Tarvaninen、 Valpola在2017年發表的論文《均值教師模型是表現更好的模範模型:加權平均一致性目標優化半監督深度學習結果》(Mean teachers are better role models: Weight-averaged consistency targets improve semi-supervised deep learning results)中,提出了Mean Teacher演算法,該演算法透過追蹤模型權值的移動平均值而不是模型輸出來更新目標。權重為θ的原始模型稱為Student模型,將權重為連續多個Student模型的移動平均權重θ′的模型,稱為Mean Teacher模型:

OpenAI 研究员:数据不足时,如何实现监督学习

一致性正則化損失是Student模型和Teacher 模型的預測之間的距離,並且該差距應該最小化。 Mean Teacher 模型能夠提供比Student模型更準確的預測。此結論在實證實驗中得到了證實,如圖 4 所示。

OpenAI 研究员:数据不足时,如何实现监督学习

    #圖4:Π 模型與 Mean Teacher模型在 SVHN 資料集上的分類誤差。 Mean Teacher模型(以橘線表示)比Student模型(以藍線表示)的表現更好。 (圖片來源:Tarvaninen、 Valpola在2017年發表的論文《均值教師模型是表現較好的模範模型:加權平均一致性目標優化半監督深度學習結果》)
  • 根據其消融研究:
  • 輸入增強方法(例如,輸入影像的隨機翻轉、高斯雜訊)或對Student模型進行dropout處理對於模型實現良好的性能是必要的。 Teacher模式不需要進行dropout處理。

性能對指數移動平均值的衰減超參數β敏感。一個比較好的策略是在成長階段使用較小的β=0.99,在後期Student模型改進放緩時使用較大的β=0.999。

結果發現,一致性成本函數的均方誤差(MSE)比KL發散等其他成本函數的表現更好。

OpenAI 研究员:数据不足时,如何实现监督学习(4)將雜訊樣本作為學習目標

最近的幾種一致性訓練方法學習將原始的無標籤樣本與其相應的增強版本之間的預測差異最小化。這種想法與 Π 模型非常相似,但其一致性正則化損失僅適用於無標籤資料。

圖5:使用雜訊樣本的一致性訓練

OpenAI 研究员:数据不足时,如何实现监督学习

在Goodfellow等人於2014年發表的論文《解釋和利用對抗性樣本》(Explaining and Harnessing Adversarial Examples)中,對抗性訓練(Adversarial Training)將對抗性噪音應用到輸入上,並訓練模型使其對此類對抗性攻擊具有魯棒性。 ############此方法在監督學習的應用公式如下:#####################

其中OpenAI 研究员:数据不足时,如何实现监督学习是真實分佈,近似於真值標籤的獨熱編碼,OpenAI 研究员:数据不足时,如何实现监督学习是模型預測,OpenAI 研究员:数据不足时,如何实现监督学习是計算兩個分佈之間差異的距離函數。 Miyato 等人在2018年發表的論文《虛擬對抗性訓練:對監督和半監督方法都適用的正則化方法》(Virtual Adversarial Training: A Regularization Method for Supervised and Semi-Supervised Learning)中提出虛擬對抗性訓練(Virtual Adversarial Training,VAT),此方法是對抗性訓練思想在半監督學習領域的一個延伸。由於OpenAI 研究员:数据不足时,如何实现监督学习是未知的,VAT 將該未知項替換為當前權重設定為OpenAI 研究员:数据不足时,如何实现监督学习時,當前模型對原始輸入的預測。需要注意的是,OpenAI 研究员:数据不足时,如何实现监督学习是模型權重的的固定值,因而在OpenAI 研究员:数据不足时,如何实现监督学习上不會進行梯度更新。

OpenAI 研究员:数据不足时,如何实现监督学习

VAT 損失既適用於標籤樣本,也適用於無標籤樣本。它計算的是當前模型在每個資料點的預測流形的負平滑度。對這種損失進行最佳化能夠讓預測流形更加平滑。 Verma等人在2019年論文《半監督學習的插值一致性訓練》(Interpolation Consistency Training for Semi-Supervised Learning)中提出插值一致性訓練(Interpolation Consistency Training,ICT),透過增加更多資料點的插值來強化資料集,讓模型預測和對應標籤的插值盡可能一致。 Hongyi Zhang等人在2018年的論文《Mixup:超越經驗風險最小化》(Mixup: Beyond Empirical Risk Minimization)中提出MixUp方法,即透過簡單的加權和來將兩個圖像進行混合處理。插值一致性訓練即根據此思路,讓預測模型為一個混合樣本產生標籤,來匹配對應輸入的預測插值:

OpenAI 研究员:数据不足时,如何实现监督学习

##其中表示Mean Teacher 模型的OpenAI 研究员:数据不足时,如何实现监督学习θ的移動平均值。

OpenAI 研究员:数据不足时,如何实现监督学习

#圖6:內插一致性訓練概覽。使用MixUp方法產生更多以內插標籤作為學習目標的內插樣本。 (圖片來源:Verma等人在2019年論文《半監督學習的插值一致性訓練》)

#由於兩個隨機選擇的無標籤樣本屬於不同類別的機率很高(例如ImageNet就有1000個目標類別),因此在兩個隨機無標籤樣本之間應用Mixup方法,就很可能產生在決策邊界附近的插值。根據低密度分離(Low-density Separation)假設,決策邊界往往位於低密度區域。

OpenAI 研究员:数据不足时,如何实现监督学习

其中OpenAI 研究员:数据不足时,如何实现监督学习表示θ的移動平均值。與VAT類似,Xie 等人在2020年的論文《一致性訓練的無監督資料增強》(Unsupervised Data Augmentation for Consistency Training)中提出的無監督資料增強(Unsupervised Data Augmentation,UDA),學習給無標籤樣本和增強樣本預測相同的輸出。 UDA特別著重於研究噪音的「品質」如何透過一致性訓練來影響半監督學習的表現。要產生有意義和有效的雜訊樣本,使用先進的資料增強方法至關重要。良好的資料增強方法應該能夠產生有效的(即不改變標籤)和多樣的噪聲,並帶有有針對性的歸納偏壓(Inductive Biases)。

針對影像領域,UDA 採用的是RandAugment方法,該方法由Cubuk 等人在2019年的論文《RandAugment: 減少搜尋空間的實用型自動資料增強方法》(RandAugment: Practical automated data augmentation with a reduced search space)中提出。它對Python影像處理庫PIL中可用的增強操作進行統一採樣,無需學習或優化,因此比使用AutoAugment方法,成本便宜得多。

OpenAI 研究员:数据不足时,如何实现监督学习

#圖7:CIFAR-10分類中各種半監督學習方法的比較。在未經RandAugment處理的50000個樣本進行訓練時,Wide-ResNet-28-2和PyramidNet ShakeDrop 在完全監督下,錯誤率分別為**5.4**和**2.7**。

針對語言領域,UDA結合使用回譯( back-translation)和基於TF-IDF的詞替換(word replacement)兩種方法。回譯保留了高層次意義,但是不保留某些字本身,而基於TF-IDF的字替換則去掉TF-IDF分數較低的無資訊性字。在語言任務的實驗中,研究者發現發現UDA與遷移學習和表徵學習是互補的;例如,在域內無標籤資料上對BERT模型進行微調(即圖8中的OpenAI 研究员:数据不足时,如何实现监督学习),能進一步提升效能。

OpenAI 研究员:数据不足时,如何实现监督学习

圖8:不同文字分類任務上,無監督資料增強方法採用不同初始化設定的比較。 (圖片來源:Xie 等人在2020年的論文《一致性訓練的無監督資料增強》)

在計算 OpenAI 研究员:数据不足时,如何实现监督学习 時,UDA可以透過使用以下三種訓練技巧來最佳化結果:

  • 低置信度遮罩(Low confidence masking):如果樣本的預測置信度低於閾值OpenAI 研究员:数据不足时,如何实现监督学习,則對其進行掩膜處理。
  • 銳利化預測分佈(Sharpening Prediction Distribution):在Softmax中使用低溫OpenAI 研究员:数据不足时,如何实现监督学习來對預測機率分佈進行銳化。
  • 域內資料過濾(In-Domain Data Filtration):為了從大的域外資料集中提取更多的域內資料 ,研究人員訓練一個分類器來預測域內標籤,然後保留具有高置信度預測的樣本作為域內候選樣本。

OpenAI 研究员:数据不足时,如何实现监督学习

其中,OpenAI 研究员:数据不足时,如何实现监督学习是模型權重的固定值,與VAT中的OpenAI 研究员:数据不足时,如何实现监督学习一樣,因而沒有梯度更新,OpenAI 研究员:数据不足时,如何实现监督学习是經過增強的資料點,OpenAI 研究员:数据不足时,如何实现监督学习是預測置信度閾值,OpenAI 研究员:数据不足时,如何实现监督学习是分佈銳化溫度。

5 偽標籤(Pseudo Labeling)

Lee等人在2013年的論文《偽標籤:深度神經網路的簡單而高效的半監督學習方法》 (Pseudo-Label : The Simple and Efficient Semi-Supervised Learning Method for Deep Neural Networks)中提出偽標籤,它基於當前模型預測的最大的softmax機率,將偽標籤分配給無標籤樣本,然後在完全監督設定下,同時在標籤樣本和無標籤樣本上訓練模型。

為什麼偽標籤能起作用?偽標籤實際上相當於熵正則化,它將無標籤資料的類別機率的條件熵( conditional entropy )最小化,從而實現類別之間的低密度分離。換句話說,預測的類別機率實際上是計算類別重疊,最小化熵相當於減少類別重疊,從而降低密度分離。

OpenAI 研究员:数据不足时,如何实现监督学习

圖9:(a )表示僅使用600 個標籤資料對模型訓練後,在MINIST 測試集上進行測試輸出的t-SNE視覺化結果,(b)表示使用600 個標籤資料以及60000 個無標籤資料的偽標籤對模型進行訓練後,在MINIST 測試集上進行測試輸出的t-SNE可視化結果。偽標籤能夠使學到的嵌入空間實現更好的分離效果。 (圖片來源:Lee等人在2013年的論文《偽標籤:深度神經網路的簡單而高效的半監督學習方法》)

使用偽標籤進行訓練自然是一個迭代過程。這裡將產生偽標籤的模型稱為Teacher 模型,將使用偽標籤學習的模型稱為Student 模型。

(1)標籤傳播(Label propagation)

Iscen等人於2019年發表的論文《深度半監督學習的標籤傳播》(Label Propagation for Deep Semi-supervised Learning)中提出標籤傳播概念,是一種基於特徵嵌入在樣本之間建構相似圖的想法。接著將偽標籤從已知樣本「擴散」到傳播權重與圖中成對相似性得分成正比的無標籤樣本。從概念來看,它類似於k-NN分類器,兩者都存在著無法很好地擴展到大型資料集上的問題。

OpenAI 研究员:数据不足时,如何实现监督学习

#圖10:標籤傳播工作原理示意圖。 (圖片來源:Iscen等人於2019年發表的論文《深度半監督學習的標籤傳播》)

(2)自訓練(Self-Training)

#自我訓練不是新概念,Scudder等人在1965年發表的論文《自適應模式識別機器的錯誤機率》(Probability of error of some adaptive pattern-recognition machines)、 Nigram & Ghani等人在CIKM 2000 發表的論文《分析協同訓練的有效性與適用性》(Analyzing the Effectiveness and Applicability of Co-trainin)都牽涉到這個概念。它是一種迭代演算法,輪番進行以下兩步驟操作,直到每個無標籤樣本都符合一個標籤:

  • #首先,它在標籤資料上建立分類器。
  • 接著,它使用該分類器預測無標籤資料的標籤,並將置信度最高的標籤轉換為標籤樣本。

Xie 等人在2020年發表的論文《使用噪音學生進行自我訓練來優化ImageNet 分類》(Self-training with Noisy Student improves在 ImageNet classification)中,將自訓練應用於深度學習,並且取得了巨大成果。在ImageNet分類任務中,研究者首先訓練了一個EfficientNet模型作為Teacher模型,為3億張無標籤圖像生成偽標籤,然後訓練了一個更大的EfficientNet模型作為Student 模型,以學習真實標籤圖像和偽標籤圖像。在他們的實驗設定中,一個關鍵的元素是在Student模型訓練期間加入噪聲,而Teacher模型產生偽標籤過程則不加入噪音來。因此,他們的方法被稱為“噪音學生(Noisy Student )”,即使用隨機深度、dropout和RandAugment方法為Student 模型加入雜訊。 Student 模型表現得比Teacher 模型更好,很大程度上就是加入噪音帶來的好處。增加的雜訊具有複合效應,可以促使模型在標籤資料和無標籤資料上產生的決策邊界變得平滑。 Student 模型自訓練還有其他幾個重要的技術設置,包括:

  • Student 模型加應該足夠大(即比Teacher 模型大),以適用於更多資料。
  • 加入雜訊的Student 模型應該結合資料平衡方法,這對於平衡每個類別重的偽標籤影像的數量尤其重要。
  • 軟偽標籤比硬標籤效果更好。

加入雜訊的Student 模型也提高了防禦FGSM(快速梯度符號攻擊,其使用輸入資料的損失梯度,並調整輸入資料從而最大化損失)的對抗魯棒性,即便模型未針對對抗穩健性進行最佳化。

Du 等人在2020年的論文《自訓練優化自然語言理解的預訓練》(Self-training Improves Pre-training for Natural Language Understanding)中提出SentAugment 方法,旨在解決語言領域進行自訓練時,域內無標籤資料不足的問題。它依靠句向量從大型語料庫中找到無標籤的域內樣本,並使用檢索到的句子進行自我訓練。

(3)減少確認偏誤(Confirmation Bias)

#確認偏誤是由於Teacher模型還不夠成熟導致提供錯誤的偽標籤的問題。對錯誤標籤進行過擬合可能並不會產生更好的Student模型。

為了減少確認偏誤,Eric Arazo等人在論文《深度半監督學習中的偽標籤和確認偏誤》(Pseudo-Labeling and Confirmation Bias in Deep Semi- Supervised Learning)中提出了兩種新方法。

一種是採用軟標籤的Mixup方法,給定OpenAI 研究员:数据不足时,如何实现监督学习兩個樣本和它們對應的真標籤和偽標籤OpenAI 研究员:数据不足时,如何实现监督学习,插值標籤方程式可以轉換為softmax輸出的交叉熵損失:

OpenAI 研究员:数据不足时,如何实现监督学习

#如果標籤樣本太少,使用Mixup方法還不夠。因此論文作者透過對標籤樣本進行過採樣,從而對每個小批量中的標籤樣本設定最小數量。這比對標籤樣本進行權重補償效果更好,因為它會更頻繁地更新,而不是頻次少的更大幅度的更新——這種更新其實更不穩定。

與一致性正規化一樣,資料增強和dropout方法對於發揮偽標籤的作用,也很重要。

Hieu Pham等人在2021年論文《元偽標籤》(Meta Pseudo Labels)中提出元偽標籤,根據Student模型對在標籤資料集上表現的回饋,不斷調整Teacher模型。 Teacher模型和Student模型同步進行訓練,Teacher模型學習產生更好的偽標籤,Student模型從偽標籤中學習。

將Teacher模型和Student模型的權重分別設為OpenAI 研究员:数据不足时,如何实现监督学习OpenAI 研究员:数据不足时,如何实现监督学习,Student模型在標籤樣本上的損失定義為OpenAI 研究员:数据不足时,如何实现监督学习的函數OpenAI 研究员:数据不足时,如何实现监督学习,並傾向於透過最佳化Teacher模型來相應地最小化這一損失。

OpenAI 研究员:数据不足时,如何实现监督学习

然而,要優化上述方程式並非易事。借用MAML (模型無關的元學習, Model-Agnostic Meta-Learnin)的思路,它近似於在進行多步驟OpenAI 研究员:数据不足时,如何实现监督学习OpenAI 研究员:数据不足时,如何实现监督学习計算的同時,對OpenAI 研究员:数据不足时,如何实现监督学习進行一步梯度更新。

OpenAI 研究员:数据不足时,如何实现监督学习

由於使用的是軟偽標籤,上述目標函數是可微函數。但是如果使用硬偽標籤,則是不可微函數,因此需要用到REINFORCE等強化學習方法。

最佳化過程是在兩個模型之間的交替進行的:

  • Student模型更新:給定一批無標籤樣本OpenAI 研究员:数据不足时,如何实现监督学习,我們可以透過函數OpenAI 研究员:数据不足时,如何实现监督学习產生偽標籤,並使用一步隨機梯度下降來優化OpenAI 研究员:数据不足时,如何实现监督学习OpenAI 研究员:数据不足时,如何实现监督学习
  • Teacher模型更新:給定一批標籤樣本OpenAI 研究员:数据不足时,如何实现监督学习,我們重複使用Student模型的更新來最佳化OpenAI 研究员:数据不足时,如何实现监督学习OpenAI 研究员:数据不足时,如何实现监督学习。此外,也將UDA物件應用於Teacher模型以合併一致性正規化。

OpenAI 研究员:数据不足时,如何实现监督学习

#圖11:元偽標籤與其他半監督或自監督學習方法在圖像分類任務中的效能比較。 (圖片來源:Hieu Pham等人在2021年論文《元偽標籤》)

#6 一致性正則化偽標籤

可以將一致性正規化、偽標籤兩種方法結合起來,應用到半監督式學習。

(1)MixMatch

Berthelot等人在2019年的論文《MixMatch: 一種面向半監督學習的整體性方法》(MixMatch: A Holistic Approach to Semi-Supervised Learning)中提出的MixMatch 方法,是一種應用於半監督學習的整體性方法,它透過整合以下方法來使用無標籤資料:

#
  • 一致性正規化(Consistency regularization):讓模型對受到擾動的無標籤樣本輸出相同的預測。
  • 熵最小化(Entropy minimization):讓模型對無標籤資料輸出置信預測。
  • MixUp 增強:讓模型在樣本之間進行線性行為。

給定一批標籤資料OpenAI 研究员:数据不足时,如何实现监督学习和無標籤資料OpenAI 研究员:数据不足时,如何实现监督学习,透過OpenAI 研究员:数据不足时,如何实现监督学习運算得到其增強版本,OpenAI 研究员:数据不足时,如何实现监督学习OpenAI 研究员:数据不足时,如何实现监督学习分別表示增強樣本和給無標籤樣本預測到的標籤。

 OpenAI 研究员:数据不足时,如何实现监督学习

其中OpenAI 研究员:数据不足时,如何实现监督学习是銳利化溫度,用來減少猜測到的標籤重疊;K 是每一個無標籤樣本產生的增強版本個數;OpenAI 研究员:数据不足时,如何实现监督学习是MixMatch 函數中的參數。對於每一個OpenAI 研究员:数据不足时,如何实现监督学习,MixMatch都會產生K個增強版本,OpenAI 研究员:数据不足时,如何实现监督学习等於k分別為1,....,K的OpenAI 研究员:数据不足时,如何实现监督学习的增強版本,模型基於平均值OpenAI 研究员:数据不足时,如何实现监督学习來猜測偽標籤。

OpenAI 研究员:数据不足时,如何实现监督学习

圖12:MixMatch中的「標籤猜測」過程:K 個增強無標籤樣本的平均值,修正預測的邊際分佈,最終使分佈銳化銳。 (圖片來源:Berthelot等人在2019年的論文《MixMatch: 一種面向半監督學習的整體性方法》)

根據該論文的消融研究,對無標籤資料進行 MixUp增強尤其重要。去除偽標籤分佈上的溫度銳化會嚴重影響效能。對於標籤猜測,計算無標籤資料多個增強版本的平均值也是必不可少的。 Berthelot等人在2020年的論文《ReMixMatch:使用分佈對齊和增強錨定進行半監督學習》(ReMixMatch: Semi-Supervised Learning with Distribution Alignment and Augmentation Anchoring)中,進一步提出ReMixMatch方法,透過引入以下兩種新機制來改進MixMatch方法:

OpenAI 研究员:数据不足时,如何实现监督学习

#圖13:ReMixMatch 方法對MixMatch方法的兩個改進的圖示。 (圖片來源:Berthelot等人在2020年的論文《ReMixMatch:使用分佈對齊和增強錨定進行半監督學習》)

##1.分佈對齊(Distribution alignment )。此方法讓邊緣分佈OpenAI 研究员:数据不足时,如何实现监督学习與真值標籤的邊緣分佈相近。設定OpenAI 研究员:数据不足时,如何实现监督学习為真值標籤的類別分佈,OpenAI 研究员:数据不足时,如何实现监督学习是無標籤資料上的預測類別分佈的移動平均。模型對無標籤樣本的預測OpenAI 研究员:数据不足时,如何实现监督学习經過歸一化處理為OpenAI 研究员:数据不足时,如何实现监督学习#以符合真實邊緣分佈。

要注意的是,如果邊際分佈不一致,熵最小化則不是有用的目標。而且,有標籤和無標籤資料上的類別分佈相互匹配的假設確實太絕對了,在現實環境中不一定是正確的。

2.增強錨定(Augmentation Anchoring)。給定一個無標籤樣本,首先會產生一個弱增強的「錨定」版本,接著使用 CTAugment (控制理論增強,Control Theory Augment)方法對K個強增強版本計算平均值。 CTAugment僅對講模型預測保持在網路容差範圍內的增強版本進行取樣。

ReMixMatch損失由以下幾個項目組成:

  • 應用了資料增強和Mixup方法的監督損失
  • #應用了資料增強和Mixup方法卻使用偽標籤作為目標的無監督損失
  • 不使用Mixup方法情況下,單一強增強的無標籤影像的交叉熵損失
  • 自監督學習中的旋轉損失(rotation loss )。

(2)DivideMix

Junnan Li 等人於2020年論文《DivideMix:使用噪音標籤學習實現半監督學習》(DivideMix: Learning with Noisy Labels as Semi-supervised Learning)中提出DivideMix方法,它將半監督學習與使用噪音標籤的學習(Learning with noisy labels,LNL)結合。它透過高斯混合模型(GMM)對每個樣本損失分佈進行建模,將訓練資料動態劃分為含有乾淨樣本的標籤資料集和含有雜訊樣本的無標籤資料集。

依照Arazo等人在2019年論文《無監督標籤雜訊建模與損失修正》(Unsupervised Label Noise Modeling and Loss Correction)中提出的想法,他們在每個樣本交叉熵損失上擬合了一個二元高斯混合模型。乾淨樣本期望比雜訊樣本更快得到更低的損失。更小均值的高斯混合模型對應乾淨標籤的聚類,這裡將其表示為c。如果高斯混合模型的後驗機率OpenAI 研究员:数据不足时,如何实现监督学习(即樣本屬於乾淨樣本集的機率)大於閾值,則該樣本被視為乾淨樣本,否則被視為雜訊樣本。

資料進行聚類的過程叫做協同劃分(co-divide)。為了避免確認偏差,DividImax方法同時訓練兩個交叉的網絡,其中每個網絡都使用來自另一個網絡的資料集分離出來的部分,類似於雙 Q 學習 (Double Q-Learning) 的工作原理。

OpenAI 研究员:数据不足时,如何实现监督学习

#圖14:DivideMix獨立訓練兩個網絡,以減少確認偏差。兩個網路同時運行‎協同劃分,、協同細化 和協同猜測。 (圖片來源:Junnan Li 等人在2020年論文《DivideMix:使用噪音標籤學習來實現半監督學習》)

與MixMatch相比,DivideMix有一個額外的用於處理雜訊樣本的‎co-divide步驟,並在訓練期間做瞭如下改進:標籤協同細化(Label co-refinement:):它將真值標籤OpenAI 研究员:数据不足时,如何实现监督学习與網路預測OpenAI 研究员:数据不足时,如何实现监督学习進行線性組合,其中OpenAI 研究员:数据不足时,如何实现监督学习是另一個網路產生乾淨資料集機率 OpenAI 研究员:数据不足时,如何实现监督学习條件下,OpenAI 研究员:数据不足时,如何实现监督学习多個增強版本的平均值。

標籤協同猜測(Label co-guessing):它對兩個模型對無標籤資料樣本的預測進行平均。

OpenAI 研究员:数据不足时,如何实现监督学习

#圖15:DivideMix演算法。 (圖片來源:Junnan Li 等人在2020年論文《DivideMix:使用噪音標籤學習來實現半監督學習》) 

##(3)FixMatch

Sohn等人在2020年的論文《FixMatch: 使用一致性和置信度簡化半監督學習》(FixMatch: Simplifying Semi-Supervised Learning with Consistency and Confidence)中提出的FixMatch方法,透過弱增強方法在無標籤樣本上產生偽標籤,並且只保持高置信度的預測。在這裡,弱增強和高置信度過濾都有助於產生高品質的可信偽標籤目標。然後,FixMatch在給定一個經過大幅增強的樣本情況下,預測這些偽標籤。

OpenAI 研究员:数据不足时,如何实现监督学习

圖16:FixMatch方法的工作原理圖示。 (圖片來源:Sohn等人在2020年的論文《FixMatch: 使用一致性和置信度簡化半監督學習》) 

OpenAI 研究员:数据不足时,如何实现监督学习

OpenAI 研究员:数据不足时,如何实现监督学习OpenAI 研究员:数据不足时,如何实现监督学习OpenAI 研究员:数据不足时,如何实现监督学习OpenAI 研究员:数据不足时,如何实现监督学习OpenAI 研究员:数据不足时,如何实现监督学习OpenAI 研究员:数据不足时,如何实现监督学习

OpenAI 研究员:数据不足时,如何实现监督学习

######################## #######其中###是無標籤樣本的偽標籤;###是決定###和###的相對大小的超參數。弱增強###:標準的平移和變換增強。強增強###:AutoAugment、 Cutout、 RandAugment和 CTAugment等資料增強方法。 ###############################圖17:FixMatch和其他幾種半監督學習方法在影像分類任務上的表現。 (圖片來源:Sohn等人在2020年的論文《FixMatch: 使用一致性和置信度簡化半監督學習》) ###############根據FixMatch的消融研究,## ####
  • 当使用阈值τ时,使用温度参数T对锐化预测分布不会产生显著影响。
  • Cutout和CTAugment是强增强方法,对模型达到良好的性能“功不可没”。
  • 当标签猜测使用强增强来取代弱增强时,模型在训练早期就发散了。如果舍弃弱增强,模型就会过度拟合猜测的标签。
  • 使用弱增强而不是强增强进行伪标签预测,会导致模型性能不稳定。强数据增强,对于模型性能的稳定性而言,至关重要。

7 结合强大的预训练

该方法通过自监督学习在大型无监督数据语料库上对与任务无关的模型进行预训练,然后使用小型标签数据集在下游任务上对该模型进行微调,这是一种常见的范式,尤其是在语言任务中。研究表明,如果将半监督学习与预训练相结合,模型可以获得额外的收益。

Zoph 等人在2020年的论文《重新思考预训练和自训练》(Rethinking Pre-training and Self-training),研究了自训练比预训练更有效多少。他们的实验设置是使用ImageNet 进行预训练或自训练,从而改进 COCO结果。需要注意的是,在使用 ImageNet 进行自训练时,它会丢弃标签,仅将 ImageNet 样本用作无标签的数据点。何恺明等人在2018年的论文《重新思考ImageNet 预训练》(Rethinking ImageNet Pre-training)中已经证明,如果下游任务(例如目标检测)非常不同,ImageNet 分类预训练的效果就不是很好。

OpenAI 研究员:数据不足时,如何实现监督学习

图18:(a) 数据增强(从弱到强)的结果和 (b) 标签数据集大小对目标检测性能的影响。在图例中:“Rand Init”表示经过随机权重初始化的模型;`ImageNet` 使用在ImageNet数据集上Top-1准确率为84.5%的预训练模型进行初始化;`ImageNet `使用在 ImageNet数据集上Top-1准确率为86.9%的预训练模型进行初始化。(图片来源:Zoph 等人在2020年的论文《重新思考预训练和自训练》)

该实验获得了一系列有趣的发现:

  • 可用于下游任务的标签样本越多,预训练的有效性就越低。预训练在低数据模式(20%)下是有帮助的,但在高数据情况下是中性的或起反作用的。
  • 在高数据/强增强模式下,即便预训练会起反作用,自训练也是有帮助的。
  • 即使使用相同的数据源,自训练也可以在预训练的基础上带来额外的改进。
  • 自监督预训练(例如通过 SimCLR进行预训练)会损害模型在高数据模式下的性能,跟监督预训练差不多。
  • 联合训练监督和自监督学习目标有助于解决预训练和下游任务之间的不匹配问题。预训练、联合训练和自训练都是加性的。
  • 噪声标签或非目标标签(即预训练标签未与下游任务标签对齐)比目标的伪标签更差。
  • 自训练在计算上比在预训练模型上进行微调,更昂贵。

Ting Chen等人在2020年的论文《大型自监督模型是强大的半监督学习者》(Big Self-Supervised Models are Strong Semi-Supervised Learners)中,提出了一个三步程序(three-step procedure)方法,将自监督预训练、有监督微调以及自训练的优势都结合在一起:

1.使用无监督或子监督方法对一个大模型进行训练;

2.在一些标签示例上对该模型进行有监督微调,其中使用大型(深且宽)的神经网络至关重要,因为使用更少的标签样本下,模型越大,性能更佳。

3.在自训练中采用伪标签,对无标签示例进行蒸馏。

a.可以將一個大模型的知識蒸餾到一個小模型中,因為這種特定任務的用法並不需要學到的表示的額外容量。

b.蒸餾損失公式如下,其中Teacher網路是固定的,權重為OpenAI 研究员:数据不足时,如何实现监督学习

 OpenAI 研究员:数据不足时,如何实现监督学习

OpenAI 研究员:数据不足时,如何实现监督学习

#圖19:半監督學習框架透過與任務無關的無監督預訓練(左)和特定任務的自訓練和蒸餾(右)來使用無標籤的資料語料庫。 (圖片來源:Ting Chen等人在2020年的論文《大型自監督模型是強大的半監督學習者》) 

論文作者在ImageNet 分類任務上進行了實驗。自監督預訓練使用 SimCLRv2,SimCLR 的直接改進版本。他們在實證研究中的觀察結果,證實了Zoph 等人在2020年提出的一些成果:

  • 更大模型的標籤學習更有效率;
  • SimCLR 中更大/更深的project heads可以改善表徵學習;
  • 使用無標籤資料進行蒸餾,能優化半監督學習。

OpenAI 研究员:数据不足时,如何实现监督学习

#圖20:SimCLRv2 半監督蒸餾在 ImageNet 分類上的效能比較。 (圖片來源:Ting Chen等人在2020年的論文《大型自監督模型是強大的半監督學習者》)

透過對最近半監督學習方法的總結,我們可以發現不少方法都旨在減少確認偏差:

  • 透過先進的資料增強方法將有效且多樣化的雜訊應用於樣本。
  • 在處理映像時,MixUp 是一種有效的資料增強方法。此方法同樣可用於語言任務,實現較小的增量最佳化((Guo et al. 2019)。
  • 設定閾值,並去掉置信度低的偽標籤。
  • 設定每個小批次中的標籤樣本的最少數量。
  • #銳化偽標籤分佈來減少類別重疊。


################################################################## ##########如需引用,請註明:###################
<span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">@</span><span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">article</span>{<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">weng2021semi</span>,<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">title</span> <span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">=</span> <span style="color: rgb(102, 153, 0); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">"Learning with not Enough Data Part 1: Semi-Supervised Learning"</span>,<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">author</span><span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">=</span> <span style="color: rgb(102, 153, 0); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">"Weng, Lilian"</span>,
#########

以上是OpenAI 研究員:當資料不足時,如何實現監督學習的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:51cto.com。如有侵權,請聯絡admin@php.cn刪除