本文大約 5000 字壕曼,閱讀大約需要 10 分鐘
這是 GAN 學(xué)習(xí)系列的第二篇文章琳拨,這篇文章將開始介紹 GAN 的起源之作月褥,鼻祖弛随,也就是 Ian Goodfellow 在 2014 年發(fā)表在 ICLR 的論文--Generative Adversarial Networks”,當(dāng)然由于數(shù)學(xué)功底有限宁赤,所以會(huì)簡(jiǎn)單介紹用到的數(shù)學(xué)公式和背后的基本原理舀透,并介紹相應(yīng)的優(yōu)缺點(diǎn)。
基本原理
在[GAN學(xué)習(xí)系列] 初識(shí)GAN中决左,介紹了 GAN 背后的基本思想就是兩個(gè)網(wǎng)絡(luò)彼此博弈盐杂。生成器 G 的目標(biāo)是可以學(xué)習(xí)到輸入數(shù)據(jù)的分布從而生成非常真實(shí)的圖片,而判別器 D 的目標(biāo)是可以正確辨別出真實(shí)圖片和 G 生成的圖片之間的差異哆窿。正如下圖所示:
image
上圖給出了生成對(duì)抗網(wǎng)絡(luò)的一個(gè)整體結(jié)構(gòu),生成器 G 和判別器 D 都是有各自的網(wǎng)絡(luò)結(jié)構(gòu)和不同的輸入厉斟,其中 G 的輸出挚躯,即生成的樣本也是 D 的輸入之一,而 D 則會(huì)為 G 提供梯度進(jìn)行權(quán)重的更新擦秽。
那么問(wèn)題來(lái)了码荔,如果 D 是一個(gè)非常好的分類器,那么我們是否真的可以生成非常逼真的樣本來(lái)欺騙它呢感挥?
對(duì)抗樣本
在正式介紹 GAN 的原理之前缩搅,先介紹一個(gè)概念--對(duì)抗樣本(adversarial example),它是指經(jīng)過(guò)精心計(jì)算得到的用于誤導(dǎo)分類器的樣本触幼。例如下圖就是一個(gè)例子硼瓣,左邊是一個(gè)熊貓,但是添加了少量隨機(jī)噪聲變成右圖后,分類器給出的預(yù)測(cè)類別卻是長(zhǎng)臂猿堂鲤,但視覺(jué)上左右兩幅圖片并沒(méi)有太大改變亿傅。
image
所以為什么在簡(jiǎn)單添加了噪聲后會(huì)誤導(dǎo)分類器呢?
這是因?yàn)?b>圖像分類器本質(zhì)上是高維空間的一個(gè)復(fù)雜的決策邊界瘟栖。當(dāng)然涉及到圖像分類的時(shí)候葵擎,由于是高維空間而不是簡(jiǎn)單的兩維或者三維空間,我們無(wú)法畫出這個(gè)邊界出來(lái)半哟。但是我們可以肯定的是酬滤,訓(xùn)練完成后,分類器是無(wú)法泛化到所有數(shù)據(jù)上寓涨,除非我們的訓(xùn)練集包含了分類類別的所有數(shù)據(jù)盯串,但實(shí)際上我們做不到。而做不到泛化到所有數(shù)據(jù)的分類器缅茉,其實(shí)就會(huì)過(guò)擬合訓(xùn)練集的數(shù)據(jù)嘴脾,這也就是我們可以利用的一點(diǎn)。
我們可以給圖片添加一個(gè)非常接近于 0 的隨機(jī)噪聲蔬墩,這可以通過(guò)控制噪聲的 L2 范數(shù)來(lái)實(shí)現(xiàn)译打。L2 范數(shù)可以看做是一個(gè)向量的長(zhǎng)度,這里有個(gè)訣竅就是圖片的像素越多拇颅,即圖片尺寸越大奏司,其平均 L2 范數(shù)也就越大。因此樟插,當(dāng)添加的噪聲的范數(shù)足夠低韵洋,那么視覺(jué)上你不會(huì)覺(jué)得這張圖片有什么不同,正如上述右邊的圖片一樣黄锤,看起來(lái)依然和左邊原始圖片一模一樣搪缨;但是,在向量空間上鸵熟,添加噪聲后的圖片和原始圖片已經(jīng)有很大的距離了副编!
為什么會(huì)這樣呢?
因?yàn)樵?L2 范數(shù)看來(lái)流强,對(duì)于熊貓和長(zhǎng)臂猿的決策邊界并沒(méi)有那么遠(yuǎn)痹届,添加了非常微弱的隨機(jī)噪聲的圖片可能就遠(yuǎn)離了熊貓的決策邊界內(nèi),到達(dá)長(zhǎng)臂猿的預(yù)測(cè)范圍內(nèi)打月,因此欺騙了分類器队腐。
除了這種簡(jiǎn)單的添加隨機(jī)噪聲,還可以通過(guò)圖像變形的方式奏篙,使得新圖像和原始圖像視覺(jué)上一樣的情況下柴淘,讓分類器得到有很高置信度的錯(cuò)誤分類結(jié)果。這種過(guò)程也被稱為對(duì)抗攻擊(adversarial attack),這種生成方式的簡(jiǎn)單性也是給 GAN 提供了解釋悠就。
生成器和判別器
現(xiàn)在如果將上述說(shuō)的分類器設(shè)定為二值分類器千绪,即判斷真和假,那么根據(jù) Ian Goodfellow 的原始論文的說(shuō)法梗脾,它就是判別器(Discriminator)荸型。
有了判別器,那還需要有生成假樣本來(lái)欺騙判別器的網(wǎng)絡(luò)炸茧,也就是生成器 (Generator)瑞妇。這兩個(gè)網(wǎng)絡(luò)結(jié)合起來(lái)就是生成對(duì)抗網(wǎng)絡(luò)(GAN),根據(jù)原始論文梭冠,它的目標(biāo)如下:
image
兩個(gè)網(wǎng)絡(luò)的工作原理可以如下圖所示辕狰,D 的目標(biāo)就是判別真實(shí)圖片和 G 生成的圖片的真假,而 G 是輸入一個(gè)隨機(jī)噪聲來(lái)生成圖片控漠,并努力欺騙 D 蔓倍。
image
簡(jiǎn)單來(lái)說(shuō),GAN 的基本思想就是一個(gè)最小最大定理盐捷,當(dāng)兩個(gè)玩家(D 和 G)彼此競(jìng)爭(zhēng)時(shí)(零和博弈)偶翅,雙方都假設(shè)對(duì)方采取最優(yōu)的步驟而自己也以最優(yōu)的策略應(yīng)對(duì)(最小最大策略),那么結(jié)果就已經(jīng)預(yù)先確定了碉渡,玩家無(wú)法改變它(納什均衡)聚谁。
因此,它們的損失函數(shù)滞诺,D 的是
image
G 的是
image
這里根據(jù)它們的損失函數(shù)分析下形导,G 網(wǎng)絡(luò)的訓(xùn)練目標(biāo)就是讓D(G(z)) 趨近于 1,這也是讓其 loss 變小的做法习霹;而 D 網(wǎng)絡(luò)的訓(xùn)練目標(biāo)是區(qū)分真假數(shù)據(jù)朵耕,自然是讓 D(x) 趨近于 1,而 D(G(z)) 趨近于 0淋叶。這就是兩個(gè)網(wǎng)絡(luò)相互對(duì)抗憔披,彼此博弈的過(guò)程了。
那么爸吮,它們相互對(duì)抗的效果是怎樣的呢?在論文中 Ian Goodfellow 用下圖來(lái)描述這個(gè)過(guò)程:
image
上圖中望门,黑色曲線表示輸入數(shù)據(jù) x 的實(shí)際分布形娇,綠色曲線表示的是 G 網(wǎng)絡(luò)生成數(shù)據(jù)的分布,我們的目標(biāo)自然是希望著兩條曲線可以相互重合筹误,也就是兩個(gè)數(shù)據(jù)分布一致了桐早。而藍(lán)色的曲線表示的是生成數(shù)據(jù)對(duì)應(yīng)于 D 的分布。
在 a 圖中是剛開始訓(xùn)練的時(shí)候,D 的分類能力還不是最好哄酝,因此有所波動(dòng)友存,而生成數(shù)據(jù)的分布也自然和真實(shí)數(shù)據(jù)分布不同,畢竟 G 網(wǎng)絡(luò)輸入是隨機(jī)生成的噪聲陶衅;到了 b 圖的時(shí)候屡立,D 網(wǎng)絡(luò)的分類能力就比較好了,可以看到對(duì)于真實(shí)數(shù)據(jù)和生成數(shù)據(jù)搀军,它是明顯可以區(qū)分出來(lái)膨俐,也就是給出的概率是不同的;
而綠色的曲線罩句,即 G 網(wǎng)絡(luò)的目標(biāo)是學(xué)習(xí)真實(shí)數(shù)據(jù)的分布焚刺,所以它會(huì)往藍(lán)色曲線方向移動(dòng),也就是 c 圖了门烂,并且因?yàn)?G 和 D 是相互對(duì)抗的乳愉,當(dāng) G 網(wǎng)絡(luò)提升,也會(huì)影響 D 網(wǎng)絡(luò)的分辨能力屯远。論文中蔓姚,Ian Goodfellow 做出了證明,當(dāng)假設(shè) G 網(wǎng)絡(luò)不變氓润,訓(xùn)練 D 網(wǎng)絡(luò)赂乐,最優(yōu)的情況會(huì)是:
image
也就是當(dāng)生成數(shù)據(jù)的分布
趨近于真實(shí)數(shù)據(jù)分布
的時(shí)候,D 網(wǎng)絡(luò)輸出的概率
會(huì)趨近于 0.5咖气,也就是 d 圖的結(jié)果挨措,這也是最終希望達(dá)到的訓(xùn)練結(jié)果,這時(shí)候 G 和 D 網(wǎng)絡(luò)也就達(dá)到一個(gè)平衡狀態(tài)崩溪。
訓(xùn)練策略和算法實(shí)現(xiàn)
論文給出的算法實(shí)現(xiàn)過(guò)程如下所示:
image
這里包含了一些訓(xùn)練的技巧和方法:
首先 G 和 D 是同步訓(xùn)練浅役,但兩者訓(xùn)練次數(shù)不一樣,通常是D 網(wǎng)絡(luò)訓(xùn)練 k 次后伶唯,G 訓(xùn)練一次觉既。主要原因是 GAN 剛開始訓(xùn)練時(shí)候會(huì)很不穩(wěn)定;
D 的訓(xùn)練是同時(shí)輸入真實(shí)數(shù)據(jù)和生成數(shù)據(jù)來(lái)計(jì)算 loss乳幸,而不是采用交叉熵(cross entropy)分開計(jì)算瞪讼。不采用 cross entropy 的原因是這會(huì)讓 D(G(z)) 變?yōu)?0,導(dǎo)致沒(méi)有梯度提供給 G 更新粹断,而現(xiàn)在 GAN 的做法是會(huì)收斂到 0.5符欠;
實(shí)際訓(xùn)練的時(shí)候,作者是采用
來(lái)代替
瓶埋,這是希望在訓(xùn)練初始就可以加大梯度信息希柿,這是因?yàn)槌跏茧A段 D 的分類能力會(huì)遠(yuǎn)大于 G 生成足夠真實(shí)數(shù)據(jù)的能力诊沪,但這種修改也將讓整個(gè) GAN 不再是一個(gè)完美的零和博弈。
分析
優(yōu)點(diǎn)
GAN 在巧妙設(shè)計(jì)了目標(biāo)函數(shù)后曾撤,它就擁有以下兩個(gè)優(yōu)點(diǎn)端姚。
首先,GAN 中的 G 作為生成模型挤悉,不需要像傳統(tǒng)圖模型一樣渐裸,需要一個(gè)嚴(yán)格的生成數(shù)據(jù)的表達(dá)式。這就避免了當(dāng)數(shù)據(jù)非常復(fù)雜的時(shí)候尖啡,復(fù)雜度過(guò)度增長(zhǎng)導(dǎo)致的不可計(jì)算橄仆。
其次,它也不需要 inference 模型中的一些龐大計(jì)算量的求和計(jì)算衅斩。它唯一的需要的就是盆顾,一個(gè)噪音輸入,一堆無(wú)標(biāo)準(zhǔn)的真實(shí)數(shù)據(jù)畏梆,兩個(gè)可以逼近函數(shù)的網(wǎng)絡(luò)您宪。
缺點(diǎn)
雖然 GAN 避免了傳統(tǒng)生成模型方法的缺陷,但是在它剛出來(lái)兩年后奠涌,在 2016 年才開始逐漸有非常多和 GAN 相關(guān)的論文發(fā)表宪巨,其原因自然是初代 GAN 的缺點(diǎn)也是非常難解決:
首當(dāng)其沖的缺點(diǎn)就是 GAN 過(guò)于自由導(dǎo)致訓(xùn)練難以收斂以及不穩(wěn)定;
其次溜畅,原始 G 的損失函數(shù)
沒(méi)有意義捏卓,它是讓G 最小化 D 識(shí)別出自己生成的假樣本的概率,但實(shí)際上它會(huì)導(dǎo)致梯度消失問(wèn)題慈格,這是由于開始訓(xùn)練的時(shí)候怠晴,G 生成的圖片非常糟糕,D 可以輕而易舉的識(shí)別出來(lái)浴捆,這樣 D 的訓(xùn)練沒(méi)有任何損失蒜田,也就沒(méi)有有效的梯度信息回傳給 G 去優(yōu)化它自己,這就是梯度消失了选泻;
最后冲粤,雖然作者意識(shí)到這個(gè)問(wèn)題,在實(shí)際應(yīng)用中改用
來(lái)代替页眯,這相當(dāng)于從最小化 D 揪出自己的概率梯捕,變成了最大化 D 抓不到自己的概率。雖然直觀上感覺(jué)是一致的窝撵,但其實(shí)并不在理論上等價(jià)科阎,也更沒(méi)有了理論保證在這樣的替代目標(biāo)函數(shù)訓(xùn)練下,GAN 還會(huì)達(dá)到平衡忿族。這個(gè)結(jié)果會(huì)導(dǎo)致模式奔潰問(wèn)題锣笨,其實(shí)也就是[GAN學(xué)習(xí)系列] 初識(shí)GAN中提到的兩個(gè)缺陷。
當(dāng)然道批,上述的問(wèn)題在最近兩年各種 GAN 變體中逐漸得到解決方法错英,比如對(duì)于訓(xùn)練太自由的,出現(xiàn)了 cGAN隆豹,即提供了一些條件信息給 G 網(wǎng)絡(luò)椭岩,比如類別標(biāo)簽等信息;對(duì)于 loss 問(wèn)題璃赡,也出現(xiàn)如 WGAN 等設(shè)計(jì)新的 loss 來(lái)解決這個(gè)問(wèn)題判哥。后續(xù)會(huì)繼續(xù)介紹不同的 GAN 的變體,它們?cè)诓煌矫娓倪M(jìn)原始 GAN 的問(wèn)題碉考,并且也應(yīng)用在多個(gè)方面塌计。
參考文章:
Goodfellow et al., “Generative Adversarial Networks”. ICLR 2014.
beginners-review-of-gan-architectures
深度 | 生成對(duì)抗網(wǎng)絡(luò)初學(xué)入門:一文讀懂GAN的基本原理(附資源)
配圖來(lái)自網(wǎng)絡(luò)和論文 Generative Adversarial Networks
以上就是本文的主要內(nèi)容和總結(jié),可以留言給出你對(duì)本文的建議和看法侯谁。
作者:材才才
鏈接:http://www.reibang.com/p/78855f151af8
來(lái)源:簡(jiǎn)書
簡(jiǎn)書著作權(quán)歸作者所有锌仅,任何形式的轉(zhuǎn)載都請(qǐng)聯(lián)系作者獲得授權(quán)并注明出處。