呂昊遠(yuǎn),俞 璐,周星宇,鄧 祥
陸軍工程大學(xué) 通信工程學(xué)院,南京210007
+通信作者E-mail:haoyuan0130@163.com
隨著人們對于深度學(xué)習(xí)的研究熱情日益高漲,各種深度學(xué)習(xí)框架和網(wǎng)絡(luò)模型被相繼提出[1]。深度學(xué)習(xí)在很多領(lǐng)域都有著不錯的表現(xiàn),尤其是計算機(jī)視覺中取得突出的成果,在圖像分類、目標(biāo)檢測、語義分割等各種任務(wù)中都達(dá)到了極佳性能[2]。
然而,深度神經(jīng)網(wǎng)絡(luò)的訓(xùn)練質(zhì)量受訓(xùn)練集中有標(biāo)記樣本數(shù)目的強(qiáng)烈影響。在實(shí)際的問題中,獲取數(shù)以萬計的有標(biāo)記訓(xùn)練樣本的代價是極其昂貴的,但對于無標(biāo)記樣本卻很容易獲取,人們就用多種方式研究無標(biāo)記樣本的使用。在此之中,基于少量有標(biāo)記樣本和大量無標(biāo)記樣本的半監(jiān)督學(xué)習(xí)(semisupervised learning)更適用于真實(shí)條件下的應(yīng)用[3],近來已成為深度學(xué)習(xí)領(lǐng)域熱門的新方向。
半監(jiān)督學(xué)習(xí)是一種在不需要大量標(biāo)記的情況下對大量數(shù)據(jù)進(jìn)行模型訓(xùn)練的強(qiáng)大方法。半監(jiān)督學(xué)習(xí)通過提供一種利用無標(biāo)記數(shù)據(jù)的方法來減少對標(biāo)記數(shù)據(jù)的需求[4]。由于無標(biāo)記的數(shù)據(jù)通??梢杂米钌俚娜肆Λ@得,因此半監(jiān)督學(xué)習(xí)帶來的任何性能提升通常都是低成本的。人們對于半監(jiān)督學(xué)習(xí)方法的研究熱情也與日俱增,提出了大量基于深度學(xué)習(xí)框架的半監(jiān)督學(xué)習(xí)方法。
在半監(jiān)督學(xué)習(xí)中,有一個最基本的前提假設(shè)是,在訓(xùn)練過程中使用無標(biāo)記的數(shù)據(jù)樣本是有益的(參見圖1 的具體說明)。它可以使標(biāo)記較少的訓(xùn)練更加健壯,甚至在某些情況下的學(xué)習(xí)效果超過有監(jiān)督學(xué)習(xí)[5]。
Fig.1 Schematic diagram of semi-supervision function圖1 半監(jiān)督作用示意圖
圖1 簡單說明了半監(jiān)督學(xué)習(xí)中使用未標(biāo)記數(shù)據(jù)的好處。紅色和藍(lán)色圓圈代表不同類別的有標(biāo)記數(shù)據(jù)點(diǎn)。灰色圓圈代表無標(biāo)記的數(shù)據(jù)點(diǎn)。如果只有少量有標(biāo)記樣本可用,只能對潛在的真實(shí)分布(實(shí)線)做出假設(shè)(虛線)。只有當(dāng)考慮未標(biāo)記的數(shù)據(jù)點(diǎn)并闡明決策邊界時,才能確定這種真正的分布。
通常認(rèn)為半監(jiān)督學(xué)習(xí)的研究于1994 年由Shahshahani 和Landgrebe 提出[6]。半監(jiān)督學(xué)習(xí)在20 世紀(jì)末,21 世紀(jì)初隨著實(shí)際應(yīng)用中對于使用無標(biāo)記數(shù)據(jù)的巨大需求的涌現(xiàn)而快速發(fā)展。并且在較短的時間里,半監(jiān)督學(xué)習(xí)中基于分歧的方法、半監(jiān)督支持向量機(jī)、圖半監(jiān)督學(xué)習(xí)的代表性工作就取得了巨大的研究成果。本文只關(guān)注于基于深度神經(jīng)網(wǎng)絡(luò)的半監(jiān)督學(xué)習(xí)方法。
Hinton等在2006年提出了“深度學(xué)習(xí)”這一概念[7]。深度學(xué)習(xí)通過深度神經(jīng)網(wǎng)絡(luò)(deep neural networks,DNN)將底層的特征映射到高層,并且通過高層將特征抽象出來,從而發(fā)現(xiàn)數(shù)據(jù)的分布式特征表示。經(jīng)過十多年的不斷發(fā)展,深度學(xué)習(xí)在各個領(lǐng)域都有著重大突破。深度網(wǎng)絡(luò)也有著越來越強(qiáng)的函數(shù)表達(dá)能力和特征提取能力。
基于深度學(xué)習(xí)框架的半監(jiān)督學(xué)習(xí)是近幾年來提出的研究新思路,其可以理解為,在少量有標(biāo)記數(shù)據(jù)和大量無標(biāo)記數(shù)據(jù)混合成的訓(xùn)練數(shù)據(jù)中使用的深度學(xué)習(xí)算法。通過幾年來的不斷研究,基于深度學(xué)習(xí)框架的半監(jiān)督學(xué)習(xí)算法已發(fā)展為三類。包括無標(biāo)記數(shù)據(jù)預(yù)訓(xùn)練網(wǎng)絡(luò)后用有標(biāo)記數(shù)據(jù)對網(wǎng)絡(luò)進(jìn)行微調(diào);有標(biāo)記數(shù)據(jù)訓(xùn)練網(wǎng)絡(luò),利用從網(wǎng)絡(luò)中得到的深度特征來做半監(jiān)督算法;端到端的半監(jiān)督深度模型[8]。
前兩類方法雖然都用到了有標(biāo)記樣本和無標(biāo)記樣本,但對于深度神經(jīng)網(wǎng)絡(luò)本身而言,它的訓(xùn)練還是工作在有監(jiān)督學(xué)習(xí)的方式上。只有第三種方法,才是網(wǎng)絡(luò)本身的半監(jiān)督學(xué)習(xí)。本文也將圍繞這個主題闡述。
雖然半監(jiān)督學(xué)習(xí)方法不盡相同,但都有用到了一些最基本的共有思想,也可以理解為算法訓(xùn)練中的一些技巧手段,包括損失函數(shù)類型和樣本集增強(qiáng)方式等。在本章中,將列舉這些常用的基本想法,并作簡要介紹。
1.1.1 KL 散度
Kullback-Leibler 散度(KL)是用來衡量同一個隨機(jī)變量的兩個不同分布之間的距離[9]。設(shè)p(x)、q(x)分別是離散隨機(jī)變量X的兩個概率分布,則p對q的相對熵是:
在實(shí)際的圖像分類問題中,假如p(x)是目標(biāo)真實(shí)的分布,而q(x)是預(yù)測得來的分布,為了讓這兩個分布盡可能相同,就需要最小化KL 散度。
1.1.2 交叉熵
交叉熵(cross entropy,CE)是一種常見的圖像分類損失函數(shù)。被廣泛用于有標(biāo)記數(shù)據(jù)的有監(jiān)督學(xué)習(xí)。其用來測定給定的數(shù)據(jù)集中,有標(biāo)記樣本的預(yù)測標(biāo)記值和其真實(shí)標(biāo)記值之間的誤差[10]。
式中,P是所有類的概率分布;H為概率分布的熵;KL 為Kullback-Leibler 散度。分布P可以近似于神經(jīng)網(wǎng)絡(luò)的輸出f(x)或給定的標(biāo)簽z。交叉熵是f(x)和z之間的熵和KL 散度的總和。一般來說,對于獨(dú)熱編碼(one-hot)標(biāo)記z,熵H(Pz)為0。
1.1.3 均方誤差
對于數(shù)據(jù)集中的兩樣本,均方誤差(mean-square error,MSE)是其經(jīng)過神經(jīng)網(wǎng)絡(luò)的標(biāo)記預(yù)測值之間的距離度量。與之前的誤差函數(shù)相比,MSE不是基于概率論測量差異,而是使用輸出向量的歐式距離[11]。
這個度量的最小化可以使兩個輸出相互收縮。這個距離度量也可以用于f(x)和f(y)的任何中間輸出(特征空間)[12]。由此可見,使用MSE 不需要用到樣本標(biāo)記,因此MSE 方法可以廣泛地使用在無標(biāo)記樣本數(shù)據(jù)的一致性正則中。
1.1.4 熵最小化
通過最小化熵(EntMin)來銳化半監(jiān)督學(xué)習(xí)中的輸出預(yù)測。對于圖像x,它們基于特定的神經(jīng)輸出f(x)對所有概率分布的Pf(x)最小化熵為H(Pf(x)),實(shí)際表現(xiàn)為在圖像分類問題中,基于熵最小化的思想,通常在給定平均預(yù)測量的基礎(chǔ)上,應(yīng)用銳化函數(shù)來減小標(biāo)記分布的熵[13],如圖2 所示。不過這種熵最小化只會增強(qiáng)神經(jīng)網(wǎng)絡(luò)的預(yù)測,不能單獨(dú)使用。
1.2.1 偽標(biāo)記
Fig.2 Sharpening prediction label value圖2 預(yù)測標(biāo)簽值的銳化
估計未知數(shù)據(jù)標(biāo)記的一種簡單方法是使用偽標(biāo)記,可以用深度網(wǎng)絡(luò)對無標(biāo)記數(shù)據(jù)進(jìn)行分類識別,并將預(yù)測值作為其數(shù)據(jù)標(biāo)記[14]。這種自我實(shí)現(xiàn)的假設(shè)在實(shí)際的圖像分類任務(wù)中取得了非常好的效果。最新提出的方法都是基于這樣的核心思想,即通過自己網(wǎng)絡(luò)的預(yù)測來創(chuàng)建標(biāo)記,然后作為有標(biāo)記數(shù)據(jù)加入到訓(xùn)練集中。
1.2.2 數(shù)據(jù)增強(qiáng)
深度學(xué)習(xí)任務(wù)中,訓(xùn)練數(shù)據(jù)一定程度上決定了模型的好壞。在多數(shù)情況下,經(jīng)常面對著數(shù)據(jù)不夠多,質(zhì)量不夠好的問題,而數(shù)據(jù)增強(qiáng)就是解決這一問題的有效方法[15]。本文將其分為傳統(tǒng)增強(qiáng)和強(qiáng)增強(qiáng)兩種方式。
傳統(tǒng)的數(shù)據(jù)增強(qiáng)方式又分為兩類,其中幾何變換選擇了圖像的一部分或者對像素進(jìn)行了重分布,包括圖像的平移、翻轉(zhuǎn)、旋轉(zhuǎn)、裁剪、比例縮放等。顏色變換則改變了圖像本身的內(nèi)容,常見的包括噪聲、模糊、顏色變換、擦除、填充等[16]。
強(qiáng)增強(qiáng)方式包括隨機(jī)裁剪(CutOut),這種增強(qiáng)會隨機(jī)選擇圖像的某個區(qū)域并掩蓋。自動增強(qiáng)(Auto-Augment)使用強(qiáng)化學(xué)習(xí)來自動創(chuàng)建有用的增強(qiáng)[17],其還有兩種變體方法,RandAugment 和CTAugment,非常適合缺少標(biāo)記的半監(jiān)督環(huán)境[18]。除此之外,還有通過模型學(xué)習(xí)數(shù)據(jù)的分布,隨機(jī)生成與訓(xùn)練數(shù)據(jù)集分布一致的圖片,代表方法為GAN 網(wǎng)絡(luò)。
mixup 是一種運(yùn)用在計算機(jī)視覺中的對圖像進(jìn)行混類增強(qiáng)的算法[19],它可以將不同類之間的圖像進(jìn)行混合,從而擴(kuò)充數(shù)據(jù)集。mixup 通過將圖像相互混合來創(chuàng)建新的凸形組合。再對相應(yīng)標(biāo)記的凸組合進(jìn)行預(yù)測。研究表明,相應(yīng)標(biāo)記凸組合的預(yù)測對一般的監(jiān)督學(xué)習(xí)是有益的。
如圖3 所示,貓和狗的圖像被參數(shù)化混合在一起,標(biāo)記也相應(yīng)地參數(shù)化結(jié)合在一起。所示圖像取自STL-10 數(shù)據(jù)集。
Fig.3 Diagram of mixup圖3 mixup 的圖解
本文將基于半監(jiān)督深度學(xué)習(xí)的圖像分類方法分為四個類別,分別為多視圖訓(xùn)練、一致性正則、多樣混合訓(xùn)練以及與GAN 網(wǎng)絡(luò)相結(jié)合的半監(jiān)督學(xué)習(xí)。接下來將分別介紹各個類別,并舉出典型網(wǎng)絡(luò)模型進(jìn)行分析比較。
多視圖訓(xùn)練假設(shè)每個數(shù)據(jù)可以從不同的角度(view)進(jìn)行分類,然后用這些從不同角度訓(xùn)練出來的分類器再對無標(biāo)記樣本進(jìn)行分類,再選出認(rèn)為可信的無標(biāo)記樣本以及其偽標(biāo)記加入訓(xùn)練集中[6]。
在這種情況下,多視圖訓(xùn)練的目標(biāo)是學(xué)習(xí)獨(dú)特的預(yù)測函數(shù)為各視圖下的數(shù)據(jù)建模,并共同優(yōu)化所有用于提高泛化性能的功能。理想情況下,不同視圖的結(jié)果相互補(bǔ)充,不同的模型可以相互協(xié)作以提高彼此的性能。
2.1.1 Co-training
Co-training 有兩個模型,它們分別在數(shù)據(jù)集上訓(xùn)練。每輪迭代中,如果兩個模型里的一個模型認(rèn)為自己對樣本分類的置信度高,分類概率大于某個事先設(shè)好的閾值,這個模型就會為它生成偽標(biāo)記,然后把它放入另一個模型的訓(xùn)練集。簡而言之,一個模型會為另一個模型的輸入樣本提供標(biāo)記[20]。
Qiao 等[21]提出了深度Co-training 結(jié)合半監(jiān)督學(xué)習(xí)的神經(jīng)網(wǎng)絡(luò)模型。不過其想法略有不同,沒有對同一個數(shù)據(jù)集訓(xùn)練兩個模型,而是考慮到視圖差異約束。具體做法如圖4 所示,對于數(shù)據(jù)集,通過計算其對抗樣本從而派生出新的數(shù)據(jù)集。然后使用對方的對抗樣本訓(xùn)練自己,從而很好地解決模型崩潰問題。
2.1.2 Tri-training
Chen 等[22]提出的Tri-training 網(wǎng)絡(luò)模型,如圖5 所示,首先對有標(biāo)記示例集進(jìn)行可重復(fù)取樣以獲得三個有標(biāo)記訓(xùn)練集,然后從每個訓(xùn)練集產(chǎn)生一個分類器。在協(xié)同訓(xùn)練過程中,各分類器所獲得的新標(biāo)記示例都由其余兩個分類器協(xié)作提供。
Fig.4 Co-training algorithm flow圖4 Co-training 算法流程
Fig.5 Tri-training algorithm flow圖5 Tri-training 算法流程
具體來說,如果兩個分類器對同一個未標(biāo)記示例的預(yù)測相同,則該示例就被認(rèn)為具有較高的標(biāo)記置信度,并在標(biāo)記后被加入第三個分類器的有標(biāo)記訓(xùn)練集。
多視圖訓(xùn)練的缺點(diǎn)也比較明顯,算法中需要多個深度模型,訓(xùn)練過程相對復(fù)雜,并且靠經(jīng)驗(yàn)設(shè)計。其中Tri-training 算法中的偽標(biāo)簽需要進(jìn)行多次預(yù)測,也會加重計算負(fù)擔(dān)。
因?yàn)樵诎氡O(jiān)督學(xué)習(xí)中,無標(biāo)記數(shù)據(jù)沒有自己的類別標(biāo)記,所以就研究出了無需標(biāo)記信息的一致性正則方法。一致性正則的主要思想就是,對于一個輸入,即使受到了細(xì)微的干擾,其預(yù)測都應(yīng)該是一致的[23]。
應(yīng)用在具體的半監(jiān)督算法中,最基本的思路是,對于有標(biāo)記樣本,使用標(biāo)準(zhǔn)的交叉熵?fù)p失函數(shù)計算誤差,而對于無標(biāo)記樣本,就需要使用一致性正則,比如最小均方誤差或者KL 散度等,具體到每一種算法的核心思想是沒有變化的,即最小化未標(biāo)記數(shù)據(jù)與其擾動輸出兩者之間的距離,但計算輸出的形式上有很多變化。最后還需加入權(quán)重系數(shù),結(jié)合有監(jiān)督與無監(jiān)督兩部分損失,從而構(gòu)建出總體的半監(jiān)督損失函數(shù)。
下面就闡述典型的基于一致性正則的半監(jiān)督學(xué)習(xí)方法。
2.2.1 π 模型和時序組合模型
Laine 和Aila[24]提出了兩種類似的半監(jiān)督學(xué)習(xí)方法模型,即圖6 展示的π 模型和時序組合模型[25]。這兩種方法都結(jié)合使用了有監(jiān)督的交叉熵?fù)p失和無監(jiān)督的最小均方損失。
Fig.6 Algorithm flow of π and temporal ensembling models圖6 π 模型與時序組合模型的算法流程
在這兩種方法中,無監(jiān)督一致性損失的第一個輸入都是來自隨機(jī)增強(qiáng)后的圖像的網(wǎng)絡(luò)輸出。而第二個輸入是不同的,在π 模型中是相同圖像的第二次增強(qiáng),在時序組合模型中,是對先前迭代周期預(yù)測結(jié)果的指數(shù)移動平均(exponential moving average,EMA)。
π 模型的訓(xùn)練過程中,每輪次的迭代需要網(wǎng)絡(luò)預(yù)測兩次,相比之下,時序組合模型的速度快了兩倍,而且更加穩(wěn)定。
2.2.2 平均教師模型
時序組合模型中,指數(shù)移動平均線每個時期只更新一次,這會使得網(wǎng)絡(luò)訓(xùn)練效率較低。Tarvainen和Valpola[26]提出了一種半監(jiān)督學(xué)習(xí)的學(xué)生教師方法,繼承并進(jìn)一步發(fā)展了π 模型和時序組合模型,也使用均方誤差作為兩個預(yù)測之間的一致性損失。
但創(chuàng)建這些預(yù)測不同,如圖7 所示[25],他們提議在每個更新步驟中使用基于學(xué)生模型平均權(quán)重的教師模型,有效解決了時序組合模型中將新信息融入預(yù)測的速度太慢的問題。并且經(jīng)過多次實(shí)驗(yàn)表明,均方誤差是比KL 散度更好的一致性損失。
2.2.3 無監(jiān)督數(shù)據(jù)增強(qiáng)
Fig.7 Algorithm flow of mean teacher model圖7 平均教師模型的算法流程
前文中提到的幾個基于一致性正則的半監(jiān)督學(xué)習(xí)方法中,對于圖像增強(qiáng)部分主要采用簡單的隨機(jī)噪聲,Xie 等[27]提出了一種半監(jiān)督學(xué)習(xí)方法,圖8 展示的無監(jiān)督數(shù)據(jù)增強(qiáng)(unsupervised data augment,UDA)集中使用了最先進(jìn)的數(shù)據(jù)增強(qiáng)。也結(jié)合有監(jiān)督損失和無監(jiān)督損失,有監(jiān)督損失為交叉熵,無監(jiān)督損失為輸出預(yù)測之間的KL 散度。這些輸出預(yù)測是基于原圖像和該圖像的增強(qiáng)版本。對于圖像分類,他們提出使用自動增強(qiáng)結(jié)合裁剪的增強(qiáng)方案。
Fig.8 UDA model algorithm flow圖8 UDA 模型算法流程
研究表明,這種組合增強(qiáng)方法比以往單獨(dú)的裁剪或翻轉(zhuǎn)等方法獲得的性能更高。除了不同的增強(qiáng)方法外,他們還提出使用多種其他正則化方法以及訓(xùn)練信號退火算法,可以在訓(xùn)練過程中限制標(biāo)記樣本的影響,有效防止過擬合。
UDA 還結(jié)合了熵最小化和偽標(biāo)記的思想,但使用偽標(biāo)記是過濾無監(jiān)督數(shù)據(jù)的異常值。
從局限性來講,UDA 方法中的強(qiáng)增強(qiáng)方式只運(yùn)用在了圖像基準(zhǔn)問題上。其他領(lǐng)域的研究還需要探求新的數(shù)據(jù)增強(qiáng)方式。
多樣混合方法試圖在一個框架中整合前文提到的半監(jiān)督學(xué)習(xí)的多種思想,從而集思廣益,在識別任務(wù)中獲得更好的性能。
2.3.1 MixMatch
MixMatch 同樣使用監(jiān)督損失和非監(jiān)督損失的組合。Berthelot 等[28]使用交叉熵作為監(jiān)督損失,使用預(yù)測和生成偽標(biāo)記之間的最小均方誤差作為無監(jiān)督損失,他們提出了一種新的多次預(yù)測再銳化方法來提高偽標(biāo)記的質(zhì)量,這些偽標(biāo)記是根據(jù)先前對增強(qiáng)圖像的多次預(yù)測而創(chuàng)建的(如圖9 所示)。并且創(chuàng)新之處在于,通過合并生成的標(biāo)記,將mixup 算法擴(kuò)展到半監(jiān)督學(xué)習(xí)。
Fig.9 Multi-prediction sharpening圖9 多預(yù)測銳化
如圖10 所示,x′和u′是經(jīng)過mixup 后得到的混合樣本,分別是標(biāo)記數(shù)據(jù)和無標(biāo)記數(shù)據(jù)。p和q為mixup 后分別對應(yīng)的標(biāo)記。有標(biāo)記數(shù)據(jù)使用交叉熵,預(yù)測標(biāo)記則使用均方誤差,最后將兩部分損失加權(quán)組合。
Fig.10 MixMatch model algorithm flow圖10 MixMatch 模型算法流程
2.3.2 FixMatch
FixMatch 是Google Brain 提出的一種多混合的半監(jiān)督學(xué)習(xí)方法[29](如圖11 所示),與MixMatch 方法不同的是,F(xiàn)ixMatch 使用交叉熵將弱增強(qiáng)(標(biāo)準(zhǔn)的翻轉(zhuǎn)和平移)和強(qiáng)增強(qiáng)(先使用RandAugment 或CTAugment,再使用CutOut 增強(qiáng))的無標(biāo)記數(shù)據(jù)進(jìn)行比較計算損失。其巧妙之處在于一致性正則化使用的是交叉熵?fù)p失函數(shù),并且取得了不錯的效果。
Fig.11 FixMatch model algorithm flow圖11 FixMatch 模型算法流程
FixMatch 是在弱增強(qiáng)圖像與強(qiáng)增強(qiáng)圖像之間進(jìn)行一致性計算,但其沒有使用兩種圖像的概率分布一致,而是將弱增強(qiáng)數(shù)據(jù)預(yù)測結(jié)果看作偽標(biāo)簽(),再結(jié)合強(qiáng)增強(qiáng)數(shù)據(jù)的預(yù)測結(jié)果(),這樣就需要使用交叉熵進(jìn)行一致性的計算。此外,F(xiàn)ixMatch 僅使用具有高置信度的未標(biāo)記數(shù)據(jù)參與訓(xùn)練。
多樣混合方法中,多種技術(shù)的組合實(shí)現(xiàn)了很好的圖像分類效果,但與此同時,模型結(jié)構(gòu)、算法過程也更為復(fù)雜。
生成對抗網(wǎng)絡(luò)(generative adversarial networks,GAN)是Goodfellow 等[30]在2014 年提出的一種深度生成模型,可以廣泛地用于圖像視覺領(lǐng)域,在圖像領(lǐng)域有著突出的效果,生成高分辨率逼真的圖像,進(jìn)行圖像修復(fù)、風(fēng)格遷移等。在有標(biāo)記樣本數(shù)目較少的情況下,就可以把半監(jiān)督思想與GAN 相結(jié)合,這種半監(jiān)督GAN 在圖像分類中取得很好的實(shí)驗(yàn)表現(xiàn)。在本節(jié)中,先來概括GAN 的結(jié)構(gòu)。
GAN 通過框架中兩個模塊生成器(generative model)和判別器(discriminative model)的互相博弈學(xué)習(xí),從而最終產(chǎn)生相當(dāng)好的輸出[31]。生成器和判別器可以用神經(jīng)網(wǎng)絡(luò)或者函數(shù)表示,如圖12 所示,用G表示生成器,D表示判別器。
Fig.12 GAN model structure圖12 GAN 模型結(jié)構(gòu)
生成器G的目的是生成基于數(shù)據(jù)分布的pg,G的輸入為隨機(jī)噪聲z(例如高斯噪聲),z取樣于先驗(yàn)分布pz(z)。判別器對輸入的數(shù)據(jù)進(jìn)行判別,如果是真實(shí)數(shù)據(jù)則輸出1,否則的話,輸出為0。
2.4.1 半監(jiān)督學(xué)習(xí)GAN
標(biāo)準(zhǔn)的分類是有監(jiān)督的學(xué)習(xí),模型通過最小化交叉熵?fù)p失,獲得最優(yōu)的網(wǎng)絡(luò)參數(shù)。Salimans[32]利用GAN 完成半監(jiān)督學(xué)習(xí),面對K分類問題時,把GAN的判別器改為K+1 類的分類器,其中第K+1 類是異常類(生成器生成的假圖像)。
如圖13 所示,分類器接收到的圖像數(shù)據(jù)為三部分,有標(biāo)記樣本(x,y)、無標(biāo)記樣本x和G生成的假樣本G(z)。對于分類器而言,如果是有標(biāo)記樣本,就進(jìn)行標(biāo)準(zhǔn)的有監(jiān)督學(xué)習(xí),學(xué)習(xí)任務(wù)是K分類問題;而對于無標(biāo)記樣本和生成器生成的假樣本,分類器就需要將認(rèn)為是假樣本的圖像分為第K+1 類,而將認(rèn)為是真實(shí)樣本的分為前K類中的某一類,但不需要判定預(yù)測正確與否。綜上所述,分類器的損失函數(shù)由以上三部分構(gòu)成。而生成器需要騙過分類器,即盡最大努力生成以假亂真的樣本,并且希望生成的假樣本被分類器判別為真(分為前K類中的某一類)。
Fig.13 SSL-GAN model structure圖13 SSL-GAN 模型結(jié)構(gòu)
2.4.2 半監(jiān)督GAN
Odena[33]提出的半監(jiān)督GAN(semi-supervised GAN,SGAN)的網(wǎng)絡(luò)結(jié)構(gòu)與上文的半監(jiān)督學(xué)習(xí)GAN 基本相似,所不同的是,SGAN 的想法更簡單明了,如圖14所示,分類器接受的圖像只包括有標(biāo)記樣本(x,y)和生成的假樣本G(z)兩部分,并且在具體的實(shí)驗(yàn)中,兩部分的數(shù)量比例相同。
Fig.14 SGAN model structure圖14 SGAN 模型結(jié)構(gòu)
從缺點(diǎn)的角度看,半監(jiān)督GAN 網(wǎng)絡(luò)中,生成的是未帶有標(biāo)記信息的隨機(jī)樣本,小樣本條件下會造成類別不均衡的問題,而且沒有用到前文中提到的一些基本技術(shù),這也限制了此類方法的性能提升。
本章將分析前文提到的四類方法之間有哪些異同的思想,并且在幾個通用的圖像數(shù)據(jù)集上觀察這些方法的實(shí)驗(yàn)結(jié)果表現(xiàn)。
表1 展示了不同的半監(jiān)督方法中包含著的不同思想,所有的√表示此方法中包含有這個思想,最后一列統(tǒng)計了此種方法包含的思想數(shù)目,最后一行統(tǒng)計了包含此種思想的方法數(shù)目,表中空白位表示方法中未包含這種思想?,F(xiàn)在對于一些角標(biāo)作出解釋:√s表示在所有的半監(jiān)督方法中,有監(jiān)督學(xué)習(xí)部分使用交叉熵?fù)p失;√s,u表示FixMatch 中有監(jiān)督與無監(jiān)督部分都使用交叉熵;√sharp表示MixMatch 通過對預(yù)測標(biāo)簽進(jìn)行銳化而最小化熵;√filter表示UDA 預(yù)測用于過濾無監(jiān)督數(shù)據(jù)的偽標(biāo)記;√weak表示用到傳統(tǒng)的數(shù)據(jù)增強(qiáng)方式;√auto表示用到AutoAugment 強(qiáng)增強(qiáng);√rand表示用到RandAugment 和CTAugment 強(qiáng)增強(qiáng);√gan表示用到GAN 網(wǎng)絡(luò)生成分布一致的圖像。
Table 1 Basic thoughts used in different methods表1 不同方法采用的基本思想
本節(jié)中,在多種數(shù)據(jù)集上比較了所提到的半監(jiān)督方法。根據(jù)之前論文公開的結(jié)果,選擇了在多篇論文中使用的五個數(shù)據(jù)集進(jìn)行比較。
MNIST 是手寫阿拉伯?dāng)?shù)字的標(biāo)準(zhǔn)數(shù)據(jù)集[34],一共包含0 到9 的10 類數(shù)字。數(shù)據(jù)集中有60 000 個訓(xùn)練樣本和10 000 個測試樣本。這些數(shù)字已經(jīng)過尺寸標(biāo)準(zhǔn)化并位于圖像中心,圖像是固定大小28×28 像素,其值為0 到1。
CIFAR-10 和CIFAR-100 是眾多小型彩色圖像構(gòu)成的大規(guī)模數(shù)據(jù)集[35],大小為32×32。這兩個數(shù)據(jù)集分別包含了屬于10 個或100 個類別的60 000 幅圖像。兩個數(shù)據(jù)集都提供了50 000 個訓(xùn)練樣本和10 000 個測試樣本,且都為有標(biāo)記數(shù)據(jù)。但本文的半監(jiān)督方法所呈現(xiàn)的結(jié)果是僅用訓(xùn)練集中少量有標(biāo)記樣本和一部分抹去標(biāo)記的樣本進(jìn)行訓(xùn)練。
STL-10 是為無監(jiān)督和半監(jiān)督學(xué)習(xí)設(shè)計的數(shù)據(jù)集。數(shù)據(jù)集的創(chuàng)建受CIFAR-10 的啟發(fā),但提供的標(biāo)簽較少。它提供了5 000 個有標(biāo)記訓(xùn)練樣本和8 000個有標(biāo)記測試樣本[36]。然而,還提供了100 000 個無標(biāo)記的示例圖像。這些無標(biāo)記的樣本屬于訓(xùn)練集和一些不同的類別。這些圖像是96×96 彩色圖像。
ILSVRC-2012 是ImageNet 的一個子集[37],訓(xùn) 練集由120萬幅圖像組成,而驗(yàn)證和測試集包括150 000幅圖像。這些圖像屬于1 000 個類別。所呈現(xiàn)的結(jié)果是僅用10%的標(biāo)記來訓(xùn)練,以表示半監(jiān)督情況。
表2 和表3 分別展示了當(dāng)有標(biāo)記樣本數(shù)為1 000和2 000 時,不同半監(jiān)督學(xué)習(xí)方法以及全監(jiān)督方法在MNIST、CIFAR-10 和CIFAR-100 數(shù)據(jù)集上的表現(xiàn),表格最左側(cè)一欄是不同的方法,右側(cè)三欄是前文中提到的三個數(shù)據(jù)集。表格內(nèi)容展示的是識別準(zhǔn)確率,表中空白位表示方法未在此數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn)驗(yàn)證。其中無標(biāo)記樣本量是有標(biāo)記樣本的三倍,每個方法的最終識別準(zhǔn)確率都選取了最好的實(shí)驗(yàn)結(jié)果??梢钥吹剑氡O(jiān)督學(xué)習(xí)方法可以很好地利用無標(biāo)記樣本的信息,在同等有標(biāo)記樣本數(shù)據(jù)的情況下,識別準(zhǔn)確率大幅度提升。
表4 展示了當(dāng)有標(biāo)記樣本數(shù)目為4 000 的識別結(jié)果。表中空白位表示方法未在此數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn)驗(yàn)證。根據(jù)表4,橫向比較可以發(fā)現(xiàn)在五個數(shù)據(jù)集中,CIFAR-10 的實(shí)驗(yàn)效果最好,這是因?yàn)槭诸悊栴}中,類別數(shù)目較少且各類之中樣本數(shù)目均衡,并且圖像的分辨率較低,使得訓(xùn)練也更加容易。縱向比較不同方法的識別結(jié)果,發(fā)現(xiàn)UDA、MixMatch和FixMatch取得了好的實(shí)驗(yàn)結(jié)果,結(jié)合表1,這是因?yàn)槿齻€方法中都結(jié)合了多種不同的思想,從而使得這些方法產(chǎn)生了很好的聯(lián)合反應(yīng)。兩個GAN 方法在MNIST 上表現(xiàn)很好,這是因?yàn)閿?shù)字的二值圖片特征比較好提取,生成器更容易學(xué)習(xí)到數(shù)據(jù)分布,從而推動分類器的性能提升。
Table 2 Recognition accuracy of 1000 labeled samples表2 1 000 個有標(biāo)記樣本的識別準(zhǔn)確率 %
Table 3 Recognition accuracy of 2000 labeled samples表3 2 000 個有標(biāo)記樣本的識別準(zhǔn)確率 %
Table 4 Recognition accuracy of 4000 labeled samples表4 4 000 個有標(biāo)記樣本的識別準(zhǔn)確率 %
本章將討論三個主要趨勢,這些趨勢帶來了未來可能的研究機(jī)會。
隨著層出不窮的新半監(jiān)督學(xué)習(xí)方法的提出,半監(jiān)督學(xué)習(xí)和有監(jiān)督學(xué)習(xí)的差距越來越小,表現(xiàn)在前文提到的數(shù)據(jù)集中,半監(jiān)督方法可以利用不到有監(jiān)督方法1/10 的標(biāo)記數(shù)據(jù)量,而達(dá)到較高的識別準(zhǔn)確率。
因此可以預(yù)計,未來的研究將集中在使用所有標(biāo)記中只有1%或更少的標(biāo)記數(shù)據(jù)而獲得更好的結(jié)果。
在很多半監(jiān)督學(xué)習(xí)的論文中,由于作者的目的是用盡可能少的標(biāo)記獲得最好的準(zhǔn)確率,因此沒有做到集思廣益,一些基本的想法之間只有很少的重疊。不過在UDA、MixMatch、FixMatch 方法中,已經(jīng)將偽標(biāo)簽、熵最小化和一致性正則等想法結(jié)合在一起,取得了很好的實(shí)驗(yàn)結(jié)果。由此可見,想法結(jié)合是有益的,但仍然有許多合理的結(jié)合尚未探索,多種想法的結(jié)合是一個未來很有前途的研究方向。
根據(jù)圖像識別準(zhǔn)確度可以看出,許多方法可以在CIFAR-10(簡單的低分辨率數(shù)據(jù)集)上有著90%以上的準(zhǔn)確率,然而很少有方法能夠在ILSVRC-2012(高分辨率數(shù)據(jù)集)上達(dá)到較高的準(zhǔn)確率。因此可得出結(jié)論,大多數(shù)方法都不能擴(kuò)展到真實(shí)世界的圖像分類問題上。
取得較高識別準(zhǔn)確率的數(shù)據(jù)集中,不同類別的圖像數(shù)目都相同,且不同類別之間差異明顯。并且標(biāo)記數(shù)據(jù)和未標(biāo)記數(shù)據(jù)來自同一分布。這種假設(shè)在許多實(shí)際應(yīng)用中很難成立,其中一個常見的情況是,無標(biāo)記數(shù)據(jù)包含有標(biāo)記數(shù)據(jù)中未知的類別[41]。因此未來的研究需要解決這些實(shí)際問題,做到處理類別不平衡以及含有噪聲的有標(biāo)記數(shù)據(jù),以及面對不同分布的數(shù)據(jù)集時,有著具有更強(qiáng)魯棒性的半監(jiān)督學(xué)習(xí)方法。
本文所提到的半監(jiān)督方法還是更多地與卷積神經(jīng)網(wǎng)絡(luò)以及生成對抗網(wǎng)絡(luò)相結(jié)合。不過在最新的研究中,已經(jīng)將半監(jiān)督思想結(jié)合在其他深度網(wǎng)絡(luò)模型方法,例如圖神經(jīng)網(wǎng)絡(luò)、自編碼器以及元學(xué)習(xí)、對比學(xué)習(xí)等。如何在更多的深度學(xué)習(xí)框架中結(jié)合半監(jiān)督學(xué)習(xí)也是亟待探索的重點(diǎn)。
半監(jiān)督深度學(xué)習(xí)方法應(yīng)用于圖像分類問題中已經(jīng)取得了顯著的成績,而在其他領(lǐng)域,例如文本分類問題中也有著一定的成果[42],那在自然語言處理、視頻識別等問題中,是否也能有著優(yōu)良的性能表現(xiàn)仍然需要進(jìn)一步研究。
有監(jiān)督的深度學(xué)習(xí)在很多應(yīng)用領(lǐng)域已經(jīng)有著很好的性能表現(xiàn),但在實(shí)際問題中面臨著海量標(biāo)記數(shù)據(jù)難以獲取的現(xiàn)狀,而有標(biāo)記數(shù)據(jù)較少時模型訓(xùn)練很容易出現(xiàn)過擬合現(xiàn)象?;谏疃染W(wǎng)絡(luò)的半監(jiān)督學(xué)習(xí)方法可以很好地使用少量的有標(biāo)記數(shù)據(jù)和大量的無標(biāo)記數(shù)據(jù),在圖像分類任務(wù)中取得非常好的實(shí)驗(yàn)效果。本文提供了一個基于半監(jiān)督深度學(xué)習(xí)的圖像分類方法概述??偨Y(jié)了多種半監(jiān)督學(xué)習(xí)方法的差異、相似性以及組合效果,比較了不同方法在圖像分類中的實(shí)驗(yàn)結(jié)果。并且分析討論了半監(jiān)督學(xué)習(xí)發(fā)展趨勢和可能的研究領(lǐng)域。
如何利用更少的標(biāo)記數(shù)據(jù)而提升識別準(zhǔn)確率,未來的研究可能會進(jìn)一步減少所需標(biāo)記的數(shù)量;而對于類別不平衡的問題,半監(jiān)督是否仍可以有著較高的識別準(zhǔn)確率還有待實(shí)驗(yàn)證實(shí);實(shí)驗(yàn)中已經(jīng)發(fā)現(xiàn)不同技術(shù)的結(jié)合有利于整體性能的提升,如何做到想法之間的重疊,也是未來可能的研究機(jī)會;另外,還需要研究與注意力機(jī)制[43]等更為復(fù)雜的卷積神經(jīng)網(wǎng)絡(luò)以及其他深度模型相結(jié)合[44]的半監(jiān)督方法。而且大多數(shù)半監(jiān)督學(xué)習(xí)算法的工作是在圖像基準(zhǔn)上評估,未來的研究還需要探討在其他領(lǐng)域的有效性。