GAN锁荔、CGAN、INN

INN 旨在從無法直接確定的復(fù)雜關(guān)系中解決逆向關(guān)系的問題恬总,它的原理和使用范圍在諸多論文當(dāng)中尚不明確,但是在已知的資料當(dāng)中肚邢,他的原理與GAN類似壹堰,并且在多篇論文中使用其與GAN進(jìn)行對比。所以這篇文章將 INN 和 GAN 對比起來進(jìn)行學(xué)習(xí)骡湖。


GAN

GAN的全稱為Generative Adversarial Net——生成對抗網(wǎng)絡(luò)缀旁。

GAN的思想是是一種二人零和博弈思想(two-player game),博弈雙方的利益之和是一個常數(shù)勺鸦,比如兩個人掰手腕,假設(shè)總的空間是一定的目木,你的力氣大一點换途,那你就得到的空間多一點,相應(yīng)的我的空間就少一點军拟,相反我力氣大我就得到的多一點摹恰,但有一點是確定的就是,我兩的總空間是一定的炮车,這就是二人博弈扛或,但是呢總利益是一定的黔姜。

引申到GAN里面就是可以看成,GAN中有兩個這樣的博弈者,一個人名字是生成模型(G),另一個人名字是判別模型(D)。他們各自有各自的功能。

這兩個模型的相同點是:都可以看成是一個黑匣子,接受輸入然后有一個輸出,類似一個函數(shù),一個輸入輸出映射厕宗。

這兩個模型不同點是:
生成模型功能:比作是一個樣本生成器佑惠,輸入一個噪聲,然后把它包裝成一個逼真的樣本,也就是輸出。
關(guān)于生成模型在這里補充一下,為什么我們輸入一個噪聲(滿足維度要求的隨機數(shù))之后,生成模型就能做出一個逼真的樣本呢礼旅?實際上汰翠,在我們對生成模型不斷訓(xùn)練的過程中妓局,它會找到原始樣本集最本質(zhì)的特征并為其建模甥啄,例如享完,如果原始樣本集是人臉集合倒源,那么在不斷地訓(xùn)練過程中,人臉特征就會被生成模型捕捉到丘薛,而生成結(jié)果隨著輸入的噪聲的不同而得到不同人的臉边苹,但是由于模型捕捉到了人臉的本質(zhì)特征,所以無論噪聲是什么捶枢,始終輸出的都是一張真實的人臉圖像。這里不需要過多神經(jīng)網(wǎng)絡(luò)的知識忘朝,你只需要知道生成模型是一個神經(jīng)網(wǎng)絡(luò)黑盒子但指,它通過g(X)=Y這樣的映射卢肃,X是m維輸入噪聲,Y是n維的輸出結(jié)果奏属,n=樣本集大械鳌(例如n=256=16 * 16)糟红,g就是我們的神經(jīng)網(wǎng)絡(luò)求橄。生成模型的理解對INN十分重要,一定要把生成模型充分理解清楚

判別模型:比作一個二分類器(如同0-1分類器)溯乒,來判斷輸入的樣本是真是假艾君。(就是輸出值大于0.5還是小于0.5);

下面來看一個簡單的示意圖

image

GAN與通常意義上的監(jiān)督學(xué)習(xí)不一樣蹬癌,在這里我們應(yīng)該明確兩點:
1、我們有什么欢搜?
比如上面的這個圖胯杭,我們有的只是真實采集而來的人臉樣本數(shù)據(jù)集,僅此而已嘁圈,而且很關(guān)鍵的一點是我們連人臉數(shù)據(jù)集的類標(biāo)簽都沒有省骂,也就是我們不知道那個人臉對應(yīng)的是誰。

2最住、我們要得到什么
至于要得到什么钞澳,不同的任務(wù)得到的東西不一樣,我們只說最原始的GAN目的涨缚,那就是我們想通過輸入一個噪聲轧粟,模擬得到一個人臉圖像,這個圖像可以非常逼真以至于以假亂真脓魏。

