參考博客:https://blog.csdn.net/stalbo/article/details/79283399
0、摘要
GAN提出了一個通過對抗過程估計生成模型的新框架,在新框架中同時訓練兩個模型:一個用來捕獲數據分佈的生成模型G,和一個用來估計樣本來自訓練數據而不是G的概率的判別模型D,G的訓練過程是最大化D產生錯誤的概率。這個框架相當於一個極小極大化的雙方博弈。在任意函數G 和D 的空間中存在唯一的解,其中G恢復訓練數據分佈,並且D處處都等於1/2 。 在G和D 由多層感知器定義的情況下,整個系統可以用反向傳播進行訓練。在訓練或生成樣本期間不需要任何馬爾科夫鏈或展開的近似推理網絡。 實驗通過對生成的樣品進行定性和定量評估來展示這個框架的潛力。
符號說明:
→真實數據(groundtruth)
→真實數據的分佈
→噪音
→原始噪音的分佈
→經過生成器後的數據分佈
→生成映射函數,代表生成器,結構爲一個多層感知機,參數爲 ,爲生成映射函數,將噪音 映射到新的數據空間。
→判別映射函數,代表判別器,也是一個多層感知機,參數爲 ,輸出爲一個標量,表示 來自真實數據而不是生成數據的概率。
1、介紹
深度學習的任務是尋找豐富的層次模型,能夠在人工智能領域裏用來表達各種數據的概率分佈,例如自然圖像,包含語音的音頻波形和自然語言語料庫中的符號等。到目前爲止,在深度學習領域,目前爲止最成功的模型之一就是判別式模型,通常它們將高維豐富的特徵表示輸入映射到類別標籤上。這些顯著的成功主要是基於反向傳播和丟棄(dropout)算法來實現的,特別是具有特別良好梯度的分段線性單元。由於在最大似然估計和相關策略中出現的許多難以解決的概率計算的困難,以及很難利用在生成上下文中時使用分段線性單元的好處,深度生成模型的影響很小。我們提出一個新的生成模型估計程序,來分步處理這些難題。
在提到的對抗網絡框架中,生成模型對抗着一個對手:一個學習去判別一個樣本是來自模型分佈還是數據分佈的判別模型。生成模型可以被認爲是一個僞造團隊,試圖產生假貨並在不被發現的情況下使用它,而判別模型類似於警察,試圖檢測假幣。在這個遊戲中的競爭驅使兩個團隊改進他們的方法,直到真假難分爲止。
這個框架可以針對多種模型和優化算法提供特定的訓練算法。在這篇文章中,我們探討了生成模型通過將隨機噪聲傳輸到多層感知機來生成樣本的特例,同時判別模型也是通過多層感知機實現的。我們稱這個特例爲對抗網絡。在這種情況下,我們可以僅使用非常成熟的反向傳播和丟棄算法訓練兩個模型,生成模型在生成樣本時只使用前向傳播算法。並且不需要近似推理和馬爾可夫鏈作爲前題。
2、相關工作
含隱變量的有向圖模型可以由含隱變量的無向圖模型替代,例如受限制波茲曼機(RBM),深度波茲曼機(DBM)和它們很多的變種。這些模型之間的相互影響可以被表達爲非標準化的勢函數的乘積,再通過隨機變量的所有狀態的全局整合來標準化。這個數量(配分函數)和它的梯度的估算是很棘手的,儘管他們能夠依靠馬爾可夫鏈和蒙特卡羅(MCMC)算法來估計,同時依靠MCMC算法的混合也會引發一個嚴重的問題。
深度信念網絡(DBN)是一個包含一個無向層和若干有向層的混合模型。當使用一個快速逐層訓練法則時,DBNS 會引發無向模型和有向模型相關的計算難題。
不是利用似然函數的估計或約數的選擇準則已經被提出來了,例如分數匹配和噪音壓縮評估(NCE)。他們都需要知道先驗概率密度知識用來分析指定一個規範化的常量。請注意,許多有趣的帶有一些隱層變量的生成模型(如DBN和DBM),它們甚至不需要一些難以處理的非標準化的概率密度先驗知識。一些模型如自動編碼降噪機和壓縮編碼的學習準則與分數匹配在RBM上的應用非常相似。在NCE中,使用一個判別訓練準則來擬合一個生成模型。然而,生成模型常常被用來判別從一個固定噪音分佈中抽樣生成的數據,而不是擬合一個獨立的判別模型。由於NCE使用一個固定的噪音分佈,僅僅是從觀測變量的一個小子集中學習到一個大致正確的分佈後,模型的學習便急劇減慢。
最後,一些技術並沒有用來明確定義概率分佈,而是用來訓練一個生成器來從期望的分佈中擬合出樣本。這個方法優勢在於這些機器學習算法能夠設計使用反向傳播算法訓練。這個領域最近比較突出的工作包含生成隨機網絡(GSN),它擴展了廣義的除噪自動編碼器:兩者都可以看作是定義了一個參數化的馬爾可夫鏈,即一個通過執行生成馬爾科夫鏈的一個步驟來學習機器參數的算法。同GSNs相比,對抗網絡不需要使用馬爾可夫鏈來採樣。由於對抗網絡在生成階段不需要循環反饋信息,它們能夠更好的利用分段線性單元,這可以提高反向傳播的效率。大部分利用反向傳播算法來訓練生成器的例子包括貝葉斯變分自動編碼和隨機反向傳播。
3、對抗網絡
當模型是多層感知器時,對抗模型框架是最直接應用的。爲了學習生成器關於數據 上的分佈 ,我們定義輸入噪聲的先驗變量 ,然後使用 來代表數據空間的映射。這裏G是一個由含有參數的多層感知機表示的可微函數。我們再定義了一個多層感知機 用來輸出一個單獨的標量。代x來自於真實數據分佈而不是 的概率,我們訓練D來最大化分配正確標籤給不管是來自於訓練樣例還是G生成的樣例的概率。我們同時訓練G來最小化 。換句話說,D和G的訓練是關於值函數 的極小化極大的二人博弈問題:
在下一節中,我們提出了對抗網絡的理論分析,基本上表明基於訓練準則可以恢復數據生成分佈,因爲G和D被給予足夠的容量,即在非參數極限。如圖1展示了該方法的一個非正式卻更加直觀的解釋。實際上,我們必須使用迭代數值方法來實現這個過程。在訓練的內部循環中優化D到完成的計算是禁止的,並且有限的數據集將導致過擬合。相反,我們在優化D的k個步驟和優化G的一個步驟之間交替。只要G變化足夠慢,可以保證D保持在其最優解附近。該過程如算法1所示。
實際上,方程(1)可能無法爲G提供足夠的梯度來學習。訓練初期,當G的生成效果很差時,D會以高置信度來拒絕生成樣本,因爲它們與訓練數據明顯不同。因此, 飽和。因此我們選擇最大化 而不是最小化 來訓練G,該目標函數使G和D的動力學穩定點相同,並且在訓練初期,該目標函數可以提供更強大的梯度。
圖1.訓練對抗的生成網絡時,同時更新判別分佈(D,藍色虛線)使D能區分數據生成分佈 (黑色虛線)中的樣本和生成分佈 (G,綠色實線) 中的樣本。下面的水平線爲均勻採樣z的區域,上面的水平線爲x的部分區域。朝上的箭頭顯示映射 如何將非均勻分 作用在轉換後的樣本上。G在 高密度區域收縮,且在 的低密度區域擴散。(a)考慮一個接近收斂的對抗的模型對: 與 相似,且D是個部分準確的分類器。(b)算法的內循環中,訓練D來判別數據中的樣本,收斂到: 。(c)在G的1次更新後,D的梯度引導流向更可能分類爲數據的區域。(d)訓練若干步後,如果G和D性能足夠,它們接近某個穩定點並都無法繼續提高性能,因爲此時 。判別器將無法區分訓練數據分佈和生成數據分佈,即 。
算法1.生成對抗網絡的mini-batch隨機梯度下降訓練。判別器的訓練步數k,是一個超參數。在我們的試驗中使用k=1 ,使消耗最小。
4、理論結果
當時,獲得樣本G(z), 產生器G隱式的定義概率分佈爲G(z) 獲得的樣本的分佈。因此,如果模型容量和訓練時間足夠大時,我們希望算法1收斂爲的良好估計量。本節的結果是在非參數設置下完成的,例如,我們通過研究概率密度函數空間中的收斂來表示具有無限容量的模型。
我們將在4.1節中顯示,這個極小化極大問題的全局最優解爲 。我們將在4.2節中展示使用算法1來優化等式1,從而獲得期望的結果。
4.1 全局最優:
首先任意給生成器G,考慮最優判別器D。
命題1.固定G,最優判別器D爲:……(2)
證明:給定任意生成器G,判別器D的訓練標準爲最大化目標函數V(G,D),而得出最優判別器 D。其中,最大化 V(D,G) 評估了 和 之間的差異或距離。因爲在原論文中價值函數可寫爲在 x上的積分,即將數學期望展開爲積分形式:
關於上面積分式的證明
在 GAN 原論文中,有一個思想和其它很多方法都不同,即生成器 G 不需要滿足可逆條件。Scott Rome 認爲這一點非常重要,因爲實踐中 G 就是不可逆的。而很多證明筆記都忽略了這一點,他們在證明時錯誤地使用了積分換元公式,而積分換元卻又恰好基於 G 的可逆條件。Scott 認爲證明只能基於以下等式的成立性:
該等式來源於測度論中的 Radon-Nikodym 定理。
有一些證明過程使用了積分換元公式,但進行積分換元就必須計算 G(−1)G(−1),而 G 的逆卻並沒有假定爲存在。並且在神經網絡的實踐中,它也並不存在。可能這個方法在機器學習和統計學文獻中太常見了,因此我們忽略了它。
對於任意的 ,函數在[0,1]中的 處達到最大值。無需在外定義判別器,證畢。
在數據給定,G 給定的前提下, 與 都可以看作是常數,我們可以分別用 a,b 來表示他們,這樣我們就可以得到如下的式子:
注意到,判別器D的訓練目標可以看作爲條件概率P(Y=y|x) 的最大似然估計,當y=1時,x來自於 ;當y=0時,x來自 。公式1中的極小化極大問題可以變形爲:
定理:.當且僅當時,C(G)達到全局最小。此時,C(G)的值爲−log4。
證明: 時, (公式2)。再根據公式4可得, 。爲了看僅當 時C(G)是否是最優的,觀測:
然後從 減去上式,可得:
其中KL爲Kullback–Leibler散度。我們在表達式中識別出了模型判別和數據生成過程之間的Jensen–Shannon散度:
由於兩個分佈之間的Jensen–Shannon散度總是非負的,並且當兩個分佈相等時,值爲0。因此爲C(G)的全局極小值,並且唯一解爲 ,即生成模型能夠完美的複製數據的生成過程。
4.2 算法1的收斂性
命題2:如果G和D有足夠的性能,對於算法1中的每一步,給定G時,判別器能夠達到它的最優,並且通過更新 來提高這個判別準則:
則收斂於.
證明:如上述準則,考慮 爲關於 的函數。注意到 爲的凸函數。該凸函數上確界的一次導數包括達到最大值處的該函數的導數。換句話說,如果 且對於每一個, 是關於x的凸函數,那麼如果,則 。這等價於給定對應的G和最優的D,計算 的梯度更新。如定理1所證明, 是關於 的凸函數且有唯一的全局最優解,因此,當的更新足夠小時,收斂到 ,證畢。
實際上,對抗的網絡通過函數 表示 分佈的有限簇,並且我們優化 而不是本身。使用一個多層感知機來定義G在參數空間引入了多個臨界點。然而,儘管缺乏理論證明,但在實際中多層感知機的優良性能表明了這是一個合理的模型。
5、GAN的優勢和缺陷
5.1 優勢
優點:
- 根據實際的結果,它們看上去可以比其它模型產生了更好的樣本(圖像更銳利、清晰)。
- 生成對抗式網絡框架能訓練任何一種生成器網絡(理論上-實踐中,用 REINFORCE 來訓練帶有離散輸出的生成網絡非常困難)。大部分其他的框架需要該生成器網絡有一些特定的函數形式,比如輸出層是高斯的。重要的是所有其他的框架需要生成器網絡遍佈非零質量(non-zero mass)。生成對抗式網絡能學習可以僅在與數據接近的細流形(thin manifold)上生成點。
- 不需要設計遵循任何種類的因式分解的模型,任何生成器網絡和任何鑑別器都會有用。
- 無需利用馬爾科夫鏈反覆採樣,無需在學習過程中進行推斷(Inference),迴避了近似計算棘手的概率的難題。
與其他生成式模型相比較,生成式對抗網絡有以下四個優勢:
- 與PixelRNN相比,生成一個樣本的運行時間更小。GAN 每次能產生一個樣本,而 PixelRNN 需要一次產生一個像素來生成樣本。
- 與VAE 相比,它沒有變化的下限。如果鑑別器網絡能完美適合,那麼這個生成器網絡會完美地恢復訓練分佈。換句話說,各種對抗式生成網絡會漸進一致(asymptotically consistent),而 VAE 有一定偏置。
- 與深度玻爾茲曼機相比,既沒有一個變化的下限,也沒有棘手的分區函數。它的樣本可以一次性生成,而不是通過反覆應用馬爾可夫鏈運算器(Markov chain operator)。
- 與 GSN 相比,它的樣本可以一次生成,而不是通過反覆應用馬爾可夫鏈運算器。
- 與NICE 和 Real NVE 相比,在 latent code 的大小上沒有限制。
5.2 缺陷或存在的問題
①解決不收斂(non-convergence)的問題。
目前面臨的基本問題是:所有的理論都認爲 GAN 應該在納什均衡(Nash equilibrium)上有卓越的表現,但梯度下降只有在凸函數的情況下才能保證實現納什均衡。當博弈雙方都由神經網絡表示時,在沒有實際達到均衡的情況下,讓它們永遠保持對自己策略的調整是可能的。
②難以訓練:崩潰問題(collapse problem)
GAN模型被定義爲極小極大問題,沒有損失函數,在訓練過程中很難區分是否正在取得進展。GAN的學習過程可能發生崩潰問題(collapse problem),生成器開始退化,總是生成同樣的樣本點,無法繼續學習。當生成模型崩潰時,判別模型也會對相似的樣本點指向相似的方向,訓練無法繼續。當然Goodfellow在【Improved Techniques for Training GANs】文章中也有一些相應的改進方法例如:特徵映射等。
③無需預先建模,模型過於自由不可控。
與其他生成式模型相比,GAN這種競爭的方式不再要求一個假設的數據分佈,即不需要formulate p(x),而是使用一種分佈直接進行採樣sampling,從而真正達到理論上可以完全逼近真實數據,這也是GAN最大的優勢。然而,這種不需要預先建模的方法缺點是太過自由了,對於較大的圖片,較多的 pixel的情形,基於簡單 GAN 的方式就不太可控了(超高維)。在GAN[Goodfellow Ian, Pouget-Abadie J] 中,每次學習參數的更新過程,被設爲D更新k回,G才更新1回,也是出於類似的考慮。