對抗生成網路(GAN)學習筆記

2021-08-15 19:33:49 字數 1968 閱讀 7930

判別模型:由資料直接學習決策函式y=f(x)或條件概率分布p(y|x)作為**模型,即判別模型。判別方法關心的是對於給定的輸入x,應該**什麼樣的輸出y。

生成模型:由資料學習聯合概率分布p(x,y), 然後由p(y|x)=p(x,y)/p(x)求出概率分布p(y|x)作為**的模型。該方法表示了給定輸入x與產生輸出y的生成關係。

如lr,svm等均值直接根據輸入樣本的特徵x來判斷得出結果y。而樸素貝葉斯則是借助聯合分布來判斷樣本的類別,p(y|x)=p(x,y)/p(x)

判別模型與生成模型的比較

1、生成模型可以轉化為判別模型,但判別模型不能轉化為生成模型。

2、生成模型收斂速度比較快,當樣本數量較多時,生成模型能更快。地收斂於真實模型。

3、判別模型比較節省計算資源,需要的樣本數量也少於生成模型。

目前在做深度學習中,大部分是使用對樣本數量比較依賴的監督學習。而實際中,很難在每一方面都能找到大量的資料樣本用於監督學習模型的訓練。而gan將在一定程度上擺脫對大量資料樣本的依賴,因為gan能夠去學習生成與真實樣本很像的假的樣本,這些假樣本連分類器都難以很好的區分真假,從而在一定程度上彌補了深度學習模型對樣本的依賴。

如上圖,左邊是真實的mnist資料集中的手寫數字,右邊是用gan的生成器g生成的手寫數字,兩邊數字如果混在一起的話,一般人根本分不清誰真誰假。

gan主要是由乙個生成器g(generator)和乙個判別器d(discriminator)組成。生成器去生成假樣本,而判別器則去分辨這個生成的樣本是真實的樣本還是生成的假樣本。生成器的任務是提高作假能力去生成逼真的樣本使判別器分辨不出真假,而判別器的任務則是提高分辨能力去分辨樣本的真假。

gan的乙個形象比喻:用乙個形象的比喻來說,生成器就像乙個作假畫的人,判別器就像乙個警察。作假畫的人想要做出假畫讓警察查不出來,於是他就要學習不斷提高他的作假能力,而警察為了打假,不斷去提高他的分辨假畫的能力。兩者不斷對抗博弈,直到作假畫的人成功騙過警察,警察再也分辨不出畫的真假。

生成器

對於生成器,輸入需要乙個n維度向量,輸出為畫素大小的。因而首先我們需要得到輸入的向量。輸入向量一般只需服從某一分布即可(一般用高斯分布),且向量的長度不宜太小。

判別器

判別器就類似於一般深度學習中使用的分類器,如cnn,來分辨真偽。

如下圖:

黑色虛線表示真實樣本分佈,綠色實線表示生成器生成的資料分布,藍色虛線表示判別器

(a)一開始的時候,生成器生成的資料並不很像真實資料,判別器能夠大致分出真偽,但分的不好

(b)生成器不動,判別器訓練若干次之後,判別器能夠較好的分別真偽

(c)判別器不動,生成器經過訓練之後,生成的樣本更加貼近真實樣本

(d)經過上面b、c步驟的迴圈訓練,最終生成器非常貼近真實資料,判別器已經無法分辨真偽

gan中訓練優化的目標函式如下

公式中,先固定生成器不變,訓練得到使誤差最大的判別器(因為判別器的任務就是使誤差最大以便分辨真假),然後再固定判別器不變,訓練得到使誤差最小的生成器(因為生成器的任務就是減小誤差達到難以分辨)

**中給出的訓練過程如下

GAN對抗生成網路

網上看了很多教程結合自己理解整合了一下。原文 看了很多篇中通俗易懂的。判別模型 比作乙個二分類器 如同0 1分類器 來判斷輸入的樣本是真是假。就是輸出值大於0.5還是小於0.5 比如上面的這個圖,我們有的只是真實採集而來的人臉樣本資料集,僅此而已,而且很關鍵的一點是我們連人臉資料集的類標籤都沒有,也...

GAN學習筆記 生成對抗網路

看了ian大神的 學習一下gan。一 基本介紹 生成對抗網路由兩部分組成 generatative model 和 discriminative model,以下分別簡稱為g 和 d。在gan中,訓練集是無標籤資料集data,g接受資料z,產生g z 而d判定g產生的資料是來自於真實資料data還是...

GAN 生成對抗網路

原理 假設我們有兩個網路 乙個生g generator 乙個判別d discriminator g是乙個生成的的網路,它接受乙個隨機的雜訊z,通過這個雜訊生成,記做g z d是乙個判別網路,判斷一張是不是 真實的 它的輸入引數是x,x代表一張的。輸出d x 代表x為真實的概率,如果為1,就代表100...