[Deep Learning] 生成模型

本文是Deep Learning Course總結(jié)系列的第五篇累舷,本文的主要內(nèi)容是對生成模型PixelCNN,PixelRNN,VAE总寒,GANs進行介紹。
本系列前四篇傳送門:第一篇 [Deep Learning] 神經(jīng)網(wǎng)絡(luò)基礎(chǔ)理肺;第二篇 [Deep Learning] 卷積神經(jīng)網(wǎng)絡(luò) CNNs摄闸;第三篇 [Deep Learning] 集成學(xué)習(xí)Ensemble Learning&遷移學(xué)習(xí)Transfer Learning ;第四篇 [ [Deep Learning] 循環(huán)神經(jīng)網(wǎng)絡(luò)RNN ](http://www.reibang.com/p/5c22b41e9f07)妹萨。

生成模型分類

無監(jiān)督學(xué)習(xí)包括聚類K-means年枕、降維PCA、特征學(xué)習(xí)Antoencoders乎完、密度估計熏兄、生成模型(圖片生成、超分辨率树姨、圖片著色摩桶、時間序列數(shù)據(jù)模擬和計劃[增強學(xué)習(xí)]、潛在特征推斷)等帽揪,其中生成模型的分類歷史如下圖所示:


生成模型分類

Explicit生成模型假設(shè)參數(shù)空間已知或可以近似估計硝清,然而真實數(shù)據(jù)的分布往往是十分復(fù)雜的。

PixelRNN & PixelCNN

由 Google 提出的 PixelRNNPixelCNN從左到右转晰,從上到下芦拿,逐步生成一個個像素,最終生成整張圖像查邢。它的基本原理是訓(xùn)練數(shù)據(jù)的概率最大化最優(yōu)化蔗崎,以之前生成的像素作為輸入,輸出對于下一個像素的值的統(tǒng)計分布的預(yù)測扰藕,然后從分布采樣出下一個像素缓苛。

PixelRNN

PixelCNN

改進方向

由于逐個生成像素,PixelRNN & PixelCNN的最大問題是速度太慢邓深,但Pixel 系列的思想尤其適合生成音頻和文字未桥,例如 WaveNet番官,它用此前生成的音頻采樣作為輸入,生成下一個采樣钢属,不斷重復(fù)此過程徘熔,最終可生成高質(zhì)量的語音和音樂。

AE & VAE

  • 自動編碼機(Auto Encoder):針對非標簽化數(shù)據(jù)學(xué)習(xí)其低維特征表示
    通過編碼器降維關(guān)注更為重要的特征(下采樣downsampling)淆党,使用解碼器恢復(fù)圖像(上采樣upsampling)并使用L2損失函數(shù)判斷重構(gòu)圖像和原圖像的相似度酷师。由于AE 中沒有更先進的判別網(wǎng)絡(luò),AE 的優(yōu)化目標實際只是讓 x 和 G(E(x)) 盡量在像素上接近染乌。這并不是個好目標山孔,因此 AE 生成的圖像往往很模糊、質(zhì)量低荷憋。但AE生成的圖像更均勻台颠,光滑,訓(xùn)練過程更穩(wěn)定勒庄,這也是它可以與GAN后續(xù)結(jié)合的優(yōu)點串前。


    Antoencoders特征降維
  • VAE:VAE(Variational Auto-Encoder)能解決 AE 的一個缺點:AE 的 G 只能保證將由 x 生成的 z 還原為 x。如果我們隨機生成 1 個 z实蔽,經(jīng)過 AE 的 G 后往往不會得到有效的圖像荡碾。而 VAE 可讓 E 生成的 z 盡量符合某個指定分布,例如標準差為 1 的多維正態(tài)分布局装。那么此時只需從這個分布采樣出 z坛吁,就能通過 G 得到有效的圖像筒饰。
    VAE的優(yōu)缺點及改進方向

作為生成模型的AE也可以用于分類問題:編碼器和Softmax函數(shù)結(jié)合適用于樣本量不足的分類監(jiān)督學(xué)習(xí)督暂,能夠避免樣本量不足時的過擬合問題。


Autoencoders應(yīng)用于分類問題

對上述幾種方法的對比總結(jié):


三種方法對比
GAN

GAN模型于2014年由Ian Goodfellow提出[1]焦影,GAN使用博弈的思想由一個生成器和一個判別器構(gòu)成宣增,生成器G從給定噪聲z中(一般是指均勻分布或者正態(tài)分布)產(chǎn)生合成數(shù)據(jù)玫膀,判別器D分辨生成器的的輸出和真實數(shù)據(jù),在訓(xùn)練過程中统舀,雙方不斷優(yōu)化自己匆骗,直到D無法再區(qū)分真實數(shù)據(jù)和G產(chǎn)生的數(shù)據(jù)劳景,到達納什均衡誉简。:
\min_G\max_D V(G, D) = \mathbb{E}_{x\sim p_{data}(x)}[logD(x)] + \mathbb{E} _{z\sim p_z(z)}[log(1-D(G(z)))]

其中優(yōu)化D的部分:當x來自真實數(shù)據(jù)集data時,D(x)應(yīng)該越接近1越好盟广,而當處理G產(chǎn)生的數(shù)據(jù)G(z)時闷串,D(G(z))應(yīng)該越接近0越好,所以式子中筋量,log(D(x))烹吵,log(1-D(G(z)))應(yīng)該越大越好碉熄;

而G作為生成器,它所要做的就是迷惑D肋拔,讓D將自己生成的數(shù)據(jù)誤認為成來自真實數(shù)據(jù)集的數(shù)據(jù)锈津,所以D(G(z))應(yīng)該越接近1越好,即log(1-D(G(z)))應(yīng)該越小越好凉蜂。然而當優(yōu)化G時琼梆,由于在學(xué)習(xí)初期,G的表現(xiàn)較差窿吩,D很容易區(qū)分出G產(chǎn)生的數(shù)據(jù)茎杂,即D(G(z))=0, 導(dǎo)致log(1-D(G(z)))可能會出現(xiàn)飽和的問題。在出現(xiàn)這種問題時纫雁,可以轉(zhuǎn)而用最大化log(D(G(z)))來優(yōu)化G煌往。


GAN優(yōu)化

GAN自提出以來,就存在著訓(xùn)練困難轧邪、不易收斂刽脖、生成器和判別器的loss無法指示訓(xùn)練進程、生成樣本缺乏多樣性等問題忌愚。從那時起曾棕,很多研究人員就在嘗試解決,并提出了改進方案菜循,切實解決了部分問題翘地,如生成器梯度消失導(dǎo)致的訓(xùn)練困難。當然也還有很多問題亟待解決癌幕,如生成樣本的評價指標問題衙耕。

DCGAN (Deep Convolutional GAN)

樸素GAN在生成器和判別器在結(jié)構(gòu)上是通過以多層全連接網(wǎng)絡(luò)為主體的多層感知機(Multi-layer Perceptron, MLP) 實現(xiàn)的,然而其調(diào)參難度較大橙喘,訓(xùn)練失敗相當常見,生成圖片質(zhì)量也相當不佳厅瞎,尤其是對較復(fù)雜的數(shù)據(jù)集而言初坠。由于卷積神經(jīng)網(wǎng)絡(luò)比MLP有更強的擬合與表達能力和簸,2015年Alex Radford提出使用卷積架構(gòu)取代GAN中的全連接層[2]。DCGAN去掉了池化層锁保,采用批標準化(Batch Normalization, BN)等技術(shù),并強調(diào)了隱藏層分析和可視化技術(shù)對GAN訓(xùn)練的重要性和指導(dǎo)作用爽柒。

GAN卷積架構(gòu)

GAN卷積架構(gòu)

WGAN (Wasserstein GAN)

對于GAN的全局最優(yōu)解吴菠,固定G優(yōu)化D,D的最佳情況為:


根據(jù)D(x)的全局最優(yōu)解可以得出:當判別器過優(yōu)時浩村,生成器的loss可以近似等價于優(yōu)化真實分布與生成器產(chǎn)生數(shù)據(jù)分布的JS散度心墅。然而JS對于兩個完全沒有overlap的情況無法收斂。具體推導(dǎo)可參考:https://zhuanlan.zhihu.com/p/39398823嗓化。WGAN闡述了樸素GAN因生成器梯度消失而訓(xùn)練失敗的原因,并用Wasserstein距離替代了Jensen-Shannon散度严肪,在理論上解決了梯度消失問題谦屑。

此外,WGAN還從理論上給出了樸素GAN發(fā)生模式坍塌(mode collapse)的原因酝枢,本質(zhì)上是過擬合到某一點
模式坍塌的幾種解決方案包括正則化悍手、增加label(半監(jiān)督GAN)、fe
ature matching
WGAN從實驗角度說明了WGAN在這一點上的優(yōu)越性竣付。

雖然WGAN基本解決了訓(xùn)練失敗的問題滞欠,但是無論是訓(xùn)練過程還是是收斂速度都要比常規(guī) GAN 更慢。
WGAN-GP增加梯度懲罰項

Progressive GAN
BIgGAN
GraphSGAN
CVAE-GAN

CVAE-GAN包括4 個神經(jīng)網(wǎng)絡(luò):
E:編碼器(Encoder)逸绎,輸入圖像 x夭谤,輸出編碼 z棺牧。
如果還給定了類別 c沮翔,那么生成的 z 就會質(zhì)量更高,即更隨機疲牵,因為可移除c中已包含的信息榆鼠。
G:生成器(Generator)妆够。輸入編碼 z,輸出圖像 x神妹。
如果還給定了類別 c,那么就會生成屬于類別 c 的圖像冕茅。
C:分類器(Classifier)蛹找。輸入圖像 x庸疾,輸出所屬類別 c。
D:辨別器(Discriminator)届慈。輸入圖像 x金顿,判斷它的真實度。

CVAE-GAN結(jié)構(gòu)

CVAE 生成的圖像中規(guī)中矩缺虐,但是模糊礁凡,CGAN 生成的圖像清晰,但有時會有明顯錯誤剪芍,所以 兩者互補相結(jié)合后網(wǎng)絡(luò)共有三個目標: 對于從 x 生成的 z窟蓝,G 應(yīng)能還原出接近 x 的 x'(像素上的接近)。這來自 AE 的思想状共。G 生成的圖像應(yīng)可由 D 鑒別為屬于真實圖像。這來自 GAN 的思想冯袍。G 生成的圖像應(yīng)可由 C 鑒別為屬于 c 類別碾牌。這與 InfoGAN 的思想有些相似。
最終的z在不同 c 下的效果:
換臉效果

不同 c征冷,代表不同的明星资盅。相同 z踊赠,代表其他的一切語義特征(如表情,角度今穿,光照等等)都一模一樣伦籍。通過保持 z,改變 c芝薇,可輕松實現(xiàn)換臉效果作儿。由于 CVAE-GAN 生成的樣本質(zhì)量很高,還可用于增強訓(xùn)練樣本集晾嘶,進行語義插值等娶吞。

cGAN (conditional GAN)

為了生成指定標簽的數(shù)據(jù)妒蛇,在CGAN中楷拳,生成器不僅要輸入隨機數(shù)吏奸,還需要將之與標簽類別做拼接(concat,一般要將標簽轉(zhuǎn)換成如one-hot或其它的tensor)浸颓,再將其輸入生成器生成所需要的數(shù)據(jù)旺拉。此外棵磷,對判別器仪媒,也需要將真實數(shù)據(jù)或生成數(shù)據(jù)與對應(yīng)的標簽類別做拼接,再輸入判別器的神經(jīng)網(wǎng)絡(luò)進行識別和判斷留凭。

InfoGAN(MutualInformation)本質(zhì)上也可以看作是一種cGAN偎巢。它將原先生成器上輸入的z進行分解,除了原先的噪聲z以外求冷,還分解出一個隱含編碼c窍霞。其中c除了可以表示類別以外,還可以包含多種變量韭山。以MNIST數(shù)據(jù)集為例冷溃,還可以表示諸如光照方向,字體的傾斜角度续搀,筆畫粗細等菠净,這使得生成過程具有一定程度的可控性,生成結(jié)果也具備了一定的可解釋性牵咙。

pix2pix

生成器輸入除隨機數(shù)z以外洁桌,將圖片x(如灰度圖,素描圖等)作為條件進行拼接谱轨,輸出的是轉(zhuǎn)換后的圖片(如照片)吠谢。而判別器輸入的是轉(zhuǎn)換后的圖片或真實照片,特別之處在于献汗,文章發(fā)現(xiàn)王污,判別器也將生成器輸入的圖片x作為條件進行拼接,會極大提高實驗的結(jié)果尿招,其結(jié)構(gòu)圖如下所示(此處結(jié)構(gòu)圖隱去了生成器的隨機數(shù)z):


pix2pix
cycleGAN泊业、DiscoGAN & DualGAN

Pix2Pix訓(xùn)練需要相互配對的圖片x與y啊易,然而,這類數(shù)據(jù)是極度缺乏的篮奄,對此CycleGAN提出了無需配對數(shù)據(jù)的圖像翻譯方法割去。CycleGAN基于循環(huán)一致性(Cycle-Consistent)呻逆,兩類圖像經(jīng)過兩次相應(yīng)的映射后,又會變?yōu)樵瓉淼膱D像咖城,簡單有效地解決了這一問題。
而與CycleGAN十分類似的DiscoGAN握础、DualGAN與其最大區(qū)別在于DiscoGAN使用最簡單直白的CNN編碼器和解碼器悴品,使用全連接網(wǎng)絡(luò)當轉(zhuǎn)換器;CycleGAN使用了ResNet充當轉(zhuǎn)換器定枷;DualGAN則是使用類似WGAN的形式來表示邦蜜。

