InfoGAN 網絡訓練過程介紹

一、InfoGAN是什麼
簡單的講,就是一種常見的GAN,是在普通的GAN的基礎上增加Q網絡,可以通過無監督學習的方式學到生成的數據的類別。

二、小故事
小D是一個很喜歡吃餃子的姑娘,喜歡吃不同的餡的餃子,而且對於餃子的要求十分高,尤其喜歡B城的一家餃子店的餃子,但是由於長期身在A城,沒有辦法吃到B城的餃子。
而她的男朋友小G和她是異地,而且恰好是在B城,是一個非常寵她的小夥子,經常爲了讓她吃到滿意的餃子,不斷的嘗試製作出和B城的餃子店一模一樣的餃子。在每一次做完餃子之後,都會再去買一份小D愛吃的那家店的餃子,然後不辭千里給小D送去,讓小D猜測哪個是他包的餃子,哪個是餃子店的餃子。終於,起初,小D總會一下子就能夠分辨出來,終於,功夫不負有心人,有一天,小D已經分不出哪個是小G做的餃子哪個是餃子店的餃子了,因爲它們都一樣好吃了。
故事講到了這裏,並沒有結束,哈哈,畢竟好吃的除了男朋友,總少不了好閨蜜嘛,小D的好閨蜜叫小Q,不論是三觀還是喜好都和小D保持高度一致,同樣也喜歡吃B城的那家店的餃子,唯一不同的是,每次吃餃子的時候,都喜歡加點醋,但是,她擁有一個超能力,那就是,雖然不同餡的餃子的外形差異很細微,但是她是他們三個中唯一一個能夠分辨出不同餡的餃子的樣子的差異的人,而小D和小G並做不到這一點,經常吃一口才知道是什麼餡的。
好啦,故事講到這裏,就該結束了,其他細節請見下次分享。

三、InfoGAN網絡結構
1、判別器(Discriminator)
小D:她的作用是判別餃子店的餃子和男朋友的餃子之間是否有差異的。
而對於InfoGAN來說,就是判斷real data (x)和生成器生成的fake data (G(z))之間的差異有多少。
2、生成器(Generator)
小G:他的作用是不斷的提高自己的造假能力,知道他做出的不同餡的餃子小D分辨不出來是他做的還是餃子店做的爲止。
而對於InfoGAN來說,生成器就是利用噪聲z和latent code c來進行生成仿真的數據,直到判別器無法分辨出數據到底是來自真實的數據x還是生成的數據G(z)爲止。
3、分類器
小Q:她的作用是爲了分辨出不同餡的餃子的差異,餃子上是沒有標記的。
而對於InfoGAN來說,Q網絡是和D網絡公用除了最後一層之外的其他所有的層的,它是爲了分辨出數據之間的類別是什麼,比如什麼餡的餃子。
4、GAN
只有D網絡和G網絡的就是普通的GAN啦,這兩個網絡之間不斷的進行博弈,直到G網絡學會的fake data和real data是D網絡分辨不出來的爲止。
5、網絡結構圖
這裏寫圖片描述

論文鏈接:
https://arxiv.org/pdf/1606.03657.pdf

之前寫過的一個簡單的InfoGAN的介紹:http://blog.csdn.net/superyr_210/article/details/78444735

本文原創,如有不當之處歡迎指正,本文來自我的個人訂閱號,歡迎掃碼關注,或者直接搜索“這麼巧你也有超能力”,進行關注。
這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章