第3章 3.3 生成對抗網(wǎng)絡(luò)_第1頁
第3章 3.3 生成對抗網(wǎng)絡(luò)_第2頁
第3章 3.3 生成對抗網(wǎng)絡(luò)_第3頁
第3章 3.3 生成對抗網(wǎng)絡(luò)_第4頁
第3章 3.3 生成對抗網(wǎng)絡(luò)_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

生成對抗網(wǎng)絡(luò)生成對抗網(wǎng)絡(luò)生成對抗網(wǎng)絡(luò)(GenerativeAdversarialNetwork,GAN)是近年來在復(fù)雜分布上的無監(jiān)督學(xué)習(xí)中最具前景的方法之一。網(wǎng)絡(luò)通過框架中的生成網(wǎng)絡(luò)與判別網(wǎng)絡(luò)的互相博弈產(chǎn)生相當(dāng)好的輸出,即生成網(wǎng)絡(luò)能夠生成以假亂真的樣本,同時(shí)判別網(wǎng)絡(luò)也具有很高的判別成功率。原始GAN理論中,并不要求生成網(wǎng)絡(luò)和判別網(wǎng)絡(luò)都是神經(jīng)網(wǎng)絡(luò),只要求它們是能擬合相應(yīng)生成和判別的函數(shù)即可。但實(shí)際應(yīng)用中一般使用深度神經(jīng)網(wǎng)絡(luò)作為生成網(wǎng)絡(luò)和判別網(wǎng)絡(luò)。1基于GAN的手寫數(shù)字生成實(shí)例目錄常用GAN算法及其結(jié)構(gòu)2常用GAN算法及其結(jié)構(gòu)1.GANGAN包含生成網(wǎng)絡(luò)和判別網(wǎng)絡(luò)。生成網(wǎng)絡(luò)從潛在空間(LatentSpace)中隨機(jī)采樣作為輸入,其輸出結(jié)果需要盡量模仿訓(xùn)練集中的真實(shí)樣本,如下圖所示。常用GAN算法及其結(jié)構(gòu)判別網(wǎng)絡(luò)的輸入則為真實(shí)樣本或生成網(wǎng)絡(luò)的輸出,其目的是盡可能將生成網(wǎng)絡(luò)的輸出從真實(shí)樣本中分辨出來。判別網(wǎng)絡(luò)的最后一層一般只有一個(gè)神經(jīng)元,并且使用Sigmoid激活函數(shù)得到一個(gè)0到1的輸出。如果輸入真實(shí)樣本,則希望判別網(wǎng)絡(luò)輸出1。如果輸入生成網(wǎng)絡(luò)產(chǎn)生的樣本,則希望判別網(wǎng)絡(luò)輸出0,如下圖所示。生成網(wǎng)絡(luò)的訓(xùn)練如下圖所示。常用GAN算法及其結(jié)構(gòu)

常用GAN算法及其結(jié)構(gòu)

常用GAN算法及其結(jié)構(gòu)

常用GAN算法及其結(jié)構(gòu)

常用GAN算法及其結(jié)構(gòu)GAN有如下3個(gè)優(yōu)點(diǎn)。(1)能更好地對數(shù)據(jù)分布建模(圖像更銳利、清晰)。(2)理論上,GAN能訓(xùn)練任何一種生成網(wǎng)絡(luò)。而其他框架需要生成網(wǎng)絡(luò)有一些特定的函數(shù)形式,例如,輸出是滿足高斯分布的。(3)無須利用馬爾科夫鏈反復(fù)采樣,無須在學(xué)習(xí)過程中進(jìn)行推斷,沒有復(fù)雜的變分下界,避開近似計(jì)算中棘手的概率難題。GAN有如下兩個(gè)缺點(diǎn)。(1)難訓(xùn)練,不穩(wěn)定。生成網(wǎng)絡(luò)和判別網(wǎng)絡(luò)之間需要很好的同步,但是在實(shí)際訓(xùn)練中很容易出現(xiàn)判別網(wǎng)絡(luò)收斂,生成網(wǎng)絡(luò)發(fā)散的情況。GAN的訓(xùn)練需要精心設(shè)計(jì)。(2)可能出現(xiàn)模式崩潰(ModeCollapse)問題。在GAN的學(xué)習(xí)過程中可能出現(xiàn)模式崩潰問題,生成網(wǎng)絡(luò)開始退化,總是生成同樣的樣本點(diǎn),無法繼續(xù)學(xué)習(xí)。常用GAN算法及其結(jié)構(gòu)2.DCGANDCGAN是對GAN有較好改進(jìn)的變種,其主要的改進(jìn)主要是在網(wǎng)絡(luò)結(jié)構(gòu)上。到目前為止,DCGAN的網(wǎng)絡(luò)結(jié)構(gòu)仍被廣泛使用。DCGAN極大地提升了訓(xùn)練的穩(wěn)定性以及生成結(jié)果質(zhì)量。DCGAN使用兩個(gè)CNN分別表示生成網(wǎng)絡(luò)和判別網(wǎng)絡(luò),其中生成網(wǎng)絡(luò)如下圖所示。常用GAN算法及其結(jié)構(gòu)

