GAN背后的數學原理


 

 

模擬上帝之手的對抗博弈——GAN背后的數學原理

簡介

深度學習的潛在優勢就在於可以利用大規模具有層級結構的模型來表示相關數據所服從的概率密度。從深度學習的浪潮掀起至今,深度學習的最大成功在於判別式模型。判別式模型通常是將高維度的可感知的輸入信號映射到類別標簽。訓練判別式模型得益於反向傳播算法、dropout和具有良好梯度定義的分段線性單元。然而,深度產生式模型相比之下遜色很多。這是由於極大似然的聯合概率密度通常是難解的,逼近這樣的概率密度函數非常困難,而且很難將分段線性單元的優勢應用到產生式模型的問題。

基於以上的觀察,作者提出了產生對抗網絡。顧名思義,產生對抗網絡包含兩個網絡:產生器和判別器。產生器負責偽造一些數據,要求這些數據盡可能真實(盡可能服從只有上帝知道的概率分布),而判別器負責判別給定數據是偽造的(來自產生器生成的數據),還是來自由上帝創造的真實分布。至此,我們不得不佩服作者如此的問題形式化。整個過程中就是在博弈。產生器盡可能偽造出真實的數據,而判別器盡可能提高自身的判別性能。

這樣一種問題形式化實際上是一種通用框架,因為判別器和生成器可以是任何一種深度模型。為了簡單起見,該篇文章只利用多層感知機,而且生成器所生成的樣本是由隨機噪聲得到的。利用這種方法,整個模型的訓練融入了之前無法利用的反向傳播算法和dropout. 這個過程中不需要近似推測和馬爾科夫鏈。

產生對抗網絡

這部分將具體介紹產生對抗網絡模型,並詳細推導出GAN的優化目標。

簡單起見,生成器和判別器都基於多層感知神經元。對於生成器,我們希望它是一個由噪聲到所希望生成數據的一個映射;對於判別器,它以被考查的數據作為輸入,輸出其服從上帝所定義的概率分布的概率值。下圖清晰地展示了這個過程。

 

假設我們有包含m個樣本的訓練集S={x(1),...,x(m)}. 此外,任給一種概率密度函數pz(z)(當然,在保證模型復雜度的前提下,相應的概率分布越簡單越好),我們可以利用隨機變量Zpz(z)采樣得到m個噪聲樣本{z(1),...,z(m)}. 由此,我們可以得到似然函數

 

 

 

進一步,得到對數似然

 

由大數定律,當 m 時,我們用經驗損失來近似期望損失,得

 

回到我們的初衷:整個過程中就是在博弈。產生器盡可能偽造出真實的數據,而判別器盡可能提高自身的判別性能。注意到我們剛剛構造的似然函數是針對判別器 D() 的優化目標函數。因此,我們一方面希望對判別器的可學習參數優化,極大化對數似然函數,另一方面我們希望對判別器的可學習參數優化,極小化對數似然函數。將此形式化得到我們的優化目標:

 

相關理論結果

生成器G()實際上隱式定義了一個概率分布pg,將其稱之為隱式是因為G是從噪聲zpz到樣本G(z)的映射。由此,我們自然會提出一個問題:通過這樣的建模以及訓練方式得到的pg能否最終達到上帝創造的那個分布pdata,或者說兩者差距到底多少?

這個問題由下面的命題和定理回答。

首先,任意給定生成器G,我們考慮最優判別器D.

命題1. 對於給定G,最優判別器為

 

證明.

給定G,我們目標是最大化V(G,D)

 

其中, χ Ω 分別為 x z 的積分域或者說是樣本空間。

注意到第二項,利用映射關系x=G(z),我們可以得到

 

這一步並不顯然。(詳細推導見附錄C:測度論中隨機變量的換元)

所以,

 

由於 G 已經給定,上帝創造的分布也是確定的,因此 pdata pg 都是非零定函數,我們的目標是找到一個函數 D 使得 V(G,D) 到達最大。因此,我們對 D 求變分(見附錄A),令其為0,可以得到,極大值點

 

 

證畢。

有了這個定理,我們可以進一步將這個min max博弈重新形式化為最小化C(G),其中

 

 

下面,我們提出並證明定理1. 由此回答本節最開始提出的問題:通過這樣的建模以及訓練方式得到的pg能否最終達到上帝創造的那個分布pdata,或者說兩者差距到底多少?

定理1. 對於C(G)的全局優化最小值可達,當且僅當pg=pdata,並且最小值為log4.

證明.

 

 

 

