[Deep Learning] 生成模型

本文是Deep Learning Course總結(jié)系列的第五篇,本文的主要內(nèi)容是對(duì)生成模型PixelCNN,PixelRNN,VAE,GANs進(jìn)行介紹。
本系列前四篇傳送門(mén):第一篇 [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.lxweimin.com/p/5c22b41e9f07)。

生成模型分類

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


生成模型分類

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

PixelRNN & PixelCNN

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

PixelRNN

PixelCNN

改進(jìn)方向

由于逐個(gè)生成像素,PixelRNN & PixelCNN的最大問(wèn)題是速度太慢,但Pixel 系列的思想尤其適合生成音頻和文字,例如 WaveNet,它用此前生成的音頻采樣作為輸入,生成下一個(gè)采樣,不斷重復(fù)此過(guò)程,最終可生成高質(zhì)量的語(yǔ)音和音樂(lè)。

AE & VAE

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


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

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


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

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


三種方法對(duì)比
GAN

GAN模型于2014年由Ian Goodfellow提出[1],GAN使用博弈的思想由一個(gè)生成器和一個(gè)判別器構(gòu)成,生成器G從給定噪聲z中(一般是指均勻分布或者正態(tài)分布)產(chǎn)生合成數(shù)據(jù),判別器D分辨生成器的的輸出和真實(shí)數(shù)據(jù),在訓(xùn)練過(guò)程中,雙方不斷優(yōu)化自己,直到D無(wú)法再區(qū)分真實(shí)數(shù)據(jù)和G產(chǎn)生的數(shù)據(jù),到達(dá)納什均衡。:
\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的部分:當(dāng)x來(lái)自真實(shí)數(shù)據(jù)集data時(shí),D(x)應(yīng)該越接近1越好,而當(dāng)處理G產(chǎn)生的數(shù)據(jù)G(z)時(shí),D(G(z))應(yīng)該越接近0越好,所以式子中,log(D(x)),log(1-D(G(z)))應(yīng)該越大越好;

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


GAN優(yōu)化

GAN自提出以來(lái),就存在著訓(xùn)練困難、不易收斂、生成器和判別器的loss無(wú)法指示訓(xùn)練進(jìn)程、生成樣本缺乏多樣性等問(wèn)題。從那時(shí)起,很多研究人員就在嘗試解決,并提出了改進(jìn)方案,切實(shí)解決了部分問(wèn)題,如生成器梯度消失導(dǎo)致的訓(xùn)練困難。當(dāng)然也還有很多問(wèn)題亟待解決,如生成樣本的評(píng)價(jià)指標(biāo)問(wèn)題。

DCGAN (Deep Convolutional GAN)

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

GAN卷積架構(gòu)

GAN卷積架構(gòu)

WGAN (Wasserstein GAN)

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


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

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

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

Progressive GAN
BIgGAN
GraphSGAN
CVAE-GAN

CVAE-GAN包括4 個(gè)神經(jīng)網(wǎng)絡(luò):
E:編碼器(Encoder),輸入圖像 x,輸出編碼 z。
如果還給定了類別 c,那么生成的 z 就會(huì)質(zhì)量更高,即更隨機(jī),因?yàn)榭梢瞥齝中已包含的信息。
G:生成器(Generator)。輸入編碼 z,輸出圖像 x。
如果還給定了類別 c,那么就會(huì)生成屬于類別 c 的圖像。
C:分類器(Classifier)。輸入圖像 x,輸出所屬類別 c。
D:辨別器(Discriminator)。輸入圖像 x,判斷它的真實(shí)度。

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

CVAE 生成的圖像中規(guī)中矩,但是模糊,CGAN 生成的圖像清晰,但有時(shí)會(huì)有明顯錯(cuò)誤,所以 兩者互補(bǔ)相結(jié)合后網(wǎng)絡(luò)共有三個(gè)目標(biāo): 對(duì)于從 x 生成的 z,G 應(yīng)能還原出接近 x 的 x'(像素上的接近)。這來(lái)自 AE 的思想。G 生成的圖像應(yīng)可由 D 鑒別為屬于真實(shí)圖像。這來(lái)自 GAN 的思想。G 生成的圖像應(yīng)可由 C 鑒別為屬于 c 類別。這與 InfoGAN 的思想有些相似。
最終的z在不同 c 下的效果:
換臉效果

不同 c,代表不同的明星。相同 z,代表其他的一切語(yǔ)義特征(如表情,角度,光照等等)都一模一樣。通過(guò)保持 z,改變 c,可輕松實(shí)現(xiàn)換臉效果。由于 CVAE-GAN 生成的樣本質(zhì)量很高,還可用于增強(qiáng)訓(xùn)練樣本集,進(jìn)行語(yǔ)義插值等。

cGAN (conditional GAN)

為了生成指定標(biāo)簽的數(shù)據(jù),在CGAN中,生成器不僅要輸入隨機(jī)數(shù),還需要將之與標(biāo)簽類別做拼接(concat,一般要將標(biāo)簽轉(zhuǎn)換成如one-hot或其它的tensor),再將其輸入生成器生成所需要的數(shù)據(jù)。此外,對(duì)判別器,也需要將真實(shí)數(shù)據(jù)或生成數(shù)據(jù)與對(duì)應(yīng)的標(biāo)簽類別做拼接,再輸入判別器的神經(jīng)網(wǎng)絡(luò)進(jìn)行識(shí)別和判斷。

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

pix2pix

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


pix2pix
cycleGAN、DiscoGAN & DualGAN

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

StarGAN

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


  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)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,818評(píng)論 6 531
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,185評(píng)論 3 414
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人,你說(shuō)我怎么就攤上這事。” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 175,656評(píng)論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 62,647評(píng)論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 71,446評(píng)論 6 405
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 54,951評(píng)論 1 321
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,041評(píng)論 3 440
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 42,189評(píng)論 0 287
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,718評(píng)論 1 333
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 40,602評(píng)論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 42,800評(píng)論 1 369
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,316評(píng)論 5 358
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,045評(píng)論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 34,419評(píng)論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 35,671評(píng)論 1 281
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 51,420評(píng)論 3 390
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 47,755評(píng)論 2 371

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