Generative Adversarial Networks(Section 4)

4 建議和技巧

實(shí)踐者們會(huì)使用一些提升 GANs 性能的技巧。我們很難去判斷這些技巧會(huì)發(fā)揮什么樣的作用了;很多技巧會(huì)在一些環(huán)境中有幫助但在另外一些環(huán)境中卻又起到反作用。

NIPS 2016 同樣包含一個(gè)關(guān)于對(duì)抗訓(xùn)練的 workshop,由 Soumith Chintala 給了稱為“How to train a GAN”的邀請報(bào)告。這個(gè)報(bào)告和本文部分內(nèi)容的目標(biāo)類似,不過兩者內(nèi)容選擇上有一定差異。想要了解本課程中沒有的建議和技巧,請參考 GitHub 相關(guān)項(xiàng)目:https://github.com/soumith/ganhacks

4.1 帶標(biāo)簽訓(xùn)練

以任意方式使用標(biāo)簽,形狀或者形式總會(huì)給模型生成樣本的主觀判斷的質(zhì)量帶來顯著提升。這個(gè)首先由 Denton et al. (2015) 發(fā)現(xiàn),他構(gòu)建了一個(gè) class-conditional GANs 相比自由生成任意類別的 GANs 能夠生成更加好的樣本。后來,Salimans et al. (2016) 發(fā)現(xiàn)即使生成器沒有顯式地利用類別信息也能讓樣本質(zhì)量有所提升;訓(xùn)練這個(gè)判別器來識(shí)別真實(shí)對(duì)象的特定類別就足夠了。

當(dāng)然對(duì)這個(gè)技巧工作原理大家還不是完全清楚??赡苁穷悇e信息的引入給于訓(xùn)練過程有用的線索可以幫助優(yōu)化。同時(shí)也可能是該技巧在樣本質(zhì)量上沒有客觀的提升,但是產(chǎn)生了一些樣本在人類視覺系統(tǒng)關(guān)注的性質(zhì)上的偏差。如果是后面這個(gè)情況,那么這個(gè)技巧并不會(huì)帶來更好的數(shù)據(jù)產(chǎn)生分布模型,但是仍然對(duì)創(chuàng)造人類觀眾更享受的媒體有幫助,也可能幫助 RL 智能體執(zhí)行依賴對(duì)環(huán)境的跟人類更相關(guān)的某些方面的知識(shí)的任務(wù)。

我們在比較不同結(jié)果時(shí)確保所有的情況都是在用這個(gè)技巧下進(jìn)行的是非常重要的,利用標(biāo)簽訓(xùn)練的模型必須和同樣使用標(biāo)簽訓(xùn)練的其他模型一起比較,class-conditional 模型也是要和其他 class-conditional 模型放在一起比較。否則就是不公平和沒意思的 benchmark,因?yàn)檫@就像在圖像任務(wù)上用一個(gè)卷積模型通常會(huì)超過非卷積模型一樣。

4.2 單邊標(biāo)簽平滑

GANs 在判別器估計(jì)兩個(gè)密度的比例時(shí)工作,但是深度神經(jīng)網(wǎng)絡(luò)更易會(huì)產(chǎn)生高置信度的輸出,輸出的是正確的類別但是太極端的概率。這情況尤其在輸入是對(duì)抗構(gòu)造出來的時(shí)候格外常見;分類器傾向于線性 推斷 extrapolate 并產(chǎn)生置信度特別高的預(yù)測(Goodfellow et al., 2014a)。

為了鼓勵(lì)判別器估計(jì)出軟一些的概率,我們可以采取一種稱為單邊標(biāo)簽平滑(Salimans et al., 2016)。

通常我們使用(8)公式來訓(xùn)練判別器。我們可以將其用 TensorFlow (Abadi et al., 2015)代碼寫出來:

d_on_data = discriminator_logits(data_minibatch)
d_on_samples = discriminator_logits(samples_minibatch)
loss = tf.nn.sigmoid_cross_entropy_with_logits(d_on_data, 1.) + tf.nn.sigmoid_cross_entropy_with_logits(d_on_samples, 0.)