StarGAN

StarGAN作為CycleGAN的推廣亥至,將兩兩映射變成了多領(lǐng)域之間的映射姐扮,能夠通過一個生成器解決所有跨域類別問題。


  1. Goodfellow, Ian J., et al. "Generative adversarial nets." International Conference on Neural Information Processing Systems MIT Press, 2014:2672-2680. ?

  2. Radford et al, “Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks”, ICLR 2016 ?

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末壤靶,一起剝皮案震驚了整個濱河市贮乳,隨后出現(xiàn)的幾起案子恬惯,更是在濱河造成了極大的恐慌,老刑警劉巖浓恳,帶你破解...
    沈念sama閱讀 211,817評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件颈将,死亡現(xiàn)場離奇詭異言疗,居然都是意外死亡,警方通過查閱死者的電腦和手機死姚,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,329評論 3 385
  • 文/潘曉璐 我一進店門知允,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人保屯,你說我怎么就攤上這事涤垫。” “怎么了切蟋?”我有些...
    開封第一講書人閱讀 157,354評論 0 348
  • 文/不壞的土叔 我叫張陵柄粹,是天一觀的道長匆绣。 經(jīng)常有香客問我,道長堪夭,這世上最難降的妖魔是什么拣凹? 我笑而不...
    開封第一講書人閱讀 56,498評論 1 284
  • 正文 為了忘掉前任嚣镜,我火速辦了婚禮,結(jié)果婚禮上雕旨,老公的妹妹穿的比我還像新娘捧请。我一直安慰自己,他們只是感情好活箕,可當我...
    茶點故事閱讀 65,600評論 6 386
  • 文/花漫 我一把揭開白布育韩。 她就那樣靜靜地躺著,像睡著了一般埃叭。 火紅的嫁衣襯著肌膚如雪悉罕。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,829評論 1 290
  • 那天类早,我揣著相機與錄音涩僻,去河邊找鬼栈顷。 笑死,一個胖子當著我的面吹牛屏富,可吹牛的內(nèi)容都是我干的蛙卤。 我是一名探鬼主播颤难,決...
    沈念sama閱讀 38,979評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼已维,長吁一口氣:“原來是場噩夢啊……” “哼垛耳!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起堂鲜,我...
    開封第一講書人閱讀 37,722評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎哥纫,沒想到半個月后痴奏,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,189評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡鸵闪,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,519評論 2 327
  • 正文 我和宋清朗相戀三年岛马,在試婚紗的時候發(fā)現(xiàn)自己被綠了屠列。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,654評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡夏志,死狀恐怖沟蔑,靈堂內(nèi)的尸體忽然破棺而出狱杰,到底是詐尸還是另有隱情,我是刑警寧澤食棕,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布错沽,位于F島的核電站千埃,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏谒臼。R本人自食惡果不足惜耀里,卻給世界環(huán)境...
    茶點故事閱讀 39,940評論 3 313
  • 文/蒙蒙 一备韧、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧叠艳,春花似錦、人聲如沸附较。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,762評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽僻肖。三九已至卢鹦,卻和暖如春冀自,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背熬粗。 一陣腳步聲響...
    開封第一講書人閱讀 31,993評論 1 266
  • 我被黑心中介騙來泰國打工驻呐, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留暴氏,地道東北人。 一個月前我還...
    沈念sama閱讀 46,382評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像沼撕,于是被迫代替她去往敵國和親芜飘。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,543評論 2 349

推薦閱讀更多精彩內(nèi)容