樊雷
摘要:卷積神經(jīng)網(wǎng)絡(luò)CNN目前在有監(jiān)督學(xué)習(xí)領(lǐng)域有著優(yōu)秀的表現(xiàn),但在無(wú)監(jiān)督學(xué)習(xí)領(lǐng)域研究進(jìn)展緩慢。該文將CNN引入到GAN中的生成式模型中做無(wú)監(jiān)督訓(xùn)練,利用CNN強(qiáng)大的特征提取能力來(lái)提高生成式模型的學(xué)習(xí)效果,采用TensorFlow和Python代碼實(shí)現(xiàn)了DCGAN中的D模型和G模型,并在MNIST部分?jǐn)?shù)據(jù)集下驗(yàn)證了模型生成數(shù)字圖像效果。實(shí)驗(yàn)結(jié)果表明采用DCGAN可以有效獲取圖像表征用于分類并具備生成較高分辨率的圖像能力。
關(guān)鍵詞:DCGAN;深度學(xué)習(xí);TensorFlow;GAN
中圖分類號(hào):TP391 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2017)36-0219-03
Abstract: Convolutional neural network (CNN) has excellent performance in supervised learning field, but the progress of research is slow in unsupervised learning. This paper introduced CNN into the generative model of GAN in unsupervised training, to improve the ability to extract generative model learning effect by the powerful character of CNN, using TensorFlow and Python code to achieve the D model and G model within DCGAN, and validates the model to generate digital image effect by the dataset of MNIST. Experimental results show that DCGAN can effectively obtain image representation for classification, and has the ability to generate high resolution of images.
Key words: DCGAN; Deep learning; TensorFlow; GAN
1 TensorFlow概述
TensorFlow是Google公司在2015年11月開(kāi)源的第二代人工智能學(xué)習(xí)系統(tǒng),具備了高層次的機(jī)器學(xué)習(xí)計(jì)算能力,其特點(diǎn)是靈活性強(qiáng)、速度快、擴(kuò)展性好,支持異種設(shè)備分布式計(jì)算,特別是對(duì)GPU分布式計(jì)算具備良好的支持,能夠在不同異種平臺(tái)上實(shí)現(xiàn)分散節(jié)點(diǎn)自動(dòng)運(yùn)行各種目前流行的深度學(xué)習(xí)模型,可以構(gòu)建從單個(gè)CPU 或 GPU到成百上千處理單元組成的分布式系統(tǒng)來(lái)加速深度學(xué)習(xí)模型的訓(xùn)練速度。目前TensorFlow已經(jīng)開(kāi)源支持了卷積神經(jīng)網(wǎng)絡(luò)CNN、遞歸神經(jīng)網(wǎng)絡(luò)RNN和LSTM神經(jīng)網(wǎng)絡(luò)等經(jīng)典深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)模型。TensorFlow 提供了 C, C++, Python 編程語(yǔ)言接口,特別是Python 庫(kù)更加易學(xué)易用,同時(shí)提供了大量的內(nèi)置函數(shù)來(lái)簡(jiǎn)化深度學(xué)習(xí)計(jì)算圖的構(gòu)建。圖1為TensorFlow分層架構(gòu)[1]。
2 生成式對(duì)抗網(wǎng)絡(luò)GAN
Christian Szegedy等人在ICLR 2014發(fā)表的論文[2]中,提出了對(duì)抗樣本(Adversarial examples)的概念,即在輸入樣本數(shù)據(jù)集中設(shè)計(jì)細(xì)微的干擾,以合成噪聲構(gòu)造的圖像樣本數(shù)據(jù)作為輸入,致使多種深度學(xué)習(xí)模型以高置信度給出了錯(cuò)誤的輸出結(jié)果。實(shí)驗(yàn)表明包括卷積神經(jīng)網(wǎng)絡(luò)(CNN)在內(nèi)的各種深度學(xué)習(xí)模型和其他機(jī)器學(xué)習(xí)模型對(duì)于對(duì)抗樣本都表現(xiàn)出了極低的魯棒性。生成式對(duì)抗網(wǎng)絡(luò)(GAN)的設(shè)計(jì)靈感來(lái)源于博弈論中的零和博弈,由Goodfellow在論文[3]中創(chuàng)造性地提出。GAN通過(guò)研究深度學(xué)習(xí)本身對(duì)識(shí)別對(duì)抗樣本的缺陷,利用“欺騙”和“反欺騙”的博弈,實(shí)現(xiàn)了模型內(nèi)部的監(jiān)督學(xué)習(xí)。GAN中的博弈模型分別是生成模型G和判別模型D,其模型中使用的G(z)和D(x)通常為非線性映射函數(shù),輸入樣本一般來(lái)源于多層感知機(jī)、卷積神經(jīng)網(wǎng)絡(luò)或其他人工智能模型。
3 DCGAN原理和實(shí)現(xiàn)方法
DCGAN全稱是Deep Convolution GAN,即采用深度卷積網(wǎng)絡(luò)對(duì)G進(jìn)行建模。G的輸入是一個(gè) 100維隨機(jī)噪聲向量,服從均勻分布,區(qū)間為[-1,1]。 CNN使用了一個(gè)全連接層和4個(gè)卷積層,通過(guò)卷積算法將高層表征轉(zhuǎn)換為64 * 64*3的RGB圖片。 第一個(gè)卷積層采用全連接100 —>1024,并將1024的一維向量重塑成1024個(gè)通道的4*4的特征圖。G的后面三層采用反卷積層,其通道數(shù)取半并將圖像尺寸增加一倍。
判別模型D是一個(gè)沒(méi)有pooling的全卷積網(wǎng)絡(luò)。 D的輸入維度和G的輸出保持一致,訓(xùn)練樣本的結(jié)果輸出是一個(gè)長(zhǎng)度為1 的向量,數(shù)字的范圍從0到1,表示輸入數(shù)據(jù)屬于訓(xùn)練數(shù)據(jù)而非生成樣本的概率。
4 DCGAN圖片生成效果
以下利用DCGAN來(lái)生成MNIST數(shù)字手寫(xiě)體灰度圖像,由于實(shí)驗(yàn)條件限制,硬件采用Intel I7 4770處理器和8G內(nèi)存對(duì)Tensorflow進(jìn)行了CPU運(yùn)算,分別迭代100、1000、2000輪,3次Epoch后,選取的部分MNIST數(shù)字圖像生成效果如圖4所示。
圖5采用一張花卉圖片樣本,對(duì)比DCGAN和Autoencoder無(wú)監(jiān)督的學(xué)習(xí)算法效果。
通過(guò)觀察可以發(fā)現(xiàn)DCGAN能夠更為有效、快速地實(shí)現(xiàn)生成高質(zhì)量圖片。實(shí)驗(yàn)還表明通過(guò)增大Epoch代數(shù),當(dāng)Epoch達(dá)到一定次數(shù)后,對(duì)生成的圖像分辨率提高意義不大。endprint
5 結(jié)束語(yǔ)
DCGAN結(jié)合了CNN和GAN模型各自的優(yōu)點(diǎn),可以從物體或場(chǎng)景圖像數(shù)據(jù)集中學(xué)習(xí)到多維深層次表征,工程實(shí)踐中訓(xùn)練的結(jié)果可以有效的用于生成圖像的多維向量表征,在人工智能圖像生成方面具有較高的應(yīng)用價(jià)值。從目前國(guó)外學(xué)者們的實(shí)驗(yàn)效果來(lái)看,在人臉和場(chǎng)景生成等方向上已經(jīng)取得了突破性的進(jìn)展。TensorFlow下實(shí)現(xiàn)DCGAN可以有效地將學(xué)術(shù)領(lǐng)域和工程領(lǐng)域結(jié)合起來(lái),通過(guò)TensorFlow的優(yōu)秀計(jì)算特性、擴(kuò)展特性可以有效地加速人工智能深度學(xué)習(xí)各種模型的訓(xùn)練速度,快速驗(yàn)證模型算法的有效性和魯棒性,具有廣闊的實(shí)驗(yàn)、科研以及工程應(yīng)用價(jià)值。
參考文獻(xiàn):
[1] Abadi M, Barham P. TensorFlow: A system for large-scale machine learning [J]. arXiv preprint arXiv: 1605.08695V2, 2016(5):9-10.
[2] Szegedy C, Zaremba W, Sutskever I, et al. Intriguing properties of neural networks[J]. arXiv preprint arXiv: 1312.6199v4, 2014(2):1-2.
[3] Goodfellow Ian, Pouget-Abadie J, Mirza M, et al. Generative adversarial nets[J]. arXiv: 1406.2661v1 ,2014(6):4-5
[4] Radford A, Metz L, Chintala S. Unsupervised representation learning with deep convolutional generative adversarial networks[J]. arXiv preprint arXiv: 1511. 06434, 2015: 4
[5] Yeh R, Chen C, Lim T Y, et al. Semantic Image Inpainting with Perceptual and Contextual Losses[J]. arXiv preprint arXiv: arXiv: 1607. 07539 v1, 2016: 5.
[6] Im D J, Kim C D, Jiang H, et al. Generating images with recurrent adversarial networks[J]. arXiv preprint arXiv: 1602, 05110, 2016.endprint