單邊標(biāo)簽平滑的想法是將真實(shí)樣本的目標(biāo)用一個(gè)稍微小于 1 的值代替,比如說 .9:

loss = tf.nn.sigmoid_cross_entropy_with_logits(d_on_data, .9) + \ tf.nn.sigmoid_cross_entropy_with_logits(d_on_samples, 0.)

這樣會(huì)防止判別器的極端推斷行為;如果它學(xué)會(huì)預(yù)測特別大的 logits 對(duì)應(yīng)于一個(gè)達(dá)到 1 的概率,這樣的方式能進(jìn)行懲罰并鼓勵(lì)將 logits 拉回到稍小的值。

不過對(duì)偽造樣本的標(biāo)簽不需要平滑。假設(shè)我們對(duì)真實(shí)數(shù)據(jù)用一個(gè) 1-α 目標(biāo)函數(shù)而偽造數(shù)據(jù)是 0+β 。那么最優(yōu)的判別器函數(shù)就是

當(dāng) β 為 0 時(shí),按照 α 去平滑并不會(huì)有什么影響,同時(shí)還降低了判別器的最優(yōu)值的尺度。當(dāng) β 非 0 時(shí),最優(yōu)判別器函數(shù)的形狀會(huì)變化。特別在 pdata(x) 非常小且 pmodel(x) 大一些的時(shí)候,D*(x) 會(huì)在 pmodel(x) 的偽造眾數(shù)處有一個(gè)峰值。判別器將會(huì)在生成器中強(qiáng)化不正確的行為;生成器將會(huì)被訓(xùn)練成或者產(chǎn)生樣本類似數(shù)據(jù)或者產(chǎn)生和其產(chǎn)生過的樣本類似的樣本。

單邊標(biāo)簽平滑是一個(gè)更早的平滑標(biāo)簽技術(shù)的簡單變化,可以追溯到 1980 年代。Szegedy et al. 2015 展示了標(biāo)簽平滑是一個(gè)在用于對(duì)象識(shí)別的卷積網(wǎng)絡(luò)很好的正則化子 regularizer。這樣的原因是它不會(huì)鼓勵(lì)模型在訓(xùn)練集上選擇不正確的類別,而僅會(huì)降低在正確類別的置信度。其他的正則化子如權(quán)重下降如果參數(shù)設(shè)置得過高通常會(huì)導(dǎo)致一些誤分類的情況出現(xiàn)。Warde-Farley 和 Goodfellow (2016)揭示了標(biāo)簽平滑可以幫助降低對(duì)抗樣本的影響,這表明標(biāo)簽平滑應(yīng)該能幫助判別器更加有效地學(xué)會(huì)抵擋生成器的“進(jìn)攻”。

圖 21

4.3 虛擬批規(guī)范化 Virtual batch Normalisation

因?yàn)?DCGAN 的引入,大多數(shù) GAN 架構(gòu)包含了某種形式的 BN。BN 的主要作用是提升模型的優(yōu)化,通過重參數(shù)化模型使得每個(gè)特征的均值和方差由和那個(gè)特征關(guān)聯(lián)的單個(gè)均值參數(shù)和單個(gè)方差參數(shù)控制,而不是有一個(gè)復(fù)雜的由所有抽取特征的層的所有權(quán)重來確定。這個(gè)重參數(shù)化通過在一個(gè) minibatch 上減去那個(gè)特征的均值并除上其標(biāo)準(zhǔn)差實(shí)現(xiàn)。規(guī)范化操作其實(shí)是模型的一部分,所有反向傳播計(jì)算那些被定義為總是被規(guī)范化的特征的梯度。用這個(gè)方法,如果沒有將規(guī)范化作為模型的一部分定義的話,特征頻繁重規(guī)范化會(huì)降低效率。

BN 是很有用的,但是對(duì) GANs 其實(shí)有一些不好的副作用。使用數(shù)據(jù)的不同的 minibatch 在每個(gè)訓(xùn)練步中計(jì)算規(guī)范化統(tǒng)計(jì)量會(huì)產(chǎn)生這些規(guī)范化常量的波動(dòng)。當(dāng) minibatch 很小時(shí)(通常在嘗試用有限的 GPU 內(nèi)存來擬合大生成式模型的時(shí)候)這些波動(dòng)會(huì)變得過大使得能夠?qū)ι傻膱D像產(chǎn)生比輸入 z 更大影響。參考圖 21。

