本文來自《BEGAN: Boundary Equilibrium Generative Adversarial Networks》,時間線爲2017年3月。是google的工做。
做者提出一個新的均衡執行方法,該方法與從Wasserstein距離導出的loss相結合,用於訓練基於自動編碼器的GAN。該方法在訓練中會平衡生成器和判別器。另外,它提供一個新的近似收斂測度,快並且穩定,且結果質量高。同時做者提出一種控制圖像多樣性和可視化質量之間權衡的方法。做者專一於圖像生成任務,即便在更高分辨率下也能創造視覺質量的新里程碑。算法
GAN如今已經成爲一類用於學習數據分佈\(p_{model}(x)\)的方法,並提供生成模型能夠基於其進行採樣。GAN能夠生成很是有說服力的圖像,比經過逐像素loss的自動編碼器生成的圖像要有紋理的多。然而GAN仍然面對一些問題:網絡
- 基本很難訓練,即便採用了一些技巧[15,16]。
- 正確的超參數選擇是關鍵。
- 控制生成的樣本的圖像多樣性也是很困難的。
- 平衡判別器和生成器之間的收斂也很難:判別器老是在訓練開始就容易更收斂.
- GAN容易遭受mode collapse。
提出的啓發式正則如批判別(batch discrimination)[16]和排斥正則化器(repelling regularizer)[21]都必定程度緩解這些問題。本文的貢獻:機器學習
- 一個簡單魯棒的GAN結構,基於標準訓練過程更快速和穩定的收斂;
- 一個均衡概念用於平衡生成器和判別器;
- 一個新的控制方法來平衡圖像多樣性和可視化質量;
- 一個收斂的近似測度。據做者所知,另外一個就是Wasserstein GAN。
DCGAN是首次提出卷積結構來提高可視化質量的。而後基於能量GAN(EBGAN)是一類用於將判別器建模成能量函數的GAN。該變種收斂的更穩定,並且同時也很容易訓練和對超參數變化的魯棒性。
而更早的GAN變種都缺乏收斂測度。Wasserstein GAN近來引入的loss來扮演收斂測度。在他們的實現中,代價就是訓練更慢了,可是好處就是穩定和更好的模式覆蓋。ide
做者使用EBGAN中的自動編碼器做爲判別器。而典型的GAN是直接匹配數據分佈的,做者的方法意在從Wasserstein距離導出的loss匹配自動編碼器的loss分佈。這目標能夠經過使用一個典型GAN目標和額外的均衡項來平衡判別器和生成器達到。做者的方法更容易訓練並且相對經典GAN使用的是更簡單的神經網絡結構。函數
咱們指望研究匹配偏差分佈的影響,而不是直接匹配樣本的分佈。 做者首先引入自動編碼器的loss,而後計算介於真實的和生成的樣本的自動編碼器loss分佈之間的Wasserstein距離的下限。學習
首先引入\(\mathcal{L}:\mathbb{R}^{N_x}\mapsto R^+\)做爲訓練逐像素自動編碼器的loss:
測試
做者設計的判別器可以最大化介於自動編碼器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|\):
ui
該式子雖然相似WGAN中的式子,不過仍是有2個重要的差異:google
- 介於loss之間進行匹配分佈,不是介於樣本之間;
- 不顯式須要判別器是K-Lipschitz,由於這裏不是使用的Kantorovich和Rubinstein對偶原理[18]
對於函數近似,咱們必須考慮每一個函數G和D的表徵能力。這是有模型實現的函數和參數量共同決定的。一般的情形是G和D不是很好平衡,判別器D很容易壓倒另外一方。爲了考慮到這種狀況,做者引入了均衡概念。
實際上,平衡生成器和判別器的loss是很關鍵的;當平衡時:
更進一層,咱們能夠經過一個新的超參數\(\gamma\in[0,1]\)去自定義均衡的程度,定義以下:
BEGAN的目標是:
在早期訓練過程當中,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\)。
決定GAN的收斂一般是一個困難的任務,由於原始式子是以零和遊戲定義的。並且後續訓練中會出現一個loss上升,另外一個loss降低的狀況。epochs的數值或者可視化肉眼檢測一般是惟一實際能夠感知當前訓練程度的方法。
做者提出一個全局收斂測度方式,也是經過使用均衡概念:咱們能夠構建收斂過程,先找到比例控制算法\(|\gamma\mathcal{L}(x)-\mathcal{L}(G(z_G))|\)的瞬時過程偏差,而後找到該偏差的最低絕對值的最接近重建\(\mathcal{L}(x)\)。該測度能夠形式化爲兩項的和:
判別器\(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}\)是均勻採樣。
這個簡單結構得到了很好的質量結果,也具備很好的魯棒性。
此外,還有一些方式有助於梯度傳播並生成更清晰的圖片。受到深度殘差網絡的啓發,做者經過消失的殘差來初始化網絡:如連續的一樣尺度的層,層的輸入是與他的輸出相結合的:\(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,轉置卷積或卷積濾波器指數增加等。
做者用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。該數據集有更多人臉姿態變化,包括相機軸上的角度等等。
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.