等號成立的條件為 

 

 

證畢。 
由此可見,生成器完美地浮現了上帝創造數據的過程!

下面我們正式給出GAN訓練算法流程,如下圖所示。

注意到,作者給出的算法和我們的優化目標並不一致。我們推導出的優化目標,是先對D優化並將其優化到底,然后再對G優化。之所以實際訓練流程與其不一致,是因為實際中如果對D優化到底,這將會導致很高的計算代價,而且通常會導致過擬合。相反,該算法是先對D優化k步,然后再進行一步對G的優化。通過這種方法,只要G變化得足夠慢,D總是在最優解的附近。自然地,我們會提出一個疑問,這樣交叉地訓練G和D和形式化得到的minmax博弈,兩者得到的解差距有多少?這個問題由下面的命題回答。

我們不加證明地給出該算法的收斂性。

命題2. 假設GD有足夠的表達能力,並且假設算法1的每一步,給定GD都可以達到最優,並且pg依照下面目標優化

那么, pg 可以收斂到 pdata .

我們通過下面的示意圖,可以更加直觀地理解整個訓練的過程。

最下面的水平線代表噪聲的域,x代表樣本的域。可以看到 G(z) 將一個從均勻分布采集到的樣本映射到了非均勻分布的支撐集上去了。綠色的曲線代表 x=G(z) 的概率密度函數 pg ;黑色曲線代表上帝創造的概率密度函數 pdata ;藍色的曲線代表判別概率函數 D 。(a)接近收斂時,可以看到判別函數 D 是部分正確的;(b)此時進行算法的內循環優化,即對於當前狀態的G,優化D,優化結果如(b)圖的藍線所示;(c)進行完內循環優化后,固定D,對G進行優化,可以看到D的梯度驅使G走向D的分界面;(d)最后,如果G和D都具有足夠的表達能力,兩者會達到一個平衡,即 pg=pdata ,此時判別器無法區分兩者,即 
 

實驗效果

下面我們來欣賞一下偽裝上帝的效果吧!

 

每張圖的最右側一欄是在訓練集中的與生成樣本的最近鄰樣本。可見,模型在沒有記憶訓練集的情況下生成了多樣化的類似風格的圖片。不像其他生成模型的可視化那樣,這些圖片都是由模型分布直接生成的,而不是利用條件概率的方法。並且,這些圖片不像利用馬爾科夫鏈采樣過程那樣所生成的圖像之間是不相關的。(a)(b)(c)(d)依次是MNIST, TFD, CIFAR-10(全連接模型), CIFAR-10(卷積判別器和反卷積生成器)

附錄

A. K-L散度

在概率論和信息論中,K-L散度,也稱之為信息增益,是衡量兩個概率分布差異的一種“度量”。我們首先給出K-L散度的定義。分為離散形式和連續形式。

對於離散形式,給定兩個離散型隨機變量所對應的概率函數PQ,兩者的K-L散度定義為

 

對於連續形式,給定兩個連續型隨機變量所對應的概率密度 p q ,兩者的K-L散度定義為

 

定義很抽象,下面我們對其進行直觀的解讀。注意到之所以這種“度量”是加引號的,因為它並不符合數學上真正度量的公理之一,即對稱性。也就是說 DKL(pq)DKL(qp) . 那么前后位置的差異代表什么實際含義呢?

前置位,如定義式中的P(或p)可以理解為數據的真實分布,而Q(或q)是模型對真實分布的一種近似。另一種理解是,DKL(PQ)表示從先驗Q到后驗P帶來的信息增益。

K-L散度有如下幾個重要性質:

(1) K-L散度是具有良好定義的,當且僅當,當對於某些x, q(x)=0, 一定有p(x)=0

(2) 對於某些x,當p(x)=0,一定有

 
(3) DKL(pq)0  等號成立的條件是  p=q .

 

下面證明一下最后一條性質。

 

 

證畢。

B. 泛函變分

泛函變分實際上是函數微分的一種自然的推廣。

對於給定泛函F[y]:y(x)K,其中K=R/C,我們可以仿照泰勒公式,定義泛函的展開形式,對於任意η() 

C. 測度論中的隨機變量換元

證明:

 

其中 x=G(z) .

 

我們首先定義測度空間(Ω,F,P),其中Ωz的樣本空間,Fσ-代數。進一步,易證G()是可測函數:(Ω,F)(χ,G),其中χx的樣本空間,Gχσ-代數。因此,我們有

 

其中 PG x 的分布。

證畢。

 




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM