生成模型與判别模型
判别模型:由資料直接學習決策函數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将在一定程度上擺脫對大量資料樣本的依賴,因為GAN能夠去學習生成與真實樣本很像的假的樣本,這些假樣本連分類器都難以很好的區分真假,進而在一定程度上彌補了深度學習模型對樣本的依賴。
如上圖,左邊是真實的mnist資料集中的手寫數字,右邊是用GAN的生成器G生成的手寫數字,兩邊數字如果混在一起的話,一般人根本分不清誰真誰假。
GAN的工作原理
工作原理
GAN主要是由一個生成器G(Generator)和一個判别器D(Discriminator)組成。生成器去生成假樣本,而判别器則去分辨這個生成的樣本是真實的樣本還是生成的假樣本。生成器的任務是提高作假能力去生成逼真的樣本使判别器分辨不出真假,而判别器的任務則是提高分辨能力去分辨樣本的真假。
GAN的一個形象比喻:用一個形象的比喻來說,生成器就像一個作假畫的人,判别器就像一個警察。作假畫的人想要做出假畫讓警察查不出來,于是他就要學習不斷提高他的作假能力,而警察為了打假,不斷去提高他的分辨假畫的能力。兩者不斷對抗博弈,直到作假畫的人成功騙過警察,警察再也分辨不出畫的真假。
生成器
對于生成器,輸入需要一個n次元向量,輸出為圖檔像素大小的圖檔。因而首先我們需要得到輸入的向量。輸入向量一般隻需服從某一分布即可(一般用高斯分布),且向量的長度不宜太小。
判别器
判别器就類似于一般深度學習中使用的分類器,如CNN,來分辨真僞。
訓練過程
如下圖:
黑色虛線表示真實樣本分布,綠色實線表示生成器生成的資料分布,藍色虛線表示判别器
(a)一開始的時候,生成器生成的資料并不很像真實資料,判别器能夠大緻分出真僞,但分的不好
(b)生成器不動,判别器訓練若幹次之後,判别器能夠較好的分别真僞
(c)判别器不動,生成器經過訓練之後,生成的樣本更加貼近真實樣本
(d)經過上面b、c步驟的循環訓練,最終生成器非常貼近真實資料,判别器已經無法分辨真僞
GAN中訓練優化的目标函數如下
公式中,先固定生成器不變,訓練得到使誤差最大的判别器(因為判别器的任務就是使誤差最大以便分辨真假),然後再固定判别器不變,訓練得到使誤差最小的生成器(因為生成器的任務就是減小誤差達到難以分辨)
論文中給出的訓練過程如下