【GAN ZOO閱讀】Generative Adversarial Nets 生成對抗網路 原文翻譯 by zk
摘要
作者提出了一個通過對抗過程來估計生成模型的新框架,文中同時訓練兩個模型:捕獲資料分佈的生成模型
,和估計樣本是否來自訓練資料的概率的判別模型
。
的訓練過程是使
犯錯誤的概率最大化。這個框架就像是對應一個minimax two-player game。在任意函式
1、概述
深度學習的目標是發現豐富的層次模型[2],它們表示人工智慧應用中遇到的各種資料的概率分佈,如自然影象,語音音訊波形和自然語言語料庫中的符號。到目前為止,深度學習中最引人注目的成功是判別式模型,它們通常是那些將高維度、豐富的感知輸入對映到類標籤的模型[14,22]。這些驚人的成功主要基於反向傳播和dropout演算法、使用分段線性單元[19,9,10](它們具有特別良好的梯度)。在此之前,基於深度學習的生成模型的影響較小,原因在於很難逼近極大似然估計和相關策略中出現的許多棘手的概率計算,以及難以在生成模型中利用分段線性單元。作者提出了一個新的生成模型的估計程式來回避這些困難。
在作者提出的對抗網路框架中,生成模型與它的“對手”進行對抗,並且有一個判別模型,用於判斷樣本是來自模型分佈還是來自資料分佈。生成模型可以被認為是一個“造假者”團隊,這個團隊試圖生成能夠以假亂真的假貨幣,而判別模型可以被認為是“警察”,試圖檢測假貨幣。這種競爭促使兩個“團隊”改進他們的方法,直到“造假者”的產品可以以假亂真。
該框架可以為多種模型和優化演算法產生特定訓練方法。作者探討了一種特殊情況:生成模型通過把隨機噪聲通過多層感知器產生樣本,並且判別模型也是多層感知器。作者把這個特殊情況稱為對抗網路。在這種情況下,可以使用反向傳播和dropout演算法來訓練這兩個模型,並用正向傳播從生成模型中產生樣本。該模型不需要使用近似推理或馬爾可夫鏈。
2、相關工作
帶有潛在變數的有向圖模型的替代方法是具有潛在變數的無向圖模型,如受限玻爾茲曼機(RBMs)[27,16],深度玻爾茲曼機(DBMs)[26]及其眾多變體。這些模型中的相互作用被表示為未歸一化的潛在函式的乘積,通過對隨機變數的所有狀態進行全域性總和/積分來歸一化。這個數量(分配函式)及其梯度對於大部分情況(除了最平凡的例項外)都是難以處理的,雖然它們可以用馬爾可夫鏈蒙特卡洛(MCMC)方法來估計。Mixing是基於MCMC的學習演算法的一個重要問題[3,5]。
深度信賴網路(DBN)[16]是包含單個無向層和多個有向層的混合模型。雖然存在快速近似分層訓練標準,但DBN會產生與無向和有向模型相關的計算困難。
不近似或限制對數似然的替代標準也被提出,如分數匹配[18]和噪聲對比估計(NCE)[13]。這兩個要求學習的概率密度指定達到某個歸一化常數。要注意的是,在許多具有多層潛在變數(如DBN和DBM)的有趣的生成模型中,甚至不可能推匯出易處理的非標準化概率密度。一些模型,例如去噪自動編碼器[30]和收縮自動編碼器,其學習規則與應用於RBM的分數匹配非常相似。在NCE中採用判別性訓練標準來擬合生成模型。然而,生成模型本身不是用一個單獨的判別模型來擬合的,生成模型是用來區分生成的資料與噪聲分佈的。由於NCE使用固定的噪聲分佈,所以在模型已經學習了一小部分觀測變數的近似正確的分佈之後,學習速度就會急劇下降。
最後,一些技術不涉及明確定義的概率分佈,而是訓練一個生成器從所需的分佈中抽取樣本。這種方法的優點是可以通過反向傳播來訓練。在這方面最近的工作突出包括生成亂序網路(GSN)框架[5],它擴充套件了廣義降噪自動編碼器[4]:兩者都可以被看作是定義一個引數化馬爾可夫鏈,即一個學習機器的引數執行生成馬爾可夫鏈的一個步驟。與GSN相比,對抗網路框架不需要馬爾可夫鏈進行抽樣。因為對抗網路在生成過程中不需要反饋迴圈,所以它們能夠更好地利用分段線性單元[19,9,10](這可以提高反向傳播的效能),但是當在反饋環路中使用時會遇到無限啟用的問題。最近一些通過向後傳播來構造生成器的例子包括自動編碼變分貝葉斯[20]和隨機反向傳播[24]方面的工作。
3、對抗網路
當模型都是多層感知器時,對抗建模框架可以被直接使用。為了學習在資料 上的分佈 ,在輸入噪聲變數 上定義一個先驗值,然後將對資料空間的對映表示為 ,其中 是由多層感知器表示的可微分函式。作者還定義了另一個多層感知器 ,輸出一個標量, 表示 來自資料而不是 的概率。然後訓練 以最大化將正確標籤分配給訓練樣本和來自 的樣本的概率,同時訓練 以最小化 。
換言之,
和
用以下的估值函式來玩這個這個two-player minimax game:
在下一節中,作者將對抗網路進行理論分析,表明訓練準則能夠重新生成資料的分佈,因為 和 被給予了足夠的能力,也可以說是非引數的極限。圖1對此方法進行了一個不是很正式的解釋。在實踐中,必須使用迭代的數值方法來實現訓練的過程。 在訓練的內部迴圈中,完全的優化 在計算上是不可行的,並在有限的資料集上會導致過擬合。相反,作者在優化 的 步和優化 的一步之間交替。只要 足夠慢地變化, 就能維持在最佳解決方案附近。 這個策略類似於SML/PCD[31,29]訓練的方式,從一個學習步驟到下一個學習步驟保持馬爾可夫鏈的樣本,為了防止作為學習內迴圈的一部分在馬爾可夫鏈中burning。演算法步驟見演算法1。
演算法1 GAN的minibatch隨機梯度下降訓練,判別器訓練步數 是一個超參。在作者的實驗中 ,是最容易的超參。
for number of training iterations do
for k steps do
從先驗噪聲
中取樣出
個樣本
,
是minibatch的大小
從生成的分佈
中取樣出
個樣本
從生成的分佈
中取樣出
個樣本
使用隨機梯度下降方法更新判別器: