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