Generative Adversarial Nets[BEGAN]
本文來自《BEGAN: Boundary Equilibrium Generative Adversarial Networks》,時間線為2017年3月。是google的工作。
作者提出一個新的均衡執行方法,該方法與從Wasserstein距離導出的loss相結合,用于訓練基于自動編碼器的GAN。該方法在訓練中會平衡生成器和判別器。另外,它提供一個新的近似收斂測度,快而且穩定,且結果質量高。同時作者提出一種控制圖像多樣性和可視化質量之間權衡的方法。作者專注于圖像生成任務,即使在更高分辨率下也能創造視覺質量的新里程碑。
1 引言
GAN現在已經成為一類用于學習數據分布\(p_{model}(x)\)的方法,并提供生成模型可以基于其進行采樣。GAN可以生成非常有說服力的圖像,比通過逐像素loss的自動編碼器生成的圖像要有紋理的多。然而GAN仍然面對一些問題:
- 基本很難訓練,即使采用了一些技巧[15,16]。
- 正確的超參數選擇是關鍵。
- 控制生成的樣本的圖像多樣性也是很困難的。
- 平衡判別器和生成器之間的收斂也很難:判別器總是在訓練開始就容易更收斂.
- GAN容易遭受mode collapse。
提出的啟發式正則如批判別(batch discrimination)[16]和排斥正則化器(repelling regularizer)[21]都一定程度緩解這些問題。本文的貢獻:
- 一個簡單魯棒的GAN結構,基于標準訓練過程更快速和穩定的收斂;
- 一個均衡概念用于平衡生成器和判別器;
- 一個新的控制方法來平衡圖像多樣性和可視化質量;
- 一個收斂的近似測度。據作者所知,另一個就是Wasserstein GAN。
2 相關工作
DCGAN是首次提出卷積結構來提升可視化質量的。然后基于能量GAN(EBGAN)是一類用于將判別器建模成能量函數的GAN。該變種收斂的更穩定,而且同時也很容易訓練和對超參數變化的魯棒性。
而更早的GAN變種都缺少收斂測度。Wasserstein GAN近來引入的loss來扮演收斂測度。在他們的實現中,代價就是訓練更慢了,但是好處就是穩定和更好的模式覆蓋。
3 提出的方法
作者使用EBGAN中的自動編碼器作為判別器。而典型的GAN是直接匹配數據分布的,作者的方法意在從Wasserstein距離導出的loss匹配自動編碼器的loss分布。這目標可以通過使用一個典型GAN目標和額外的均衡項來平衡判別器和生成器達到。作者的方法更容易訓練而且相對經典GAN使用的是更簡單的神經網絡結構。
3.1 自動編碼器的Wasserstein距離下界
我們期望研究匹配誤差分布的影響,而不是直接匹配樣本的分布。 作者首先引入自動編碼器的loss,然后計算介于真實的和生成的樣本的自動編碼器loss分布之間的Wasserstein距離的下限。
首先引入\(\mathcal{L}:\mathbb{R}^{N_x}\mapsto R^+\)作為訓練逐像素自動編碼器的loss:
令\(\mu_{1,2}\)作為自動編碼器loss的兩個分布,令\(\Gamma(\mu_1,\mu_2)\)是所有\(\mu_1\)和\(\mu_2\)的耦合集合,令\(m_{1,2}\in \mathbb{R}\)是他們各自的均值。Wasserstein距離可以表示成:
使用Jensen不等式,我們可以得到一個\(W_1(\mu_1,\mu_2)\)的下界:
注意的是我們意在最優化介于自動編碼器loss分布的Wasserstein距離下界,而不是樣本分布。
3.2 GAN目標
作者設計的判別器能夠最大化介于自動編碼器loss的等式1。令\(\mu_1\)表示loss \(\mathcal{L}(x)\)的分布,其中\(x\)是真實樣本。令\(\mu_2\)是loss \(\mathcal{L}(G(z))\)的分布,其中\(G:\mathbb{R}^{N_z}\mapsto \mathbb{R}^{N_x}\)是生成器函數,\(z\in[-1,1]^{N_z}\)是維度為\(N_z\)的均勻隨機樣本。
因為\(m_1,m_2\in\mathbb{R}^+\)只有2個可能的方案去最大化\(|m_1-m_2|\):
作者選擇解決方案(b)作為目標,因為最小化\(m_1\)很自然的自動編碼真實的圖片。給定判別器和生成器參數\(\theta_D\)和\(\theta_G\),通過最小化\(\mathcal{L}_D\)和\(\mathcal{L}_G\),作者將該問題表示成GAN目標,其中\(z_D\)和\(z_G\)采樣自\(z\):
下面,會使用縮寫表示法:\(G(\cdot)=G(\cdot,\theta_G)\)和\(mathcal{L}(\cdot)=\mathcal{L}(\cdot;\theta_D)\)。
該式子雖然類似WGAN中的式子,不過還是有2個重要的差別:
- 介于loss之間進行匹配分布,不是介于樣本之間;
- 不顯式需要判別器是K-Lipschitz,因為這里不是使用的Kantorovich和Rubinstein對偶原理[18]
對于函數近似,我們必須考慮每個函數G和D的表征能力。這是有模型實現的函數和參數量共同決定的。通常的情形是G和D不是很好平衡,判別器D很容易壓倒另一方。為了考慮到這種情況,作者引入了均衡概念。
3.3 均衡(Equilibrium)
實際上,平衡生成器和判別器的loss是很關鍵的;當平衡時:
如果我們生成的樣本不能讓判別器與真實樣本進行區分,則他們錯誤的分布應該是一樣的,當然也包含期望誤差。該概念讓我們平衡分配給生成器和判別器的影響,讓他們誰都贏不了對方。
更進一層,我們可以通過一個新的超參數\(\gamma\in[0,1]\)去自定義均衡的程度,定義如下:
在本文的模型中,判別器有2個競爭的目標:1)自動編碼真實圖片;2)判別器判別生成的圖片和真實圖片。\(\gamma\)項讓我們能夠平衡這2個目標。更低的\(\gamma\)值生成更少的圖像多樣性,因為判別器更關注自動編碼真實圖片。作者這里將\(\gamma\)看成是多樣性的比率。也存在圖像清晰且具有細節的邊界。
3.4 邊界均衡GAN(Boundary Equilibrium GAN)
BEGAN的目標是:
這里使用比例控制論(Proportional Control Theory)來管理均衡\(\mathbb{E}[\mathcal{L}(G(z))]=\gamma\mathbb{E}[\mathcal{L}(x)]\)。這是通過變量\(k_t\in[0,1]\)來控制在梯度下降過程中多少程度重視\(\mathcal{L}(G(z_D))\)。這里初始化\(k_0=0\)。超參數\(\lambda_k\)是\(k\)的比例增益;在機器學習中,它就是\(k\)的學習率。作者使用0.001。本質上,這可以被認為是閉環反饋控制的一種形式,其中在每一步調整\(k_t\)以管理式子4。
在早期訓練過程中,G傾向生成自動編碼器容易重構的數據,因為此時生成的數據接近0,而真實數據分布還沒學習準確。這主要是因為早期是\(\mathcal{L}(x)>\mathcal{L}(G(z))\),這會通過均衡約束在整個訓練過程中進行管理。
式子1的近似引入和式子4中\(\gamma\)對Wasserstein距離有很大的影響。后續,評估由各種\(\gamma\)值產生的樣本是主要關注點,如下面結果部分所示。
相比傳統GAN需要交替訓練D和G,或者預訓練D。本文提出的BEGAN都不需要。采用Adam和默認的超參數訓練即可。\(\theta_D\)和\(\theta_G\)是基于他們各自的loss關于Adam優化器獨立更新的,本文中batchsize采用\(n=16\)。
3.4.1 收斂測度
決定GAN的收斂通常是一個困難的任務,因為原始式子是以零和游戲定義的。而且后續訓練中會出現一個loss上升,另一個loss下降的情況。epochs的數值或者可視化肉眼檢測通常是唯一實際可以感知當前訓練程度的方法。
作者提出一個全局收斂測度方式,也是通過使用均衡概念:我們可以構建收斂過程,先找到比例控制算法\(|\gamma\mathcal{L}(x)-\mathcal{L}(G(z_G))|\)的瞬時過程誤差,然后找到該誤差的最低絕對值的最接近重建\(\mathcal{L}(x)\)。該測度可以形式化為兩項的和:
該測度可以用來決定什么時候該網絡達到最終態還是該模型已經坍塌。
3.5 模型結構
判別器\(D:\mathbb{R}^{N_x}\mapsto \mathbb{R}^{N_x}\)是基于卷積神經網絡的自動編碼器。\(N_x=H\times W\times C\)表示\(x\)的維度,其中對應的表示為高,寬,通道。作者將深度編碼和解碼器共同構建一個自動編碼器。意圖盡可能簡單的避免需要典型GAN的那些技巧。
如圖1所示,作者使用3x3的卷積和指數線性單元(ELU)作為輸出層激活函數。每一層以一定量(通常是2)進行重復。作者實驗發現更多的重復會有更好的可視化結果。每次下采樣時,卷積濾波器會線性增長。下采樣是通過stride=2進行子采樣實現的,上采樣是通過最近鄰實現的。在介于編碼器和生成器的邊界上,處理的數據的張量通過全連接層進行映射(后面不跟任何非線性函數),嵌入狀態為\(h\in\mathbb{R}^{N_h}\),這里\(N_h\)是自動編碼器隱藏層的維度。
生成器\(G:\mathbb{R}^{N_z}\mapsto \mathbb{R}^{N_x}\)使用同樣的結構(權重不同)作為判別器的解碼器。作者選擇這個結構純粹就是因為他簡單。輸入狀態是\(z\in[-1,1]^{N_z}\)是均勻采樣。
3.5.1 可選的改善
這個簡單結構獲得了很好的質量結果,也具有很好的魯棒性。
此外,還有一些方式有助于梯度傳播并生成更清晰的圖片。受到深度殘差網絡的啟發,作者通過消失的殘差來初始化網絡:如連續的同樣尺度的層,層的輸入是與他的輸出相結合的:\(in_{x+1}=carry\times in_x+(1-carry)\times out_x\)。在本文實驗中,以\(carry=1\)開始,然后到16000 steps(一個epoch)時逐步減少到0。
同時引入skip連接來幫助梯度傳播。第一個解碼器張量\(h_0\)是通過將\(h\)映射到一個\(8\times 8\times n\)張量上獲取的。在每個上采樣step之后,輸出與\(h_0\)的上采樣以相同維度進行合并。skip連接是基于隱藏層和解碼器每個后續上采樣層之間建立的。
作者并沒有測試經典GAN上的一些方法,如BN,dropout,轉置卷積或卷積濾波器指數增長等。
4 實驗
4.1 步驟
作者用Adam訓練模型,其學習率為0.0001,當收斂測度開始停滯時,以衰減因子為2進行衰減。當以大學習率開始訓練時,會觀測到模型坍塌或者可視化假圖現象,這可以簡單的通過減少學習率來避免。作者訓練的模型分辨率從32變化到256,增加或者移除卷積層一次來適應圖像尺度,保證最終下采樣后圖片大小為8x8.作者在大部分實驗中\(N_hN_z=64\)。
作者為128x128圖像的最大模型的卷積有128個濾波器,總共有\(17.3\times 10^6\)個訓練參數。在P100 GPU上大概需要訓練2.5天。更小的模型如尺度為32x32的,在單塊GPU上訓練幾個小時即可。
作者用360K個名人圖像做訓練集,以此代替CelebA。該數據集有更多人臉姿態變化,包括相機軸上的角度等等。
4.2 圖像多樣性和質量
4.3 空間連續性
4.4 收斂測度和圖像質量
4.5 不平衡網絡的均衡(Equilibrium for unbalanced networks)
4.6 數值實驗
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.
轉載于:https://www.cnblogs.com/shouhuxianjian/p/10405147.html
總結
以上是生活随笔為你收集整理的Generative Adversarial Nets[BEGAN]的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 更新增加一个门店ID字段的值
- 下一篇: KMP算法的学习经验