常用GAN算法及其結(jié)構(gòu)3.ConditionalGAN原始的GAN在訓(xùn)練時(shí)會很容易失去方向,不穩(wěn)定且效果差。而ConditionalGAN在原始的GAN中加入一些先驗(yàn)條件,使網(wǎng)絡(luò)變得更加可控制。具體來說,可以在生成網(wǎng)絡(luò)G和判別網(wǎng)絡(luò)D中同時(shí)加入條件來引導(dǎo)數(shù)據(jù)的生成過程。條件可以是任何補(bǔ)充的信息,如樣本的類別、其他模態(tài)的數(shù)據(jù)等。這樣的做法有很多應(yīng)用,如圖像標(biāo)注、利用文本生成圖片等。常用GAN算法及其結(jié)構(gòu)ConditionalGAN的網(wǎng)絡(luò)結(jié)構(gòu)如下圖所示。雖然訓(xùn)練樣本有多個(gè)類別,但是每個(gè)樣本的類別只作為數(shù)據(jù)和對應(yīng)的樣本一起傳入判別網(wǎng)絡(luò)中,判別網(wǎng)絡(luò)的輸出仍然是一個(gè)0到1的數(shù)。訓(xùn)練判別網(wǎng)絡(luò)的時(shí)候,真實(shí)樣本的標(biāo)簽仍然是1(不論是哪一個(gè)類別),假樣本的標(biāo)簽仍然是0。并且,對于假樣本,需要隨機(jī)指定一個(gè)類別,再一起輸入判別網(wǎng)絡(luò)中進(jìn)行訓(xùn)練。具體的細(xì)節(jié)可看3.3.2小節(jié)的ConditionalGAN生成手寫數(shù)字圖片的實(shí)例。1基于GAN的手寫數(shù)字生成實(shí)例目錄常用GAN算法及其結(jié)構(gòu)2基于GAN的手寫數(shù)字生成實(shí)例1.DCGAN生成手寫數(shù)字圖片本小節(jié)利用Keras構(gòu)造DCGAN并訓(xùn)練,使得生成網(wǎng)絡(luò)可以生成以假亂真的手寫數(shù)字圖片。在訓(xùn)練DCGAN時(shí),首先需要凍結(jié)生成網(wǎng)絡(luò),采樣真實(shí)手寫數(shù)字圖片和生成網(wǎng)絡(luò)輸出的假樣本,訓(xùn)練判別網(wǎng)絡(luò),使其盡可能區(qū)分兩類樣本;然后凍結(jié)判別網(wǎng)絡(luò),將生成網(wǎng)絡(luò)構(gòu)造的圖片輸入判別網(wǎng)絡(luò),訓(xùn)練生成網(wǎng)絡(luò),使得判別網(wǎng)絡(luò)輸出越接近1越好,即生成的圖片越來越逼真,直到最后“騙過”判別網(wǎng)絡(luò)。此時(shí)生成網(wǎng)絡(luò)產(chǎn)生的圖片與真實(shí)的手寫數(shù)字圖片基本一致。構(gòu)造一個(gè)生成網(wǎng)絡(luò)。因?yàn)槭謱憯?shù)字?jǐn)?shù)據(jù)庫比較簡單,使用原始的DCGAN的網(wǎng)絡(luò)結(jié)構(gòu)會導(dǎo)致過擬合,需要減少卷積核的數(shù)量。生成網(wǎng)絡(luò)首先讓一維向量(100,)經(jīng)過一個(gè)全連接層得到大小為7×7×128的三維矩陣;然后分別經(jīng)過4組批歸一化、激活函數(shù)和二維轉(zhuǎn)置卷積,其中前兩組的二維轉(zhuǎn)置卷積的步長為2,可以把行和列的大小擴(kuò)大一倍;最后經(jīng)過一個(gè)Sigmoid傳遞函數(shù),輸出一個(gè)大小為(28,28,1)的矩陣,每個(gè)像素值為0到1的值。基于GAN的手寫數(shù)字生成實(shí)例構(gòu)造一個(gè)判別網(wǎng)絡(luò)。判別網(wǎng)絡(luò)輸入一張形狀為(28,28,1)的圖片,輸出一個(gè)0到1的數(shù)。為了避免過擬合,判別網(wǎng)絡(luò)的卷積核的數(shù)量也比原始的DCGAN中判別網(wǎng)絡(luò)的要少。需要注意的是,在每一個(gè)卷積層之前,都先經(jīng)過了傳遞函數(shù)LeakyReLU,它與ReLU的區(qū)別是,如果輸入值小于0,它將返回alpha乘輸入值,而不是返回0。把生成網(wǎng)絡(luò)和判別網(wǎng)絡(luò)串聯(lián)在一起,構(gòu)造了一個(gè)DCGAN。需要注意的是,在訓(xùn)練生成網(wǎng)絡(luò)的時(shí)候,判別網(wǎng)絡(luò)的參數(shù)需要保持不變(discriminator.trainable=False),如此訓(xùn)練過程才能穩(wěn)定。訓(xùn)練所構(gòu)造的DCGAN。訓(xùn)練包括兩個(gè)步驟:首先凍結(jié)生成網(wǎng)絡(luò),采樣真實(shí)樣本和生成網(wǎng)絡(luò)輸出的假樣本,訓(xùn)練判別網(wǎng)絡(luò),讓它學(xué)會區(qū)分兩類樣本;然后凍結(jié)判別網(wǎng)絡(luò),讓生成網(wǎng)絡(luò)構(gòu)造圖片輸入判別網(wǎng)絡(luò),訓(xùn)練生成網(wǎng)絡(luò),使判別網(wǎng)絡(luò)的輸出越接近1越好,即讓判別網(wǎng)絡(luò)認(rèn)為生成的樣本是真的。不斷迭代訓(xùn)練,當(dāng)生成網(wǎng)絡(luò)構(gòu)造的圖片讓判別網(wǎng)絡(luò)區(qū)分不了真假時(shí),生成網(wǎng)絡(luò)就具備了創(chuàng)造手寫數(shù)字圖片的能力。定義一個(gè)函數(shù)plot_images,用于顯示和保存生成網(wǎng)絡(luò)構(gòu)造的一批圖片基于GAN的手寫數(shù)字生成實(shí)例在訓(xùn)練過程中,代碼會把生成網(wǎng)絡(luò)每隔500次迭代后所繪制的圖片保存起來。DCGAN生成的手寫數(shù)字圖片在第1000次、第2000次、第4000次和第10000次迭代的結(jié)果如下圖所示。可以看到,當(dāng)?shù)降?000次的時(shí)候,生成網(wǎng)絡(luò)還不具備構(gòu)造高質(zhì)量手寫數(shù)字圖片的能力;當(dāng)?shù)降?000次的時(shí)候,圖像的質(zhì)量已經(jīng)有了明顯的提升;當(dāng)?shù)?0000次的時(shí)候,已經(jīng)可以生成“以假亂真”的手寫數(shù)字圖片了。(a)第1000次迭代(b)第2000次迭代(c)第4000次迭代

