天天看點

預測學習:深度生成式模型、DcGAN、應用案例、相關paper一、運作機制二、GAN變種模型之間的繼承關系三、GAN在NLP應用的難點四、GAN的應用執行個體

前言

       圖像模式處理相關任務有識别、檢測、分割、追蹤。而與圖像Pixel級别相關的任務,則有增強、編碼、壓縮、複原與重構。以及與時間相關的圖像預測。

       自從2012年AlexNet在ImageNet分類獲得第一,作為深度學習的CNN純分類,還能做什麼呢?作為分類模型,圖像處理模式識别是其基本功能,而自現實應用中,并不是總有這樣的任務,簡單地輸入圖像塊分析模式。

      0.基礎結構:各種刷排行榜的各種基礎識别網絡;1、圖像檢測:基于Rect的RCNN系列;2、檢測與分割:可用于分割的FCnn-MaskRCnn系列。

       去除掉識别網絡的模式識别網絡或者增強/複合模式函數,可以用于更多的場景。GANs的出現把CNN結構FT+PR結構改進,使用PR的複合函數,使結構可以完成圖像增強、編碼、複原、重建,以及預測功能。

預測學習

       大模型需要更大量的資料,用以拟合更複雜的假設空間。GAN本身可以用于生成資料,在GAN的學習過程中隐藏了弱監督學習和增強學習的思想。通過複合模型的引入,可以應用于模型預測,應用于預測學習的場景。

       下文主要是對GAN應用于NLP進行相關分析,配圖不錯,摘抄下來,删除掉關于NLP的部分。本文有大量修改,如有疑慮,請移步原文。

       文章:深度生成式模型、DcGAN、應用案例、相關paper

       其他參考:生成式模型 & 生成對抗網絡——資料梳理(專訪資料 + 論文分類)

       找一種方法解決CGANs的不穩定性問題:《Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks  》Alec Radford, Luke Metz, Soumith Chintala。論文:arXiv:1511.06434 [2015]

我對GAN“生成對抗網絡”(Generative Adversarial Networks)的看法:

前幾天在公開課聽了新加坡國立大學【機器學習與視覺實驗室】負責人馮佳時博士在【硬創公開課】的GAN分享。GAN現在對于無監督圖像标注來說是個神器。

Deep? 生成模型GAN就是一種在拟合一張圖像數組分布的一種模型,是機率統計結合深度學習之後的一次更新。

GAN是機率統計到深度學習世界“秀”存在

生成模型分為兩個部分:生成模型+判别模型。生成模型學習聯合機率分布p(x,y),而判别模型學習條件機率分布p(y|x)。

他們之間對抗均衡的過程,就相當于統計中的蒙特卡洛拟合最佳分布的過程。

分布公式的重要性:分布公式之後,那麼可以造無數個這樣的分布。

一、運作機制

相關GAN論文彙總,包含code:https://github.com/zhangqianhui/AdversarialNetsPapers

1、生成模型

一個最樸素的GAN模型,實際上是将一個随機變量(可以是高斯分布,或0到1之間的均勻分布),通過參數化的機率生成模型(通常是用一個神經網絡模型來進行參數化),進行機率分布的逆變換采樣,進而得到一個生成的機率分布(圖中綠色的分布模型)。其訓練目标,就是要最小化判别模型D的判别準确率。
預測學習:深度生成式模型、DcGAN、應用案例、相關paper一、運作機制二、GAN變種模型之間的繼承關系三、GAN在NLP應用的難點四、GAN的應用執行個體

生成模型就是一種尋找分布最優參數的過程,而這些參數更新不是來自于資料樣本本身(不是對資料的似然性進行優化),而是來自于判别模型D的一個反傳梯度

通過優化目标,使得我們可以調節機率生成模型的參數\theta,進而使得生成的機率分布和真實資料分布盡量接近。

但是這裡的分布參數不再跟傳統機率統計一樣了,這些參數儲存在一個黑盒中:最後所學到的一個資料分布Pg(G),沒有顯示的表達式。它隻是一個黑盒子一樣的映射函數:輸入是一個随機變量,輸出是我們想要的一個資料分布。

讓我們回顧一下正态機率密度函數:

預測學習:深度生成式模型、DcGAN、應用案例、相關paper一、運作機制二、GAN變種模型之間的繼承關系三、GAN在NLP應用的難點四、GAN的應用執行個體

正态随機變量服從的分布就稱為正态分布,記作 ,讀作X服從正态分布

