張立,李林,郭春陽,鐘小華
(廣東白云學(xué)院機電工程學(xué)院,廣州510450)
隨著大數(shù)據(jù)時代的到來,互聯(lián)網(wǎng)上的數(shù)據(jù)資源越來越多,其中圖片類數(shù)據(jù)資源為基于大數(shù)據(jù)集的深度學(xué)習(xí)算法提供了重要的訓(xùn)練樣本。2012年Krizhevsky等人提出AlexNet[1]基于卷積運算的深度學(xué)習(xí)網(wǎng)絡(luò),在ImageNet LSVRC-2010競賽中取得冠軍,并且識別精度高于第二名10.9%,成為卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)在圖像識別領(lǐng)域的重要模型;之后更有VG?GNet系列模型[2]、Inception模型[3]、ResNet系列[4]等優(yōu)秀的卷積神經(jīng)網(wǎng)絡(luò)不斷刷新ImageNet數(shù)據(jù)集的成績,更進一步推動深度卷積神經(jīng)網(wǎng)絡(luò)的發(fā)展。Ian J.Goodfellow等人于2014年10月提出了通過對抗過程估計生成模型的新框架,即生成式對抗網(wǎng)絡(luò)(generative adversarial networks,GAN)[5],作為一種新型無監(jiān)督學(xué)習(xí)的方法。2016年Alec Radford等人提出DCGAN[6]模型,將CNN融入到GAN,從大量的無標(biāo)記數(shù)據(jù)中學(xué)習(xí)特征對圖像進行分類,使模型具有較強的表達(dá)能力;同年Xi Chen等 人提出Info GAN[7]模 型,將信 息 理論與GAN相結(jié)合使輸入樣本更具有可解釋性;2017年Lon Bottou等人提出Wasserstein GAN[8],通過裁剪判別式網(wǎng)絡(luò)的梯度,使GAN訓(xùn)練起來更加容易收斂,生成模型產(chǎn)生的圖片質(zhì)量更高。目前生成式對抗網(wǎng)絡(luò)除了應(yīng)用在機器翻譯,主要應(yīng)用于圖像生成,如超分辨率任務(wù)、語義分割、數(shù)據(jù)增強等任務(wù)。
生成式對抗網(wǎng)絡(luò)是集生成模型和判別模型于一體的機器學(xué)習(xí)網(wǎng)絡(luò),此模型不依賴先驗假設(shè)而完成,網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。生成模型的核心思想是通過已知數(shù)據(jù)集訓(xùn)練隨機噪聲從而產(chǎn)生指定大小、風(fēng)格的圖片,判別模型依據(jù)真實數(shù)據(jù)對生成模型產(chǎn)生的新圖片進行判別,生成模型盡可能的欺騙判別模型,從而形成一個動態(tài)博弈[9]的網(wǎng)絡(luò)。生成模型生成的偽樣本盡可能與真實數(shù)據(jù)相似,判別式模型通過交叉熵?fù)p失函數(shù)對偽數(shù)據(jù)和真實數(shù)據(jù)進行計算。交叉熵?fù)p失函數(shù)如公式(1)所示。
圖1 GAN網(wǎng)絡(luò)結(jié)構(gòu)
式中:P(xi)為xi事件發(fā)生的概率。
生成式對抗網(wǎng)絡(luò)的兩個模型通過損失函數(shù)聯(lián)系起來,在模型訓(xùn)練過程中動態(tài)調(diào)整二者隱藏層的參數(shù),將兩個模型的損失函數(shù)之和作為總的損失函數(shù)進行訓(xùn)練。在訓(xùn)練過程中,D(x)判別輸入數(shù)據(jù)的真?zhèn)尾⒂嬎阆鄳?yīng)的概率值,生成式模型G(z)生成的圖片盡可能使D(G(z))的值小,從而V(D,G)也會變得很小,使用實際梯度下降算法作為該損失函數(shù)的優(yōu)化器。
式中:D(x)為判別器,計算圖片為真的概率值,G(x)為生成器,Pdata(x)服從高斯分布。
圖2為GAN模型損失函數(shù)和訓(xùn)練生成圖片,基于GAN模型生成的數(shù)據(jù)較為模糊,圖片中的噪聲較多;生成式模型和判別式模型的損失函數(shù)在訓(xùn)練過程中不穩(wěn)定,迭代750~1 000次時損失函數(shù)發(fā)生較大波動。主要原因是使用交叉熵作為損失函數(shù),不能很好的度量數(shù)據(jù)分布不一致的數(shù)據(jù),使得迭代初期損失函數(shù)值較大,影響訓(xùn)練速度和效果。
圖2 GAN損失函數(shù)和生成數(shù)據(jù)
原始GAN網(wǎng)絡(luò)通過生成器模型擬合訓(xùn)練集的數(shù)據(jù)真實分布,迭代過程中學(xué)習(xí)訓(xùn)練集的邊緣、顏色等語義特征,但是隨機噪聲z與生成圖像的特征是否相關(guān)、分布是否一致卻是未知的,致使原始GAN模型不能有效的對卷積運算生成的特征進行編碼。信息最大化生成對抗網(wǎng)絡(luò)(information maximizing generative adversarial nets,Info GAN)能夠?qū)W習(xí)離散數(shù)據(jù)與連續(xù)數(shù)據(jù)之間的互信息,影響生成器的輸出變量。Info GAN模型把生成器的噪聲分為兩部分,分別是固定噪聲z和隱變量c。隱變量c為先驗概率分布,可以用來生成數(shù)據(jù)的不同特征。在Info GAN網(wǎng)絡(luò)中約束隱變量c,隱變量c對于生成新的數(shù)據(jù)G(z,c)具有可解釋性,則c與G(z,c)具有較高的相關(guān)性。隨機噪聲經(jīng)過生成器輸出圖片,隱變量c的信息損失大小影響圖片生成的質(zhì)量,因此在Info GAN模型中,損失函數(shù)定義為隱變量c與生成器之間的互信息[10],如公式(3)所示。Info GAN網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示。
式中:G、D分別為生成器和判別器,γ為正則化系數(shù)。
圖3 Info GAN網(wǎng)絡(luò)結(jié)構(gòu)
由圖3可知,隱變量c與噪聲z共同作為生成器的輸入數(shù)據(jù),通過變分推斷思想模擬真實數(shù)據(jù)的分布,迭代計算最優(yōu)互信息下界實現(xiàn)模擬真實數(shù)據(jù)分布,在圖向量中保留更多的隱變量c,并在生成器中計算二者的互信息。生成器產(chǎn)生的圖片與真實圖片共同作為判別器的輸入,從而使判別器和生成器同時更新參數(shù),新生成的圖片與真實圖片更加相似。將Info GAN應(yīng)用在Mnist數(shù)據(jù)集,其損失函數(shù)與生成數(shù)據(jù)如圖4所示。
圖4 Info GAN損失函數(shù)與生成數(shù)據(jù)
圖4中生成式模型損失函數(shù)與判別模型損失函數(shù)隨著迭代次數(shù)的增加,函數(shù)曲線沒有尖銳的抖動,且有逐漸降低的趨勢。生成式模型的損失值分布在0.73~0.97之間,損失值比較小,生成的新數(shù)據(jù)效果清晰、風(fēng)格多樣。
WGAN模型對GAN的損失函數(shù)進行改進,作者發(fā)現(xiàn)交叉熵?fù)p失函數(shù)不能衡量兩個不相交部分?jǐn)?shù)據(jù)的分布距離,導(dǎo)致GAN訓(xùn)練不穩(wěn)定。因此作者用李普西斯條件代替交叉熵作為損失函數(shù),將反向傳播更新后的權(quán)重強制截斷到一定范圍內(nèi),滿足李普西斯連續(xù)性條件。WGAN去掉GAN網(wǎng)絡(luò)中的激活函數(shù)層,并且對生成器和判別器色損失值不再取對數(shù)。在一定程度上使GAN模型訓(xùn)練變得穩(wěn)定,但是經(jīng)過剪切后的權(quán)重被限制在一定的范圍內(nèi),不能充分發(fā)揮深出度卷積神經(jīng)網(wǎng)絡(luò)的擬合能力,其權(quán)重分布如圖5所示。
圖5 裁剪后的權(quán)重分布
WGAN-GP模型與WGAN采用同樣的網(wǎng)絡(luò)結(jié)構(gòu),僅對損失函數(shù)進行改進,采用Earth-Mover(EM)距離。WGAN-GP對每一批次中的樣本進行采樣,計算判別器的梯度與其限制梯度k之間建立二范數(shù)損失函數(shù),對更新后的權(quán)重進行懲罰。WGAN-GP的損失函數(shù)如公式(4)所示。
WGAN-GP通過連續(xù)性限制條件懲罰梯度,解決訓(xùn)練模型出現(xiàn)的梯度爆炸問題,比WGAN更容易收斂,增加數(shù)據(jù)分布的任意性,使生成的樣本質(zhì)量更高。WGAN-GP損失函數(shù)以及生成數(shù)據(jù)如圖6所示。
WGAN-GP模型的損失函數(shù)曲線在迭代初期有較大的波動,隨機噪聲數(shù)據(jù)分布與訓(xùn)練數(shù)據(jù)集的分布不一致,初期損失之較大。迭代過程中出現(xiàn)較大的波動,迭代1500次以后,兩條損失函數(shù)曲線趨向收斂,緣于在損失函數(shù)增加懲罰權(quán)重,使模型保持穩(wěn)定。生成器產(chǎn)生新的數(shù)據(jù)較為清晰,但是部分?jǐn)?shù)據(jù)訓(xùn)練不完整,與訓(xùn)練集中數(shù)據(jù)相差較大。
圖6 WGAN-GP損失函數(shù)與生成數(shù)據(jù)
深度卷積生成對抗網(wǎng)絡(luò)(deep convolutional generative net,DCGAN)模型采用CNN作為Gener?ator和Discriminator的網(wǎng)絡(luò)骨架,以CNN作為特征提取,使模型具有更強的表達(dá)能力,有效的保留圖向量的語義信息;DCGAN模型更加注重在未標(biāo)注的數(shù)據(jù)集上學(xué)習(xí)有利于數(shù)據(jù)生成與識別的特征表示,生成的圖片質(zhì)量更佳。DCGAN網(wǎng)絡(luò)結(jié)構(gòu)如圖7所示。
圖7 DCGAN網(wǎng)絡(luò)結(jié)構(gòu)
DCGAN模型相對于GAN模型在網(wǎng)絡(luò)結(jié)構(gòu)上進行了改進,使用步長卷積代替了上采樣層,卷積可以更好的提取圖像特征,并且網(wǎng)絡(luò)采用全卷積形式,舍棄全連接層而提升模型的收斂速度;生成器和判別器的每一卷積層均使用了歸一化函數(shù),提升模型的訓(xùn)練速度和穩(wěn)定性;在訓(xùn)練過程中采用異步訓(xùn)練方法,固定判別器,模型對生成器進行訓(xùn)練,使得二者達(dá)到動態(tài)平衡。使用Adam優(yōu)化器對損失函數(shù)進行優(yōu)化,其中學(xué)習(xí)率設(shè)置為0.0002達(dá)到最好的訓(xùn)練效果。DCGAN的生成器和判別器分別采用ReLu和Leaky ReLu作為激活函數(shù),減少梯度消失。ReLu和Leaky ReLu激活函數(shù)分別如公式(5)、(6)所示。
DCGAN模型在Mnist數(shù)據(jù)集的損失函數(shù)如圖8所示。
圖8 DCGAN損失函數(shù)與效果
DCGAN的模型判別模型和損失模型的損失函數(shù)隨著迭代次數(shù)的增加而出現(xiàn)較大的波動、不穩(wěn)定現(xiàn)象,損失曲線不穩(wěn)定即模型未能收斂。右圖為生成式模型產(chǎn)生的新圖片,經(jīng)過1750次迭代,部分圖片質(zhì)量較好,部分圖片未能形成真正有效的新數(shù)據(jù)。
通過對比試驗發(fā)現(xiàn),Info GAN模型的損失函數(shù)極值小于1.0,GAN、WGAN-GP、DCGAN等模型的損失曲線極值均大于Info GAN模型的最大值。生成式模型產(chǎn)生的圖片,Info GAN模型產(chǎn)生的圖片較為清晰、噪聲較少,圖片中的數(shù)據(jù)較為完整。四種模型產(chǎn)生不同效果的圖片,主要源于網(wǎng)絡(luò)結(jié)構(gòu)、損失函數(shù)的不同。Info GAN通過計算隱變量與生成式模型之間的互信息,直接影響到其輸出,使得模型具有可解釋性,隨機噪聲可以模擬訓(xùn)練數(shù)據(jù)集的分布;其余三個模型再網(wǎng)絡(luò)結(jié)構(gòu)上較為相似,且損失函數(shù)衡量相關(guān)性較小的數(shù)據(jù)集時效果較差,導(dǎo)致?lián)p失值和圖片質(zhì)量不如In?fo GAN模型。因此,基于互信息的損失函數(shù)可以使模型損失函數(shù)降低,提升模型的訓(xùn)練效率,生成圖片更清晰、完整。