Generative Adversarial Nets[BEGAN]
本文來(lái)自《BEGAN: Boundary Equilibrium Generative Adversarial Networks》,時(shí)間線為2017年3月。是google的工作。
作者提出一個(gè)新的均衡執(zhí)行方法,該方法與從Wasserstein距離導(dǎo)出的loss相結(jié)合,用于訓(xùn)練基于自動(dòng)編碼器的GAN。該方法在訓(xùn)練中會(huì)平衡生成器和判別器。另外,它提供一個(gè)新的近似收斂測(cè)度,快而且穩(wěn)定,且結(jié)果質(zhì)量高。同時(shí)作者提出一種控制圖像多樣性和可視化質(zhì)量之間權(quán)衡的方法。作者專(zhuān)注于圖像生成任務(wù),即使在更高分辨率下也能創(chuàng)造視覺(jué)質(zhì)量的新里程碑。
1 引言
GAN現(xiàn)在已經(jīng)成為一類(lèi)用于學(xué)習(xí)數(shù)據(jù)分布\(p_{model}(x)\)的方法,并提供生成模型可以基于其進(jìn)行采樣。GAN可以生成非常有說(shuō)服力的圖像,比通過(guò)逐像素loss的自動(dòng)編碼器生成的圖像要有紋理的多。然而GAN仍然面對(duì)一些問(wèn)題:
- 基本很難訓(xùn)練,即使采用了一些技巧[15,16]。
- 正確的超參數(shù)選擇是關(guān)鍵。
- 控制生成的樣本的圖像多樣性也是很困難的。
- 平衡判別器和生成器之間的收斂也很難:判別器總是在訓(xùn)練開(kāi)始就容易更收斂.
- GAN容易遭受mode collapse。
提出的啟發(fā)式正則如批判別(batch discrimination)[16]和排斥正則化器(repelling regularizer)[21]都一定程度緩解這些問(wèn)題。本文的貢獻(xiàn):
- 一個(gè)簡(jiǎn)單魯棒的GAN結(jié)構(gòu),基于標(biāo)準(zhǔn)訓(xùn)練過(guò)程更快速和穩(wěn)定的收斂;
- 一個(gè)均衡概念用于平衡生成器和判別器;
- 一個(gè)新的控制方法來(lái)平衡圖像多樣性和可視化質(zhì)量;
- 一個(gè)收斂的近似測(cè)度。據(jù)作者所知,另一個(gè)就是Wasserstein GAN。
2 相關(guān)工作
DCGAN是首次提出卷積結(jié)構(gòu)來(lái)提升可視化質(zhì)量的。然后基于能量GAN(EBGAN)是一類(lèi)用于將判別器建模成能量函數(shù)的GAN。該變種收斂的更穩(wěn)定,而且同時(shí)也很容易訓(xùn)練和對(duì)超參數(shù)變化的魯棒性。
而更早的GAN變種都缺少收斂測(cè)度。Wasserstein GAN近來(lái)引入的loss來(lái)扮演收斂測(cè)度。在他們的實(shí)現(xiàn)中,代價(jià)就是訓(xùn)練更慢了,但是好處就是穩(wěn)定和更好的模式覆蓋。
3 提出的方法
作者使用EBGAN中的自動(dòng)編碼器作為判別器。而典型的GAN是直接匹配數(shù)據(jù)分布的,作者的方法意在從Wasserstein距離導(dǎo)出的loss匹配自動(dòng)編碼器的loss分布。這目標(biāo)可以通過(guò)使用一個(gè)典型GAN目標(biāo)和額外的均衡項(xiàng)來(lái)平衡判別器和生成器達(dá)到。作者的方法更容易訓(xùn)練而且相對(duì)經(jīng)典GAN使用的是更簡(jiǎn)單的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)。
3.1 自動(dòng)編碼器的Wasserstein距離下界
我們期望研究匹配誤差分布的影響,而不是直接匹配樣本的分布。 作者首先引入自動(dòng)編碼器的loss,然后計(jì)算介于真實(shí)的和生成的樣本的自動(dòng)編碼器loss分布之間的Wasserstein距離的下限。
首先引入\(\mathcal{L}:\mathbb{R}^{N_x}\mapsto R^+\)作為訓(xùn)練逐像素自動(dòng)編碼器的loss:
令\(\mu_{1,2}\)作為自動(dòng)編碼器loss的兩個(gè)分布,令\(\Gamma(\mu_1,\mu_2)\)是所有\(\mu_1\)和\(\mu_2\)的耦合集合,令\(m_{1,2}\in \mathbb{R}\)是他們各自的均值。Wasserstein距離可以表示成:
使用Jensen不等式,我們可以得到一個(gè)\(W_1(\mu_1,\mu_2)\)的下界:
注意的是我們意在最優(yōu)化介于自動(dòng)編碼器loss分布的Wasserstein距離下界,而不是樣本分布。
3.2 GAN目標(biāo)
作者設(shè)計(jì)的判別器能夠最大化介于自動(dòng)編碼器loss的等式1。令\(\mu_1\)表示loss \(\mathcal{L}(x)\)的分布,其中\(x\)是真實(shí)樣本。令\(\mu_2\)是loss \(\mathcal{L}(G(z))\)的分布,其中\(G:\mathbb{R}^{N_z}\mapsto \mathbb{R}^{N_x}\)是生成器函數(shù),\(z\in[-1,1]^{N_z}\)是維度為\(N_z\)的均勻隨機(jī)樣本。
因?yàn)?span id="ze8trgl8bvbq" class="math inline">\(m_1,m_2\in\mathbb{R}^+\)只有2個(gè)可能的方案去最大化\(|m_1-m_2|\):
作者選擇解決方案(b)作為目標(biāo),因?yàn)樽钚』?span id="ze8trgl8bvbq" class="math inline">\(m_1\)很自然的自動(dòng)編碼真實(shí)的圖片。給定判別器和生成器參數(shù)\(\theta_D\)和\(\theta_G\),通過(guò)最小化\(\mathcal{L}_D\)和\(\mathcal{L}_G\),作者將該問(wèn)題表示成GAN目標(biāo),其中\(z_D\)和\(z_G\)采樣自\(z\):
下面,會(huì)使用縮寫(xiě)表示法:\(G(\cdot)=G(\cdot,\theta_G)\)和\(mathcal{L}(\cdot)=\mathcal{L}(\cdot;\theta_D)\)。
該式子雖然類(lèi)似WGAN中的式子,不過(guò)還是有2個(gè)重要的差別:
- 介于loss之間進(jìn)行匹配分布,不是介于樣本之間;
- 不顯式需要判別器是K-Lipschitz,因?yàn)檫@里不是使用的Kantorovich和Rubinstein對(duì)偶原理[18]
對(duì)于函數(shù)近似,我們必須考慮每個(gè)函數(shù)G和D的表征能力。這是有模型實(shí)現(xiàn)的函數(shù)和參數(shù)量共同決定的。通常的情形是G和D不是很好平衡,判別器D很容易壓倒另一方。為了考慮到這種情況,作者引入了均衡概念。
3.3 均衡(Equilibrium)
實(shí)際上,平衡生成器和判別器的loss是很關(guān)鍵的;當(dāng)平衡時(shí):
如果我們生成的樣本不能讓判別器與真實(shí)樣本進(jìn)行區(qū)分,則他們錯(cuò)誤的分布應(yīng)該是一樣的,當(dāng)然也包含期望誤差。該概念讓我們平衡分配給生成器和判別器的影響,讓他們誰(shuí)都贏不了對(duì)方。
更進(jìn)一層,我們可以通過(guò)一個(gè)新的超參數(shù)\(\gamma\in[0,1]\)去自定義均衡的程度,定義如下:
在本文的模型中,判別器有2個(gè)競(jìng)爭(zhēng)的目標(biāo):1)自動(dòng)編碼真實(shí)圖片;2)判別器判別生成的圖片和真實(shí)圖片。\(\gamma\)項(xiàng)讓我們能夠平衡這2個(gè)目標(biāo)。更低的\(\gamma\)值生成更少的圖像多樣性,因?yàn)榕袆e器更關(guān)注自動(dòng)編碼真實(shí)圖片。作者這里將\(\gamma\)看成是多樣性的比率。也存在圖像清晰且具有細(xì)節(jié)的邊界。
3.4 邊界均衡GAN(Boundary Equilibrium GAN)
BEGAN的目標(biāo)是:
這里使用比例控制論(Proportional Control Theory)來(lái)管理均衡\(\mathbb{E}[\mathcal{L}(G(z))]=\gamma\mathbb{E}[\mathcal{L}(x)]\)。這是通過(guò)變量\(k_t\in[0,1]\)來(lái)控制在梯度下降過(guò)程中多少程度重視\(\mathcal{L}(G(z_D))\)。這里初始化\(k_0=0\)。超參數(shù)\(\lambda_k\)是\(k\)的比例增益;在機(jī)器學(xué)習(xí)中,它就是\(k\)的學(xué)習(xí)率。作者使用0.001。本質(zhì)上,這可以被認(rèn)為是閉環(huán)反饋控制的一種形式,其中在每一步調(diào)整\(k_t\)以管理式子4。
在早期訓(xùn)練過(guò)程中,G傾向生成自動(dòng)編碼器容易重構(gòu)的數(shù)據(jù),因?yàn)榇藭r(shí)生成的數(shù)據(jù)接近0,而真實(shí)數(shù)據(jù)分布還沒(méi)學(xué)習(xí)準(zhǔn)確。這主要是因?yàn)樵缙谑?span id="ze8trgl8bvbq" class="math inline">\(\mathcal{L}(x)>\mathcal{L}(G(z))\),這會(huì)通過(guò)均衡約束在整個(gè)訓(xùn)練過(guò)程中進(jìn)行管理。
式子1的近似引入和式子4中\(\gamma\)對(duì)Wasserstein距離有很大的影響。后續(xù),評(píng)估由各種\(\gamma\)值產(chǎn)生的樣本是主要關(guān)注點(diǎn),如下面結(jié)果部分所示。
相比傳統(tǒng)GAN需要交替訓(xùn)練D和G,或者預(yù)訓(xùn)練D。本文提出的BEGAN都不需要。采用Adam和默認(rèn)的超參數(shù)訓(xùn)練即可。\(\theta_D\)和\(\theta_G\)是基于他們各自的loss關(guān)于Adam優(yōu)化器獨(dú)立更新的,本文中batchsize采用\(n=16\)。
3.4.1 收斂測(cè)度
決定GAN的收斂通常是一個(gè)困難的任務(wù),因?yàn)樵际阶邮且粤愫陀螒蚨x的。而且后續(xù)訓(xùn)練中會(huì)出現(xiàn)一個(gè)loss上升,另一個(gè)loss下降的情況。epochs的數(shù)值或者可視化肉眼檢測(cè)通常是唯一實(shí)際可以感知當(dāng)前訓(xùn)練程度的方法。
作者提出一個(gè)全局收斂測(cè)度方式,也是通過(guò)使用均衡概念:我們可以構(gòu)建收斂過(guò)程,先找到比例控制算法\(|\gamma\mathcal{L}(x)-\mathcal{L}(G(z_G))|\)的瞬時(shí)過(guò)程誤差,然后找到該誤差的最低絕對(duì)值的最接近重建\(\mathcal{L}(x)\)。該測(cè)度可以形式化為兩項(xiàng)的和:
該測(cè)度可以用來(lái)決定什么時(shí)候該網(wǎng)絡(luò)達(dá)到最終態(tài)還是該模型已經(jīng)坍塌。
3.5 模型結(jié)構(gòu)
判別器\(D:\mathbb{R}^{N_x}\mapsto \mathbb{R}^{N_x}\)是基于卷積神經(jīng)網(wǎng)絡(luò)的自動(dòng)編碼器。\(N_x=H\times W\times C\)表示\(x\)的維度,其中對(duì)應(yīng)的表示為高,寬,通道。作者將深度編碼和解碼器共同構(gòu)建一個(gè)自動(dòng)編碼器。意圖盡可能簡(jiǎn)單的避免需要典型GAN的那些技巧。
如圖1所示,作者使用3x3的卷積和指數(shù)線性單元(ELU)作為輸出層激活函數(shù)。每一層以一定量(通常是2)進(jìn)行重復(fù)。作者實(shí)驗(yàn)發(fā)現(xiàn)更多的重復(fù)會(huì)有更好的可視化結(jié)果。每次下采樣時(shí),卷積濾波器會(huì)線性增長(zhǎng)。下采樣是通過(guò)stride=2進(jìn)行子采樣實(shí)現(xiàn)的,上采樣是通過(guò)最近鄰實(shí)現(xiàn)的。在介于編碼器和生成器的邊界上,處理的數(shù)據(jù)的張量通過(guò)全連接層進(jìn)行映射(后面不跟任何非線性函數(shù)),嵌入狀態(tài)為\(h\in\mathbb{R}^{N_h}\),這里\(N_h\)是自動(dòng)編碼器隱藏層的維度。
生成器\(G:\mathbb{R}^{N_z}\mapsto \mathbb{R}^{N_x}\)使用同樣的結(jié)構(gòu)(權(quán)重不同)作為判別器的解碼器。作者選擇這個(gè)結(jié)構(gòu)純粹就是因?yàn)樗?jiǎn)單。輸入狀態(tài)是\(z\in[-1,1]^{N_z}\)是均勻采樣。
3.5.1 可選的改善
這個(gè)簡(jiǎn)單結(jié)構(gòu)獲得了很好的質(zhì)量結(jié)果,也具有很好的魯棒性。
此外,還有一些方式有助于梯度傳播并生成更清晰的圖片。受到深度殘差網(wǎng)絡(luò)的啟發(fā),作者通過(guò)消失的殘差來(lái)初始化網(wǎng)絡(luò):如連續(xù)的同樣尺度的層,層的輸入是與他的輸出相結(jié)合的:\(in_{x+1}=carry\times in_x+(1-carry)\times out_x\)。在本文實(shí)驗(yàn)中,以\(carry=1\)開(kāi)始,然后到16000 steps(一個(gè)epoch)時(shí)逐步減少到0。
同時(shí)引入skip連接來(lái)幫助梯度傳播。第一個(gè)解碼器張量\(h_0\)是通過(guò)將\(h\)映射到一個(gè)\(8\times 8\times n\)張量上獲取的。在每個(gè)上采樣step之后,輸出與\(h_0\)的上采樣以相同維度進(jìn)行合并。skip連接是基于隱藏層和解碼器每個(gè)后續(xù)上采樣層之間建立的。
作者并沒(méi)有測(cè)試經(jīng)典GAN上的一些方法,如BN,dropout,轉(zhuǎn)置卷積或卷積濾波器指數(shù)增長(zhǎng)等。
4 實(shí)驗(yàn)
4.1 步驟
作者用Adam訓(xùn)練模型,其學(xué)習(xí)率為0.0001,當(dāng)收斂測(cè)度開(kāi)始停滯時(shí),以衰減因子為2進(jìn)行衰減。當(dāng)以大學(xué)習(xí)率開(kāi)始訓(xùn)練時(shí),會(huì)觀測(cè)到模型坍塌或者可視化假圖現(xiàn)象,這可以簡(jiǎn)單的通過(guò)減少學(xué)習(xí)率來(lái)避免。作者訓(xùn)練的模型分辨率從32變化到256,增加或者移除卷積層一次來(lái)適應(yīng)圖像尺度,保證最終下采樣后圖片大小為8x8.作者在大部分實(shí)驗(yàn)中\(N_hN_z=64\)。
作者為128x128圖像的最大模型的卷積有128個(gè)濾波器,總共有\(17.3\times 10^6\)個(gè)訓(xùn)練參數(shù)。在P100 GPU上大概需要訓(xùn)練2.5天。更小的模型如尺度為32x32的,在單塊GPU上訓(xùn)練幾個(gè)小時(shí)即可。
作者用360K個(gè)名人圖像做訓(xùn)練集,以此代替CelebA。該數(shù)據(jù)集有更多人臉姿態(tài)變化,包括相機(jī)軸上的角度等等。
4.2 圖像多樣性和質(zhì)量
4.3 空間連續(xù)性
4.4 收斂測(cè)度和圖像質(zhì)量
4.5 不平衡網(wǎng)絡(luò)的均衡(Equilibrium for unbalanced networks)
4.6 數(shù)值實(shí)驗(yàn)
reference:
[1] Martin Arjovsky, Soumith Chintala, and Léon Bottou. Wasserstein gan. arXiv preprint arXiv:1701.07875, 2017.
[2] Sanjeev Arora, Rong Ge, Yingyu Liang, Tengyu Ma, and Yi Zhang. Generalization and equilibrium in generative adversarial nets (gans). arXiv preprint arXiv:1703.00573, 2017.
[3] Yoshua Bengio, Patrice Simard, and Paolo Frasconi. Learning long-term dependencies with gradient descent is difficult. IEEE transactions on neural networks, 5(2):157–166, 1994.
[4] Djork-Arné Clevert, Thomas Unterthiner, and Sepp Hochreiter. Fast and accurate deep network learning by exponential linear units (elus). arXiv preprint arXiv:1511.07289, 2015.
[5] Vincent Dumoulin, Ishmael Belghazi, Ben Poole, Alex Lamb, Martin Arjovsky, Olivier Mastropietro, and Aaron Courville. Adversarially learned inference. arXiv preprint arXiv:1606.00704, 2016.
[6] Ian Goodfellow. Nips 2016 tutorial: Generative adversarial networks. arXiv preprint arXiv:1701.00160, 2016.
[7] Ian Goodfellow, Jean Pouget-Abadie, Mehdi Mirza, Bing Xu, David Warde-Farley, Sherjil Ozair, Aaron Courville, and Yoshua Bengio. Generative adversarial nets. In Advances in neural information processing systems, pages 2672–2680, 2014.
[8] Kaiming He, Xiangyu Zhang, Shaoqing Ren, and Jian Sun. Deep residual learning for image recognition. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, pages 770–778, 2016.
[9] Gao Huang, Zhuang Liu, Kilian Q Weinberger, and Laurens van der Maaten. Densely connected convolutional networks. arXiv preprint arXiv:1608.06993, 2016.
[10] Diederik Kingma and Jimmy Ba. Adam: A method for stochastic optimization. arXiv preprint arXiv:1412.6980, 2014.
[11] Diederik P Kingma and Max Welling. Auto-encoding variational bayes. arXiv preprint arXiv:1312.6114, 2013.
[12] Ziwei Liu, Ping Luo, Xiaogang Wang, and Xiaoou Tang. Deep learning face attributes in the wild. In Proceedings of International Conference on Computer Vision (ICCV), 2015.
[13] Aaron van den Oord, Nal Kalchbrenner, Oriol Vinyals, Lasse Espeholt, Alex Graves, and Koray Kavukcuoglu. Conditional image generation with pixelcnn decoders. arXiv preprint arXiv:1606.05328, 2016.
[14] Ben Poole, Alexander A Alemi, Jascha Sohl-Dickstein, and Anelia Angelova. Improved generator objectives for gans. arXiv preprint arXiv:1612.02780, 2016.
[15] Alec Radford, Luke Metz, and Soumith Chintala. Unsupervised representation learning with deep convolutional generative adversarial networks. arXiv preprint arXiv:1511.06434, 2015.
[16] Tim Salimans, Ian Goodfellow,Wojciech Zaremba, Vicki Cheung, Alec Radford, and Xi Chen. Improved techniques for training gans. In Advances in Neural Information Processing Systems, pages 2226–2234, 2016.
[17] Rupesh Kumar Srivastava, Klaus Greff, and Jürgen Schmidhuber. Highway networks. arXiv preprint arXiv:1505.00387, 2015.
[18] Cédric Villani. Optimal transport: old and new, volume 338. Springer Science & Business Media, 2008.
[19] D Warde-Farley and Y Bengio. Improving generative adversarial networks with denoising feature matching. ICLR submissions, 8, 2017.
[20] Han Zhang, Tao Xu, Hongsheng Li, Shaoting Zhang, Xiaolei Huang, Xiaogang Wang, and Dimitris Metaxas. Stackgan: Text to photo-realistic image synthesis with stacked generative adversarial networks. arXiv preprint arXiv:1612.03242, 2016.
[21] Junbo Zhao, Michael Mathieu, and Yann LeCun. Energy-based generative adversarial network. arXiv preprint arXiv:1609.03126, 2016.
轉(zhuǎn)載于:https://www.cnblogs.com/shouhuxianjian/p/10405147.html
總結(jié)
以上是生活随笔為你收集整理的Generative Adversarial Nets[BEGAN]的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 更新增加一个门店ID字段的值
- 下一篇: KMP算法的学习经验