深入理解GANs 生成對抗網路

2021-09-29 01:34:30 字數 2962 閱讀 9125

本文與前文vae出自同一作者,在此筆者進行翻譯總結。

生成隨機變數

從生成隨機變數開始討論,均勻分布變數可以通過偽隨機數過程生成。生成隨機變數的方法有很多,比如拒絕取樣,metropolis-hasting algorithm和逆變換放法。逆變換法的思想就是均勻分布的變數通過累積分布概率(cdf)的逆函式得到新的分布。下圖為通過逆變換法使用均勻分布得到高斯分布:藍色:[0,1]上的均勻分布。橙色:標準高斯分布。灰色:從均勻分布到高斯分布的對映。

生成模型

如果我們有一張狗的長方形,用向量表示就是n(n*n)維的向量,然後,生成新的狗影象的問題等價於在n維向量空間上生成乙個服從「狗概率分布」的新向量的問題。因此,事實上,我們面臨著乙個關於特定概率分布的隨機變數的生成問題。那麼會有兩個問題存在:1.狗的影象的分布是很複雜的;2.即使有這樣的分布存在,我們也無法顯式或者生成這個分布。

當我們試圖生成新的狗影象時,首先要解決的問題是,n維向量空間上的「狗概率分布」是乙個非常複雜的問題,我們不知道如何直接生成複雜的隨機變數。然而,由於我們知道如何生成n個不相關的均勻隨機變數,所以可以利用變換方法。為此,我們需要將n維隨機變數通過簡單n維隨機變數生成。

在這裡,我們可以強調這樣乙個事實,即找出變換函式並不像我們描述反變換方法時那樣簡單,只取累積分布函式的封閉形式的反式(我們顯然不知道)。所以轉換函式很複雜,那麼自然而然想到使用神經網路來學習這個轉換函式。用神經網路對變換函式進行建模,該神經網路以乙個簡單的n維均勻隨機變數作為輸入,並作為輸出返回另乙個n維隨機變數,訓練後應遵循正確的「狗概率分布」。

生成匹配網路

定義好了網路及網路的輸出和輸入形式,接下來考慮的就是如何訓練這個網路。為此,我們可以提出兩種不同的訓練方法:直接訓練和間接訓練。直接訓練方法是比較真實概率分布和生成概率分布,並通過網路反向傳播差異(誤差)。這就是生成匹配網路(gmns)的思想。對於間接訓練方法,我們不直接比較真實分布和生成分布。相反,我們通過讓這兩個分布通過選擇乙個下游任務來訓練生成網路,這樣生成網路相對於下游任務的優化過程將強制生成的分布接近真實分布。後者方法就是我們熟悉的gans。

1.直接方法 

生成均勻概率分布的輸入;

將輸入通過網路生成輸出;

比較真實「狗概率分布」和基於現有樣本生成的「狗概率分布」(mmd距離);

使用反向傳播使梯度下降一步,以降低真分布和生成分布之間的距離。

2.間接方法

間接方法的思想是使用下游任務優化生成分布,這個方法的好處在與:規則是由乙個間接的比較來取代的。對該任務執行生成網路的訓練,使得其迫使生成的分布變得更接近並且更接近真實分布。gans使用乙個判別模型作為下游任務;所以,在gan架構中,我們有乙個鑑別器,它採集真實資料和生成資料的樣本,並盡可能地對它們進行分類,還有乙個生成器,它被訓練以盡可能地欺騙鑑別器。

我們需要得到乙個完美的判別器:判別器確切地知道什麼是真實的和生成的分布,並且能夠根據這些資訊**任何給定點的類(「真」或「生成」)。構建乙個判別器是很複雜的,而且得到乙個完美的判別看來也不是一件簡單的事,但是直接方法中比較兩種基於樣本的概率分布同樣是複雜的,而間接方法中的完美判別器是可以通過資料中學習學到的。

生成對抗網路

現在我們來描述gans體系結構中的生成器和鑑別器的特定形式。生成器是一種神經網路,它對變換函式進行建模。它以乙個簡單的隨機變數作為輸入,必須在經過訓練後返回乙個符合目標分布的隨機變數。由於它的複雜性和未知性,我們決定用另一種神經網路對判別器進行建模。這種神經網路建立了乙個判別函式。它以乙個點作為輸入(在我們的狗例子中,乙個n維向量),並將這個點的概率作為輸出返回為「真」點。

定義完網路的細節,就可以對兩個網路以下面兩個相反的目標進行聯合訓練:

生成器的目標是欺騙判別器,因此對生成神經網路進行訓練,使最終的分類誤差最大化(在真實資料和生成資料之間)。

判別器的目標是檢測假資料,因此對判別神經網路進行訓練,以最小化最終的分類誤差。

這些相反的目標和這兩個網路隱含的對抗性訓練概念解釋了「對抗網路」的名稱:兩個網路都試圖相互擊敗,這樣做,它們都變得越來越好。它們之間的競爭使這兩個網路在各自的目標方面取得了「進步」。從博弈論的角度來看,我們可以把這個設定看作乙個極小極大的兩人博弈,其中平衡狀態對應於這樣的情況,即發生器產生的資料來自精確的目標分布,而判別器**它接收到的任何點的「真」或「生成」的概率為1/2。

數學推導

gans原文的數學推導:

該文提出了一種與原**不同的數學解釋,也更加符合上面的直覺,主要的不同是從絕對誤差而不是交叉熵角度考慮。

總結

1.計算機基本上可以生成簡單的偽隨機變數(例如,它們可以生成非常接近均勻分布的變數)。

2.產生更複雜的隨機變數有不同的方法,包括「變換方法」的概念,即將乙個隨機變數表示為某個簡單隨機變數的函式。

3.在機器學習中,生成模型試圖從給定的(複雜)概率分布中生成資料。

4.深度學習生成模型被建模為神經網路(非常複雜的函式),其作為輸入簡單的隨機變數並且返回跟隨目標分布的隨機變數(「變換方法」)。

5.這些生成網路可以「直接」訓練(通過將生成的資料的分布與真實的分布進行比較):這就是生成匹配網路的思想。

6.這些生成網路也可以被「間接地」訓練(試圖欺騙同時被訓練以區分「生成」資料和「真實」資料的另乙個網路):這就是生成對抗性網路的概念。

小說生成對抗網路GANs

1.前言 機器學習可以分為兩類模型,一種是判別模型 discrimination model 給定乙個輸入,通過模型判別輸入的類別。另一種是生成模型 generative model 給定輸入,通過模型從而逼近資料的原始概率分布。目前,比較有名的生成模型有 deep rbm 和 vae 然而,不管是...

半監督生成對抗網路 生成對抗網路

一 生成對抗網路相關概念 一 生成模型在概率統計理論中,生成模型是指能夠在給定某些隱含引數的條件下,隨機生成觀測資料的模型,它給觀測值和標註資料序列指定乙個聯合概率分布。在機器學習中,生成模型可以用來直接對資料建模,也可以用來建立變數間的條件概率分布。通常可以分為兩個型別,一種是可以完全表示出資料確...

生成對抗網路

我們提出乙個框架來通過對抗方式評估生成模型,我們同時訓練兩個模型 乙個生成模型g捕捉資料分布,乙個鑑別模型d估計乙個樣本來自於訓練資料而不是g的概率。g的訓練過程是最大化d犯錯的概率。這個框架與minmax兩個玩家的遊戲相對應。在任意函式g和d的空間存在乙個唯一解,g恢復訓練資料的分布,d等於1 2...