柯研 王希龍 鄭鈺輝

摘要 近年來,隨著深度學(xué)習(xí)的火熱發(fā)展,以深度卷積神經(jīng)網(wǎng)絡(luò)為代表的監(jiān)督學(xué)習(xí)已經(jīng)在計算機(jī)視覺等領(lǐng)域上發(fā)揮出了巨大的作用,然而用深度學(xué)習(xí)去解決無監(jiān)督學(xué)習(xí)受到的關(guān)注卻比較少,直道有人將卷積神經(jīng)網(wǎng)絡(luò)引入到生成式模型上,提出了卷積神經(jīng)網(wǎng)絡(luò)與生成對抗網(wǎng)絡(luò)相結(jié)合的深度卷積生成對抗網(wǎng)絡(luò)。卷積神經(jīng)網(wǎng)絡(luò)的加入使得其具有了一定的結(jié)構(gòu)性約束,與傳統(tǒng)機(jī)器學(xué)習(xí)算法相比在無監(jiān)督學(xué)習(xí)的方向上展現(xiàn)出了更加強(qiáng)大的性能,擁有更好的生成效果,特別是在圖像生成方面,通過合理的訓(xùn)練甚至可以達(dá)到以假亂真的效果。本文主要就是介紹這樣一種無監(jiān)督的深度神經(jīng)網(wǎng)絡(luò)——深度卷積生成對抗網(wǎng)絡(luò)。
【關(guān)鍵詞】深度學(xué)習(xí) 深度卷積生成對抗網(wǎng)絡(luò)無監(jiān)督學(xué)習(xí)
深度卷積生成對抗網(wǎng)絡(luò)屬于無監(jiān)督學(xué)習(xí)下的一種生成模型網(wǎng)絡(luò),由于其強(qiáng)大的生成表達(dá)能力使得越來越多的人開始關(guān)注它。深度卷積生成對抗網(wǎng)絡(luò)是由生成對抗網(wǎng)絡(luò)為基礎(chǔ)加入了已經(jīng)被證明出強(qiáng)大圖像表達(dá)能力的卷積神經(jīng)網(wǎng)絡(luò),將兩者相結(jié)合發(fā)展而來,兩者的架構(gòu)基本上相同,只是深度卷積生成對抗網(wǎng)絡(luò)將普通的生成對抗網(wǎng)絡(luò)中的生成器以及判別器替換成了兩個經(jīng)過調(diào)優(yōu)改進(jìn)的卷積神經(jīng)網(wǎng)絡(luò),使之能夠更好地生成圖像以及對真假圖像進(jìn)行分類,在加入了改進(jìn)后的卷積神經(jīng)網(wǎng)絡(luò)之后,整個生成對抗網(wǎng)絡(luò)變得更加容易訓(xùn)練,能夠更好地估測數(shù)據(jù)樣本的潛在分布并生成新的數(shù)據(jù)樣本。深度卷積生成對抗網(wǎng)絡(luò)的思想來自于博弈論,整個網(wǎng)絡(luò)主要由一個生成器和一個判別器組成。我們訓(xùn)練生成器來獲取真實數(shù)據(jù)下隱藏的潛在分布規(guī)律,然后生成與之分布相類似人造樣本數(shù)據(jù);判別器也就是一個二分類的分類器,可以判別輸入的樣本是真實的數(shù)據(jù)還是生成的假的人造樣本。通過網(wǎng)絡(luò)訓(xùn)練不斷迭代參數(shù)去提高各自生成器的生成能力以及判別器的判別能力,最終獲取生成器與判別器這二者之間的一個平衡。
如圖1所示,生成器通過一個隨機(jī)噪聲的輸入去生成一個盡量服從真實數(shù)據(jù)分布的樣本,然后將生成器生成的樣本與真實的樣本混合后輸入判別器判斷。如果判別器判斷該數(shù)據(jù)的輸入來自真實數(shù)據(jù),則標(biāo)注為1.如果來自于生成器則標(biāo)注為0。這里判別器的目標(biāo)就是能夠?qū)崿F(xiàn)對數(shù)據(jù)來源的二分類判別:即該數(shù)據(jù)是真實數(shù)據(jù)還是由生成器生成的人造假數(shù)據(jù)。而生成器的目標(biāo)則是盡可能的使自己生成的假數(shù)據(jù)在判別器上的表現(xiàn)和真實數(shù)據(jù)在判別器上的表現(xiàn)一致,整個網(wǎng)絡(luò)的訓(xùn)練也就是生成器與判別器相互對抗然后迭代優(yōu)化的過程。隨著生成器與判別器性能的不斷提升,當(dāng)判別器的判別能力已經(jīng)提升到一個很高的程度還是無法正確判別數(shù)據(jù)的來源時,就可以認(rèn)為這樣的生成器已經(jīng)學(xué)到了真實數(shù)據(jù)的分布情況,并且能夠很好的生成新的數(shù)據(jù)樣本了。
1深度卷積生成對抗網(wǎng)絡(luò)結(jié)構(gòu)
1.1生成模型
生成器的整體結(jié)構(gòu)是一個以卷積神經(jīng)網(wǎng)絡(luò)為基礎(chǔ)的類卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)。與普通的卷積神經(jīng)網(wǎng)絡(luò)不同,生成模型的輸入是一個一維的隨機(jī)噪聲,而不是一張圖像,圖中的conv卷積層的操作也都是微步幅的卷積也就是反卷積,而不是普通的卷積操作(反卷積操作會在下文中詳細(xì)介紹)。在除了最后的輸出層之外的每一層都加上一個批量規(guī)范化的操作,這樣的批量規(guī)范化操作能夠?qū)⑤斎氲拿總€數(shù)據(jù)單元標(biāo)準(zhǔn)化為均值為O與單位方差的數(shù)據(jù)去來幫助訓(xùn)練過程更加穩(wěn)定,也能夠幫助處理由于初始化不良所導(dǎo)致的一些訓(xùn)練問題另外還能夠使得梯度傳向更深層次的網(wǎng)絡(luò)。最后將輸出層的激活函數(shù)設(shè)置為tanh,而其他每層的激活函數(shù)設(shè)置為ReLU。
1.2判別模型
判別模型的整體結(jié)構(gòu)與普通的卷積神經(jīng)網(wǎng)絡(luò)類似,我們都知道卷積神經(jīng)網(wǎng)絡(luò)是由卷積層,池化層,激活函數(shù)以及全連接層相互連接所組成,而在判別模型中則有些不同。首先由于跨步長的卷積層同樣能夠獲得下采樣的效果,池化層在這里就被一個步長大于1的卷積核所構(gòu)成的卷積層替代了。其次除了輸入的第一層之外,與生成模型相類似每一層都加入了批量規(guī)范化的操作。然后將每一層的激活函數(shù)都設(shè)置為LeakyReLU,最后刪除了全連接層。
1.3反卷積
近年來隨著反卷積在神經(jīng)網(wǎng)絡(luò)可視化上的成功應(yīng)用,已經(jīng)在場景分割、生成模型等領(lǐng)域被應(yīng)用。反卷積也就是對卷積操作的逆向操作。對于正常的卷積操作來說,卷積前為圖像,卷積后我們就能得到圖像的特征。那么反卷積就是反卷積前為圖像的特征,經(jīng)過反卷積的操作得到一張圖像。
我們將卷積操作認(rèn)定為前向操作,一般的操作方式就是將兩個矩陣對應(yīng)元素相乘再相加,那么反卷積也就是反向傳播就是與矩陣轉(zhuǎn)置相乘再相加。在我們的生成器中,稱之為微步幅卷積的反卷積也就對于是步長s大于1的卷積操作的反向過程,在我們實際操作中就是在每一步之后,在特征單元之后插入s-l個O,這樣實現(xiàn)類似于上采樣的操作,使得圖像的特征轉(zhuǎn)換為圖像。
1.4網(wǎng)絡(luò)的更新迭代過程
深度卷積生成對抗網(wǎng)絡(luò)的主要訓(xùn)練過程與普通的生成對抗網(wǎng)絡(luò)相同,也就是生成器與判別器的對抗博弈過程,生成器要不斷訓(xùn)練更新使得生成的圖像更不容易被判別器判別出來,而判別器則需要不斷訓(xùn)練更新使得能夠較好地將生成器生成的假的人造圖像與真實的自然圖像分離出來。在實際的訓(xùn)練過程中,損失函數(shù)如下公式(1)所示:
minmaxV(D,G)
=1Ex~pdata(x) [log D(x)] +IEz~Pz(z) [log(1 -D(G(z))]
(1)
其中,D指的是判別器G指的是生成器,我們需要訓(xùn)練判別器模型使得判別器判別真實的數(shù)據(jù)與生成器生成數(shù)據(jù)準(zhǔn)確率最大化,同時,我們需要訓(xùn)練生成器模型使得生成器生成的圖像與真實自然圖像的分布差異最小化,也就是最小化log(l-D(G(z)))。在實際中我們采用了交替的優(yōu)化方法,也就是首先固定生成器,即不讓生成器的參數(shù)更新,去優(yōu)化更新判別器的模型參數(shù),使得判別器的判別準(zhǔn)確率最大化,直到判別器能夠有效地判別真實數(shù)據(jù)與生成器生成的假的人造數(shù)據(jù);接著我們固定判別器,使其參數(shù)不再更新,去優(yōu)化更新生成器的模型參數(shù),使得判別器的判別準(zhǔn)確率最小化,直到判別器不能夠有效地判別真實數(shù)據(jù)與生成器生成的假的人造數(shù)據(jù),如此循環(huán)迭代直到達(dá)到全局最優(yōu)解,一般來說就是判別器已經(jīng)達(dá)到足夠優(yōu)秀的判別能力還是無法有效地判別真實數(shù)據(jù)與生成器生成的假的人造數(shù)據(jù)。根據(jù)經(jīng)驗來說,在同一輪的參數(shù)更新中,一般我們對判別器的參數(shù)更新多次然后再對生成器的參數(shù)更新1次。
2總結(jié)
將卷積神經(jīng)網(wǎng)絡(luò)與生成對抗網(wǎng)絡(luò)的結(jié)合,各種超參數(shù)以及函數(shù)的設(shè)置優(yōu)化帶來了令人驚喜的效果。在深度學(xué)習(xí)的領(lǐng)域占據(jù)了一席重要的地位,無監(jiān)督的思想也給各個領(lǐng)域帶來了沖擊,希望可以通過深度卷積生成對抗網(wǎng)絡(luò)獲得更好的效果,也為這樣的無監(jiān)督學(xué)習(xí)方法找到新的應(yīng)用領(lǐng)域。我們不僅可以使用訓(xùn)練好網(wǎng)絡(luò)的生成器去生成,獲得更多的樣本數(shù)據(jù),也可以使用訓(xùn)練好網(wǎng)絡(luò)的判別器去對數(shù)據(jù)圖像分類,這樣的一個網(wǎng)絡(luò)給深度學(xué)習(xí)帶來了不一樣的模型使用方法,也給我們帶來了不一樣的思考方式,推動了深度學(xué)習(xí)的發(fā)展。
參考文獻(xiàn)
[1] Radford A, Metz L, Chintala S.Unsupervised representation learningwith deep convolutional generativeadversarial networks [J]. arXivpreprint arXiv: 1511. 06434, 2015.
[2]Goodfellow I, Pouget-Abadie J, MirzaM. et al. Generative adversarialnets [C] //Advances in neuralinformation processing systems.2014: 2672-2680.
[3]10ffe, Sergey, and Christian Szegedy.“Batch normalizat ion:
Accelerat ingdeep network training by reducinginternal covariate shift.” arXivpreprint arXiv: 1502. 03167 (2 015).
[4]Gulcehre C,Moczulski M,Denil M, etal.
Noisy activation functions [C]//International
[5]Conference on Machine Learning. 2016:3059-3068. Agostinelli, Forest, etal. “Learning activation functions toimprove deep neural networks.” arXivpreprint arXiv: 1412. 6830(2 014).
[6]2eiler M D, Krishnan D, Taylor G W,et al. Deconvolutional networks [J].2010.