2、判别模型

判别模型D的訓練目的就是要盡量最大化自己的判别準确率。當這個資料被判别為來自于真實資料時,标注 1,自于生成資料時,标注 0。
預測學習:深度生成式模型、DcGAN、應用案例、相關paper一、運作機制二、GAN變種模型之間的繼承關系三、GAN在NLP應用的難點四、GAN的應用執行個體

GAN創新性地引入了一個判别模型(常用的有支援向量機和多層神經網絡)。它的優化過程就是在尋找生成模型和判别模型之間的一個納什均衡。

(注:所有的理論都認為 GAN應該在納什均衡(Nash equilibrium)上有卓越的表現,但梯度下降隻有在凸函數的情況下才能保證實作納什均衡。當博弈雙方都由神經網絡表示時,在沒有實際達到均衡的情況下,讓它們永遠保持對自己政策的調整是可能的。???答案是不可能的!!!)

3、目标函數——生成模型和判别模型的均衡

如果我們把生成模型比作是一個僞裝者的話,那麼判别模型就是一個警察的角色。僞裝者的目的,就是通過不斷的學習來提高自己的僞裝能力,進而使得自己提供的資料能夠更好地欺騙這個判别模型。而判别模型則是通過不斷的訓練來提高自己判别的能力,能夠更準确地判斷資料來源究竟是哪裡。
預測學習:深度生成式模型、DcGAN、應用案例、相關paper一、運作機制二、GAN變種模型之間的繼承關系三、GAN在NLP應用的難點四、GAN的應用執行個體

在訓練過程中,GAN采用了一種非常直接的交替優化方式,它可以分為兩個階段:

  • 第一個階段:固定判别模型D,然後優化生成模型G,使得判别模型的準确率盡量降低。
  • 第二個階段:固定生成模型G,來提高判别模型的準确率。
預測學習:深度生成式模型、DcGAN、應用案例、相關paper一、運作機制二、GAN變種模型之間的繼承關系三、GAN在NLP應用的難點四、GAN的應用執行個體

圖(a)中黑色大點虛線P(x)是真實的資料分布,綠線G(z)是通過生成模型産生的資料分布(輸入是均勻分布變量z,輸出是綠色的曲線)。藍色的小點虛線D(x)代表判别函數。

在圖(a)中,我們可以看到,綠線G(z)分布和黑色P(x)真實分布,還有比較大的差異。這點也反映在藍色的判别函數上,判别函數能夠準确的對左面的真實資料輸入,輸出比較大的值。對右面虛假資料,産生比較小的值。但是随着訓練次數的增加,圖(b)和圖(c)反映出,綠色的分布在逐漸靠近黑色的分布。到圖(d),産生的綠色分布和真實資料分布已經完全重合。這時,判别函數對所有的資料(無論真實的還是生成的資料),輸出都是一樣的值,已經不能正确進行分類。G成功學習到了資料分布,這樣就達到了GAN的訓練和學習目的。

4、GAN的全局最優解和收斂性

  1. GAN是存在全局最優解的。這個全局最優解可以通過一些簡單的分析得到。首先,如果固定G,那麼D的最優解就是一個貝葉斯分類器。将這個最優解形式帶入,可以得到關于G的優化函數。簡單的計算可以證明,當産生的資料分布與真實資料分布完全一緻時,這個優化函數達到全局最小值。
  2. 另外一點,是關于GAN的收斂性。如果G和D的學習能力足夠強,兩個模型可以收斂。但在實際中,GAN的優化還存在諸如不穩定等一些問題。如何平衡兩個模型在訓練中是一個很重要的問題。

二、GAN變種模型之間的繼承關系

本節内容來源于pperWeekly公衆号的《PaperWeekly 第二十期 — GAN(Generative Adversarial Nets)研究進展》
預測學習:深度生成式模型、DcGAN、應用案例、相關paper一、運作機制二、GAN變種模型之間的繼承關系三、GAN在NLP應用的難點四、GAN的應用執行個體

.

1、DCGAN

Ian J. Goodfellow等人的文章提出了GAN的模型和訓練架構,但是沒有描述具體的實作,而DCGAN[2] 這篇文章講的就是用deep convolutional network實作一個生成圖檔的GAN模型。描述了很多實作上細節,尤其是讓GAN模型stable的方法。

DCGAN的原理和GAN是一樣的,這裡就不在贅述。它隻是把上述的G和D換成了兩個卷積神經網絡(CNN)。但不是直接換就可以了,DCGAN對卷積神經網絡的結構做了一些改變,以提高樣本的品質和收斂的速度,這些改變有:

1. 取消所有pooling層。G網絡中使用轉置卷積(transposed convolutional layer)進行上采樣,D網絡中用加入stride的卷積代替pooling。

2. 在D和G中均使用batch normalization;

3. 去掉FC層,使網絡變為全卷積網絡;

4. G網絡中使用ReLU作為激活函數,最後一層使用tanh;

5. D網絡中使用LeakyReLU作為激活函數;

DCGAN中的G網絡示意:

預測學習:深度生成式模型、DcGAN、應用案例、相關paper一、運作機制二、GAN變種模型之間的繼承關系三、GAN在NLP應用的難點四、GAN的應用執行個體

其中在TF中的一個漫畫頭像案例:

從動漫圖庫網站爬取漫畫圖檔、頭像截取,使用github上一個基于opencv的工具:nagadomi、fine-tuning(carpedm20/DCGAN)

 整個案例來源于雷鋒網網址:http://www.leiphone.com/news/201701/yZvIqK8VbxoYejLl.html

. 關于這篇論文《Unsupervised representation learning with deep convolutional generative adversarial networks》Radford A, Metz L, Chintala S. [J]. arXiv preprint arXiv:1511.06434, 2015.

