【GAN模型结构】从最简单的全卷积GAN一起开始玩转GAN
大家好,今天開(kāi)設(shè)新專(zhuān)欄《GAN模型結(jié)構(gòu)》。在這個(gè)專(zhuān)欄中,我們會(huì)講述各種各樣的GAN的網(wǎng)絡(luò)結(jié)構(gòu)及其在各類(lèi)任務(wù)中的應(yīng)用。
作者&編輯 | 言有三
三年前GAN剛出來(lái)的時(shí)候就開(kāi)始關(guān)注GAN了,去年也寫(xiě)過(guò)一篇綜述,【技術(shù)綜述】有三說(shuō)GANs(上),不過(guò)因?yàn)闀r(shí)間問(wèn)題一直沒(méi)有更新更多的內(nèi)容。
今年公眾號(hào)也開(kāi)設(shè)了GAN優(yōu)化專(zhuān)欄,內(nèi)容更新的差不多了,現(xiàn)在GAN模型結(jié)構(gòu)也走起,在這兩個(gè)網(wǎng)絡(luò)專(zhuān)欄的加持下,希望我們能從理論到實(shí)踐徹底玩轉(zhuǎn)GAN。
1 GAN的基本結(jié)構(gòu)
在機(jī)器學(xué)習(xí)中有兩類(lèi)模型,即判別式模型和生成是模型。
判別式模型即Discriminative Model,又被稱(chēng)為條件概率模型,它估計(jì)的是條件概率分布。生成式模型即Generative Model ,它估計(jì)的是聯(lián)合概率分布,兩者各有特點(diǎn)。
常見(jiàn)的判別式模型有Logistic Regression,Linear Regression,SVM,Traditional Neural Networks
Nearest Neighbor,CRF等。
常見(jiàn)的生成式模型有Naive Bayes,Mixtures of Gaussians, HMMs,Markov Random Fields等。
而GAN,即Generative adversarial net,則同時(shí)包含判別式模型和生成式模型,如下:
判別式模型就是大家熟悉的分類(lèi)任務(wù)模型,輸入圖像,輸出分類(lèi)概率。生成式模型則是輸入一維向量,輸出二維圖像,如下:
這就是用于圖像生成的最早的網(wǎng)絡(luò)結(jié)構(gòu),剩下來(lái)的問(wèn)題,就是如何分別設(shè)計(jì)判別器和生成器。
2 全卷積GAN
DCGAN[1]是第一個(gè)用全卷積網(wǎng)絡(luò)做數(shù)據(jù)生成的,下面我們看看它的生成器和判別器。
2.1 生成器
輸入為1×100的向量,然后經(jīng)過(guò)一個(gè)全連接層學(xué)習(xí),reshape為4×4×1024的張量,再經(jīng)過(guò)4個(gè)上采樣的反卷積網(wǎng)絡(luò),生成64×64的圖,各層的配置如下:
2.2 判別器
輸入64×64大小的圖,經(jīng)過(guò)4次卷積,分辨率降低為4×4的大小,每一個(gè)卷積層的配置如下:
判別器和分類(lèi)器的損失函數(shù)都采用了sigmoid_cross_entropy_with_logits,即sigmoid分類(lèi)損失。
2.3 實(shí)驗(yàn)
下面我們采用開(kāi)源項(xiàng)目進(jìn)行實(shí)踐,GitHub地址如下:https://github.com/carpedm20/DCGAN-tensorflow/。
由于MNIST任務(wù)作者已經(jīng)做過(guò),我們來(lái)完成一個(gè)新的任務(wù),生成嘴部表情,樣本如下:
下圖分別是判別器和生成器損失圖:
由于生成對(duì)抗網(wǎng)絡(luò)的判別器和生成器是交替訓(xùn)練相互對(duì)抗,所以它們各自的損失曲線(xiàn)不可能像通常的圖像任務(wù)一樣一直下降直到很低的水平,而是有一個(gè)先下降再上升的過(guò)程。
對(duì)于判別器來(lái)說(shuō),剛開(kāi)始沒(méi)有學(xué)習(xí),因此性能很差,隨著訓(xùn)練進(jìn)行,判別器的損失降低。但是因?yàn)樯善鞯男阅茉诓粩嗵嵘?#xff0c;所以一段時(shí)間之后,判別器的損失可能又會(huì)增加,不過(guò)在這個(gè)實(shí)驗(yàn)中不明顯。
對(duì)于生成器來(lái)說(shuō),剛開(kāi)始沒(méi)有學(xué)習(xí),性能很差,隨著訓(xùn)練進(jìn)行,性能越來(lái)越好,在本實(shí)驗(yàn)中,生成器損失下降到一定程度后又增加了,說(shuō)明繼續(xù)迭代無(wú)法再改善性能。
總的來(lái)說(shuō),兩者相互對(duì)抗,直到達(dá)到一個(gè)較好的平衡,但是光從損失曲線(xiàn)本身,我們?nèi)匀浑y以分辨出模型的性能好壞,因此還要看真正生成的樣本。
從左到右分別是第2,10,50,100個(gè)epoch的結(jié)果。從上圖結(jié)果來(lái)看,隨著訓(xùn)練的進(jìn)行,逐漸生成了許多有意義且非常逼真的樣本。不過(guò)最終生成的圖像仍然有一部分效果很差,這是因?yàn)镈CGAN本身模型性能所限,后續(xù)可以使用更好的模型進(jìn)行改進(jìn)。
2.4 總結(jié)
總的來(lái)說(shuō)就這么多,更多細(xì)節(jié)大家可以自己去跑實(shí)驗(yàn)。DCGAN的原始論文中總結(jié)了很多的技巧,但是隨著技術(shù)的發(fā)展,其中的一些技巧不再必要或者通用,因此這里我們先不總結(jié),以后再回過(guò)頭來(lái)一起看。
DCGAN模型非常淺,原理簡(jiǎn)單,生成分辨率低,所以簡(jiǎn)單的任務(wù)仍然不能完美地完成,后面會(huì)有更多模型從各個(gè)方向來(lái)進(jìn)行改進(jìn)。
參考文獻(xiàn)
[1] Radford A, Metz L, Chintala S. Unsupervised representation learning with deep convolutional generative adversarial networks[J]. arXiv preprint arXiv:1511.06434, 2015.
總結(jié)
DCGAN因?yàn)榻Y(jié)構(gòu)非常簡(jiǎn)單,內(nèi)容就講這么多,這只是咱們GAN網(wǎng)絡(luò)結(jié)構(gòu)的開(kāi)始,吃完這頓前菜,咱們后會(huì)有期。
下期預(yù)告:金字塔結(jié)構(gòu)GAN。
知識(shí)星球推薦
有三AI知識(shí)星球由言有三維護(hù),內(nèi)設(shè)網(wǎng)絡(luò)結(jié)構(gòu)1000變,數(shù)據(jù)集,AI1000問(wèn),AI知識(shí)匯總,AI書(shū)籍,看圖猜技術(shù),項(xiàng)目開(kāi)發(fā),Github推薦八大學(xué)習(xí)板塊,歡迎加入。
今日網(wǎng)絡(luò)結(jié)構(gòu)
轉(zhuǎn)載文章請(qǐng)后臺(tái)聯(lián)系
侵權(quán)必究
往期精選
【GAN優(yōu)化】GAN優(yōu)化專(zhuān)欄上線(xiàn),首談生成模型與GAN基礎(chǔ)
【GAN的優(yōu)化】從KL和JS散度到fGAN
【GAN優(yōu)化】詳解對(duì)偶與WGAN
【GAN優(yōu)化】詳解SNGAN(頻譜歸一化GAN)
【GAN優(yōu)化】一覽IPM框架下的各種GAN
【GAN優(yōu)化】GAN優(yōu)化專(zhuān)欄欄主小米粥自述,腳踏實(shí)地,莫問(wèn)前程
【GAN優(yōu)化】GAN訓(xùn)練的幾個(gè)問(wèn)題
【技術(shù)綜述】有三說(shuō)GANs(上)
【模型解讀】歷數(shù)GAN的5大基本結(jié)構(gòu)
總結(jié)
以上是生活随笔為你收集整理的【GAN模型结构】从最简单的全卷积GAN一起开始玩转GAN的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 【AI不惑境】计算机视觉中注意力机制原理
- 下一篇: 【知识星球】从SVM对偶问题,到疲劳驾驶