好了再來理解下GAN的兩個模型要做什么兰吟。首先判別模型,就是圖中右半部分的網(wǎng)絡(luò)轧拄,直觀來看就是一個簡單的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)揽祥,輸入就是一副圖像,輸出就是一個概率值檩电,用于判斷真假使用(概率值大于0.5那就是真拄丰,小于0.5那就是假),真假也不過是人們定義的概率而已俐末。其次是生成模型料按,生成模型要做什么呢,同樣也可以看成是一個神經(jīng)網(wǎng)絡(luò)模型卓箫,輸入是一組隨機數(shù)Z载矿,輸出是一個圖像,不再是一個數(shù)值而已。從圖中可以看到闷盔,會存在兩個數(shù)據(jù)集弯洗,一個是真實數(shù)據(jù)集,這好說逢勾,另一個是假的數(shù)據(jù)集牡整,那這個數(shù)據(jù)集就是有生成網(wǎng)絡(luò)造出來的數(shù)據(jù)集。好了根據(jù)這個圖我們再來理解一下GAN的目標(biāo)是要干什么:

判別網(wǎng)絡(luò)的目的:就是能判別出來屬于的一張圖它是來自真實樣本集還是假樣本集溺拱。假如輸入的是真樣本逃贝,網(wǎng)絡(luò)輸出就接近1,輸入的是假樣本迫摔,網(wǎng)絡(luò)輸出接近0沐扳。

生成網(wǎng)絡(luò)的目的:生成網(wǎng)絡(luò)是造樣本的,它的目的就是使得自己造樣本的能力盡可能強句占,強到什么程度呢沪摄,你判別網(wǎng)絡(luò)沒法判斷我是真樣本還是假樣本。

有了這個理解我們再來看看為什么叫做對抗網(wǎng)絡(luò)了纱烘。判別網(wǎng)絡(luò)說卓起,我很強,來一個樣本我就知道它是來自真樣本集還是假樣本集凹炸。生成網(wǎng)絡(luò)就不服了戏阅,說我也很強,我生成一個假樣本啤它,雖然我生成網(wǎng)絡(luò)知道是假的奕筐,但是你判別網(wǎng)絡(luò)不知道呀,我包裝的非常逼真变骡,以至于判別網(wǎng)絡(luò)無法判斷真假离赫,那么用輸出數(shù)值來解釋就是,生成網(wǎng)絡(luò)生成的假樣本進(jìn)去了判別網(wǎng)絡(luò)以后塌碌,判別網(wǎng)絡(luò)給出的結(jié)果是一個接近0.5的值渊胸,極限情況就是0.5。

說到這里台妆,我想對GAN有一個淺層的印象了翎猛,下面我們一起談?wù)撘恍┘?xì)節(jié)。我們的生成模型容易理解(先暫且不談它的訓(xùn)練過程)接剩,但是我們的判別模型如何進(jìn)行判別是剛剛沒有談?wù)摰降膯栴}切厘,由于判別模型是一個分類器(有監(jiān)督學(xué)習(xí)),我們對其進(jìn)行訓(xùn)練需要把輸入樣本的標(biāo)簽告訴它懊缺,它包含的輸入包括了真實圖像和生成模型生成的假圖像疫稿,所以我們生成模型生成出來的圖像標(biāo)簽應(yīng)該為0(假圖像),真實樣本輸入的標(biāo)簽應(yīng)該為1(真圖像),在不斷學(xué)習(xí)的過程中遗座,如果生成模型真的把真實樣本的本質(zhì)分布學(xué)會了舀凛,那么判別模型對樣本就會出現(xiàn)誤判(或出現(xiàn)均衡)的情況。

下圖是GAN的一個簡單訓(xùn)練過程示意圖

image

需要注意的是生成模型與對抗模型可以說是完全獨立的兩個模型途蒋,好比就是完全獨立的兩個神經(jīng)網(wǎng)絡(luò)模型腾降,他們之間沒有什么聯(lián)系。

好了那么訓(xùn)練這樣的兩個模型的大方法就是:單獨交替迭代訓(xùn)練碎绎。

什么意思?因為是2個網(wǎng)絡(luò)抗果,不好一起訓(xùn)練筋帖,所以才去交替迭代訓(xùn)練,我們一一來看冤馏。

判別模型訓(xùn)練

假設(shè)現(xiàn)在生成網(wǎng)絡(luò)模型已經(jīng)有了(當(dāng)然可能不是最好的生成網(wǎng)絡(luò))日麸,那么給一堆隨機數(shù)組(噪聲),就會得到一堆假的樣本集(因為不是最終的生成模型逮光,那么現(xiàn)在生成網(wǎng)絡(luò)可能就處于劣勢代箭,導(dǎo)致生成的樣本就不咋地,可能很容易就被判別網(wǎng)絡(luò)判別出來了說這貨是假冒的)涕刚,但是先不管這個嗡综,假設(shè)我們現(xiàn)在有了這樣的假樣本集,真樣本集一直都有杜漠,現(xiàn)在我們?nèi)藶榈亩x真假樣本集的標(biāo)簽极景,因為我們希望真樣本集的輸出盡可能為1,假樣本集為0驾茴,很明顯這里我們就已經(jīng)默認(rèn)真樣本集所有的類標(biāo)簽都為1盼樟,而假樣本集的所有類標(biāo)簽都為0。 我們現(xiàn)在有了真樣本集以及它們的label(都是1)锈至、假樣本集以及它們的label(都是0)晨缴,這樣單就判別網(wǎng)絡(luò)來說,此時問題就變成了一個再簡單不過的有監(jiān)督的二分類問題了峡捡,直接送到神經(jīng)網(wǎng)絡(luò)模型中訓(xùn)練就完事了击碗。

生成模型訓(xùn)練

對于生成網(wǎng)絡(luò),想想我們的目的们拙,是生成盡可能逼真的樣本延都。那么原始的生成網(wǎng)絡(luò)生成的樣本你怎么知道它真不真呢?就是送到判別網(wǎng)絡(luò)中睛竣,所以在訓(xùn)練生成網(wǎng)絡(luò)的時候晰房,我們需要聯(lián)合判別網(wǎng)絡(luò)一起才能達(dá)到訓(xùn)練的目的。什么意思?就是如果我們單單只用生成網(wǎng)絡(luò)殊者,那么想想我們怎么去訓(xùn)練与境?誤差來源在哪里?細(xì)想一下猖吴,其實如果我們把剛才的判別網(wǎng)絡(luò)串接在生成網(wǎng)絡(luò)的后面摔刁,這樣我們就知道真假了,也就有了誤差了海蔽。所以對于生成網(wǎng)絡(luò)的訓(xùn)練其實是對生成-判別網(wǎng)絡(luò)串接的訓(xùn)練共屈,就像圖中顯示的那樣。好了那么現(xiàn)在來分析一下樣本党窜,原始的噪聲數(shù)組Z我們有拗引,也就是生成了假樣本我們有,此時很關(guān)鍵的一點來了幌衣,我們要把這些假樣本的標(biāo)簽都設(shè)置為1(注意矾削,這里不是對判別模型的訓(xùn)練,而是對生成模型的訓(xùn)練)豁护,也就是認(rèn)為這些假樣本在生成網(wǎng)絡(luò)訓(xùn)練的時候是真樣本哼凯。那么為什么要這樣呢?我們想想楚里,是不是這樣才能起到迷惑判別器的目的断部,也才能使得生成的假樣本逐漸逼近為正樣本。
好了班缎,重新順一下思路家坎,現(xiàn)在對于生成網(wǎng)絡(luò)的訓(xùn)練,我們有了樣本集(只有假樣本集吝梅,沒有真樣本集)虱疏,有了對應(yīng)的label(全為1),是不是就可以訓(xùn)練了苏携?有人會問做瞪,這樣只有一類樣本,訓(xùn)練啥呀右冻?誰說一類樣本就不能訓(xùn)練了装蓬?只要有誤差就行。還有人說纱扭,你這樣一訓(xùn)練牍帚,判別網(wǎng)絡(luò)的網(wǎng)絡(luò)參數(shù)不是也跟著變嗎?沒錯乳蛾,這很關(guān)鍵暗赶,所以在訓(xùn)練這個串接的網(wǎng)絡(luò)的時候鄙币,一個很重要的操作就是不要判別網(wǎng)絡(luò)的參數(shù)發(fā)生變化,也就是不讓它參數(shù)發(fā)生更新蹂随,只是把誤差一直傳十嘿,傳到生成網(wǎng)絡(luò)那塊后更新生成網(wǎng)絡(luò)的參數(shù)。這樣就完成了生成網(wǎng)絡(luò)的訓(xùn)練了岳锁。

在完成生成網(wǎng)絡(luò)訓(xùn)練好绩衷,那么我們是不是可以根據(jù)目前新的生成網(wǎng)絡(luò)再對先前的那些噪聲Z生成新的假樣本了,沒錯激率,并且訓(xùn)練后的假樣本應(yīng)該是更真了才對咳燕。然后又有了新的真假樣本集(其實是新的假樣本集),這樣又可以重復(fù)上述過程了乒躺。我們把這個過程稱作為單獨交替訓(xùn)練招盲。我們可以實現(xiàn)定義一個迭代次數(shù),交替迭代到一定次數(shù)后停止即可聪蘸。這個時候我們再去看一看噪聲Z生成的假樣本會發(fā)現(xiàn),原來它已經(jīng)很真了表制。

看完了這個過程感覺到 GAN 的設(shè)計真的很巧妙健爬,最值得稱贊的地方可能在于這種假樣本在訓(xùn)練過程中的真假變換,這也是博弈得以進(jìn)行的關(guān)鍵之處么介。

在最后放上GAN的求解公式娜遵,二元極小極大博弈(minimax two-player game)”問題:

CGAN(Conditional Generative Adversarial Networks)

在上述簡要敘述的 GAN 中,想必已經(jīng)清楚了生成對抗網(wǎng)絡(luò)的基本運作原理壤短。與其他生成式模型相比设拟,GAN這種競爭的方式不再要求一個假設(shè)的數(shù)據(jù)分布,即不需要假定一個 p(x)久脯,而是使用一種分布直接進(jìn)行采樣 sampling纳胧,從而真正達(dá)到理論上可以完全逼近真實數(shù)據(jù),這也是 GAN 最大的優(yōu)勢帘撰。然而跑慕,這種不需要預(yù)先建模的方法缺點是太過自由了,對于較大的圖片摧找,較多的 pixel 的情形核行,基于簡單 GAN 的方式就不太可控了。為了解決 GAN 太過自由這個問題蹬耘,一個很自然的想法是給 GAN 加一些約束芝雪,于是便有了 CGAN。這項工作提出了一種帶條件約束的 GAN综苔,在生成模型(D)和判別模型(G)的建模中均引入條件變量 y(conditional variable y)惩系,使用額外信息 y 對模型增加條件位岔,可以指導(dǎo)數(shù)據(jù)生成過程。

