InfoGAN-無監(jiān)督式GAN

1. InfoGAN簡介:

? ? ? ?普通的GAN存在無約束、不可控违孝、噪聲信號z很難解釋等問題,2016年發(fā)表在NIPS頂會上的文章InfoGAN:Interpretable Representation Learning by Information Maximizing Generative Adversarial Nets泳赋,提出了InfoGAN的生成對抗網(wǎng)絡(luò)雌桑。InfoGAN 主要特點是對GAN進行了一些改動,成功地讓網(wǎng)絡(luò)學(xué)到了可解釋的特征祖今,網(wǎng)絡(luò)訓(xùn)練完成之后校坑,我們可以通過設(shè)定輸入生成器的隱含編碼來控制生成數(shù)據(jù)的特征。

? ? ? ? 作者將輸入生成器的隨機噪聲分成了兩部分:一部分是隨機噪聲Z千诬, 另一部分是由若干隱變量拼接而成的latent code c耍目。其中,c會有先驗的概率分布徐绑,可以離散也可以連續(xù)邪驮,用來代表生成數(shù)據(jù)的不同特征。例如:對于MNIST數(shù)據(jù)集傲茄,c包含離散部分和連續(xù)部分耕捞,離散部分取值為0~9的離散隨機變量(表示數(shù)字),連續(xù)部分有兩個連續(xù)型隨機變量(分別表示傾斜度和粗細度)烫幕。

? ? ? ? 為了讓隱變量c能夠與生成數(shù)據(jù)的特征產(chǎn)出關(guān)聯(lián)俺抽,作者引入了互信息來對c進行約束,因為c對生成數(shù)據(jù)G(z, c)具有可解釋性较曼,那么c和G(z, c)應(yīng)該具有較高的相關(guān)性磷斧,即它們之間的互信息比較大〗萦蹋互信息是兩個隨機變量之間依賴程度的度量弛饭,互信息越大就說明生成網(wǎng)絡(luò)在根據(jù)c的信息生成數(shù)據(jù)時,隱編碼c的信息損失越低萍歉,即生成數(shù)據(jù)保留的c的信息越多侣颂。因此,我們希望c和G(z, c)之間的互信息I(c; G(z, c))越大越好枪孩,故模型的目標函數(shù)變?yōu)椋?/p>

min_{G} max_{D} V_{1} (D, G)=V(D,G)-\lambda I(c: G(z, c))

? ? ? ? 但是由于在c與G(z, c)的互信息的計算中憔晒,真實的P(c|x)難以獲得,因此在具體的優(yōu)化過程中蔑舞,作者采用了變分推斷的思想拒担,引入了變分分布Q(c|x)來逼近P(c|x),它是基于最優(yōu)互信息下界的輪流迭代實現(xiàn)最終的求解攻询,于是InfoGAN的目標函數(shù)變?yōu)椋?/p>

min_{G} max_{D} V_{InfoGAN} (D, G, Q)=V(D,G)-\lambda L_{1} (G, Q)


2. InfoGAN的基本結(jié)構(gòu)為:

InfoGAN的基本結(jié)構(gòu)

? ? ? ? 其中从撼,真實數(shù)據(jù)Real_data只是用來跟生成的Fake_data混合在一起進行真假判斷,并根據(jù)判斷的結(jié)果更新生成器和判別器钧栖,從而使生成的數(shù)據(jù)與真實數(shù)據(jù)接近低零。生成數(shù)據(jù)既要參與真假判斷婆翔,還需要和隱變量C_vector求互信息,并根據(jù)互信息更新生成器和判別器掏婶,從而使得生成圖像中保留了更多隱變量C_vector的信息啃奴。

? ? ? ? 因此可以對InfoGAN的基本結(jié)構(gòu)進行如下的拆分,其中判別器D和Q共用所有卷積層气堕,只是最后的全連接層不同。從另一個角度來看畔咧,G-Q聯(lián)合網(wǎng)絡(luò)相當于是一個自編網(wǎng)絡(luò)茎芭,G相當于一個編碼器,而Q相當于一個解碼器誓沸,生成數(shù)據(jù)Fake_data相當于對輸入隱變量C_vector的編碼梅桩。

