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