條件生成式對抗網(wǎng)絡(luò)(CGAN)是對原始 GAN 的一個擴展蛆挫,生成器和判別器都增加額外信息 y 為條件, y 可以是任意信息,例如類別信息赃承,或者其他模態(tài)的數(shù)據(jù)。通過將額外信息 y 輸送給判別模型和生成模型,作為輸入層的一部分,從而實現(xiàn)條件 GAN悴侵。在生成模型中瞧剖,先驗輸入噪聲 p(z) 和條件信息y聯(lián)合組成了聯(lián)合隱層表征。對抗訓(xùn)練框架在隱層表征的組成方式方面相當(dāng)?shù)仂`活可免。

類似地抓于,條件GAN的目標(biāo)函數(shù)是帶有條件概率的二人極小極大值博弈(two-player minimax game ):

仔細(xì)看第二個式子,和 INN 的逆向傳播過程很像浇借。

INN

上面部分就是 GAN 的簡單原理和訓(xùn)練流程捉撮,那么它和 INN 的關(guān)系是什么樣的呢?論文《ANALYZING INVERSE PROBLEMS WITH INVERTIBLE NEURAL NETWORKS》中提到:

We are the first to recognize and exploit the potential of Invertible Neural Networks (INNs) as conditional generative models.

它們同樣是生成模型(在 INN 逆過程中)妇垢,不過 INN 是一種以 y 為條件的巾遭,z 為噪聲的條件生成模型,這與 CGAN 很類似闯估。

論文中還有一段話:

To counteract the inherent information loss of the forward process, we introduce additional latent output variables z, which are trained to capture the information about x that is not contained in y. Thus, our INN maps pairs [y, z] of measurements and latent variables back to unique hidden parameter values x. In addition, we train the network to shape the density p(z) of the latent variables according to a Gaussian distribution. In other words, the posterior p(x|y) is reparametrized into a deterministic function x = g(y, z) that transforms the known distribution p(z) to x-space, conditional on y. In practice, we fix y at an actual measurement and sample z repeatedly from p(z), so that the the corresponding inverses form a sample of the desired posterior p(x|y).

看最后兩句話灼舍,我們可以理解,當(dāng)我們的 p(z) 被訓(xùn)練完成后涨薪,這時候我們的生成模型 G 會在滿足 p(z) 分布的潛在變量 z 中不斷取出不同的值骑素,這里可以理解為 GAN 的噪聲(GAN 的噪聲同樣需要滿足一定分布規(guī)律),然后以y為生成條件刚夺,得到計算出的 x*(x是樣本)献丑, 再使 x 和 x * 協(xié)同進(jìn)行訓(xùn)練。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末侠姑,一起剝皮案震驚了整個濱河市创橄,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌莽红,老刑警劉巖筐摘,帶你破解...
    沈念sama閱讀 222,000評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異船老,居然都是意外死亡咖熟,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,745評論 3 399
  • 文/潘曉璐 我一進(jìn)店門柳畔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來馍管,“玉大人,你說我怎么就攤上這事薪韩∪贩校” “怎么了捌锭?”我有些...
    開封第一講書人閱讀 168,561評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長罗捎。 經(jīng)常有香客問我观谦,道長,這世上最難降的妖魔是什么桨菜? 我笑而不...
    開封第一講書人閱讀 59,782評論 1 298
  • 正文 為了忘掉前任豁状,我火速辦了婚禮,結(jié)果婚禮上倒得,老公的妹妹穿的比我還像新娘泻红。我一直安慰自己,他們只是感情好霞掺,可當(dāng)我...
    茶點故事閱讀 68,798評論 6 397
  • 文/花漫 我一把揭開白布谊路。 她就那樣靜靜地躺著,像睡著了一般菩彬。 火紅的嫁衣襯著肌膚如雪缠劝。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,394評論 1 310
  • 那天骗灶,我揣著相機與錄音惨恭,去河邊找鬼。 笑死矿卑,一個胖子當(dāng)著我的面吹牛喉恋,可吹牛的內(nèi)容都是我干的沃饶。 我是一名探鬼主播母廷,決...
    沈念sama閱讀 40,952評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼糊肤!你這毒婦竟也來了琴昆?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,852評論 0 276
  • 序言:老撾萬榮一對情侶失蹤馆揉,失蹤者是張志新(化名)和其女友劉穎业舍,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體升酣,經(jīng)...
    沈念sama閱讀 46,409評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡舷暮,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,483評論 3 341
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了噩茄。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片下面。...
    茶點故事閱讀 40,615評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖绩聘,靈堂內(nèi)的尸體忽然破棺而出沥割,到底是詐尸還是另有隱情耗啦,我是刑警寧澤,帶...
    沈念sama閱讀 36,303評論 5 350
  • 正文 年R本政府宣布机杜,位于F島的核電站帜讲,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏椒拗。R本人自食惡果不足惜似将,卻給世界環(huán)境...
    茶點故事閱讀 41,979評論 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望陡叠。 院中可真熱鬧玩郊,春花似錦、人聲如沸枉阵。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,470評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽兴溜。三九已至侦厚,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間拙徽,已是汗流浹背刨沦。 一陣腳步聲響...
    開封第一講書人閱讀 33,571評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留膘怕,地道東北人想诅。 一個月前我還...
    沈念sama閱讀 49,041評論 3 377
  • 正文 我出身青樓,卻偏偏與公主長得像岛心,于是被迫代替她去往敵國和親来破。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,630評論 2 359

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

  • 摘要:在深度學(xué)習(xí)之前已經(jīng)有很多生成模型送朱,但苦于生成模型難以描述難以建模,科研人員遇到了很多挑戰(zhàn)干旁,而深度學(xué)習(xí)的出現(xiàn)幫...
    肆虐的悲傷閱讀 11,302評論 1 21
  • 在GAN的相關(guān)研究如火如荼甚至可以說是泛濫的今天驶沼,一篇新鮮出爐的arXiv論文《Wasserstein GAN》卻...
    MiracleJQ閱讀 2,242評論 0 8
  • 2019-2-25回怜。蘇州 晴 改變自己的過程其實就是經(jīng)歷失敗之后一次思維格局的蛻變升華過程,從中思考失敗的經(jīng)驗祭阀,有...
    飛鴻小殊閱讀 311評論 0 0
  • 每天無聊的活著 起床鹉戚,吃飯鲜戒,拿起手機 窗外的樹搖曳著它的葉子 嫩綠,淺綠抹凳,深綠 時而想起以前讀過的詩 菊花遏餐,茉莉,...
    Todalavida閱讀 275評論 0 0
  • 一位年輕的女士坐在咖啡店外赢底,一只手拿煙失都,微笑著,饒有興趣地看著一個五歲左右的小女孩在玩幸冻。我無法判定這個孩子和她的關(guān)...
    陳錦輝閱讀 476評論 0 0