(d)第10000次迭代如果沒有GPU的支持,網(wǎng)絡(luò)的訓(xùn)練時(shí)間會很長,可通過讀取dcgan_mnist_generator.h5文件來直接使用已經(jīng)訓(xùn)練過的生成網(wǎng)絡(luò)基于GAN的手寫數(shù)字生成實(shí)例2.ConditionalGAN生成手寫數(shù)字圖片在DCGAN生成手寫數(shù)字圖片的實(shí)例中有一個(gè)問題,給定一個(gè)隨機(jī)向量,生成網(wǎng)絡(luò)得到的數(shù)字圖片也是隨機(jī)的,即可能是0到9的任何一個(gè),沒有辦法控制它生成指定數(shù)字的圖片。本小節(jié)將利用ConditionalGAN生成指定數(shù)字的圖片,除了傳入一個(gè)隨機(jī)向量給生成網(wǎng)絡(luò)之外,還會傳入指定數(shù)字的類別的獨(dú)熱編碼向量。需要注意的是,ConditionalGAN的判別網(wǎng)絡(luò)輸出仍然是一個(gè)0到1的數(shù)。訓(xùn)練判別網(wǎng)絡(luò)的時(shí)候,傳遞給損失函數(shù)的真實(shí)樣本的標(biāo)簽仍然是1(不論是哪一個(gè)數(shù)字),假樣本的標(biāo)簽仍然是0。而且對于假樣本,需要隨機(jī)指定一個(gè)類別,再一起輸入判別網(wǎng)絡(luò)中進(jìn)行訓(xùn)練。例如,把某張手寫數(shù)字2的圖片輸入網(wǎng)絡(luò)中時(shí),還會同時(shí)傳入向量[0,0,1,0,0,0,0,0,0,0],即生成網(wǎng)絡(luò)和判別網(wǎng)絡(luò)都有兩個(gè)輸入?;贕AN的手寫數(shù)字生成實(shí)例在生成網(wǎng)絡(luò)中,首先將100個(gè)分量的隨機(jī)向量與10個(gè)分量的獨(dú)熱編碼向量結(jié)合在一起,構(gòu)成具有110個(gè)分量的向量,經(jīng)過第一個(gè)全連接層和Reshape層后,得到大小為(7,7,128)的二維向量。然后進(jìn)行4組轉(zhuǎn)置卷積,得到一個(gè)大小為(28,28,1)的輸出。在判別網(wǎng)絡(luò)中,首先讓具有10個(gè)分量的獨(dú)熱編碼向量經(jīng)過全連接層和Reshape層得到和輸入圖像一樣大小為(28,28,1)的數(shù)據(jù)。然后把該數(shù)據(jù)和圖像數(shù)據(jù)拼接起來,得到大小為(28,28,2)的數(shù)據(jù)。再經(jīng)過4組卷積和一個(gè)全連接層,得到一個(gè)0到1的標(biāo)量輸出。生成網(wǎng)絡(luò)構(gòu)造的圖片如果與所給定的獨(dú)熱編碼指定數(shù)字不一致,那么判別網(wǎng)絡(luò)就會得到接近0的輸出,從而迫使生成網(wǎng)絡(luò)調(diào)整自身參數(shù),讓生成的圖片與獨(dú)熱編碼指定的數(shù)字相一致。最后,通過獨(dú)熱編碼向量控制生成網(wǎng)絡(luò)得到的圖片究竟是哪一個(gè)數(shù)字的圖片。使用ConditionalGAN生成手寫數(shù)字圖片?;贕AN的手寫數(shù)字生成實(shí)例ConditionalGAN生成的手寫數(shù)字圖片在第1000次、第2000次、第3000次和第5000次迭代的結(jié)果如下圖所示??梢钥吹?,當(dāng)?shù)降?000次的時(shí)候,生成網(wǎng)絡(luò)還不具備構(gòu)造高質(zhì)量手寫數(shù)字圖片的能力;當(dāng)?shù)降?000次的時(shí)候,圖像的質(zhì)量已經(jīng)有了明顯的提升;當(dāng)?shù)降?000次的時(shí)候,已經(jīng)可以生成以假亂真的手寫數(shù)字圖片了。并且,生成網(wǎng)絡(luò)可以通過獨(dú)熱編碼向量生成指定數(shù)字的圖片,即第一列是0的圖片、第2列是1的圖片……最后一列是9的圖片。(c)第1000次迭代(d)第2000次迭代(c)第3000次迭代

