作者:Amit Chaudhary
編譯:ronghuaiyang
導(dǎo)讀
圖解半監(jiān)督的各種方法的關(guān)鍵思想。
計(jì)算機(jī)視覺的半監(jiān)督學(xué)習(xí)方法在過去幾年得到了快速發(fā)展。目前最先進(jìn)的方法是在結(jié)構(gòu)和損失函數(shù)方面對(duì)之前的工作進(jìn)行了簡(jiǎn)化,以及引入了通過混合不同方案的混合方法。
在這篇文章中,我會(huì)通過圖解的方式解釋最近的半監(jiān)督學(xué)習(xí)方法的關(guān)鍵思想。
1、自訓(xùn)練
在該半監(jiān)督公式中,對(duì)有標(biāo)簽數(shù)據(jù)進(jìn)行訓(xùn)練,并對(duì)沒有標(biāo)簽的數(shù)據(jù)進(jìn)行偽標(biāo)簽預(yù)測(cè)。然后對(duì)模型同時(shí)進(jìn)行 ground truth 標(biāo)簽和偽標(biāo)簽的訓(xùn)練。
a. 偽標(biāo)簽
Dong-Hyun Lee[1]在 2013 年提出了一個(gè)非常簡(jiǎn)單有效的公式 —— 偽標(biāo)簽。
這個(gè)想法是在一批有標(biāo)簽和沒有標(biāo)簽的圖像上同時(shí)訓(xùn)練一個(gè)模型。在使用交叉熵?fù)p失的情況下,以普通的監(jiān)督的方式對(duì)有標(biāo)簽圖像進(jìn)行訓(xùn)練。利用同一模型對(duì)一批沒有標(biāo)簽的圖像進(jìn)行預(yù)測(cè),并使用置信度最大的類作為偽標(biāo)簽。然后,通過比較模型預(yù)測(cè)和偽標(biāo)簽對(duì)沒有標(biāo)簽的圖像計(jì)算交叉熵?fù)p失。
總的 loss 是有標(biāo)簽和沒有標(biāo)簽的 loss 的加權(quán)和。
為了確保模型已經(jīng)從有標(biāo)簽的數(shù)據(jù)中學(xué)到了足夠的知識(shí),在最初的 100 個(gè) epoch 中,αt 被設(shè)置為 0。然后逐漸增加到 600 個(gè) epochs,然后保持不變。
b. Noisy Student
Xie 等[2]在 2019 年提出了一種受知識(shí)蒸餾啟發(fā)的半監(jiān)督方法“Noisy Student”。
關(guān)鍵的想法是訓(xùn)練兩種不同的模型,即“Teacher”和“Student”。Teacher 模型首先對(duì)有標(biāo)簽的圖像進(jìn)行訓(xùn)練,然后對(duì)沒有標(biāo)簽的圖像進(jìn)行偽標(biāo)簽推斷。這些偽標(biāo)簽可以是軟標(biāo)簽,也可以通過置信度最大的類別轉(zhuǎn)換為硬標(biāo)簽。然后,將有標(biāo)簽和沒有標(biāo)簽的圖像組合在一起,并根據(jù)這些組合的數(shù)據(jù)訓(xùn)練一個(gè) Student 模型。使用 RandAugment 進(jìn)行圖像增強(qiáng)作為輸入噪聲的一種形式。此外,模型噪聲,如 Dropout 和隨機(jī)深度也用到了 Student 模型結(jié)構(gòu)中。
一旦學(xué)生模型被訓(xùn)練好了,它就變成了新的老師,這個(gè)過程被重復(fù)三次。
2、一致性正則化
這種模式使用的理念是,即使在添加了噪聲之后,對(duì)未標(biāo)記圖像的模型預(yù)測(cè)也應(yīng)該保持不變。我們可以使用輸入噪聲,如圖像增強(qiáng)和高斯噪聲。噪聲也可以通過使用 Dropout 引入到結(jié)構(gòu)中。
a. π-model
該模型由Laine 等[3]在 ICLR 2017 年的一篇會(huì)議論文中提出。
關(guān)鍵思想是為標(biāo)記數(shù)據(jù)和未標(biāo)記數(shù)據(jù)創(chuàng)建兩個(gè)隨機(jī)的圖像增強(qiáng)。然后,使用帶有 dropout 的模型對(duì)兩幅圖像的標(biāo)簽進(jìn)行預(yù)測(cè)。這兩個(gè)預(yù)測(cè)的平方差被用作一致性損失。對(duì)于標(biāo)記了的圖像,我們也同時(shí)計(jì)算交叉熵?fù)p失。總損失是這兩個(gè)損失項(xiàng)的加權(quán)和。權(quán)重 w(t)用于決定一致性損失在總損失中所占的比重。
b. Temporal Ensembling
該方法也是由Laine 等[4]在同一篇論文中提出的。它通過利用預(yù)測(cè)的指數(shù)移動(dòng)平均(EMA)來修正模型。
關(guān)鍵思想是對(duì)過去的預(yù)測(cè)使用指數(shù)移動(dòng)平均作為一個(gè)觀測(cè)值。為了獲得另一個(gè)觀測(cè)值,我們像往常一樣對(duì)圖像進(jìn)行增強(qiáng),并使用帶有 dropout 的模型來預(yù)測(cè)標(biāo)簽。采用當(dāng)前預(yù)測(cè)和 EMA 預(yù)測(cè)的平方差作為一致性損失。對(duì)于標(biāo)記了的圖像,我們也計(jì)算交叉熵?fù)p失。最終損失是這兩個(gè)損失項(xiàng)的加權(quán)和。權(quán)重 w(t)用于決定稠度損失在總損失中所占的比重。
c. Mean Teacher
該方法由Tarvainen 等[5]提出。泛化的方法類似于 Temporal Ensembling,但它對(duì)模型參數(shù)使用指數(shù)移動(dòng)平均(EMA),而不是預(yù)測(cè)值。
關(guān)鍵思想是有兩種模型,稱為“Student”和“Teacher”。Student 模型是有 dropout 的常規(guī)模型。教師模型與學(xué)生模型具有相同的結(jié)構(gòu),但其權(quán)重是使用學(xué)生模型權(quán)重的指數(shù)移動(dòng)平均值來設(shè)置的。對(duì)于已標(biāo)記或未標(biāo)記的圖像,我們創(chuàng)建圖像的兩個(gè)隨機(jī)增強(qiáng)的版本。然后,利用學(xué)生模型預(yù)測(cè)第一張圖像的標(biāo)簽分布。利用教師模型對(duì)第二幅增強(qiáng)圖像的標(biāo)簽分布進(jìn)行預(yù)測(cè)。這兩個(gè)預(yù)測(cè)的平方差被用作一致性損失。對(duì)于標(biāo)記了的圖像,我們也計(jì)算交叉熵?fù)p失。最終損失是這兩個(gè)損失項(xiàng)的加權(quán)和。權(quán)重 w(t)用于決定稠度損失在總損失中所占的比重。
d. Virtual Adversarial Training
該方法由Miyato 等[6]提出。利用對(duì)抗性攻擊的概念進(jìn)行一致性正則化。
關(guān)鍵的想法是生成一個(gè)圖像的對(duì)抗性變換,這將改變模型的預(yù)測(cè)。為此,首先,拍攝一幅圖像并創(chuàng)建它的對(duì)抗變體,使原始圖像和對(duì)抗圖像的模型輸出之間的 KL 散度最大化。
然后按照前面的方法進(jìn)行。我們將帶標(biāo)簽/不帶標(biāo)簽的圖像作為第一個(gè)觀測(cè),并將在前面步驟中生成的與之對(duì)抗的樣本作為第二個(gè)觀測(cè)。然后,用同一模型對(duì)兩幅圖像的標(biāo)簽分布進(jìn)行預(yù)測(cè)。這兩個(gè)預(yù)測(cè)的 KL 散度被用作一致性損失。對(duì)于標(biāo)記了的圖像,我們也計(jì)算交叉熵?fù)p失。最終損失是這兩個(gè)損失項(xiàng)的加權(quán)和。采用加權(quán)偏置模型來確定一致性損失在整體損失中所占的比重。
e. Unsupervised Data Augmentation
該方法由Xie 等[7]提出,適用于圖像和文本。在這里,我們將在圖像的上下文中理解該方法。
關(guān)鍵思想是使用自動(dòng)增強(qiáng)創(chuàng)建一個(gè)增強(qiáng)版本的無標(biāo)簽圖像。然后用同一模型對(duì)兩幅圖像的標(biāo)簽進(jìn)行預(yù)測(cè)。這兩個(gè)預(yù)測(cè)的 KL 散度被用作一致性損失。對(duì)于有標(biāo)記的圖像,我們只計(jì)算交叉熵?fù)p失,不計(jì)算一致性損失。最終的損失是這兩個(gè)損失項(xiàng)的加權(quán)和。權(quán)重 w(t)用于決定稠度損失在總損失中所占的比重。
3、混合方法
這個(gè)范例結(jié)合了來自過去的工作的想法,例如自我訓(xùn)練和一致性正則化,以及用于提高性能的其他組件。
a. MixMatch
這種整體方法是由Berthelot 等[8]提出的。
為了理解這個(gè)方法,讓我們看一看每個(gè)步驟。
i. 對(duì)于標(biāo)記了的圖像,我們創(chuàng)建一個(gè)增強(qiáng)圖像。對(duì)于未標(biāo)記的圖像,我們創(chuàng)建 K 個(gè)增強(qiáng)圖像,并對(duì)所有的 K 個(gè)圖像進(jìn)行模型預(yù)測(cè)。然后,對(duì)預(yù)測(cè)進(jìn)行平均以及溫度縮放得到最終的偽標(biāo)簽。這個(gè)偽標(biāo)簽將用于所有 k 個(gè)增強(qiáng)。
ii. 將增強(qiáng)的標(biāo)記了的圖像和未標(biāo)記圖像進(jìn)行合并,并對(duì)整組圖像進(jìn)行打亂。然后取該組的前 N 幅圖像為 W~L~,其余 M 幅圖像為 W~U~。
iii. 現(xiàn)在,在增強(qiáng)了的有標(biāo)簽的 batch 和 W~L~之間進(jìn)行 Mixup。同樣,對(duì) M 個(gè)增強(qiáng)過的未標(biāo)記組和 W~U~中的圖像和進(jìn)行 mixup。因此,我們得到了最終的有標(biāo)簽組和無標(biāo)簽組。
iv. 現(xiàn)在,對(duì)于有標(biāo)簽的組,我們使用 ground truth 混合標(biāo)簽進(jìn)行模型預(yù)測(cè)并計(jì)算交叉熵?fù)p失。同樣,對(duì)于沒有標(biāo)簽的組,我們計(jì)算模型預(yù)測(cè)和計(jì)算混合偽標(biāo)簽的均方誤差(MSE)損失。對(duì)這兩項(xiàng)取加權(quán)和,用 λ 加權(quán) MSE 損失。、
b. FixMatch
該方法由Sohn 等[9]提出,結(jié)合了偽標(biāo)簽和一致性正則化,極大地簡(jiǎn)化了整個(gè)方法。它在廣泛的基準(zhǔn)測(cè)試中得到了最先進(jìn)的結(jié)果。
如我們所見,我們?cè)谟袠?biāo)簽圖像上使用交叉熵?fù)p失訓(xùn)練一個(gè)監(jiān)督模型。對(duì)于每一幅未標(biāo)記的圖像,分別采用弱增強(qiáng)和強(qiáng)增強(qiáng)方法得到兩幅圖像。弱增強(qiáng)的圖像被傳遞給我們的模型,我們得到預(yù)測(cè)。把置信度最大的類的概率與閾值進(jìn)行比較。如果它高于閾值,那么我們將這個(gè)類作為標(biāo)簽,即偽標(biāo)簽。然后,將強(qiáng)增強(qiáng)后的圖像通過模型進(jìn)行分類預(yù)測(cè)。該預(yù)測(cè)方法與基于交叉熵?fù)p失的偽標(biāo)簽的方法進(jìn)行了比較。把兩種損失合并來優(yōu)化模型。
不同方法的對(duì)比
下面是對(duì)上述所有方法之間差異的一個(gè)高層次的總結(jié)。
在數(shù)據(jù)集上的評(píng)估
為了評(píng)估這些半監(jiān)督方法的性能,通常使用以下數(shù)據(jù)集。作者通過僅使用一小部分(例如:(40/250/4000/10000 個(gè)樣本),其余的作為未標(biāo)記的數(shù)據(jù)集。
結(jié)論
我們得到了計(jì)算機(jī)視覺半監(jiān)督方法這些年是如何發(fā)展的概述。這是一個(gè)非常重要的研究方向,可以對(duì)該行業(yè)產(chǎn)生直接影響。
英文原文:https://amitness.com/2020/07/semi-supervised-learning/