生成機(jī)器以前從未見過的數(shù)據(jù)一直是一個有趣的問題。人類可以創(chuàng)造它從未聽過的音樂或繪制不存在的人物。能夠為機(jī)器做到這一點(diǎn)意味著它具有一定的創(chuàng)造性。本文討論Ian Goodfellow在2014年提出的生成對抗網(wǎng)絡(luò)(GAN)方法的理論部分[1]。在GAN被提出之前,我們先從傳統(tǒng)的方法開始。 傳統(tǒng)的方法當(dāng)我們要求機(jī)器生成之前看到的類似數(shù)據(jù)時,我們要求它從底層數(shù)據(jù)分布中抽取新數(shù)據(jù)。當(dāng)然我們不知道分布,我們只有樣本。傳統(tǒng)的方法首先用可調(diào)參數(shù)(如高斯混合模型)逼近一些已知分布到真實數(shù)據(jù)分布,希望調(diào)整完成后,已知分布的采樣數(shù)據(jù)將類似于真實分布中的采樣數(shù)據(jù) 與已知分布近似的真實分布 為了這個工作,我們需要定義兩個分布之間的“closeness”。一個這樣的措施是Kullback–Leibler divergence(https://en./wiki/Kullback%E2%80%93Leibler_divergence) KL分歧是衡量兩種分布之間“closeness”的一種度量 你可以將KL散度看作兩個分布之間的“距離”。當(dāng)兩個分布不相等時,它總是大于零,當(dāng)兩個分布相等時,它等于零。它的值越大,它們越不相同。 現(xiàn)在,每件事情都已準(zhǔn)備就緒,讓我們看看我們?nèi)绾尾拍茏钚』嚯x。請注意,我們可以將其擴(kuò)展到以下內(nèi)容 在求KL散度的最小值時,第一項沒有作用,因為它是一個常數(shù),所以它等于第二項的最大值。實際上我們不知道數(shù)據(jù)分布,但是我們有樣本,這是我們的訓(xùn)練數(shù)據(jù)集,所以第二項實際上是訓(xùn)練數(shù)據(jù)集的可能性 最大化可能性等于使KL散度最小化 我們有一個訓(xùn)練數(shù)據(jù)集,其中包含來自真實分布(未知數(shù)據(jù)分布)的樣本。我們選擇一個具有可調(diào)參數(shù)的已知分布(模型)。最后,我們最大化訓(xùn)練數(shù)據(jù)集的可能性,這等效地使兩個分布之間的距離最小化。希望這樣做后,我們的模型分布將足夠接近真實的數(shù)據(jù)分布,并且來自模型的樣本將看起來像來自真實數(shù)據(jù)分布的樣本。 傳統(tǒng)方法存在的問題 如果您嘗試使用高斯混合模型進(jìn)行面部生成,您將得不到任何東西。一個重要的原因是面孔的分布是在一些復(fù)雜的低維流形中。眼睛,耳朵,嘴和發(fā)型(等)的組合具有某些遠(yuǎn)離高斯混合物的結(jié)構(gòu)。高斯混合模型對于生成真實的人臉而言太簡單了。 一個三維高斯混合不能像這樣近似一個二維complex manifold 神經(jīng)網(wǎng)絡(luò)作為函數(shù)逼近器 這就是神經(jīng)網(wǎng)絡(luò)的作用所在。我們可以訓(xùn)練神經(jīng)網(wǎng)絡(luò)來顯式地估計真實的分布,例如像像像素cnn、像素rnn這樣的自回歸方法,或者像變分自動編碼器這樣的變分方法?;蛘?,因為在我們的例子中我們只希望機(jī)器為我們生成新的數(shù)據(jù),我們甚至不需要對分布建模,我們只需要對采樣過程建模,這正是GAN所做的。 生成對抗的方法在GAN中,我們沒有顯式地對分布建模,我們只對抽樣過程建模。這意味著,給定任意一個數(shù)據(jù)點(diǎn)x,我們不知道模型的P(x)但我們?nèi)匀豢梢詮闹谐槿颖?。抽樣過程如下所示 GAN的采樣過程 我們對z空間中的許多點(diǎn)進(jìn)行采樣,這些點(diǎn)可以是高斯或均勻分布,并且希望神經(jīng)網(wǎng)絡(luò)將它映射到我們想要的真實分布的空間。這里的問題是,我們不能使用KL散度作為以前的距離度量,因為我們沒有明確地對分布進(jìn)行建模,所以我們不能計算可能性 Discriminator 作為距離的估計量 有趣的是,如果我們將兩個分布之間的距離定義為Jensen–Shannon divergence, JS divergence作為兩種分布之間距離的量度 我們?nèi)钥梢酝ㄟ^訓(xùn)練另一個神經(jīng)網(wǎng)絡(luò)來測量這個距離?,F(xiàn)在我們有兩個神經(jīng)網(wǎng)絡(luò),我們稱第一個用于產(chǎn)生數(shù)據(jù)作為generator,另一個用于測量距離作為Discriminator 器。它被稱為Discriminator ,因為它的目標(biāo)是識別天氣數(shù)據(jù)點(diǎn)是從真實分布中采樣還是從模型(generator)中采樣。這與二元分類器基本相同,目標(biāo)函數(shù)是 objective function for the discriminator Discriminator 是二元分類器 如果x來自真實數(shù)據(jù)分布,則Discriminator D(x)預(yù)計輸出1,如果x來自generator,則Discriminator D輸出0?,F(xiàn)在,讓我們看看訓(xùn)練D如何與找到距離有關(guān) 理想情況下,如果我們可以從我們想要的真實分布和generator中采樣盡可能多的數(shù)據(jù),并且Discriminator 具有足夠的容量,那么我們可能能夠?qū)iscriminator 訓(xùn)練得非常接近最優(yōu)分類器。最佳分類器可以通過最大化目標(biāo)函數(shù)來計算 由于D(x)是我們要找到的函數(shù),因此它可以是任何函數(shù)。因此,最大化積分相當(dāng)于使每個x的內(nèi)部括號最大化。這是簡單的微積分,你可以驗證每個x的最佳D值 最佳Discriminator 把它回到你得到的eq(4) 目標(biāo)函數(shù)為最優(yōu)D與距離有關(guān) 你會發(fā)現(xiàn)最佳分類器的目標(biāo)函數(shù)是一個常數(shù)加上距離的兩倍!每當(dāng)我們想知道generator與真實分布的接近程度時,我們就會訓(xùn)練一個Discriminator 來測量距離。 通過最小化距離改進(jìn)generator 現(xiàn)在我們有了距離測量,我們可以通過最小化距離來改善generator 。這里有一個問題:當(dāng)對generator 應(yīng)用梯度合適時,目標(biāo)函數(shù)是什么?每次我們改變G的參數(shù),G的分布就會改變,我們要訓(xùn)練D來測量距離,好像目標(biāo)函數(shù)隨不同的G變化?關(guān)鍵在于,如果我們不把G的參數(shù)更新太多,G的分布不會改變太多,D在這個情況下仍然可以很好地測量距離。也就是說,
所以G的目標(biāo)函數(shù)也是方程(4),它是對G附近G'距離的度量。我們可以應(yīng)用梯度下降來最小化它。 Training as a minmax probelm 注意,eq(4)是D和G的目標(biāo)函數(shù),我們稱之為V(G, D),而優(yōu)化的標(biāo)準(zhǔn)在每種情況下都是不同的。給定G,我們將測量距離因此我們對d取最大值,給定距離,我們將G的參數(shù)更新到減小距離的方向。理論上它被稱為最小問題 G和D的目標(biāo)函數(shù) finding the optimal generator is a minmax problem 訓(xùn)練算法我們幾乎涵蓋了GAN最基本的部分??傊?,訓(xùn)練GAN的算法如下 用于訓(xùn)練GAN的算法 |
|