模擬上帝之手的對抗博弈——GAN背后的數學原理
簡介
深度學習的潛在優勢就在於可以利用大規模具有層級結構的模型來表示相關數據所服從的概率密度。從深度學習的浪潮掀起至今,深度學習的最大成功在於判別式模型。判別式模型通常是將高維度的可感知的輸入信號映射到類別標簽。訓練判別式模型得益於反向傳播算法、dropout和具有良好梯度定義的分段線性單元。然而,深度產生式模型相比之下遜色很多。這是由於極大似然的聯合概率密度通常是難解的,逼近這樣的概率密度函數非常困難,而且很難將分段線性單元的優勢應用到產生式模型的問題。
基於以上的觀察,作者提出了產生對抗網絡。顧名思義,產生對抗網絡包含兩個網絡:產生器和判別器。產生器負責偽造一些數據,要求這些數據盡可能真實(盡可能服從只有上帝知道的概率分布),而判別器負責判別給定數據是偽造的(來自產生器生成的數據),還是來自由上帝創造的真實分布。至此,我們不得不佩服作者如此的問題形式化。整個過程中就是在博弈。產生器盡可能偽造出真實的數據,而判別器盡可能提高自身的判別性能。
這樣一種問題形式化實際上是一種通用框架,因為判別器和生成器可以是任何一種深度模型。為了簡單起見,該篇文章只利用多層感知機,而且生成器所生成的樣本是由隨機噪聲得到的。利用這種方法,整個模型的訓練融入了之前無法利用的反向傳播算法和dropout. 這個過程中不需要近似推測和馬爾科夫鏈。
產生對抗網絡
這部分將具體介紹產生對抗網絡模型,並詳細推導出GAN的優化目標。
簡單起見,生成器和判別器都基於多層感知神經元。對於生成器,我們希望它是一個由噪聲到所希望生成數據的一個映射;對於判別器,它以被考查的數據作為輸入,輸出其服從上帝所定義的概率分布的概率值。下圖清晰地展示了這個過程。
假設我們有包含m個樣本的訓練集S={x(1),...,x(m)}. 此外,任給一種概率密度函數pz(z)(當然,在保證模型復雜度的前提下,相應的概率分布越簡單越好),我們可以利用隨機變量Z∼pz(z)采樣得到m個噪聲樣本{z(1),...,z(m)}. 由此,我們可以得到似然函數

進一步,得到對數似然



生成器G(⋅)實際上隱式定義了一個概率分布pg,將其稱之為隱式是因為G是從噪聲z∼pz到樣本G(z)的映射。由此,我們自然會提出一個問題:通過這樣的建模以及訓練方式得到的pg能否最終達到上帝創造的那個分布pdata,或者說兩者差距到底多少?
這個問題由下面的命題和定理回答。
首先,任意給定生成器G,我們考慮最優判別器D.
命題1. 對於給定G,最優判別器為
證明.
給定G,我們目標是最大化V(G,D)

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

所以,


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

下面,我們提出並證明定理1. 由此回答本節最開始提出的問題:通過這樣的建模以及訓練方式得到的pg能否最終達到上帝創造的那個分布pdata,或者說兩者差距到底多少?
定理1. 對於C(G)的全局優化最小值可達,當且僅當pg=pdata,並且最小值為−log4.
證明.

等號成立的條件為

證畢。
由此可見,生成器完美地浮現了上帝創造數據的過程!
下面我們正式給出GAN訓練算法流程,如下圖所示。

我們不加證明地給出該算法的收斂性。
命題2. 假設G和D有足夠的表達能力,並且假設算法1的每一步,給定G,D都可以達到最優,並且pg依照下面目標優化

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


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

每張圖的最右側一欄是在訓練集中的與生成樣本的最近鄰樣本。可見,模型在沒有記憶訓練集的情況下生成了多樣化的類似風格的圖片。不像其他生成模型的可視化那樣,這些圖片都是由模型分布直接生成的,而不是利用條件概率的方法。並且,這些圖片不像利用馬爾科夫鏈采樣過程那樣所生成的圖像之間是不相關的。(a)(b)(c)(d)依次是MNIST, TFD, CIFAR-10(全連接模型), CIFAR-10(卷積判別器和反卷積生成器)
附錄
A. K-L散度
在概率論和信息論中,K-L散度,也稱之為信息增益,是衡量兩個概率分布差異的一種“度量”。我們首先給出K-L散度的定義。分為離散形式和連續形式。
對於離散形式,給定兩個離散型隨機變量所對應的概率函數P和Q,兩者的K-L散度定義為


前置位,如定義式中的P(或p)可以理解為數據的真實分布,而Q(或q)是模型對真實分布的一種近似。另一種理解是,DKL(P∥Q)表示從先驗Q到后驗P帶來的信息增益。
K-L散度有如下幾個重要性質:
(1) K-L散度是具有良好定義的,當且僅當,當對於某些x, q(x)=0, 一定有p(x)=0;
(2) 對於某些x,當p(x)=0,一定有
下面證明一下最后一條性質。

證畢。
B. 泛函變分
泛函變分實際上是函數微分的一種自然的推廣。
對於給定泛函F[y]:y(x)↦K,其中K=R/C,我們可以仿照泰勒公式,定義泛函的展開形式,對於任意η(⋅),

證明:

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

證畢。