天天看點

【深度學習】GANs與DCGAN

GANs

GANs(Generative Adversarial Networks),生成對抗網絡,由Ian Goodfellow 提出。

Yann Lecun評價“the most insteresting idea in the last 10 years in ML”。

下面以圖檔識别來簡單解釋一下GANs的博弈過程。

GANs同時訓練兩個網絡。第一個網絡記作判别器(Discriminator),對輸入的圖檔進行判定,輸出一個scala,值在(0,1)之間。趨近1表示判定為自然采集(real)的圖檔的可能性更大;趨近0表示第二個網絡,也就是生成器(Generator),生成(fake)的可能性更大。Disciminator的目标是準确判别出哪些是real的圖檔,哪些是fake的圖檔。第二個網絡,Generator,輸入是一個簡單的機率分布的向量(例如:100維的高斯分布的向量),輸出是一張圖檔。Generator的目标是讓Discriminator判定其為real。

上述的流程可以用下面的公式來定義:

【深度學習】GANs與DCGAN

換句話說,Discriminator目标是最大化上式。對于Discriminator來說:

1.對于real圖檔,使其輸出的scala盡量趨近于1(第一項)

2.對于fake圖檔,使其輸出的scala盡量趨近于0(第二項)

而對于Generator來說,目标是最小化上式:

完善自身生成的圖檔,試圖欺騙Discriminator,使Discriminator對其生成的圖檔判别趨近1

整個過程就是Discriminator和Generator通過和對方博弈同時完善自身的網絡結構的欺騙與反欺騙動态過程,最重要的是在這個過程中雙方都能通過博弈進步。

DCGAN

DCGAN,Deep Convolutional GAN,顧名思義,使用卷積網絡(此處卷積網絡包括卷積和反卷積【反卷積介紹見這篇博文】兩種操作)作為Generator和Discriminator的網絡結構,主要用途生成圖檔和圖檔分類等。

Generator,主要操作是反卷積,用來生成圖檔示意圖如下:

【深度學習】GANs與DCGAN

Discriminator,主要操作卷積,用來判定圖檔示意圖如下:

【深度學習】GANs與DCGAN

DCGAN的來源的網絡結構設計來自這篇論文Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks,下一篇博文會詳細記錄論文中網絡結構,超參數設定,參數更新方式等細節,同時會重制論文的模型更新在github上。

歡迎交流~

繼續閱讀