(d)第5000次迭代實(shí)訓(xùn)1卷積神經(jīng)網(wǎng)絡(luò)1.訓(xùn)練要點(diǎn)(1)掌握使用Keras構(gòu)建卷積神經(jīng)網(wǎng)絡(luò)的主要步驟。(2)根據(jù)卷積的輸出結(jié)果,理解卷積運(yùn)算的過程。(3)掌握使用預(yù)訓(xùn)練好的ResNet對自己的數(shù)據(jù)再次進(jìn)行訓(xùn)練的方法。2.需求說明基于cifar10數(shù)據(jù)集實(shí)現(xiàn)圖像分類,該數(shù)據(jù)集共有60000張彩色圖像,這些圖像的尺寸為32×32,分為10個(gè)類別,每個(gè)類別有6000張圖。其中有50000張圖片用于訓(xùn)練,構(gòu)成了5個(gè)訓(xùn)練批,每一批有10000張圖,每一類都有5000張圖;另外10000張圖片用于測試,單獨(dú)構(gòu)成1個(gè)測試批。測試批的數(shù)據(jù),取自10個(gè)類別,每一類隨機(jī)取1000張。需要實(shí)現(xiàn)以下內(nèi)容。(1)自行構(gòu)造一個(gè)有3個(gè)卷積層的卷積神經(jīng)網(wǎng)絡(luò),并設(shè)置優(yōu)化算法及其學(xué)習(xí)率、批大小和迭代的次數(shù),分析相應(yīng)的結(jié)果。實(shí)訓(xùn)1卷積神經(jīng)網(wǎng)絡(luò)(2)得到cifar10數(shù)據(jù)集的第一張訓(xùn)練圖片在3個(gè)卷積層某個(gè)通道的中間結(jié)果,用圖形繪制出來,并進(jìn)行分析。(3)使用預(yù)訓(xùn)練好的ResNet,選取部分網(wǎng)絡(luò)層,并添加合適的網(wǎng)絡(luò)層,構(gòu)造網(wǎng)絡(luò)進(jìn)行訓(xùn)練,并調(diào)整網(wǎng)絡(luò)參數(shù),分析相應(yīng)的結(jié)果。與自己構(gòu)造的卷積神經(jīng)網(wǎng)絡(luò)對比分類精度。3.實(shí)現(xiàn)思路及步驟(1)構(gòu)建卷積神經(jīng)網(wǎng)絡(luò),設(shè)置優(yōu)化算法、學(xué)習(xí)率、批大小和迭代次數(shù)。(2)使用圖形繪制3個(gè)卷積層中某個(gè)通道的中間結(jié)果。(3)讀取預(yù)訓(xùn)練好的ResNet50的權(quán)重,構(gòu)造網(wǎng)絡(luò)、調(diào)整網(wǎng)絡(luò)參數(shù)并訓(xùn)練網(wǎng)絡(luò),最后分析網(wǎng)絡(luò)的分類精度。實(shí)訓(xùn)2循環(huán)神經(jīng)網(wǎng)絡(luò)1.訓(xùn)練要點(diǎn)(1)掌握循環(huán)神經(jīng)網(wǎng)絡(luò)中的常用網(wǎng)絡(luò)層的基本原理與實(shí)現(xiàn)方法。(2)理解注意力模型的使用方法。(3)能夠設(shè)計(jì)并編程實(shí)現(xiàn)利用循環(huán)神經(jīng)網(wǎng)絡(luò)進(jìn)行文本分類的方法。2.需求說明在處理網(wǎng)絡(luò)問政平臺的群眾留言時(shí),工作人員首先按照一定的劃分體系對留言進(jìn)行分類,以便后續(xù)將群眾留言分派至相應(yīng)的職能部門處理。目前,大部分電子政務(wù)系統(tǒng)還是依靠人工根據(jù)經(jīng)驗(yàn)處理,存在工作量大、效率低且差錯(cuò)率高等問題。請根據(jù)附件給出的數(shù)據(jù),利用循環(huán)神經(jīng)網(wǎng)絡(luò)和SelfAttention網(wǎng)絡(luò),建立關(guān)于留言內(nèi)容的一級分類網(wǎng)絡(luò)。實(shí)訓(xùn)2循環(huán)神經(jīng)網(wǎng)絡(luò)附件數(shù)據(jù)如下表所示。3.實(shí)現(xiàn)思路及步驟可參考3.2.2小節(jié)介紹的新聞?wù)诸悓?shí)例。留言編號留言用戶留言主題留言時(shí)間留言詳情一級分類744A089211建議增加A小區(qū)快遞柜2019/10/1814:44我們是A小區(qū)居民……交通運(yùn)輸實(shí)訓(xùn)3生成對抗網(wǎng)絡(luò)1.訓(xùn)練要點(diǎn)(1)掌握生成對抗網(wǎng)絡(luò)中的常用網(wǎng)絡(luò)層的基本原理與實(shí)現(xiàn)方法。(2)能夠設(shè)計(jì)并編程實(shí)現(xiàn)生成對抗神經(jīng)網(wǎng)絡(luò)解決一些實(shí)際問題。2.需求說明fashion_mnist數(shù)據(jù)集(fromkeras.datasetsimportfashion_minist)包含10個(gè)類別的圖像,分別是T-shirtHOP(T恤)、Trouser(褲子)、Pullover(套衫)、Dress(連衣裙)、Coat(外套)、Sandal(涼鞋)、Shirt(襯衫)、Sneaker(運(yùn)動鞋)、Bag(包)、Ankleboot(短靴),如圖3-35所示。利用fas

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論