ICLR 2020 | GAN是否真的判断出了数据的真假?
?PaperWeekly 原創(chuàng) ·?作者|武廣
學(xué)校|合肥工業(yè)大學(xué)碩士生
研究方向|圖像生成
GAN 自提出以來就以生成對抗為目標(biāo)進(jìn)行模型優(yōu)化,這種對抗真的區(qū)分了真實(shí)數(shù)據(jù)和生成數(shù)據(jù)了嗎?ICLR 2020 中的一篇?Real or Not Real, that is the Question(RealnessGAN)提出了對傳統(tǒng) GAN 判別數(shù)據(jù)真假的質(zhì)疑。
文章拋出了在傳統(tǒng) GAN 中對于判別器的鑒別輸出為一常數(shù) score 是不合理的觀點(diǎn),并由此提出合理的解決方案,本文將對 RealnessGAN 進(jìn)行解析,探究 GAN 是否真的區(qū)分了真假。
論文標(biāo)題:Real or Not Real, that is the Question
論文來源:ICLR 2020
論文鏈接:https://arxiv.org/abs/2002.05512
代碼鏈接:https://github.com/kam1107/RealnessGAN
GAN [1] 自提出就得到了空前反響,GAN 在逼真的圖像生成方面以及處理高維數(shù)據(jù)時的靈活性上推動著包括圖像,音頻和視頻生成的發(fā)展,更甚者在諸如強(qiáng)化學(xué)習(xí)、遷移學(xué)習(xí)等也展示了一定的價值。
GAN 通過生成器和判別器的博弈下達(dá)到交替更新,其核心就是模型能否鑒別數(shù)據(jù)的真實(shí)與生成并與生成器形成對抗。
在標(biāo)準(zhǔn)的 GAN 中,輸入樣本的真實(shí)性由判別器使用單個標(biāo)量估算,也就是判別輸出的是一個鑒別分?jǐn)?shù)。然而諸如圖像之類的高維數(shù)據(jù),需要從多個角度認(rèn)知它們,并基于多個標(biāo)準(zhǔn)來推斷這幅圖像是否逼真。
如圖 1 所示,在拿到一張人臉肖像圖時,我們可能會關(guān)注其面部結(jié)構(gòu),皮膚色調(diào),頭發(fā)紋理,甚至虹膜和牙齒等細(xì)節(jié),它們每一個屬性都代表著真實(shí)性的不同方面。此時判別器用單個標(biāo)量輸出鑒別結(jié)果,這是多個量度的抽象和匯總,它們共同反映了圖像的整體真實(shí)性。?
但是這種簡潔的測量可能傳達(dá)的信息不足,無法引導(dǎo)生成器向著正確的圖像進(jìn)行生成,這就可能導(dǎo)致在 GAN 中眾所周知的模式崩潰和梯度消失的發(fā)生。
▲ 圖1. 人臉肖像圖中的人眼感知(a)真實(shí)人眼感知(b)由于面部結(jié)構(gòu)/組件不協(xié)調(diào),背景不自然,樣式組合異常和紋理變形可能降低的真實(shí)感
既然判別器的單標(biāo)量輸出是不合理的,那么怎樣表示判別器的輸出呢?Realness-GAN 提出了通過將逼真度視為隨機(jī)變量,也就是對于判別器的輸出表示為一分布而不是單個標(biāo)量。
整體的架構(gòu)和訓(xùn)練上 RealnessGAN 沿用標(biāo)準(zhǔn) GAN 的方式,只是將判別器的輸出表示為一個分布,并且在優(yōu)化階段是以分布進(jìn)行度量。
總結(jié)一下 RealnessGAN 的優(yōu)勢:
將標(biāo)量真實(shí)性得分?jǐn)U展為分布的真實(shí)性得分,判別器?為生成器?提供了更強(qiáng)的指導(dǎo)。
RealnessGAN 的思路可以推廣到一般的 GAN 中,具有較強(qiáng)的靈活性。
基于一個簡單的 DCGAN 架構(gòu),RealnessGAN 可以成功地從頭開始學(xué)習(xí)生成?分辨率的逼真的圖像。
RealnessGAN原理分析
在 RealnessGAN 原理分析前,先回顧一下標(biāo)準(zhǔn) GAN 的優(yōu)化過程:
此時用 0 和 1 分別表示兩個虛擬的標(biāo)量,也就是作為判別器的輸出對照,判別器鑒定真實(shí)為 1,虛假為 0。通過固定的?,最優(yōu)?得到?,再將?固定為最優(yōu)值,最優(yōu)?滿足?。
采用單個標(biāo)量作為真實(shí)性的度量是受限的,現(xiàn)實(shí)中的很多本質(zhì)上是一個涵蓋多個因素的隨機(jī)變量,此時 RealnessGAN 便發(fā)揮了作用。
用一個分布?替換判別器?的標(biāo)量輸出,那么對于一個輸入?,此時?。其中?是輸出?的結(jié)果集,可以將每個結(jié)果?視為通過某些標(biāo)準(zhǔn)估算的真實(shí)性度量。
既然判別器的輸出被規(guī)定為是個分布,那么如何去優(yōu)化這個判別器輸出呢?
類似于標(biāo)準(zhǔn) GAN 的 0 和 1 真假標(biāo)量,RealnessGAN 需要兩個分布來代表判別器輸出的真實(shí)和虛假圖像的鑒定分布,這里的分布可不同于數(shù)據(jù)的分布,這里的分布指的是判別器的對照分布。
定義兩個分布?表示理論上的判別輸出為真實(shí)的分布,表示理論上的判別輸出為假的分布,它們也在?上定義,優(yōu)化分布之間的距離可以想到的是通過 KL 散度進(jìn)行,此時生成器與判別器的博弈過程表示為:
先從理論角度分析下這個目標(biāo)函數(shù),對于判別器?,它的目的是為了將真的數(shù)據(jù)鑒定為真的,假的數(shù)據(jù)鑒定為假的,所以對于真實(shí)數(shù)據(jù)?,希望鑒定結(jié)果?與理論真實(shí)分布?盡可能接近,即?為理想解。
同理對于生成數(shù)據(jù)?則希望判別輸出與理論虛假分布?盡可能接近,即?為理想解。
而對于生成器?,公式的第一項(xiàng)由于沒有?的參與不允討論,而對于第二項(xiàng)生成器則希望能夠騙過判別器,即?越大越好,也就是希望?與理論虛假分布?差異越大越好。
那生成數(shù)據(jù)的判別分布于理論虛假分布差異越大,怎么能保證與理論真實(shí)分布越接近呢?文章也進(jìn)行了討論,主要通過對生成器的損失進(jìn)行調(diào)整實(shí)現(xiàn),這個我們后面再詳細(xì)說明。
知道了目標(biāo)函數(shù),那怎么保證模型博弈到最后得到的最優(yōu)解就是?呢?
這需要進(jìn)一步對目標(biāo)函數(shù)進(jìn)行分析了,接下來會有一定的公式推導(dǎo),不喜歡這部分的可以直接跳到下一節(jié),最后的結(jié)論就是模型的收斂最優(yōu)解就是生成數(shù)據(jù)分布于真實(shí)數(shù)據(jù)分布相同?。
與標(biāo)準(zhǔn) GAN 的分析相同,固定?,目標(biāo)?表示為:
根據(jù)熵的定義,記?,同理?,則上式改寫為:
公式的第一項(xiàng)與?無關(guān),將之記為?,上式可進(jìn)一步表示為:
記?,,可得到:
最小化?就是最小化?,則 D 的最優(yōu)解就是?,接下來就是對?的最優(yōu)解進(jìn)行討論,當(dāng)?時,假設(shè)?,此時?,則對應(yīng)的?:
從?中減去 得:
由于?相對于?為常數(shù),最大化?等價于最大化?,當(dāng)且僅當(dāng) KL 散度達(dá)到其最小值時,才能獲得最佳?,對于任何有效的?和?:
即?,因此,只要存在一個有效的?,使得?,對于任何有效?,都有?。
RealnessGAN的實(shí)施和訓(xùn)練
當(dāng)滿足?,為了優(yōu)化模型,此時的?需要足夠的強(qiáng)大才能匹配理論真實(shí)分布。
隨著數(shù)量的增加,對?施加的約束因此變得更加嚴(yán)格,則?需要付出更多去學(xué)習(xí)才能匹配判別下理論真實(shí)分布,所以數(shù)量的增加決定著模型的一定性能,說了這么多,這個?和?以及?到底怎么表示呢?
我們知道?和?是定義下的判別理論分布,只要這兩個分布之間差異足夠的大即可,那么到底取什么呢?這個答案在文章公布的源碼中作者規(guī)定了理論判別真實(shí)分布錨點(diǎn)?和理論判別虛假分布錨點(diǎn)?。
對于理論判別真實(shí)分布?,作者用?的均勻分布來表示,用均值為 0,方差為 0.1 的高斯分布來表示理論判別虛假分布?,通過 np.histogram 通過對這采樣的 1000 個點(diǎn)進(jìn)行 num_outcomes 的離散化,這個 num_outcomes 就是?的數(shù)量。
高斯分布與均勻分布分布上的差異決定著錨點(diǎn)與的不同,這也滿足了推導(dǎo)的條件,num_outcomes則在一定程度上影響著生成的結(jié)果,這點(diǎn)我們在后面的實(shí)驗(yàn)中再進(jìn)行分析。
回到之前提到的優(yōu)化?的問題上來,上述的目標(biāo)函數(shù)對于?而言是通過欺騙?是增大假樣本的?和錨點(diǎn)分布?之間的 KL 散度,而不是減小假樣本和錨點(diǎn)分布?之間的 KL 散度,作者進(jìn)行了損失上的一定改進(jìn),對于一般?的優(yōu)化:
文章又提出了:
至于說哪個損失更好用,這個在實(shí)驗(yàn)中進(jìn)行了對比。值得一說的是 RealnessGAN 提出的思想可以用在大部分的 GAN 中,只需要對損失函數(shù)進(jìn)行一定的調(diào)整即可,這也展示了 RealnessGAN 的靈活性。
在訓(xùn)練階段,采用 Adam 優(yōu)化器,BN 用在生成器,SN 用在判別器。
實(shí)驗(yàn)
文章首先進(jìn)行了簡單的實(shí)驗(yàn)驗(yàn)證模型的有效性,通過toy dataset進(jìn)行驗(yàn)證,與基準(zhǔn)模型進(jìn)行了對比,選取了StdGAN?[2]、WGAN-GP?[3]、LSGAN?[4]?和HingeGAN?[5]?作為基準(zhǔn)模型,得到的結(jié)果如圖 2 所示。
▲ 圖2. toy dataset下RealnessGAN與基準(zhǔn)模型的對比
可以看到 RealnessGAN 展示了較為優(yōu)越的結(jié)果生成,在驗(yàn)證?的數(shù)量上,文章也進(jìn)行了實(shí)驗(yàn),得到的結(jié)果如圖 3 所示。
▲ 圖3. 輸出結(jié)果數(shù)量對生成的影響
在固定?的更新數(shù)量下,的數(shù)量越多并沒有取得越好的結(jié)果,但是隨著?給予足夠的更新,的數(shù)量增大得到的結(jié)果就越有優(yōu)勢。在定性上模型給出的結(jié)果如圖4.
▲ 圖4. RealnessGAN在Cifar10、CelebA和FFHQ下的生成結(jié)果
定量上文章在 Cifar10 數(shù)據(jù)集下進(jìn)行了對比實(shí)驗(yàn):
▲ 圖5. 在Cifar10數(shù)據(jù)集下各模型在FID和SD指標(biāo)下結(jié)果
為了驗(yàn)證?與?的差異性對結(jié)果的影響,文章做了對比實(shí)驗(yàn),結(jié)果如圖6.
▲ 圖6. 錨點(diǎn)分布的差異性對生成結(jié)果的影響
對于?的損失優(yōu)化上,作者進(jìn)行了比對。
▲ 圖7. G的不同損失下的生成結(jié)果
總結(jié)
RealnessGAN 從分布的角度擴(kuò)展了生成對抗網(wǎng)絡(luò)的逼真性,以判別輸出分布替代了標(biāo)準(zhǔn) GAN 中的單標(biāo)量判別輸出,此時判別器會從多個角度估算真實(shí)性,從而為生成器提供更多信息指導(dǎo)。
同時這種判別輸出分布的方式可以推廣到更多的一般性 GAN 的訓(xùn)練上,從理論和實(shí)驗(yàn)分析上可以得到該方法的有效性,對于 GAN 的發(fā)展起到了推助作用。
參考文獻(xiàn)
[1] Ledig C, Theis L, Huszár F, et al. Photo-realistic single image super-resolution using a generative adversarial network[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2017: 4681-4690.
[2] Zhang Z, Yu J. STDGAN: ResBlock Based Generative Adversarial Nets Using Spectral Normalization and Two Different Discriminators[C]//Proceedings of the 27th ACM International Conference on Multimedia. 2019: 674-682.
[3] Gulrajani I, Ahmed F, Arjovsky M, et al. Improved training of wasserstein gans[C]//Advances in neural information processing systems. 2017: 5767-5777.
[4] Mao X, Li Q, Xie H, et al. Least squares generative adversarial networks[C]//Proceedings of the IEEE International Conference on Computer Vision. 2017: 2794-2802.
[5] Junbo Zhao, Michael Mathieu, and Yann LeCun. Energy-based generative adversarial network. InICLR, 2017.
點(diǎn)擊以下標(biāo)題查看更多往期內(nèi)容:?
Designing GANs:又一個GAN生產(chǎn)車間
ShapeMatchingGAN:打造炫酷動態(tài)的藝術(shù)字
ICCV 2019 | 通過條件坐標(biāo)的部分圖像生成
從動力學(xué)角度看優(yōu)化算法:GAN的第三個階段
深度學(xué)習(xí)預(yù)訓(xùn)練模型可解釋性概覽
ICLR 2020:從去噪自編碼器到生成模型
????
現(xiàn)在,在「知乎」也能找到我們了
進(jìn)入知乎首頁搜索「PaperWeekly」
點(diǎn)擊「關(guān)注」訂閱我們的專欄吧
關(guān)于PaperWeekly
PaperWeekly 是一個推薦、解讀、討論、報道人工智能前沿論文成果的學(xué)術(shù)平臺。如果你研究或從事 AI 領(lǐng)域,歡迎在公眾號后臺點(diǎn)擊「交流群」,小助手將把你帶入 PaperWeekly 的交流群里。
總結(jié)
以上是生活随笔為你收集整理的ICLR 2020 | GAN是否真的判断出了数据的真假?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 美的家用洗地机 GX6 预售:180 度
- 下一篇: 让预训练模型学习知识:使用多学习器增强知