1. 程式人生 > >與判別網路對抗的生成網路 (Generative Adversarial Nets)

與判別網路對抗的生成網路 (Generative Adversarial Nets)

Generative Adversarial Nets (GAN)

主線為 Ian J. Goodfellow 的論文 (“Generative Adversarial Nets”) 內容 1。之前一些人譯為“生成式對抗網路”。但從模型分類 (生成模型和判別模型) 的角度來看,更具體地,改為“與判別網路對抗的生成網路”會比較直觀。

另外,後面的“我們”並不指我,而指“Ian J. Goodfellow”等人~

摘要

通過對抗過程來估計生成模型,該過程中同時訓練兩個模型:生成模型G獲得資料分佈,判別模型D估計訓練資料 (而不是G) 中 1 個樣本的概率。G的訓練過程為最大化D

犯錯的概率。生成模型的估計過程對應一場最小最大的雙人遊戲。任意函式GD的空間中,存在唯一解,此時G可恢復訓練資料的分佈,而D等於12。如果GD定義為多層感知機,那麼整個系統可通過反向傳播來訓練。訓練和樣本生成時不需要任何的 Markov 鏈或展開的近似推理網路。

1. 簡介

人工智慧應用 (諸如自然影象,語音波形和自然語言的語料庫)中會遇到各種各樣的資料,深度學習的前景是發現代表這些資料的概率分佈的豐富的分層模型。目前,深度學習最大的成功是判別模型。判別模型通常將高維的豐富的感官輸入對映為 1 個類標籤。這些成功主要歸功於反向傳播,Dropout 和使梯度表現不錯的分段線性單元。由於許多難解的概率計算 (採用最大似然估計和相關策略) 難以近似和生成上下文中的分段線性單元難以利用,深度生成

模型的影響偏小。我們提出一個新的產生模型的估計過程來回避這些困難。

對抗的網路框架中,生成模型與它的對手對決:判別模型學習去決定某個樣本是否來自模型分佈或資料分佈。生成模型可認為類似一個造假團伙,該團伙試圖製造假幣,但使用前不檢驗。而判別模型類似警察,試圖檢驗假幣。遊戲中的競爭促使雙方改進方法,直到假幣與真幣不可分為止。

該框架可為許多模型和優化方法產生具體的訓練方法。本文中,生成模型通過一個多層感知機傳遞隨機噪聲,且判別模型也是一個多層感知機。這個特例稱為對抗的網路。這裡,僅用反向傳播和 Dropout 來訓練模型,生成模型通過前向傳播來生成樣本。不需要近似推理和 Markov 鏈。

2. 相關工作

直到最近,大多數深度生成模型的工作集中於為模型的概率分佈函式指定引數。然後可最大化對數似然來訓練模型。這類模型中最成功的可能是深度 Boltzmann 機。它們一般有難解的似然函式,因此要求對似然梯度的大量近似。這些困難推動了“生成機”的發展——不用顯式表示似然的模型仍能從期望的分佈中生成樣本。隨機的生成網路正是一個用反向傳播訓練 (而不是 Boltzmann 機要求的大量近似) 的生成機。該工作進一步消除了用於隨機的生成網路的 Markov 鏈。

注:“大量近似”的原文為 numerous approximations,“數值近似”的英文為 numerical approximation。不知為何想起了這個~

利用如下觀測的生成過程來反向傳播梯度:

limδ0xEϵN(0,δ2I)f(x+ϵ)=xf(x)

我們開展工作的同時,Kingma,Welling 和 Rezende 等人提出更一般的隨機反向傳播規則,允許通過有限方差的高斯分佈來反向傳播,且對方差和均值反向傳播。這些反向傳播規則可學到生成器的條件方差 (條件方差視為我們工作的超引數) 。Kingma,Welling 和 Rezende 等人用隨機反向傳播來訓練變分自編碼器 (VAEs)。與對抗的生成網路相似,變分自編碼器為可微分的生成網路配對第2個網路。與對抗的生成網路不同的是,VAE 中的第2個網路是一個使用近似推理的識別模型。GANs 要求對可見單元微分,故不能對離散資料建模。而 VAEs 要求對隱含單元微分,因而不能對離散的潛在變數建模。存在其它類似 VAE 的方法,但與我們的方法更不相關。

