陳才扣,高 俊
(揚(yáng)州大學(xué) 信息工程學(xué)院,江蘇 揚(yáng)州 225127)
近年來,一種新型生成模型的提出引起了廣泛關(guān)注,以Goodfellow 等[1]2014 年提出的生成對(duì)抗模型(Generative Adversarial Nets,GAN)為代表,強(qiáng)調(diào)生成器(Generator)與判別器(Discriminator)兩者之間進(jìn)行博弈,最終輸出高精度的圖像。迄今為止,生成對(duì)抗網(wǎng)絡(luò)已經(jīng)在圖像生成、語音合成、目標(biāo)檢測(cè)、風(fēng)格遷移等領(lǐng)域發(fā)揮作用。在博弈過程中需要同步優(yōu)化生成器和判別器,期望達(dá)到納什均衡,但在實(shí)際過程中,難以要求判別器與生成器同時(shí)達(dá)到收斂,最終導(dǎo)致生成對(duì)抗模型的穩(wěn)定性不足。在訓(xùn)練過程中,生成器更偏向于生成單一樣本,而判別器傾向于識(shí)別單一樣本,導(dǎo)致生成對(duì)抗模型出現(xiàn)模式坍塌(Mode collapse)問題,使生成的圖片不具有多樣性。
為了解決生成對(duì)抗模型的穩(wěn)定性和多樣性問題,學(xué)者們?cè)谠忌蓪?duì)抗模型上進(jìn)行多方面改進(jìn)[2-6]。其中,最具有代表性的是Wasserstein GAN,首先從理論上解釋了GAN 訓(xùn)練不穩(wěn)定的原因,原模型中采用的JS 散度在一定情況下會(huì)產(chǎn)生梯度消失問題,因而選擇Wasserstein 距離來度量真實(shí)圖像分布與生成圖像分布之間的距離。針對(duì)模式坍塌問題,Mescheder 等[7]觀察到GANs 很難通過梯度下降的優(yōu)化方式訓(xùn)練到收斂,而WGAN 中引入梯度懲罰項(xiàng)可很好地緩解模式坍塌問題。
在非穩(wěn)態(tài)的環(huán)境中,神經(jīng)網(wǎng)絡(luò)模型的遺忘能力會(huì)隨著網(wǎng)絡(luò)深度的加深而加?。?]。如果鑒別器忘記了先前的分類邊界,可能會(huì)造成訓(xùn)練不穩(wěn)定或重復(fù)訓(xùn)練等問題。在復(fù)雜數(shù)據(jù)集下,這些問題變得更加突出??梢哉f,用監(jiān)督信息增強(qiáng)鑒別器可鼓勵(lì)其學(xué)習(xí)更穩(wěn)定的表征,防止災(zāi)難性的遺忘。將一種基于角度旋轉(zhuǎn)的自監(jiān)督模型應(yīng)用于生成對(duì)抗模型中[9],用前置任務(wù)從大規(guī)模的無監(jiān)督數(shù)據(jù)中挖掘自身的監(jiān)督信息,將樣本圖像旋轉(zhuǎn)0°、90°、180°、270°作為偽標(biāo)簽,建立一個(gè)平穩(wěn)的對(duì)抗學(xué)習(xí)環(huán)境來抵抗模式坍塌問題,以提高圖像的特征學(xué)習(xí)能力。
但是,基于旋轉(zhuǎn)角度自監(jiān)督的方式是在整體上進(jìn)行旋轉(zhuǎn)對(duì)比,只考慮到樣本的全局信息,并不能注意到圖片的局部信息,模型細(xì)化能力差,生成的圖片不夠清晰。因此,本文基于角度旋轉(zhuǎn)自監(jiān)督生成對(duì)抗網(wǎng)絡(luò)提出一種基于圖像塊對(duì)比自監(jiān)督生成對(duì)抗模型,同時(shí)解決兩個(gè)前置任務(wù):角度旋轉(zhuǎn)與圖像分割。模型不但能夠注意到整體之間的聯(lián)系,而且能從局部細(xì)節(jié)上獲取信息,使生成器的表征能力得到提升。
生成對(duì)抗網(wǎng)絡(luò)如圖1 所示。對(duì)抗生成模型分為生成器和判別器。生成器通過輸入噪聲產(chǎn)生虛假圖片,判別器通過將真實(shí)圖片與生成器輸出的虛假圖片進(jìn)行對(duì)比,使得生成器不斷更新,最終輸出高質(zhì)量的圖片。生成器不斷輸出虛假的圖片想要試圖騙過判別器,而判別器的判別能力逐步加強(qiáng),令生成器產(chǎn)生的虛假圖片與真實(shí)圖片區(qū)分開來,迫使生成器不得不逐步提高自己的能力,生成與真實(shí)圖片更相似的圖片。生成器和判別器在對(duì)抗中學(xué)習(xí),模型的生成能力與判別能力也逐漸增強(qiáng)。
生成器G 捕捉樣本數(shù)據(jù)的分布,用服從某一均勻分布或高斯分布等的噪聲向量 z 生成一個(gè)類似真實(shí)訓(xùn)練數(shù)據(jù)的樣本,追求效果是與真實(shí)樣本越相似越好。
Fig.1 Generative adversarial nets圖1 生成對(duì)抗網(wǎng)絡(luò)
判別器D 是一個(gè)二分類器,估計(jì)一個(gè)樣本來自于訓(xùn)練數(shù)據(jù)的概率。如果樣本來自于真實(shí)的訓(xùn)練數(shù)據(jù),則D 輸出大概率,否則D 輸出小概率。
該模型屬于一種基于圖像變換的自監(jiān)督對(duì)抗生成模型,如圖2所示。
Fig.2 Self-supervised model based on angular rotation圖2 基于角度旋轉(zhuǎn)的自監(jiān)督模型
生成器通過噪聲隨機(jī)生成32*32*3 的虛假圖片,先進(jìn)行圖片旋轉(zhuǎn)操作,將真假圖片隨機(jī)旋轉(zhuǎn)0。、90。、180。、270。送入模型中。將未旋轉(zhuǎn)的圖片送入真假判別器D1中判別圖片真假,旋轉(zhuǎn)之后的圖片送入角度判別器D2中判別旋轉(zhuǎn)角度,真假判別器D1與角度判別器D2共享權(quán)值。其目標(biāo)函數(shù)定義如下:
其中,x~PG表示圖片來自于生成器,x~Pdata表示圖片是真實(shí)的,V(G,D)表示上述的主判別器優(yōu)化函數(shù),R=r表示裁剪后圖像的旋轉(zhuǎn)角度標(biāo)簽,r={0,90,180,270},xr表示經(jīng)過旋轉(zhuǎn)后對(duì)應(yīng)標(biāo)簽所對(duì)應(yīng)的圖,QD(R|xr)表示圖像旋轉(zhuǎn)角度預(yù)測(cè)分布,α、β表示判別器損失權(quán)重。
考慮到基于角度旋轉(zhuǎn)自監(jiān)督的生成對(duì)抗模型僅考慮了全局相關(guān)性,而忽略了局部特性關(guān)聯(lián)性,本文在角度旋轉(zhuǎn)的基礎(chǔ)上引入patches 分割技術(shù),構(gòu)建基于patches 的自監(jiān)督生成對(duì)抗模型,如圖3 所示,使模型能夠同時(shí)注意全局與局部信息。
Fig.3 Self-supervised model based on patches clipping and segmentation圖3 基于patches裁剪分割的自監(jiān)督模型
該模型將噪聲輸入判別器G(z),產(chǎn)生虛假的圖片,然后將產(chǎn)生的虛假圖片與真實(shí)圖片進(jìn)行隨機(jī)分割處理,按順序分別標(biāo)記為0、1、2、3、4。其中,0 代表未被分割的圖片,1 代表圖片被分割后的第一塊,以此類推。通過給真實(shí)圖片與虛假圖片做標(biāo)記,實(shí)現(xiàn)自監(jiān)督的目的。接下來將標(biāo)記的圖片送入判別器中進(jìn)行判別,主判別器用來判別未分割的圖片,與普通生成對(duì)抗模型的判別器功能一致,判別圖片是否為真,得到真假損失函數(shù)。將分割后的圖片送入位置信息判別器D3,位置信息判別器損失函數(shù)可表示為:
其中,x~PG表示圖片來自于生成器,x~Pdata表示圖片是真實(shí)的,V(G,D)表示上述的主判別器優(yōu)化函數(shù),M=m表示裁剪后的圖像分塊位置標(biāo)簽,m={0,1,2,3,4},xm表示圖像經(jīng)裁剪過后對(duì)應(yīng)標(biāo)簽所對(duì)應(yīng)的圖塊,QD(M|xm)表示圖像分塊位置預(yù)測(cè)分布,η、λ表示判別器損失權(quán)重。
此時(shí),模型的總損失函數(shù)為:
考慮到將圖像分塊后忽略了局部與局部之間的關(guān)系,本文通過patches 圖像重疊的方法又將不同patches 之間的信息聯(lián)系起來[14],如圖4 所示。原輸入為左上角4*4 邊框patches,大小為,通過改變分割區(qū)域大小,將輸入patches 的大小增加至,此時(shí)輸入圖像的信息包含了另外3 個(gè)分塊的部分信息。如圖5 所示,以邊緣重疊后第一塊patches 為例,除原先的4*4 窗口外,分別包含另外3 個(gè)輸入patches 窗口的信息。通過這種重疊patches 輸入的方法,可有效增強(qiáng)分塊后局部與局部之間的信息聯(lián)系。
Fig.4 Amplify edge information圖4 擴(kuò)增邊緣信息
IS(Inception Score)[10]是生成模型的一種評(píng)價(jià)指標(biāo),其主要衡量模型兩方面的性能:①生成的圖片是否清晰;②生成的圖片是否多樣。
Fig.5 Information exchange among between patches圖5 不同patches之間的信息交流
FID(Fréchet Inception Distance)[11]用來計(jì)算真實(shí)圖像與生成圖像的特征向量間距離。將生成圖像與真實(shí)圖像輸入分類網(wǎng)絡(luò)Inception v3 Network[12],在倒數(shù)第二個(gè)全連接層輸出1*1*2 048 特征向量,用于度量真實(shí)圖像在分類網(wǎng)絡(luò)中輸出的2 048 個(gè)特征向量集合的均值和協(xié)方差矩陣。
其中,μx、∑x表示真實(shí)圖像在分類網(wǎng)絡(luò)中輸出的 2 048 個(gè)特征向量集合的均值和協(xié)方差矩陣;μg、∑g表示生成圖像在分類網(wǎng)絡(luò)中輸出的2 048 個(gè)特征向量集合的均值和協(xié)方差矩陣。
CIFAR-10 數(shù)據(jù)集[13]:如圖6 的左圖所示,CIFAR-10數(shù)據(jù)集由10 個(gè)類的60 000 個(gè)32*32 彩色圖像組成,每個(gè)類有6 000 個(gè)圖像。將數(shù)據(jù)集分為兩部分,50 000 個(gè)訓(xùn)練圖像和10 000個(gè)測(cè)試圖像。
STL-10 數(shù)據(jù)集[14]:如圖6 的右圖所示,STL-10 數(shù)據(jù)集由10 類100 000 張96*96 彩色圖像構(gòu)成,設(shè)計(jì)靈感來自于CIFAR-10 數(shù)據(jù)集。但與其不同的是,該數(shù)據(jù)集中每個(gè)類的標(biāo)記訓(xùn)練示例較少,以便在監(jiān)督訓(xùn)練之前學(xué)習(xí)圖像模型。
實(shí)驗(yàn)平臺(tái)為PyCharm,實(shí)驗(yàn)參數(shù)如下:使用Resnet 殘差結(jié)構(gòu)以及Adam 自適應(yīng)學(xué)習(xí)率的梯度下降算法,設(shè)置batch size 為120,learning rate 為0.000 2,迭代次數(shù)為25 000。損失權(quán)重α=1,β=0.5,η=0.5,λ=0.5。
Fig.6 CIFAR-10 dataset and STL-10 dataset圖6 CIFAR-10數(shù)據(jù)集與STL-10數(shù)據(jù)集
如圖7、圖8 所示,上面一排為數(shù)據(jù)集中的真實(shí)圖片,下面一排為本文自監(jiān)督模型生成的圖片。生成的圖片是根據(jù)原數(shù)據(jù)集中的10 類圖片進(jìn)行構(gòu)造的,包括飛機(jī)、汽車、鳥、貓、狗等生活中常見的事物,從生成的圖片中仍能清晰看出輪船、狗、汽車等圖像。從生成圖片的視覺效果來看,本文提出的自監(jiān)督生成對(duì)抗模型具有較好的性能。
Fig.7 Images generated by the self-supervised model on the CIFAR-10 dataset圖7 自監(jiān)督模型在CIFAR-10數(shù)據(jù)集上生成的圖像
Fig.8 Images generated by the self-supervised model on the STL-10 dataset圖8 自監(jiān)督模型在STL-10數(shù)據(jù)集上生成的圖像
如表1 所示,本文在同一設(shè)備上、同樣的實(shí)驗(yàn)環(huán)境下,分別采用原始生成對(duì)抗模型、基于角度旋轉(zhuǎn)的自監(jiān)督生成對(duì)抗模型(SS-GAN)、基于裁剪分割的自監(jiān)督生成對(duì)抗模型(SSC-GAN)以及基于角度旋轉(zhuǎn)和裁剪分割的雙自監(jiān)督生成對(duì)抗模型進(jìn)行實(shí)驗(yàn)。相較于原始的生成對(duì)抗模型,基于角度旋轉(zhuǎn)的自監(jiān)督模型(SS-GAN)將FID 降低到25.35,同時(shí)IS從7.662上升到7.871。
本文提出的基于裁剪分割的自監(jiān)督模型與基于角度旋轉(zhuǎn)的自監(jiān)督模型相比,F(xiàn)ID 與IS 獲得的分?jǐn)?shù)相差不大??紤]到裁剪分割自監(jiān)督只將裁剪圖像塊進(jìn)行比較,僅考慮了局部信息,而沒有注意到整體之間的聯(lián)系,因此在其基礎(chǔ)上將局部與整體結(jié)合起來,提出基于角度旋轉(zhuǎn)和裁剪分割的雙自監(jiān)督生成對(duì)抗模型,相當(dāng)于提出兩個(gè)前置任務(wù),采用兩個(gè)輔助判別器。實(shí)驗(yàn)數(shù)據(jù)如表1 所示,本文模型將FID 降低到了24.47,將IS提高到了7.871,效果相當(dāng)明顯。
Table 1 Comparison of FID and IS among original GAN,SS-GAN,SSC-GAN and SS+SSC-GAN models表1 原始GAN、SS-GAN、SSC-GAN、SS+SSC-GAN 4種模型FID與IS對(duì)比
為了更好地增強(qiáng)局部之間的信息傳遞,以拓展patches分割大小,進(jìn)行不同塊之間的信息擴(kuò)增,再次將模型的FID提高到7.952,IS降低到23.34,實(shí)驗(yàn)結(jié)果如表2所示。
Table 2 Comparison of FID and IS before and after adding edge overlap表2 增加邊緣重疊的前后FID、IS對(duì)比
研究表明,在基礎(chǔ)卷積網(wǎng)絡(luò)中采用合適的塊大小分割能夠取得媲美Transformer 的性能,Transformer 具有較好性能并不完全依賴于其注意力層的作用,而在于有效的窗口劃分[15-16]。因此,本文在實(shí)驗(yàn)中也加入不同塊分割進(jìn)行對(duì)比,實(shí)驗(yàn)結(jié)果如表3 所示。經(jīng)過對(duì)不同的分割模型進(jìn)行實(shí)驗(yàn),發(fā)現(xiàn)模型在進(jìn)行4 次分割之后效果最好,塊的數(shù)量低于或高于4 塊,指標(biāo)都會(huì)有所下降。其原因在于過小的patches 分割將使系統(tǒng)過分注重局部之間的聯(lián)系,而過大的patches 分割會(huì)導(dǎo)致局部的直接關(guān)系弱化,最終影響生成圖片的質(zhì)量。
Table 3 Comparison of FID and IS under different Patches segmentation表3 不同Patches分割情況下的FID、IS對(duì)比
本文在角度旋轉(zhuǎn)自監(jiān)督模型上進(jìn)行改進(jìn),在角度判別的前置任務(wù)基礎(chǔ)上新增patches位置判別任務(wù),使模型能夠兼顧全局相似性與局部相關(guān)性。在CIFAR-10 與STL-10數(shù)據(jù)集上進(jìn)行對(duì)比驗(yàn)證,最終取得了比角度旋轉(zhuǎn)自監(jiān)督生成對(duì)抗模型更優(yōu)的結(jié)果。但模型仍有很大的改進(jìn)空間,例如,在前置任務(wù)上還可以有更多建設(shè)性想法以提高圖像表征能力,將在以后工作中改進(jìn)。