王格格,郭 濤,余 游,蘇 菡
(四川師范大學(xué) 計算機科學(xué)學(xué)院,成都 610101)
隨著信息技術(shù)的飛速發(fā)展,人們能夠以更加快速、廉價的方式來獲取大量缺少標(biāo)記的數(shù)據(jù),而為這些數(shù)據(jù)提供標(biāo)記則相對困難.因為標(biāo)記數(shù)據(jù)的過程成本較高,并且需要大量的人力物力,甚至必須依賴于少數(shù)領(lǐng)域?qū)<襾硗瓿?傳統(tǒng)的以標(biāo)記數(shù)據(jù)為基礎(chǔ)的機器學(xué)習(xí)模型已經(jīng)遠不能滿足數(shù)據(jù)分析和處理的要求,數(shù)據(jù)量大而所獲知識和價值甚少是機器學(xué)習(xí)領(lǐng)域的一大困境[1].半監(jiān)督學(xué)習(xí)(Semi-Supervised Learning,SSL)試圖讓學(xué)習(xí)器自動地對大量未標(biāo)記數(shù)據(jù)進行利用以輔助少量有標(biāo)記數(shù)據(jù)進行學(xué)習(xí)[2],從而解決監(jiān)督學(xué)習(xí)的模型泛化能力不強和無監(jiān)督學(xué)習(xí)的模型不精確等問題,因此半監(jiān)督學(xué)習(xí)可以最大限度地發(fā)揮數(shù)據(jù)的價值.隨著深度學(xué)習(xí)[3]在計算機視覺[4]、自然語言處理[5]和語音識別[6]等多個應(yīng)用領(lǐng)域取得突破性進展,半監(jiān)督深度學(xué)習(xí)成為了自然的需求,因為對海量標(biāo)記樣本的需求在很多應(yīng)用中都難以被滿足是目前深度學(xué)習(xí)的主要障礙.Kingma等[7]采用疊加的生成模型學(xué)習(xí)標(biāo)記樣本和無標(biāo)記樣本的隱變量并使用SVM對學(xué)習(xí)的隱變量進行分類.Rasmus等[8]把自編碼器的編碼層和解碼層之間加入短路連接,然后使用分類器對自編碼器學(xué)習(xí)的特征進行分類.Dai等[9]通過最小化按順序拼接的自編碼器的重構(gòu)誤差學(xué)習(xí)出序列數(shù)據(jù)的隱特征.生成對抗網(wǎng)絡(luò)(Generative adversarial network,GAN)作為深度學(xué)習(xí)中一種新的生成模型[10-12],在圖像生成方面具有良好的表現(xiàn),而在標(biāo)記數(shù)據(jù)較少的情況下,能否利用GAN所學(xué)到的樣本內(nèi)容分布和強大的對抗學(xué)習(xí)能力來提升網(wǎng)絡(luò)分類性能成為了近幾年新的研究熱點.Springenberg等[13]強制判別器對于真實樣本輸出單熱向量,對于生成樣本輸出均勻向量.Sutskever等[14]提出一種輸出分布匹配方法用作半監(jiān)督學(xué)習(xí)中的正則化項,并用GAN對網(wǎng)絡(luò)進行訓(xùn)練使得生成的虛擬樣本類別分布與真實樣本類別分布相匹配.Dai等[15]證明半監(jiān)督學(xué)習(xí)情況下,一個差的生成器能夠更有利于判別器進行半監(jiān)督的學(xué)習(xí).Augustus[16]提出半監(jiān)督生成對抗網(wǎng)絡(luò)(Semi-Supervised GAN,SGAN),強制判別器輸出類標(biāo)簽,實現(xiàn)了在只有少量標(biāo)記數(shù)據(jù)的情況下,大量未標(biāo)記數(shù)據(jù)能輔助判別器提取不同類別圖像的特征,從而影響判別器的分類效果及泛化能力.但SGAN上的判別器是由線性卷積層組成,其抽象層次較低,不能提取圖像更深層次的特征,從而不能完整學(xué)習(xí)到各個類別之間的差異性,因此分類精度不高.本文提出半監(jiān)督多層感知器生成對抗網(wǎng)絡(luò)(Semi-Supervised Multilayer Perceptron Generative Adversarial Network,SMPGAN),采用多層感知器卷積層代替SGAN判別器上的線性卷積層對底層概念的每個局部特征做一個更好的抽象,并接收大量無標(biāo)記數(shù)據(jù)、少量標(biāo)記數(shù)據(jù),以及生成器生成的數(shù)據(jù)以提高正確分類率,解決了監(jiān)督分類中因標(biāo)記數(shù)據(jù)太少產(chǎn)生的模型泛化能力不強的問題;在生成器上使用特征匹配,能夠?qū)⑸蓴?shù)據(jù)分布盡量與真實數(shù)據(jù)分布拉近,進一步促進了判別器提取圖像不同類別特征的能力.實驗結(jié)果表明,SMPGAN的分類精度及其生成的圖像質(zhì)量都有明顯提高.
第1節(jié)為引言,第2節(jié)介紹了半監(jiān)督學(xué)習(xí),第3節(jié)介紹了傳統(tǒng)的GAN以及SGAN的基本原理,第4節(jié)對SMPGAN的多層感知器卷積層、模型結(jié)構(gòu)和損失函數(shù)進行了詳細的介紹,第5節(jié)是實驗結(jié)果及分析,第6節(jié)為結(jié)束語.
在傳統(tǒng)的監(jiān)督學(xué)習(xí)中,模型通過對大量有標(biāo)記的訓(xùn)練樣本進行學(xué)習(xí),從而可以用來預(yù)測從未見過的示例數(shù)據(jù)的標(biāo)簽.然而,獲取這樣的標(biāo)記數(shù)據(jù)比較困難,因為可能需要耗費大量的人力物力,但在實際生活中未標(biāo)記數(shù)據(jù)卻大量存在,而且獲取的成本也較低.另一方面,只使用少量的標(biāo)記樣本訓(xùn)練出的模型往往不具備很好的泛化能力,并且放棄對大量未標(biāo)記數(shù)據(jù)的使用也是對數(shù)據(jù)資源的極大浪費.
半監(jiān)督學(xué)習(xí)是結(jié)合監(jiān)督學(xué)習(xí)與無監(jiān)督學(xué)習(xí)的一種學(xué)習(xí)方法,它通過使用少量的標(biāo)記數(shù)據(jù)以及大量的未標(biāo)記數(shù)據(jù)來改善模型的性能,使其比在只使用標(biāo)記數(shù)據(jù)的情況下得到更好的分類或識別結(jié)果,從而充分利用了大量的無標(biāo)簽數(shù)據(jù)資源,并提高了模型的泛化能力.
半監(jiān)督學(xué)習(xí)的基本設(shè)置為給定一個來自某未知分布的有標(biāo)記示例集L={(x1,y1),(x2,y2),…,(x|L|,y|L|)}以及一個未標(biāo)記示例集U={x1,x2,…,x|U|},期望學(xué)得函數(shù)f:X→Y可以準確地對示例x預(yù)測其標(biāo)記y[17].其中,xi,xj∈X均為d維向量,yi∈Y為示例xi的標(biāo)記,|L|和|U|分別為L和U的大小,即它們所包含的示例數(shù).
生成對抗網(wǎng)絡(luò)(GAN)由一個生成器G和一個判別器D構(gòu)成,生成器G負責(zé)將采樣于先驗分Pz(z)的隨機噪聲z映射成類似于真實數(shù)據(jù)分布Pdata(x)的生成數(shù)據(jù)分布PG(z);判別器D可以看成是將數(shù)據(jù)映射到判別概率的函數(shù):D(x)→(0,1),其被訓(xùn)練用于判別輸入的數(shù)據(jù)是來自于真實數(shù)據(jù)分布Pdata(x)還是生成數(shù)據(jù)分布PG(z).G和D在相互對抗訓(xùn)練的過程中,分別不斷提高自己的生成能力和判別能力,直到PG(z)足以完美匹配Pdata(x),則判別器將會對所有輸入給出0.5的概率值,此時,兩者也達到了一個動態(tài)的納什均衡[18].可以將這樣的訓(xùn)練任務(wù)看作是具有值函數(shù)V(D,G)的極大極小博弈,由公式(1)給出定義:
(1)
其中,D(x)表示D判斷真實數(shù)據(jù)是否真實的概率,而D(G(z))是D判斷G生成的數(shù)據(jù)是否真實的概率.G應(yīng)該希望自己生成的數(shù)據(jù)越接近真實越好,即G希望D(G(z))盡可能的大,此時V(D,G)會變小,對G來說應(yīng)該最小化.而D的能力越強,越能正確判別出真實數(shù)據(jù)和生成數(shù)據(jù),D(x)應(yīng)該盡可能大,D(G(z))應(yīng)該盡可能小,此時V(D,G)會變大,因此對D來說應(yīng)該最大化.GAN的流程圖如圖1所示.
圖1 GAN流程圖Fig.1 GAN flow chart
半監(jiān)督生成對抗網(wǎng)絡(luò)(SGAN)由一個生成器G和一個能夠進行多分類的判別器D組成,且二者均為卷積神經(jīng)網(wǎng)絡(luò).SGAN通過在大量無標(biāo)記數(shù)據(jù)的基礎(chǔ)上加入少量標(biāo)記數(shù)據(jù),不僅實現(xiàn)了GAN判別器作為分類器以對輸入數(shù)據(jù)進行正確分類,而且在大量無標(biāo)記數(shù)據(jù)的輔助下,避免了傳統(tǒng)分類方法在少量標(biāo)記數(shù)據(jù)上產(chǎn)生的過擬合問題.原始GAN判別器D的最后一層是以Sigmoid單元結(jié)束的,限制了網(wǎng)絡(luò)只能輸出(0,1)的概率值,即輸出的值接近于1表示輸入數(shù)據(jù)為真實數(shù)據(jù),接近于0則表示輸入數(shù)據(jù)為生成器G生成的數(shù)據(jù).這種概率值很重要,因為通過它,D能夠?qū)⑻荻确答伣oG,從而可以提高G生成逼真圖像的能力.但SGAN將Softmax激活函數(shù)作為D的最后一層,讓D可以輸出N+1個類別,其中N為原始數(shù)據(jù)集類別數(shù)目,而第N+1類則代表生成器生成的數(shù)據(jù)為“假”,即D輸出的N+1個單元對應(yīng)為[class1,class2,…,classN,fake].此時,D也充當(dāng)了分類器的角色,并且具有三種不同的輸入數(shù)據(jù)源用于訓(xùn)練,即真實有標(biāo)記數(shù)據(jù)、真實無標(biāo)記數(shù)據(jù)和生成器生成的數(shù)據(jù).一方面,判別器通過學(xué)習(xí)區(qū)分真實無標(biāo)記數(shù)據(jù)和生成的數(shù)據(jù),可以很好地捕獲到真實無標(biāo)記數(shù)據(jù)具有的特定特征,并且能夠幫助生成器學(xué)習(xí)生成逼真的圖像,這是通過SMPGAN的對抗訓(xùn)練完成的;另一方面,判別器使用真實有標(biāo)記數(shù)據(jù)進行監(jiān)督訓(xùn)練,在能夠正確區(qū)分真實數(shù)據(jù)和生成數(shù)據(jù)的基礎(chǔ)上,進一步精確地對數(shù)據(jù)集類別進行分類.在訓(xùn)練過程中,D實際上同時進行了無監(jiān)督學(xué)習(xí)和有監(jiān)督學(xué)習(xí),可以將其稱之為D/C網(wǎng)絡(luò).SGAN的流程圖如圖2所示.
圖2 SGAN流程圖Fig.2 SGAN flow chart
多層感知器(Multilayer Perceptron,MLP)是一種前向結(jié)構(gòu)的人工神經(jīng)網(wǎng)絡(luò),映射一組輸入向量到一組輸出向量.MLP的每一層的節(jié)點都全連接到下一層,且每個節(jié)點都帶有非線性激活函數(shù),克服了感知器不能對線性不可分數(shù)據(jù)進行識別的弱點.MLP作為一個通用函數(shù)逼近器,在對局部數(shù)據(jù)塊進行特征提取的過程中,能夠逼近潛在概念分布的更多抽象表示,并且MLP同卷積神經(jīng)網(wǎng)絡(luò)一樣,也是一個深度模型,均通過反向傳播進行訓(xùn)練.而傳統(tǒng)卷積神經(jīng)網(wǎng)絡(luò)的線性卷積層對下層數(shù)據(jù)塊來說只是一個廣義線性模型[19],其抽象層次較低,提取圖像深層次特征的能力較弱,進而對圖像的分類精度不高.因此,本文采用多層感知器卷積層(Multilayer perceptron convolutional layer,MPConv),使用一個含有多層感知器的微網(wǎng)絡(luò)結(jié)構(gòu)對輸入數(shù)據(jù)進行卷積,使圖像局部區(qū)域的深層抽象特征能更好地被提取出來.以在判別器上使用Leaky Relu激活函數(shù)為例,MPConv執(zhí)行的計算如公式(2)所示.
(2)
其中(i,j)表示特征映射的像素索引,xi,j是以(i,j)為中心的輸入?yún)^(qū)域,k是索引特征映射的通道,n為多層MPConv的層數(shù),f為每一層數(shù)據(jù)塊執(zhí)行卷積操作并通過激活函數(shù)的最后結(jié)果.通過式子可以看出,MPConv首先對每個局部感受野的神經(jīng)元進行了更復(fù)雜的線性運算,然后再通過一個非線性的激活函數(shù),進一步提取圖像的非線性特征.并且,這種結(jié)構(gòu)在多通道的情況下還可以實現(xiàn)不同通道上特征映射的線性交互和信息整合,提高了網(wǎng)絡(luò)的表達能力.
多層感知器卷積層的結(jié)構(gòu)如圖3所示,可以看出,一個多層感知器卷積層由一個線性卷積層和一個含有2個全連接層的多層感知器組成.線性卷積層負責(zé)提取圖像的基本線性特征,而多層感知器的擬合能力更強大,可以提取圖像更深層次的線性特征,并且激活函數(shù)的使用引入了非線性因素,進一步提升了網(wǎng)絡(luò)的表達能力.
圖3 MPConv結(jié)構(gòu)圖Fig.3 MPConv structure diagram
本文對SGAN的判別器結(jié)構(gòu)做了相應(yīng)的改進,將其線性卷積層替換成多層感知器卷積層,并使用池化層將圖像下采樣到原始大小的一半.一個多層感知器卷積層和一個最大池化層組成一個微網(wǎng)絡(luò)結(jié)構(gòu),而SMPGAN的判別器又由4個微網(wǎng)絡(luò)結(jié)構(gòu)組成,如圖4所示.原始MINIST數(shù)據(jù)集的圖像大小為28×28×1,第一個微網(wǎng)絡(luò)結(jié)構(gòu)含有32個卷積核,由于實驗中卷積參數(shù)padding設(shè)置為“same”,因此通過MPCONV后的輸出圖像大小并不會改變,但其通道數(shù)會與當(dāng)前卷積核的個數(shù)相同.但通過最大池化層之后,圖像會被下采樣到其輸入前大小的一半,此時圖像大小縮減到14×14×32.以此類推,卷積核個數(shù)按照上一個微網(wǎng)絡(luò)結(jié)構(gòu)的2倍逐漸增加,而輸出圖像大小以輸入到當(dāng)前微網(wǎng)絡(luò)結(jié)構(gòu)時圖像大小的1/2進行減小,通道數(shù)則與當(dāng)前微結(jié)構(gòu)中卷積核的個數(shù)相同.直到圖像變成1×1×128的大小時,再拉伸成一維張量輸入到全連接層,最后再使用Softmax激活函數(shù)輸出分類結(jié)果.表1是SMPGAN的體系結(jié)構(gòu)描述.
圖4 SMPGAN判別器結(jié)構(gòu)圖Fig.4 SMPGAN discriminator structure diagram
SMPGAN的判別器同時也充當(dāng)了一個N+1分類器的角色,它接收一個數(shù)據(jù)點作為輸入,輸出一個N+1維的邏輯向量:{c1,c2,…,ck+1}.這些邏輯向量可以轉(zhuǎn)換成類概率,其中公式(3)表示x為假的概率,而公式(4)表示x為真實的且屬于類i的概率.
表1 SMPGAN的體系結(jié)構(gòu)描述
Table 1 Description of the SMPGAN architecture
生成器?使用4個微步幅卷積(反卷積)學(xué)習(xí)空間的上采樣.?除輸出層使用Tanh激活函數(shù)外,其他層均使用Relu激活函數(shù).?除最后一層外每一層均使用BatchNormalization.判別器?由4個微網(wǎng)絡(luò)結(jié)構(gòu)組成,每個微網(wǎng)絡(luò)由1個多層感知器卷積層和1個最大池化層組成,多層感知器卷積層用于提取圖像特征,最大池化層用于將圖像大小下采樣到輸入時的一半.?除輸出層使用Softmax激活函數(shù)外,其他層均使用LeakyRelu激活函數(shù).?只在第二層和第三層上使用BatchNormalization,因為不在第一層使用能夠增加模型的穩(wěn)定性,不在最后一層使用是因為判別器的最后一層會作為生成器特征匹配中的嵌入層.?第一層和第三層上使用Dropout可以有效減少網(wǎng)絡(luò)參數(shù),防止模型過擬合.?將其設(shè)置成一個最后一層使用Softmax激活函數(shù)的N+1類分類器,用于將真實數(shù)據(jù)正確地分類為N+1類中的類別,將生成器生成的數(shù)據(jù)分類為第N+1個代表“假”的類別.
(3)
(4)
這樣一來,SMPGAN的損失函數(shù)就可以由標(biāo)記損失和無標(biāo)記損失兩部分組成,如公式(5)所示.其中,公式(6)表示標(biāo)記損失,即分類損失;公式(7)表示無標(biāo)記損失,即對抗損失,可以看出無標(biāo)記損失是標(biāo)準的GAN博弈值,與傳統(tǒng)GAN的判別器損失函數(shù)相同.
LD=Llabeled+Lunlabeled
(5)
Llabeled=-Ex,y~pdatalog[pmodel(y=i|x,i (6) Lunlabeled=Ex~pdatalog[1-pmodel(y=N+1|x)]+Ex~Glog[pmodel(y=N+1|x)] (7) SMPGAN生成器的損失函數(shù)由對抗損失和特征匹配損失兩部分組成,如公式(8)所示.公式(9)與傳統(tǒng)GAN相同,表示生成器在與判別器進行對抗訓(xùn)練中學(xué)習(xí)到的對抗損失.特征匹配由文獻[20]提出,其原理在于通過為生成器指定一個新的目標(biāo)來防止它在當(dāng)前判別器上過度訓(xùn)練,從而解決SGAN訓(xùn)練不穩(wěn)定的問題.新的目標(biāo)不是最大化判別器的輸出,而是要求生成器生成與真實數(shù)據(jù)的統(tǒng)計信息相匹配的數(shù)據(jù),即訓(xùn)練生成器匹配判別器中間層特征的期望值.對于生成器來說,這是一個自然的統(tǒng)計數(shù)據(jù)選擇,因為通過訓(xùn)練判別器,可以很自然地找到那些最能區(qū)別真實數(shù)據(jù)和當(dāng)前模型生成數(shù)據(jù)的特征.特征匹配的損失如公式(10)所示,其中f(x)表示判別器中間層上的激活. LG=Ladversarial+Lfeature-matching (8) Ladversarial=-Ex~Glog[1-pmodel(y=N+1|x)] (9) (10) 本文的實驗環(huán)境配置為:曙光W740-G20 GPU服務(wù)器,Intel Xeon E5-2690v4 2.6GHz 35M 14核心處理器,256GB DDR4 ECC REG內(nèi)存,300G SAS硬盤,MX FDR 56GB單端口HCA卡,NV TESLA K80GPU卡,TensorFlow平臺. 為與SGAN的實驗結(jié)果進行對比,本文也在MINIST數(shù)據(jù)集上進行實驗驗證,經(jīng)過實驗測試,采用小批量隨機梯度下降法進行訓(xùn)練,批量參數(shù)為512.噪聲從[-1,1]的均勻分布中隨機采樣,采樣大小與批量參數(shù)相同.生成器為4層反卷積結(jié)構(gòu),其卷積核大小依次為2,3,4,6,且除第一層步長設(shè)置為1外,其余3層步長均為2.判別器由4個微網(wǎng)絡(luò)結(jié)構(gòu)組成,每個微網(wǎng)絡(luò)中多層感知器卷積層的卷積核大小均為3,步長為1;而最大池化層的卷積核大小設(shè)置為2,步長也為2,用于把圖像下采樣到輸入時大小的一半.學(xué)習(xí)率參數(shù)為0.0002,并使用Adam優(yōu)化器分別對生成器和判別器的損失函數(shù)進行優(yōu)化.本文在只有25個、50個、100個和1000個標(biāo)記數(shù)據(jù)的情況下對SMPGAN做了相應(yīng)的實驗,并在同樣的標(biāo)記數(shù)據(jù)量的條件下與SGAN的分類結(jié)果做了對比,以此證明SMPGAN結(jié)構(gòu)的優(yōu)越性. 5.2.1 損失函數(shù)圖像分析 圖5是SMPGAN判別器上的標(biāo)記損失變化趨勢圖,從圖上可以看出判別器的標(biāo)記損失在整個訓(xùn)練過程中逐漸減小,直到減小到接近于0時網(wǎng)絡(luò)開始收斂,反映了判別器的分類能力在訓(xùn)練中在不斷提升的過程,最終達到一個穩(wěn)定的最高分類精度值.圖6和圖7分別是SMPGAN判別器上的無標(biāo)記損失(對抗損失)變化趨勢圖和生成器上的對抗損失變化趨勢圖,判別器的對抗損失在逐漸下降,而生成器的對抗損失在逐漸上升,這正是兩個網(wǎng)絡(luò)進行對抗訓(xùn)練的結(jié)果,并且其趨勢也符合第4.3節(jié)中對抗損失函數(shù)的定義,也證明了網(wǎng)絡(luò)在訓(xùn)練過程中朝著正確的方向在發(fā)展,并未出現(xiàn)異常情況.圖8是SMPGAN生成器上的特征匹配損失變化趨勢圖,可以看到其值先出現(xiàn)減小隨后又逐漸上升的狀態(tài),因特征匹配損失衡量的是真實數(shù)據(jù)分布和生成數(shù)據(jù)分布在判別器中間層激活上的距離,在訓(xùn)練初期,真實數(shù)據(jù)分布和生成數(shù)據(jù)分布差異較大,判別器能夠很容易地將兩者分辨出來,隨著對抗訓(xùn)練的進行,生成數(shù)據(jù)分布逐漸擬合真實數(shù)據(jù)分布,但此時判別器的判別能力還不夠強大,不足以正確區(qū)分出這兩個分布,因此出現(xiàn)特征匹配損失的值逐漸減小的情況.而到訓(xùn)練中后期,隨著判別器的判別能力在不斷地增強,真實數(shù)據(jù)分布和生成數(shù)據(jù)分布能夠逐漸被正確區(qū)分出來,因此特征匹配損失的值出現(xiàn)逐漸增大的情況. 圖5 SMPGAN的標(biāo)記損失變化趨勢圖Fig.5 Labeled loss trend chart on SMPGAN 圖6 SMPGAN的無標(biāo)記損失變化趨勢圖Fig.6 Unlabeled loss trend chart on SMPGAN 圖7 SMPGAN的對抗損失變化趨勢圖Fig.7 Adversarial loss trend chart on SMPGAN 圖8 SMPGAN的特征匹配損失變化趨勢圖Fig.8 Feature-matching loss trend chart on SMPGAN 5.2.2 時間復(fù)雜度分析 本文通過卷積神經(jīng)網(wǎng)絡(luò)的時間復(fù)雜度衡量模型的運行時間效率,因只對SMPGAN判別器的結(jié)構(gòu)進行了相應(yīng)改進,這里只考慮其判別器卷積層的時間復(fù)雜度1https://zhuanlan.zhihu.com/p/31575074.公式(11)是單個卷積層的時間復(fù)雜度,公式(12)是卷積神經(jīng)網(wǎng)絡(luò)整體的時間復(fù)雜度.其中,為當(dāng)前層輸出特征映射的大小;為當(dāng)前層卷積核的大小;為當(dāng)前層卷積核的通道數(shù),即輸入通道數(shù),也是上一層的輸出通道數(shù);為當(dāng)前層的卷積核個數(shù),即當(dāng)前層的輸出通道數(shù);為判別器上所有卷積層的層數(shù).可以看出單個卷積層的時間復(fù)雜度由輸出特征映射的大小、當(dāng)前卷積核的大小、當(dāng)前層的輸入通道數(shù)和輸出通道數(shù)完全決定,而整體卷積神經(jīng)網(wǎng)絡(luò)的時間復(fù)雜度為所有單個卷積層時間復(fù)雜度的總和.而SMPGAN的多層感知器卷積層相較于SGAN的線性卷積層更為復(fù)雜,其時間復(fù)雜度由卷積層的時間復(fù)雜度和多層感知器的時間復(fù)雜度兩部分組成,因此SMPGAN的時間復(fù)雜度會高于SGAN的時間復(fù)雜度,即SMPGAN達到其最高準確率需要的運行時間更長. Time~O(M2·K2·Cin·Cout) (11) (12) 5.2.3 分類結(jié)果 表2是SGAN和SMPGAN在MNIST數(shù)據(jù)集上的4種標(biāo)記樣本數(shù)量下的分類結(jié)果對比.可以看到,當(dāng)標(biāo)記樣本數(shù)量為25和100時,SMPGAN的分類準確率相較于SGAN都提高了1%左右;而當(dāng)標(biāo)記樣本為50個時,SMPGAN的分類精度提升相對較高,比SGAN在相同的標(biāo)記樣本數(shù)量下提高了5.8%;當(dāng)標(biāo)記樣本數(shù)量為1000時,兩者的分類結(jié)果相差不大,但都能達到96%左右的精度,證明了半監(jiān)督學(xué)習(xí)在少量標(biāo)記樣本的輔助下有助于分類精度的提升.通過在4種不同的標(biāo)記樣本數(shù)量下進行實驗的結(jié)果顯示,SMPGAN的分類精度均高于SGAN,證明SMPGAN判別器上的多層感知器卷積層結(jié)構(gòu)和其生成器上的特征匹配在對分類結(jié)果提升方面的有效性. 表2 SGAN和SMPGAN在4種標(biāo)記樣本數(shù)量下的分類結(jié)果 標(biāo)記樣本數(shù)量SGANSMPGAN10000.9640.9671000.9280.945500.8830.941250.8020.812 圖9、圖10、圖11和圖12分別是SGAN和SMPGAN在25個、50個、100個和1000個標(biāo)記樣本下的ROC曲線對比圖.因SGAN和SMPGAN的判別器都為多類分類器,為了便于比較,本文的ROC曲線采用10個類別的ROC曲線平均值繪制.可以看出,當(dāng)標(biāo)記樣本數(shù)為25的時候,SGAN的ROC曲線有高于SMPGAN的ROC曲線的地方,但SMPGAN的AUC值仍大于SGAN的AUC值;當(dāng)標(biāo)記樣本數(shù)為50和100的時候,SMPGAN的ROC曲線明顯高于SGAN的ROC曲線,兩者的AUC值差別也較大;當(dāng)標(biāo)記樣本數(shù)為1000的時候,SGAN和SMPGAN的ROC曲線將近重合,兩者的AUC值也相差甚小,這與表2的分類結(jié)果相對應(yīng).但在這四種情況下,SMPGAN的AUC值都一直高于SGAN的AUC值,進一步說明SMPGAN訓(xùn)練出的分類器性能更好. 5.2.4 圖像生成結(jié)果 圖9 25個標(biāo)記樣本下的ROC曲線對比圖Fig.9 Comparison of ROC curves under 25 labeled samples 圖10 50個標(biāo)記樣本下的ROC曲線對比圖Fig.10 Comparison of ROC curves under 50 labeled samples 圖11 100個標(biāo)記樣本下的ROC曲線對比圖Fig.11 Comparison of ROC curves under 100 labeled samples 圖13和圖14是SGAN生成的圖像和SMPGAN生成的圖像,從視覺效果上看出,SMPGAN生成的圖像比SGAN生成的圖像更加清晰真實,且更具多樣性.因SGAN和SMPGAN主要是用于圖像半監(jiān)督分類,所以本文重點并不在圖像生成上面,但是通過SMPGAN生成的圖像可以看出,在一定程度上提升判別器捕獲圖像深層特征的能力,促使生成器生成更接近于真實樣本的圖像,進一步說明了GAN的判別器和生成器在進行對抗學(xué)習(xí)、相互博弈的過程中能夠互相影響的特點. 圖12 1000個標(biāo)記樣本下的ROC曲線對比圖Fig.12 Comparison of ROC curves under 1000 labeled samples 圖13 SGAN生成的圖像Fig.13 Image generated by SGAN 圖14 SMPGAN生成的圖像Fig.14 Image generated by SMPGAN 本文提出了半監(jiān)督多層感知器生成對抗網(wǎng)絡(luò)(SMPGAN),通過將SGAN判別器上的線性卷積層替換成多層感知器卷積層以提取圖像潛在的抽象特征,在大量無標(biāo)記數(shù)據(jù)的基礎(chǔ)上加入少量有標(biāo)記數(shù)據(jù),并將判別器轉(zhuǎn)換為一個N+1類分類器以實現(xiàn)在少量標(biāo)記訓(xùn)練數(shù)據(jù)上進行分類,避免了傳統(tǒng)分類方法中的過擬合問題.同時,在生成器上使用特征匹配進一步提高模型的分類能力.在MINIST數(shù)據(jù)集上的實驗表明,在標(biāo)記數(shù)據(jù)為25個、50個、100個和1000個的情況下,SMPGAN的分類精度均高于SGAN的分類精度,且SMPGAN生成的圖像相較于SGAN也更加清晰.5 實 驗
5.1 參數(shù)設(shè)置
5.2 實驗結(jié)果及分析
Table 2 Classification results of SGAN and SMPGAN under 4 kinds of labeled sample numbers6 結(jié)束語