Salimans et al., (2016) 引入了技術(shù)來減輕這個(gè)問題。引用BN(Reference Batch Normalisation)運(yùn)行網(wǎng)絡(luò)兩次:第一次在一個(gè)在訓(xùn)練開始時(shí)采樣且不會(huì)被替換的 reference examples 的 minibatch 上,還有一個(gè)在當(dāng)前要用來訓(xùn)練的 minibatch 上。每個(gè)特征的均值和標(biāo)準(zhǔn)差使用引用batch進(jìn)行計(jì)算。每個(gè) batch 的特征然后使用這些計(jì)算得到的統(tǒng)計(jì)量進(jìn)行規(guī)范化。引用 BN 的缺點(diǎn)就是這個(gè)模型會(huì)對(duì)這個(gè)引用 batch 過匹配。為了稍微降低這個(gè)問題的影響,大家可以使用 virtual batch Normalisation,其中對(duì)每個(gè)樣本的規(guī)范化統(tǒng)計(jì)量使用那個(gè)樣本和引用 batch 的并集來計(jì)算。引用BN 和虛擬BN 獨(dú)立處理,由生成器產(chǎn)生所有樣本都是獨(dú)立同分布的(除了那些定義了引用batch)。

4.4 我們能夠保持 G 和 D 的平衡么?

很多人有一種直覺就是很有必要來平衡這兩個(gè)參與人使得一方不要過強(qiáng)。如果這樣的平衡是值得的并且易解,那么還沒有一種有說服力的形式出現(xiàn)。

作者本人現(xiàn)在的相信 GANs 通過估計(jì)數(shù)據(jù)密度和模型密度的比例工作。這個(gè)比例僅會(huì)在判別器最優(yōu)的時(shí)候被正確估計(jì),所以對(duì)判別器來說超過生成器其實(shí)是很好的。

有時(shí)候生成器的梯度會(huì)在判別器太準(zhǔn)確的時(shí)候消失。解決這個(gè)問題的正確方式是不去限制判別器的力量,但是可以使用參數(shù)化博弈使得梯度不會(huì)消失(參見 3.2.3 節(jié))

有時(shí)候如果判別器置信度太高時(shí)生成器的梯度過大。與其讓判別器準(zhǔn)確度降低,更好的方式是使用單邊標(biāo)簽平滑(4.2節(jié))。

判別器應(yīng)該總是最優(yōu)來最好地估計(jì)比例意味著生成器訓(xùn)練每步則以 k > 1 步驟來訓(xùn)練判別器。實(shí)踐中這種方式不一定有明顯提升。

我們同樣還能夠通過選擇模型大小來平衡生成器和判別器。實(shí)踐中,判別器通常會(huì)更深,有時(shí)候有更多的過濾器。這個(gè)可能是因?yàn)閷?duì)判別器來說正確估計(jì)兩個(gè)密度之間的比值更加重要,但是也可能是眾數(shù)坍縮問題——因?yàn)樯善髟诂F(xiàn)在的訓(xùn)練方法下不能使出所有能力,實(shí)踐者們也沒看到提升生成器容量得到的好處。如果眾數(shù)坍縮問題可以被解決,生成器的大小會(huì)增大。我們也不知道判別器的大小是否會(huì)按照比例同樣增長。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,362評(píng)論 6 544
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,577評(píng)論 3 429
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,486評(píng)論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,852評(píng)論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 72,600評(píng)論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,944評(píng)論 1 328
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,944評(píng)論 3 447
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 43,108評(píng)論 0 290
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,652評(píng)論 1 336
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 41,385評(píng)論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 43,616評(píng)論 1 374
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,111評(píng)論 5 364
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,798評(píng)論 3 350
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,205評(píng)論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,537評(píng)論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 52,334評(píng)論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 48,570評(píng)論 2 379

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