生成對(duì)抗網(wǎng)絡(luò)GAN的應(yīng)用與拓展
引言
自從2014年以來,生成對(duì)抗網(wǎng)絡(luò)GAN成為備受關(guān)注的一個(gè)方向,我有幸參加Valse2018會(huì)議,通過生成對(duì)抗網(wǎng)絡(luò)GAN報(bào)告收獲頗多,結(jié)合我對(duì)GAN的理解來概括過去幾年來?GAN?的發(fā)展脈絡(luò),我將圍繞以下兩個(gè)問題開展介紹。1)GAN能夠做什么?2)如何學(xué)到更好的GAN?
1.1.
? ??什么是生成對(duì)抗網(wǎng)絡(luò)GAN?
2014年,Ian Goodfellow提出生成對(duì)抗網(wǎng)絡(luò)(GAN,GenerativeAdversarial Nets),如下圖所示,GAN由生成器和判別器組成。其中,生成器用于生成數(shù)據(jù),而判別器則用于判別生成數(shù)據(jù)是否接近于真實(shí)。在訓(xùn)練過程中,二者相互博弈,直到達(dá)到均衡后停止循環(huán)。
1.2.?????原始GAN的優(yōu)缺點(diǎn):
在一定程度上,盡管GAN的生成器?G已經(jīng)學(xué)到了近似真實(shí)數(shù)據(jù)的分布,它的優(yōu)勢(shì)及能夠解決的問題包括:1)GAN不需要馬爾科夫鏈,模型優(yōu)化僅用到反向傳播,優(yōu)勢(shì)在于采樣概率高,生成數(shù)據(jù)更接近真實(shí)數(shù)據(jù)分布;2)GAN能夠解決數(shù)據(jù)不足的問題,例如多視角多任務(wù)的生成等問題;3)結(jié)合強(qiáng)化學(xué)習(xí)做些研究。
GAN仍存在一些問題亟待解決。例如,
1)在訓(xùn)練過程中,GAN比較難以訓(xùn)練,存在訓(xùn)練不同步及梯度消失的問題,如何定義訓(xùn)練策略及損失函數(shù)成為關(guān)鍵。其中,GAN訓(xùn)練不同步的原因在于更新生成器G的N次,更次判別器D的1次。此外,梯度消失的原因在于當(dāng)真實(shí)樣本和生成樣本之間具有極小重疊甚至沒有重疊時(shí),其目標(biāo)函數(shù)的(JS,Jensen-Shannon)散度是一個(gè)常數(shù),導(dǎo)致優(yōu)化目標(biāo)不連續(xù)。
2)GAN存在Model collapse問題,容易使得生成樣本缺乏多樣性;
3)GAN可解釋性較差,因?yàn)镚AN所學(xué)到的一個(gè)數(shù)據(jù)分布沒有顯示的表達(dá)式,是一個(gè)黑盒子一樣的映射函數(shù)。
?為了解決以上GAN的問題,廣大學(xué)者在的網(wǎng)絡(luò)結(jié)構(gòu)及優(yōu)化方式上對(duì)GAN進(jìn)行探索。
1.3.? ? ?典型的生成對(duì)抗網(wǎng)絡(luò)GAN
如下圖所示,在原始GAN的基礎(chǔ)上,GAN的變體從優(yōu)化方式、網(wǎng)絡(luò)結(jié)構(gòu)等方面發(fā)生了較大的改變。下面從兩個(gè)方面分別介紹這些方法。
?基于優(yōu)化方式的GAN
l?WassersteinGAN(WGAN)
原始GAN存在訓(xùn)練不穩(wěn)定的問題,它的具體表現(xiàn)為“判別器越好,生成器梯度消失越嚴(yán)重”。為了解決GAN訓(xùn)練的問題,Arjovsk等提出了Wasserstein GAN(WGAN),引入了Earth-Mover距離來度量真實(shí)樣本和生成樣本分布之間的距離。相比KL散度、JS散度,Earth-Mover距離是平滑的,即便生成分布與真實(shí)分布沒有重疊,Wasserstein距離仍然能夠反映它們的遠(yuǎn)近。
從數(shù)學(xué)角度作比較如下圖所示,KL散度和JS散度存在突變性,而Wasserstein距離卻是平滑的。若采用梯度下降法優(yōu)化參數(shù),前兩者提供不了梯度,而Wasserstein距離卻可以提供梯度。類似地,在高維空間中如果兩個(gè)分布不重疊或者重疊部分可忽略,則KL和JS既反映不了遠(yuǎn)近,也提供不了梯度,但是Wasserstein卻可以提供有意義的梯度。
雖然WGAN做出了很多定性的解釋,仍缺少定量分析,此外WGAN的不足之處在于對(duì)EM距離不容易直接優(yōu)化。
Loss sensitive GAN(LS-GAN)
原始GAN對(duì)建模對(duì)象、真實(shí)數(shù)據(jù)分布未做任何限定,因此原始GAN的無限建模往往會(huì)導(dǎo)致過擬合等問題。為了緩解這個(gè)問題,學(xué)者開始采用損失敏感LS-GAN進(jìn)行按需分配的建模。LS-GAN將建模的樣本分布限定在Lipschitz?密度上,這種密度限定了真實(shí)的密度分布變化。此外,該方法不使用batch normalization仍然能夠產(chǎn)生較好的圖像。
Energy-based Generative Adversarial Network(EBGAN)
以上GAN方法缺乏對(duì)energy的分析,Lecun從能量模型角度提出了基于能量的生成對(duì)抗網(wǎng)絡(luò)方法EBGAN。如下圖所示,該方法在判別器D上做出改變,把D看作是一個(gè)能量函數(shù),分別對(duì)真實(shí)圖像、重建圖像賦予低能量、高能量。此外,該方法能量的度量與分類相反,當(dāng)真實(shí)數(shù)據(jù)與生成數(shù)據(jù)分布接近的時(shí)候,能量達(dá)到平衡。在訓(xùn)練過程中,EBGAN比GAN?展示出了更穩(wěn)定的性能,也產(chǎn)生出了更加清晰的圖像
谷歌綜合WGAN與EBGAN二者的優(yōu)勢(shì),提出了邊界均衡生成對(duì)抗網(wǎng)絡(luò)BEGAN(Boundary Equilibrium GAN),該方法通過一個(gè)額外的均衡條件,使得生成器和判別器相互平衡。
以上方法對(duì)生成對(duì)抗網(wǎng)絡(luò)的判別器D進(jìn)行改進(jìn),此外,生成器G的改進(jìn)同樣對(duì)算法性能影響較大。
基于網(wǎng)絡(luò)結(jié)構(gòu)變化的GAN
近兩年來學(xué)術(shù)界相繼提出了條件生成對(duì)抗網(wǎng)絡(luò)(CGAN),信息生成對(duì)抗網(wǎng)絡(luò)(InfoGAN)等眾多GAN的變種。
Conditiona GAN(CGAN)
在圖像標(biāo)注、圖像分類和圖像生成過程中,原始GAN存在輸出圖像的標(biāo)簽較多,輸出類別多等問題。為了解決此問題,Mirza等提出條件生成式對(duì)抗網(wǎng)絡(luò)CGAN。該方法在生成器G和判別器中加入額外的條件信息,以此來指導(dǎo)GAN兩個(gè)模型的訓(xùn)練。
如下圖所示,CGAN把真實(shí)的類別添加到生成器G和判別器D的目標(biāo)函數(shù)中,與輸入隨機(jī)噪聲構(gòu)成條件概率,訓(xùn)練方式幾乎不變,但是該方法從GAN的無監(jiān)督變成了有監(jiān)督。
l?ACGAN(輔助類別GAN)
為了輔助不同類樣本的生成,ACGAN的方法被提出。如下圖所示,ACGAN與CGAN不同,它在判別器D的真實(shí)數(shù)據(jù)也加入了類別的信息,使得生成器G網(wǎng)絡(luò)更加明確生成樣本的數(shù)據(jù)特性。
InfoGAN
原始的GAN模型通過對(duì)抗學(xué)習(xí)可以得到一個(gè)能夠與真實(shí)數(shù)據(jù)分布一致的模型分布,模型已經(jīng)學(xué)到數(shù)據(jù)的有效語(yǔ)義特征,但是該模型輸入信號(hào)的具體維度與數(shù)據(jù)的語(yǔ)義特征之間的對(duì)應(yīng)關(guān)系并不清楚。為了更好地生成同類別的樣本,Che等將信息理論與GAN相結(jié)合,提出一種信息生成對(duì)抗網(wǎng)絡(luò)InfoGAN。該方法不僅能對(duì)這些對(duì)應(yīng)關(guān)系建模,還可以通過控制相應(yīng)維度的變量來達(dá)到相應(yīng)的變化。
1.4 我的GAN嘗試
下面分享兩個(gè)示例。示例1在小樣本(50幅圖像)的情況下,采用一個(gè)GAN網(wǎng)絡(luò)“DCGAN”做噪聲到商品圖像映射關(guān)系學(xué)習(xí),充分證明生成對(duì)抗網(wǎng)絡(luò)具備小樣本訓(xùn)練集下樣本生成的能力。
????下篇文章介紹GAN的應(yīng)用實(shí)例,深入介紹GAN的機(jī)遇與挑戰(zhàn)。