人工智能技術(shù)之GAN算法的應(yīng)用
(文章來(lái)源:人工智能網(wǎng))
我們知道機(jī)器學(xué)習(xí)模型有:生成模型和判別模型。判別模型需要輸入變量x,通過(guò)某種模型來(lái)預(yù)測(cè)p(y|x)。生成模型是給定某種隱含信息,來(lái)隨機(jī)產(chǎn)生觀測(cè)數(shù)據(jù)。不管何種模型,其損失函數(shù)(Loss Function)選擇,將影響到訓(xùn)練結(jié)果質(zhì)量,是機(jī)器學(xué)習(xí)模型設(shè)計(jì)的重要部分。對(duì)于判別模型,損失函數(shù)是容易定義的,因?yàn)檩敵龅哪繕?biāo)相對(duì)簡(jiǎn)單。但對(duì)于生成模型,損失函數(shù)卻是不容易定義的。
2014年GoodFellow等人發(fā)表了一篇論文“Goodfellow, Ian, et al. GeneraTIve adversarial nets." Advances inNeural InformaTIon Processing Systems. 2014”,引發(fā)了GAN生成式對(duì)抗網(wǎng)絡(luò)的研究,值得學(xué)習(xí)和探討。今天就跟大家探討一下GAN算法。
GAN生成式對(duì)抗網(wǎng)絡(luò)(GeneraTIve?Adversarial?Networks )是一種深度學(xué)習(xí)模型,是近年來(lái)復(fù)雜分布上無(wú)監(jiān)督學(xué)習(xí)最具有前景的方法之一。 GAN生成式對(duì)抗網(wǎng)絡(luò)的模型至少包括兩個(gè)模塊:G模型-生成模型(GeneraTIve Model)和D模型-判別模型(Discriminative Model)。兩者互相博弈學(xué)習(xí)產(chǎn)生相當(dāng)好的輸出結(jié)果。GAN 理論中,并不要求G、D模型都是神經(jīng)網(wǎng)絡(luò),只需要是能擬合相應(yīng)生成和判別的函數(shù)即可。但實(shí)際應(yīng)用中一般均使用深度神經(jīng)網(wǎng)絡(luò)作為G、D模型。
對(duì)于生成結(jié)果的期望,往往是一個(gè)難以數(shù)學(xué)公理化定義的范式。所以不妨把生成模型的回饋部分,交給判別模型處理。于是Goodfellow等人將機(jī)器學(xué)習(xí)中的兩類模型(G、D模型)緊密地聯(lián)合在了一起。一個(gè)優(yōu)秀的GAN模型應(yīng)用需要有良好的訓(xùn)練方法,否則可能由于神經(jīng)網(wǎng)絡(luò)模型的自由性而導(dǎo)致輸出結(jié)果不理想。
GAN算法原理:以生成圖片為例進(jìn)行說(shuō)明:假設(shè)有兩個(gè)網(wǎng)絡(luò),分別為G和D,它們的功能分別是:1)G是一個(gè)生成圖片的網(wǎng)絡(luò),它接收一個(gè)隨機(jī)的噪聲z,通過(guò)這個(gè)噪聲生成圖片,記做G(z)。2)D是一個(gè)判別網(wǎng)絡(luò),判別一張圖片是不是“真實(shí)的”。它的輸入?yún)?shù)是x,x代表一張圖片,輸出D(x)代表x為真實(shí)圖片的概率,如果為1,就代表100%是真實(shí)的圖片,而輸出為0,就代表不可能是真實(shí)的圖片。
3)在最理想的狀態(tài)下,G可以生成足以“以假亂真”的圖片G(z)。對(duì)于D來(lái)說(shuō),它難以判定G生成的圖片究竟是不是真實(shí)的,因此D(G(z)) = 0.5。4)這樣目的就達(dá)成了:得到了一個(gè)生成式的模型G,它可以用來(lái)生成圖片。在訓(xùn)練過(guò)程中,生成網(wǎng)絡(luò)G的目標(biāo)就是盡量生成真實(shí)的圖片去欺騙判別網(wǎng)絡(luò)D。而判別網(wǎng)絡(luò)D的目標(biāo)就是盡量把G生成的圖片和真實(shí)的圖片分別開(kāi)來(lái)。這樣,G和D構(gòu)成了一個(gè)動(dòng)態(tài)的“博弈過(guò)程”。
以理論抽象進(jìn)行說(shuō)明:GAN是一種通過(guò)對(duì)抗過(guò)程估計(jì)生成模型的新框架??蚣苤型瑫r(shí)訓(xùn)練兩個(gè)模型:捕獲數(shù)據(jù)分布的生成模型G,和估計(jì)樣本來(lái)自訓(xùn)練數(shù)據(jù)的概率的判別模型D。G的訓(xùn)練程序是將D錯(cuò)誤的概率最大化??梢宰C明在任意函數(shù)G和D的空間中,存在唯一的解決方案,使得G重現(xiàn)訓(xùn)練數(shù)據(jù)分布,而D=0.5。在G和D由多層感知器定義的情況下,整個(gè)系統(tǒng)可以用反向傳播進(jìn)行訓(xùn)練。在訓(xùn)練或生成樣本期間,不需要任何馬爾科夫鏈或展開(kāi)的近似推理網(wǎng)絡(luò)。實(shí)驗(yàn)通過(guò)對(duì)生成的樣品的定性和定量評(píng)估,證明了GAN框架的潛在優(yōu)勢(shì)。
Goodfellow從理論上證明了該算法的收斂性。在模型收斂時(shí),生成數(shù)據(jù)和真實(shí)數(shù)據(jù)具有相同分布,從而保證了模型效果。GAN公式說(shuō)明如下:1)公式中x表示真實(shí)圖片,z表示輸入G網(wǎng)絡(luò)的噪聲,G(z)表示G網(wǎng)絡(luò)生成的圖片;2)D(x)表示D網(wǎng)絡(luò)判斷圖片是否真實(shí)的概率,因?yàn)閤就是真實(shí)的,所以對(duì)于D來(lái)說(shuō),這個(gè)值越接近1越好。
3)G的目的:D(G(z))是D網(wǎng)絡(luò)判斷G生成的圖片的是否真實(shí)的概率。G應(yīng)該希望自己生成的圖片“越接近真實(shí)越好”。也就是說(shuō),G希望D(G(z))盡可能得大,這時(shí)V(D, G)會(huì)變小。因此公式的最前面記號(hào)是min_G。4)D的目的:D的能力越強(qiáng),D(x)應(yīng)該越大,D(G(x))應(yīng)該越小。這時(shí)V(D,G)會(huì)變大。因此式子對(duì)于D來(lái)說(shuō)是求最大max_D。
GAN訓(xùn)練過(guò)程:GAN通過(guò)隨機(jī)梯度下降法來(lái)訓(xùn)練D和G。1) ? 首先訓(xùn)練D,D希望V(G, D)越大越好,所以是加上梯度(ascending)2) ?然后訓(xùn)練G時(shí),G希望V(G, D)越小越好,所以是減去梯度(descending);3) ?整個(gè)訓(xùn)練過(guò)程交替進(jìn)行。
GAN算法優(yōu)點(diǎn):1)使用了latent code,用以表達(dá)latent dimension、控制數(shù)據(jù)隱含關(guān)系等;2)數(shù)據(jù)會(huì)逐漸統(tǒng)一;3)不需要馬爾可夫鏈;4)被認(rèn)為可以生成最好的樣本(不過(guò)沒(méi)法鑒定“好”與“不好”);5)只有反向傳播被用來(lái)獲得梯度,學(xué)習(xí)期間不需要推理;6)各種各樣的功能可以被納入到模型中;7)可以表示非常尖銳,甚至退化的分布。
GAN算法缺點(diǎn):1)Pg(x)沒(méi)有顯式表示;2)D在訓(xùn)練過(guò)程中必須與G同步良好;3)G不能被訓(xùn)練太多;4)波茲曼機(jī)必須在學(xué)習(xí)步驟之間保持最新。
GAN算法擴(kuò)展:GAN框架允許有許多擴(kuò)展:1)通過(guò)將C作為輸入,輸入G和D,可以得到條件生成模型P(x|c(diǎn));2)學(xué)習(xí)近似推理,可以通過(guò)訓(xùn)練輔助網(wǎng)絡(luò)來(lái)預(yù)測(cè)Z。3)通過(guò)訓(xùn)練一組共享參數(shù)的條件模型,可以近似地模擬所有條件。本質(zhì)上,可以使用對(duì)抗性網(wǎng)絡(luò)實(shí)現(xiàn)確定性MP-DBM的隨機(jī)擴(kuò)展。4)半監(jiān)督學(xué)習(xí):當(dāng)僅有有限標(biāo)記數(shù)據(jù)時(shí),來(lái)自判別器或推理網(wǎng)絡(luò)的特征可以提高分類器的性能。5)效率改進(jìn):通過(guò)劃分更好的方法可以大大加快訓(xùn)練,更好的方法包括:a)協(xié)調(diào)G和D; b) 在訓(xùn)練期間,確定訓(xùn)練樣本Z的更好分布。
GAN算法應(yīng)用:GAN的應(yīng)用范圍較廣,擴(kuò)展性也強(qiáng),可應(yīng)用于圖像生成、數(shù)據(jù)增強(qiáng)和圖像處理等領(lǐng)域。1)圖像生成:目前GAN最常使用的地方就是圖像生成,如超分辨率任務(wù),語(yǔ)義分割等。2)數(shù)據(jù)增強(qiáng):用GAN生成的圖像來(lái)做數(shù)據(jù)增強(qiáng)。主要解決的問(wèn)題是a)對(duì)于小數(shù)據(jù)集,數(shù)據(jù)量不足,可以生成一些數(shù)據(jù);b)用原始數(shù)據(jù)訓(xùn)練一個(gè)GAN,GAN生成的數(shù)據(jù)label不同類別。
GAN生成式對(duì)抗網(wǎng)絡(luò)是一種深度學(xué)習(xí)模型,是近年來(lái)復(fù)雜分布上無(wú)監(jiān)督學(xué)習(xí)最具有前景的方法之一,值得深入研究。GAN生成式對(duì)抗網(wǎng)絡(luò)的模型至少包括兩個(gè)模塊:G模型-生成模型和D模型-判別模型。兩者互相博弈學(xué)習(xí)產(chǎn)生相當(dāng)好的輸出結(jié)果。GAN算法應(yīng)用范圍較廣,擴(kuò)展性也強(qiáng),可應(yīng)用于圖像生成、數(shù)據(jù)增強(qiáng)和圖像處理等領(lǐng)域。
? ? ? ?