以前有工作用判別標準來訓練生成模型。這些方式的標準難以用於深度生成模型上。這些方法難以近似深度模型,因為用變分近似無法近似深度模型所涉及的概率的下界。當模型用於從固定的噪聲分佈中區分資料時,噪聲對比估計 (NCE) 通過學習該模型的權重來訓練生成模型。用之前訓練好的模型作為噪聲分佈,提高了訓練一系列模型的質量。NCE 是本質上與對抗的網路遊戲中的正式競爭相似的一種非正式競爭機制。NCE 關鍵的侷限為它的“判別器”是由噪聲分佈和模型分佈的概率密度比重來定義,從而要求評估和反向傳播兩個概率密度。

一些以前的工作已用到兩個網路競爭的一般概念。最相關的工作為可預見性最小化。其中,一個訓練好的神經網路中的每個隱含單元與第2個網路的輸出不同。給定所有其它隱含單元的值,第2個網路的輸出可預測該隱含單元的數值。本文的工作與可預測性最小化有3處重要的不同:1) 本文工作中,網路間的競爭是唯一的訓練標準,足以訓練網路。可預測性最小化僅是鼓勵神經網路中隱含單元在完成其它任務的同時,統計上也相互獨立的一個正則項;競爭並不是主要的訓練標準。2) 競爭的本質不同。可預測性最小化中,兩個網路的輸出相互比較,一個網路試圖使輸出相似,而另一個網路試圖使輸出不同;輸出為標量。GANs 中,一個網路生成一個豐富的高維向量來作為另一個網路的輸入,並嘗試選擇使另一個網路不知如何判別的向量為輸入。3) 學習過程不同。可預測性最小化被描述為一個最小化目標函式的優化問題,學習去逼近目標函式的最小值。GANs 基於最大最小遊戲,而不是一個優化問題,且一個 Agent 尋求最大化值函式,另一個 Agent 尋求最小化值函式。遊戲在鞍點處終止,此處是關於一個 Agent 的策略的最小值,和關於另一個 Agent 的策略的最大值。

對抗的生成網路有時曾與“對抗的例項”相混淆。對抗的例項是指為找出與誤分類的資料相似的例項,通過在分類網路的輸入上直接基於梯度優化,來獲得的例項。對抗的例項與當前工作是不同的,因為對抗的例項不是一個生成模型的訓練機制。相反,對抗的例項主要是顯示網路行為異常 (經常以高置信度將兩幅影象分為不同類,儘管兩幅影象對人來說是同類) 的分析工具。對抗的例項的存在確實表明訓練對抗的生成網路可能效率低,因為對抗的例項表明,在不模仿某類的人類感知屬性時,使目前的判別網路自信地識別該類是可能的。

3. 對抗的網路

當模型都為多層感知機時,可非常直接地應用對抗的模型框架。已知資料x,為學習產生器的概率分佈pg,定義輸入噪聲變數pz(z)的先驗,然後表示資料空間的對映為G(z;θg),其中G為一個用引數θg的多層感知機表示的可微函式。同時定義第 2 個輸出為單個標量的多層感知機D(x;θd)D(x)為來自資料 (而不是pg)的x的概率。訓練D來最大化為訓練例項和來自G的生成樣本分配正確標籤的概率;同時,訓練G來最小化log(1D(G(z)))。換句話說,DG根據值函式V(G,D)來進行雙人的最小最大遊戲:

minGmaxDV(G,D)=Expdata(x)[logD(x)]+Ezpz(z)[log(1D(G(z)))](1)

對抗的網路的理論分析本質上證明,效能足夠好時 (即無引數限制) ,訓練標準可恢復生成資料的分佈來作為GD。下圖為該方法非正式的卻更直觀的解釋。

訓練對抗的生成網路時,同時更新判別分佈 (D,藍色虛線) 使D能區分資料生成分佈 (黑色虛線) 中的樣本和生成分佈pg (G,綠色實線) 中的樣本。下面的水平線為均勻取樣z的區間,上面的水平線為x的部分割槽間。朝上的箭頭顯示對映x=G(z)如何在轉換後的樣本上新增非均勻分佈pgGpg高密度區域收縮,且在pg的低密度區域擴散。
(a) 考慮一個接近收斂的對抗的模型對:pgpd