InfoGAN的拆分結(jié)構(gòu)

生成器G的輸入為:(batch_size, noise_dim + discrete_dim + continuous_dim)县钥,其中noise_dim為輸入噪聲的維度注簿,discrete_dim為離散隱變量的維度当悔,continuous_dim為連續(xù)隱變量的維度物臂。生成器G的輸出為(batch_size, channel, img_cols, img_rows)凄鼻。

判別器D的輸入為:(batch_size, channel, img_cols, img_rows)拥褂,判別器D的輸出為:(batch_size, 1)紊册。

判別器Q的輸入為:(batch_size, channel, img_cols, img_rows)放前,Q的輸出為:(batch_size, discrete_dim + continuous_dim)


3. InfoGAN的優(yōu)化目標函數(shù)為:

? ? ? ? InfoGAN的目標函數(shù)變?yōu)椋? ? ?

? ? ? ? 對于判別器D而言干奢,優(yōu)化目標函數(shù)為:? max [logD_{real}+log(1-D_{fake} ) ]??

D_real, _, _ = Discriminator(real_imgs)? ? ? ? #? real_imgs為用于訓(xùn)練的真實圖像

gen_imgs = Generator(noise, c_discrete, c_continuous)? ? ? ? #? c_discrete為輸入的離散型隱變量痊焊, c_continuous為輸入的連續(xù)型隱變量??

D_fake, _, _ = Discriminator(gen_imgs)?

D_real_loss = torch.nn.BCELoss(D_real, y_real)? ? ? ? ? #? y_real 真實圖像的標簽,都為1

D_fake_loss = torch.nn.BCELoss(D_fake, y_fake)? ? ? ? ?# y_fake為生成圖像的標簽忿峻,都為0

D_loss = D_real_loss + D_fake_loss

? ? ? ? 對于生成器G而言薄啥,優(yōu)化目標函數(shù)為:?min[log(1-D_{fake} )]

gen_imgs = Generator(noise, c_discrete, c_continuous)? ? ? ? ? ? ? ? ? ?#? c_discrete為輸入的離散隱變量,c_continuous為輸入的連續(xù)隱變量

D_fake, D_continuous, D_discrete = Discriminator(gen_imgs)?

G_loss = torch.nn.BCELoss( D_fake, y_real)? ? ? ? ? ? ? ??#? y_real 真實圖像的標簽逛尚,都為1

? ? ? ? ?對于G-Q聯(lián)合網(wǎng)絡(luò)而言垄惧,它的優(yōu)化目標函數(shù)為:? maxL_{I}(G, Q) , 其中? ? ? ? ? ? ?L_{I}(G, Q) =c*logQ(c|x)+H(c)?因此绰寞,maxL_{I}(G, Q) \Leftrightarrow max[c*logQ(c|x)]

discrete_loss = torch.nn.CELoss(D_discrete, c_discrete)

continuous_loss = torch.nn.MSELoss(D_continuous, c_continuous)

info_loss = discrete_loss + continuous_loss

info_loss.backward()

info_optimizer.step()? ? ? ?# 其中到逊,info_optimizer = optim.Adam(itertools.chain(Generator.parameters(), Discriminator.parameters()), lr = learning_rate, betas=(beta1, beta2))

? ? ? ?簡而言之,InfoGAN中單獨判別器D的優(yōu)化目標函數(shù)只有對抗損失滤钱,單獨生成器G的優(yōu)化目標函數(shù)也只有對抗損失蕾管,生成器G和輔助判別器Q聯(lián)合網(wǎng)絡(luò)的優(yōu)化目標函數(shù)是info損失,包含離散損失和連續(xù)損失兩個部分菩暗。其中掰曾,判別器D和輔助判別器Q共用卷積層,只是最后的全連接層不同停团。


參考鏈接:http://aistudio.baidu.com/aistudio/projectdetail/29156?中山大學(xué)黃濤對論文InfoGAN:Interpretable Representation Learning by Information Maximizing Generative Adversarial Nets的復(fù)現(xiàn)旷坦。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末掏熬,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子秒梅,更是在濱河造成了極大的恐慌旗芬,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,123評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件捆蜀,死亡現(xiàn)場離奇詭異疮丛,居然都是意外死亡,警方通過查閱死者的電腦和手機辆它,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評論 2 384
  • 文/潘曉璐 我一進店門誊薄,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人锰茉,你說我怎么就攤上這事呢蔫。” “怎么了飒筑?”我有些...
    開封第一講書人閱讀 156,723評論 0 345
  • 文/不壞的土叔 我叫張陵片吊,是天一觀的道長。 經(jīng)常有香客問我协屡,道長俏脊,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,357評論 1 283
  • 正文 為了忘掉前任肤晓,我火速辦了婚禮联予,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘材原。我一直安慰自己沸久,他們只是感情好,可當我...
    茶點故事閱讀 65,412評論 5 384
  • 文/花漫 我一把揭開白布余蟹。 她就那樣靜靜地躺著卷胯,像睡著了一般。 火紅的嫁衣襯著肌膚如雪威酒。 梳的紋絲不亂的頭發(fā)上窑睁,一...
    開封第一講書人閱讀 49,760評論 1 289
  • 那天,我揣著相機與錄音葵孤,去河邊找鬼担钮。 笑死,一個胖子當著我的面吹牛尤仍,可吹牛的內(nèi)容都是我干的箫津。 我是一名探鬼主播,決...
    沈念sama閱讀 38,904評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼苏遥!你這毒婦竟也來了饼拍?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,672評論 0 266
  • 序言:老撾萬榮一對情侶失蹤田炭,失蹤者是張志新(化名)和其女友劉穎师抄,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體教硫,經(jīng)...
    沈念sama閱讀 44,118評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡叨吮,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,456評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了瞬矩。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片茶鉴。...
    茶點故事閱讀 38,599評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖丧鸯,靈堂內(nèi)的尸體忽然破棺而出蛤铜,到底是詐尸還是另有隱情嫩絮,我是刑警寧澤丛肢,帶...
    沈念sama閱讀 34,264評論 4 328
  • 正文 年R本政府宣布,位于F島的核電站剿干,受9級特大地震影響蜂怎,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜置尔,卻給世界環(huán)境...
    茶點故事閱讀 39,857評論 3 312
  • 文/蒙蒙 一杠步、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧榜轿,春花似錦幽歼、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至飞傀,卻和暖如春皇型,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背砸烦。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評論 1 264
  • 我被黑心中介騙來泰國打工弃鸦, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人幢痘。 一個月前我還...
    沈念sama閱讀 46,286評論 2 360
  • 正文 我出身青樓唬格,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子西轩,可洞房花燭夜當晚...
    茶點故事閱讀 43,465評論 2 348

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

  • 想從Tensorflow循環(huán)生成對抗網(wǎng)絡(luò)開始员舵。但是發(fā)現(xiàn)從最難的內(nèi)容入手還是?太復(fù)雜了所以搜索了一下他的始祖也就是深...
    Feather輕飛閱讀 5,036評論 1 4
  • 摘要:在深度學(xué)習(xí)之前已經(jīng)有很多生成模型韭邓,但苦于生成模型難以描述難以建模,科研人員遇到了很多挑戰(zhàn)溶弟,而深度學(xué)習(xí)的出現(xiàn)幫...
    肆虐的悲傷閱讀 11,258評論 1 21
  • CGAN通過在生成器和判別器中均使用標簽信息進行訓(xùn)練女淑,不僅能產(chǎn)生特定標簽的數(shù)據(jù),還能夠提高生成數(shù)據(jù)的質(zhì)量辜御;...
    baiyang白楊閱讀 12,399評論 5 5
  • 概述 該代碼使用MatConvNet在matlab上搭建GAN網(wǎng)絡(luò)鸭你,用來生成手寫數(shù)字圖片。 MatConvNet是...
    JzCh閱讀 6,355評論 6 2
  • 七月份擒权,從上海搬家到北京袱巨。 八月份,從北京溜達到了深圳碳抄。 我自己都沒有想到愉老,變化如此之快。 現(xiàn)在的我還沒有足夠的勇...
    小地主的自留地閱讀 325評論 0 1