( 注:以下來自于:GANs之DCGANs 。這篇論文的提出看似并沒有很大創新,但其實它的開源代碼現在被使用和借鑒的頻率最高。這一切必須歸功于這篇工作中比 LAPGAN [2-Denton E L, Chintala S, Fergus R. Deep Generative Image Models using a Laplacian Pyramid of Adversarial Networks[C]//Advances in neural information processing systems. 2015: 1486-1494.] 更 robust 的工程經驗分享。也就是說,DCGAN,Deep Convolutional Generative Adversarial Networks,這個工作[1],指出了許多對于GAN這種不穩定學習方式重要的架構設計和針對CNN這種網絡的特定經驗。重點來看:

    比如他們提出既然之前已經被提出的strided convolutional networks 可以從理論上實作和有pooling的 CNN一樣的功能和效果,那麼strided convolutional networks作為一個可以 fully differentiable的generator G,在GAN中會表現得更加可控和穩定。

     又比如,本來 Facebook的LAPGAN中指出Batch Normalization(BN)被用在 GAN 中的D上會導緻整個學習的collapse ,但是DCGAN中則成功将 BN 用在了 G 和 D 上。這些工程性的突破無疑是更多人選擇DCGAN 這一工作作為 base 的重要原因。

     另一方面,他們在 visualize generative models 也有許多貢獻。比如他們學習了 ICLR 2016 論文《Generating Sentences From a Continuous Space》中的 interpolate space 的方式,将生成圖檔中的 hidden states 都 show 了出來,可以看出圖像逐漸演變的過程。

      ...................................................

     通過GAN建構表征,然後重用部分生成模型、判别模型作為有監督學習的特征提取器。 GAN是“最大似然方法”的一個有吸引力的替代方法。  對于表征學習,無需啟發式損失函數是有吸引力的。GAN有一個通病:訓練過程的unstable : 經常導緻生成器産出無意義的輸出。目前在試圖了解和可視化GANs學到什麼以及多層GANs的中間層标準方面研究非常有限。

    文章主要貢獻:

  • 提出和評估了一系列卷積GANs在結構拓撲方面限制條件,讓其更加穩定。我們将其命名為深度卷積生成式對抗網絡Deep Convolutional GANs
  • 使用訓練好的判别模型用于圖像分類,和其他無監督方法的結果具有可比較性。
  • 可視化了卷積核
  • 生成模型具有向量算是運算性能 )

2、InfoGAN

為了使輸入包含可以解釋,更有資訊的意義,InfoGAN[7]的模型在z之外,又增加了一個輸入c,稱之為隐含輸入(latent code),然後通過限制c與生成資料之間的關系,使得c裡面可以包含某些語義特征(semantic feature),比如對MNIST資料,c可以是digit(0-9),傾斜度,筆畫厚度等。具體做法是:首先我們确定需要表達幾個特征以及這些特征的資料類型,比如是類别(categorical)還是連續數值,對每個特征我們用一個次元表示ci 。

.

3、Conditional GAN

conditional的意思就是,生成圖檔的模型變成了 P(X|z, c),而c是我們額外提供的資訊。與info差別:(1)Info中c資訊是需要網絡去學習提取的特征,而這裡是需要我們輸入網絡的資訊。 (2)Info中c隻輸入生成網絡,而這裡需要同時輸入生成和識别網絡,以便讓網絡學習到它們之間的關聯。

. (  注: 與其他生成式模型相比,GAN這種競争的方式不再要求一個假設的資料分布,即不需要formulate p(x),而是使用一種分布直接進行采樣sampling,進而真正達到理論上可以完全逼近真實資料,這也是GAN最大的優勢。然而,這種不需要預先模組化的方法缺點是太過自由了,對于較大的圖檔,較多的 pixel的情形,基于簡單 GAN 的方式就不太可控了。為了解決GAN太過自由這個問題,一個很自然的想法是給GAN加一些限制,于是便有了Conditional Generative Adversarial Nets(CGAN)【Mirza M, Osindero S. Conditional】。這項工作提出了一種帶條件限制的GAN,在生成模型(D)和判别模型(G)的模組化中均引入條件變量y(conditional variable y),使用額外資訊y對模型增加條件,可以指導資料生成過程。這些條件變量y可以基于多種資訊,例如類别标簽,用于圖像修複的部分資料[2],來自不同模态(modality)的資料。如果條件變量y是類别标簽,可以看做CGAN 是把純無監督的 GAN 變成有監督的模型的一種改進。來自于:GANs學習系列6-條件GANs  )

4、StackGAN

StackGAN[8] 模型本質就是是Conditional GAN,隻不過它使用了兩層conditional GAN模型,第一層模型 P(X1|z, c) 利用輸入的文字資訊c生成一個較低分辨率的圖檔。之後第二層模型 P(X|c,,X1) 基于第一層生成的圖檔以及文字資訊生成更加優化的圖檔。

最新NIPS2016也有最新的關于訓練GAN模型的總結 [How to Train a GAN? Tips and tricks to make GANs work] (https://github.com/soumith/ganhacks “GAN tricks”)。

.

5、iGAN:Interactive Image Generation via Generative Adversarial Networks

github位址:https://github.com/junyanz/iGAN

效果:劃一個弧線,然後就可以模拟出山體等實景來。 這貌似是百度發表的一篇論文。

預測學習:深度生成式模型、DcGAN、應用案例、相關paper一、運作機制二、GAN變種模型之間的繼承關系三、GAN在NLP應用的難點四、GAN的應用執行個體

.

6、AC-GAN(auxiliary classifier GAN)

paper : https://arxiv.org/abs/1610.09585

AC-GAN的Discriminator中會輸出相應的class label的機率,然後更改loss fuction,增加class預測正确的機率, ac-gan是一個tensorflow相關的實作,基于作者自己開發的sugartensor,感覺和paper裡面在loss函數的定義上差異.

預測學習:深度生成式模型、DcGAN、應用案例、相關paper一、運作機制二、GAN變種模型之間的繼承關系三、GAN在NLP應用的難點四、GAN的應用執行個體

實驗案例可參考:GAN的了解與TF的實作

6、 FAIR 提出常見 GAN 訓練方法的替代方法:WGAN

本節内容來源于

1、機器之心翻譯組

2、作者:鄭華濱 來源:知乎 連結:https://zhuanlan.zhihu.com/p/25071913

論文的主要貢獻:

而今天的主角Wasserstein GAN(下面簡稱WGAN)成功地做到了以下爆炸性的幾點:

  • 徹底解決GAN訓練不穩定的問題,不再需要小心平衡生成器和判别器的訓練程度
  • 基本解決了collapse mode的問題,確定了生成樣本的多樣性
  • 訓練過程中終于有一個像交叉熵、準确率這樣的數值來訓示訓練的程序,這個數值越小代表GAN訓練得越好,代表生成器産生的圖像品質越高
  • 以上一切好處不需要精心設計的網絡架構,最簡單的多層全連接配接網絡就可以做到

而改進後相比原始GAN的算法實作流程卻隻改了四點:

  • 判别器最後一層去掉sigmoid
  • 生成器和判别器的loss不取log
  • 每次更新判别器的參數之後把它們的絕對值截斷到不超過一個固定常數c
  • 不要用基于動量的優化算法(包括momentum和Adam),推薦RMSProp,SGD也行

WGAN 模型的 pytorch 代碼實作

https://gist.github.com/soumith/71995cecc5b99cda38106ad64503cee3

論文連結:https://arxiv.org/pdf/1701.07875v1.pdf

其中WGAN發展迅猛,這幾天讨論的人特别多,這裡看一個案例《人臉資料集和mnist的案例》

對 keras : tensorflow https://github.com/zdx3578/DeepLearningImplementations/tree/master/WassersteinGAN

内容目錄:

celebA人臉資料集訓練效果

mnist 數字訓練學習效果

環境搭建要點。

圖檔1

圖檔2

圖檔來源:【最詳盡的GAN介紹】王飛躍等:生成式對抗網絡 GAN 的研究進展與展望

.

三、GAN在NLP應用的難點

來源于知乎《GAN在自然語言處理方面有哪些有趣的文章和應用?》

為什麼Ian在reddit上說GAN做不了是因為word embedding加減無意義就做不了呢?既然這樣,我在latent vector上做加減不就行了嗎?這個方法看上去可以,實際上很難work。

使用generative model解決language generation最大的問題在于latent space存在非常多的desert hole。在training的時候,text的latent vector有聚攏的傾向。不過解決的方法也是有很多的。最簡單的方法是用VAE而不是用GAN。GAN本身的訓練方式是非常依賴連續空間的。在訓練的時候,我們的目标就是連續空間上的pixel值。在這一點上,VAE就沒有這個假設。是以VAE是自然的選擇。另外一個方法是結合policy gradient,把它做成一個RL的問題。[2] 是一篇非常有意思的文章。通過把word選擇由softmax output選擇變成policy選擇,作者巧妙的避開了GAN和word embedding不相容的問題。

.

四、GAN的應用執行個體

因為内部對抗訓練的機制,GAN可以解決一些傳統的機器學習中所面臨的資料不足的問題,是以可以應用在半監督學習、無監督學習、多視角、多任務學習的任務中。還有,就是最近有一些工作已經将進行成功應用在強化學習中,來提高強化學習的學習效率。

應用執行個體 1:圖像超分辨率(Twitter)

Twitter 公司最近發表了一篇圖像超分辨率的論文,就是應用了GAN模型。圖像超分辨率的目的,是将一個低分辨率的模糊圖像,進行某種變換,得到一個高分辨率的帶有豐富細節的清晰圖像。

預測學習:深度生成式模型、DcGAN、應用案例、相關paper一、運作機制二、GAN變種模型之間的繼承關系三、GAN在NLP應用的難點四、GAN的應用執行個體

在 Twitter 這篇論文中,他們用一個16個殘差塊的網絡來參數化生成模型。而判别模型使用的是一個VGG網絡。這個實驗結果也說明了使用GAN模型能夠得到更好的結果。與以往基于深度學習模型做圖像超分辨率的結果相比的話(比如SRResNet等),我們可以看到GAN的結果圖能夠提供更豐富的細節。這也就是GAN做圖像生成時的一個顯著優點,即能夠提供更銳利的資料細節。

預測學習:深度生成式模型、DcGAN、應用案例、相關paper一、運作機制二、GAN變種模型之間的繼承關系三、GAN在NLP應用的難點四、GAN的應用執行個體

.

應用執行個體 2:資料合成(Apple)

Apple最近剛剛發表了其第一篇AI論文,論文要解決的問題,就是如何使得模拟的資料更加逼真,與真實圖像的差異性盡量小。這篇論文中使用了類似GAN的架構,将模拟器(Simulator)産生的虛拟資料作為輸入,通過一個叫做改進器(Refiner)的模型(對應生成模型)來産生改進後的虛拟資料。再同樣的,使用一個判别器,來判斷所産生的圖像是真實的,還是虛拟的 。

預測學習:深度生成式模型、DcGAN、應用案例、相關paper一、運作機制二、GAN變種模型之間的繼承關系三、GAN在NLP應用的難點四、GAN的應用執行個體

.

應用執行個體3:圖像到圖像的翻譯+文本到圖像的翻譯

比如說将語義标注圖、灰階圖或邊緣圖作為GAN的輸入,那麼我們希望它輸出能夠和輸入圖一緻的真實圖像,例如這裡的街景圖和彩色圖。

文本到圖像的翻譯。GAN的輸入是一個描述圖像内容的一句話,比如“一隻有着粉色的胸和冠的小鳥”,那麼所生成的圖像内容要和這句話所描述的内容相比對。

預測學習:深度生成式模型、DcGAN、應用案例、相關paper一、運作機制二、GAN變種模型之間的繼承關系三、GAN在NLP應用的難點四、GAN的應用執行個體

.

應用執行個體4:人臉去遮擋

新加坡國立大學【機器學習與視覺實驗室】研究項目。保持人的身份資訊的GAN模型,實驗結果證明,這個模型不僅能夠檢測和去掉在人臉上的遮擋,同時還能保持人的身份資訊,進而提高人臉的識别準确率。

預測學習:深度生成式模型、DcGAN、應用案例、相關paper一、運作機制二、GAN變種模型之間的繼承關系三、GAN在NLP應用的難點四、GAN的應用執行個體

.

應用執行個體5:小物體的檢測

新加坡國立大學【機器學習與視覺實驗室】研究項目。在小物體的檢測上,例如在自動駕駛領域對交通标志進行檢測。“感覺GAN模型”(Perceptual GAN),應用在小物體特征表示的超分辨率上,而不是對原始圖像進行超分辨率,使得小物體的特征表示和大物體的特征角表示盡量接近,這樣我們就能夠成功檢測到小物體。我們将這個感覺GAN模型應用在了交通标志檢測上,取得了比較好的實驗結果。

預測學習:深度生成式模型、DcGAN、應用案例、相關paper一、運作機制二、GAN變種模型之間的繼承關系三、GAN在NLP應用的難點四、GAN的應用執行個體

.

應用執行個體6 :基于CGAN的圖像除雨方法(ID-CGAN)

《Image De-raining Using a Conditional Generative Adversarial Network》H Zhang, V Sindagi, V M. Patel [Rutgers University] (2017)

基于GANs,重設loss函數,來達到一定的除去雨滴的效果。

預測學習:深度生成式模型、DcGAN、應用案例、相關paper一、運作機制二、GAN變種模型之間的繼承關系三、GAN在NLP應用的難點四、GAN的應用執行個體

github連結:https://github.com/ruimashita/caffe-train

.

應用執行個體7 :太空:繪制宇宙曆史中的引力透鏡效應

在基礎科學中,生成人工智能(Generative AI)看起來更有前途,Welling 說,他正在幫助開發 Square Kilometre Array (SKA),一座在南非和澳洲建立的射電天文台。SKA 将産生大量的資料,它的圖像需要被壓縮成低噪聲但不完整的資料。生成人工智能模型将會幫助重構并填補這些資料的空白部分,産生天文學家能夠進行實驗的天空圖像。

卡耐基梅隆大學的天體實體學家 Rachel Mandelbaum 帶領的一隻團隊正在實驗使用 GAN 和 VAE 模拟因引力透鏡效應而看起來畸形的星系圖像。研究人員打算研究大量的星系圖像,來繪制宇宙曆史中的引力透鏡效應(gravitational lensing)。這能示範宇宙的物質如何随時間變化的分布,為研究導緻宇宙爆炸的暗能量的性質提供線索。但為了做到這點,天文學家需要能夠可靠地軟體分離引力透鏡與其他影響。Mandelbaum 說合成圖像能夠改進該項目的準确性。

許多科學家希望最新的人工智能神經網絡能夠幫助他們發現大型、複雜的資料集中的模式,但一些人對黑箱系統的解釋難以信任,它内部的工作機制是神秘的。即使虛拟神經元看起來給出了正确的答案,它們可能對世界會有着錯誤的了解。Cranmer 說假如生成元素可能會有所幫助,「如果它能生成看起來真實的資料,那它就更具有說服力。無論黑箱是什麼,它确實學到了實體性質。」

來源:機器之心編譯 原文:http://www.nature.com/news/astronomers-explore-uses-for-ai-generated-images-1.21398

應用執行個體7 :基于CGAN的人臉圖像老化預測

       《Face Aging With Conditional Generative Adversarial Networks》 Grigory Antipov, Moez Baccouche, Jean-Luc Dugelay (Submitted on 7 Feb 2017 (v1), last revised 30 May 2017 (this version, v2))

          論文位址:http://web.eecs.utk.edu/%7Ezzhang61/docs/papers/2017_CVPR_Age.pdf

          文章用于生成不同年齡的圖檔,采用的模型是條件對抗網絡, 主要創新點是, 首先通過一個網絡,提取圖像特征向量, 并通過身份保持網絡, 優化圖像的特征向量 ,特到特征向量z∗, 之後便可以對于每個輸入年齡 , 查找其年齡向量,并将該年齡向量與輸入圖檔特征向量z∗串聯, 輸入生成網絡,生成目标年齡圖檔.

預測學習:深度生成式模型、DcGAN、應用案例、相關paper一、運作機制二、GAN變種模型之間的繼承關系三、GAN在NLP應用的難點四、GAN的應用執行個體

    GANs結合自己的獨特的判别式和生成式模型結合,産生一個約定條件下的預測模型,可使自身應用于預測學習的範疇。

    完整翻譯:基于條件GAN的人臉老化模型

參考文獻:

1、《獨家​|深度學習新星:GANs的基本原理、應用和走向》, AI科技評論公衆号

2、《PaperWeekly 第二十期 — GAN(Generative Adversarial Nets)研究進展》,paperWeekly公衆号

3、《GAN在自然語言處理方面有哪些有趣的文章和應用?》,知乎

GAN目前存在的主要問題:

  • 解決不收斂(non-convergence)的問題。 

        目前面臨的基本問題是:所有的理論都認為 GAN 應該在納什均衡(Nash equilibrium)上有卓越的表現,但梯度下降隻有在凸函數的情況下才能保證實作納什均衡。當博弈雙方都由神經網絡表示時,在沒有實際達到均衡的情況下,讓它們永遠保持對自己政策的調整是可能的【OpenAI Ian Goodfellow的Quora】。

  • 難以訓練:崩潰問題(collapse problem) 

        GAN模型被定義為極小極大問題,沒有損失函數,在訓練過程中很難區分是否正在取得進展。GAN的學習過程可能發生崩潰問題(collapse problem),生成器開始退化,總是生成同樣的樣本點,無法繼續學習。當生成模型崩潰時,判别模型也會對相似的樣本點指向相似的方向,訓練無法繼續。【Improved Techniques for Training GANs】

  • 無需預先模組化,模型過于自由不可控。 

        與其他生成式模型相比,GAN這種競争的方式不再要求一個假設的資料分布,即不需要formulate p(x),而是使用一種分布直接進行采樣sampling,進而真正達到理論上可以完全逼近真實資料,這也是GAN最大的優勢。然而,這種不需要預先模組化的方法缺點是太過自由了,對于較大的圖檔,較多的 pixel的情形,基于簡單 GAN 的方式就不太可控了(超高維)。在GAN[Goodfellow Ian, Pouget-Abadie J] 中,每次學習參數的更新過程,被設為D更新k回,G才更新1回,也是出于類似的考慮。

GAN創始人答疑

1.      對抗網絡和對抗訓練的聯系和差別

ü  Christian Szegedy 發明了對抗訓練(adversarial training )這種算法包括訓練神經網絡正确分類正常執行個體與「對抗執行個體(adversarial examples )」;《神經網絡的有趣屬性》( Intriguing properties of neural networks)描述了對抗訓練。

ü  我發明了生成式對抗網絡。生成式對抗網絡是成對的網絡,另一個是鑒别器網絡,這篇論文沒有使用術語「對抗訓練」。

ü  我找到了一種更快生成對抗執行個體的方法,這就在對抗訓練的每一步上讓制造一小批新的對抗執行個體變得實際可行,而不是在每個階段隻能制造幾個執行個體。《對抗執行個體的解釋和鞏固》 (Explaining and Harnessing Adversarial Examples),我們首次給它命名為「對抗訓練」

ü  對抗訓練的最初指代:以對抗執行個體來訓練的術語;後來其他人開始使用對抗訓練指代生成式對抗網絡,我們可以将生成式對抗網絡視作執行對抗訓練,對抗訓練中的生成器網絡為鑒别器網絡制造對抗執行個體。

2.  圖像生成架構——GAN/VAE/PixelCNN/NICE

GAN優勢:

ü  比其它模型産生了更好的樣本。ü  能訓練任何一種生成器網絡;生成對抗式網絡能學習可以僅在與資料接近的細流形(thin manifold)上生成點。ü  不需要設計遵循任何種類的因式分解的模型, 任何生成器網絡和任何鑒别器都會有用。

3.  與其他生成式模型比較

ü  與 PixelRNN相比,生成一個樣本的運作時間更小。

ü  與VAE相比,它沒有變化的下限。如果鑒别器網絡能完美适合,那麼這個生成器網絡會完美地恢複訓練分布。換句話說,各種對抗式生成網絡會漸進一緻(asymptotically consistent),而 VAE 有一定偏置。

ü  與深度玻爾茲曼機相比,既沒有一個變化的下限,也沒有棘手的分區函數。它的樣本可以一次性生成,而不是通過反複應用馬爾可夫鍊運算器(Markov chain operator)。

ü  與GSN 相比,它的樣本可以一次生成,而不是通過反複應用馬爾可夫鍊運算器。ü  與NICE 和 Real NVE 相比,在 latent code 的大小上沒有限制。

完善GAN: 解決GAN不收斂(non-convergence)的問題:我們面臨的基本問題是,所有的理論都認為 GAN應該在納什均衡(Nash equilibrium)上有卓越的表現,但梯度下降隻有在凸函數的情況下才能保證實作納什均衡。當博弈雙方都由神經網絡表示時,在沒有實際達到均衡的情況下,讓它們永遠保持對自己政策的調整是可能的。???

我的興趣在于,設計可以在高維、非凸連續博弈中實作納什均衡( Nash equilibria)的算法。

4.      深度無監督學習的未來

ü  懷疑:因為它會很難知道你要執行什麼樣的任務。

ü  深度無監督學習的未來将成為半監督的學習:

Takeru Miyato 等人的虛拟對抗訓練:

Distributional Smoothing with Virtual Adversarial Training

Virtual Adversarial Training for Semi-Supervised Text Classification

另外還有 Tim Salimans 的帶有特征比對的GAN的半監督學習:

Improved Techniques for Training GANs

5.     機率圖模型的未來:不是互相排斥的

神經網絡的大多數應用可以看作是使用神經網絡提供一些條件機率分布的圖模型。

很多新近的神經網絡擁有簡單的圖結構( GANs, VAEs 和 NICE都是二分圖( bipartite graph ),讓每個潛變量與每個觀察變量聯系起來;PixelRNNs/MADE/NADE 都是完整的圖,沒有潛變量)。還不是非常結構化

6.      使用批量規範化(Batch Normalization)會不會削弱深度神經網絡的性能

ü  表征能力并不會被影響,因為深度神經網絡的規模和偏移量參數可以學習抵消規範化的影響,是以每一層都具有精确學會和以前一樣的功能集的能力。

ü  有效容量(effective capacity)更為複雜。由批量規範化(Batch Normalization)引入的噪聲具有一種正則化影響,但這可以通過優化工作得到極大的改善。

7.    我喜歡 dropout,因為從單一模型建構指數級大規模集合這種觀點太美妙了。

ü  Dropout基本上是用于正則化(regularization)。它為神經網絡引入噪聲以迫使神經網絡學會更好的歸納方法以便應付噪聲(這種說法過于簡化了,Dropout 遠不止是在噪聲下的穩健性)。

ü  批規範化基本上是用于改善優化(optimization)。

    其有一個副作用:批規範化碰巧會向網絡中引入一些噪聲,是以它也可以在模型的正則化上做點貢獻。

  當你有一個大型資料集時,較好的優化就很重要了,較好的正則化就沒有那麼重要;是以在大型資料集上,批規範化更重要。你當然也可以同時使用 Dropout 和批規範化——我在我的 GAN 中這麼做過:Improved Techniques for Training GANs

我也認為二分權重的技巧在近似預測集合方面表現得如此好。

8.  解釋為什麼批規範化具有正則化效應(regularzing effect)

    Batch 形式(batch norm)在某種意義上類似于 dropout ,它在訓練的每一步為每個隐藏單元乘上一個随機值。在這種情況下,該随機值是所有 minibatch 内隐藏單元的标準差。因為不同執行個體在每一步驟是針對minibatch 所包含的東西随機選擇出來的,标準差也是随機浮動。

    Batch norm 也在每一步從隐藏單元減去了一個随機值( minibatch 的均值)。 這兩種噪音的來源意味着每一層必須學會穩健處理輸入的許多變量,就像 dropout 一樣。

9.   基于模型的優化

将來(從現在到一個有限的時間範圍),我們将能夠使用優化算法搜尋模型的輸入,這種模型産生最優化的輸

出。因為你不能獲得在真實世界中實際最優的輸入。相反,你得到的是對抗執行個體,在模型世界裡表現優異而在現實世界中卻表現糟糕。

9. 生成式對抗網絡( GAN)未來

常常用于建構世界模型的 GAN 現在用于強化學習/動作規劃,關于生成機器人運動視訊的論文「通過視訊預測的針對實體互動的無監督式學習( Unsupervised Learning for Physical Interaction through Video Prediction )」

繼續閱讀