1.介紹
本文基本從《Generative Adversarial Nets》翻譯總結的。
GAN(Generative Adversarial Nets),生成式對抗網絡。包含兩個模型,一個生成模型G,用來捕捉資料分布,一個識别模型D,用來評估采樣是來自于訓練資料而不是G的可能性。
這兩個模型G與D是競争關系、敵對關系。比如生成模型G就像是在制造假的貨币,而識别模型D就像是警察,嘗試檢測這些假币。這兩個模型間的競争,使它們都在不斷完善自己,直到假币和真币無法區分為止。
本論文的例子,訓練兩個模型時僅使用了反向傳播和dropout 算法,在從生成模型中采樣時,隻使用的前向傳播。近似推理或者Markov chain是不必要的。
2.相關方法
(1)定向圖模型與非定向圖模型,比如限制玻爾茲曼機(RBMs)、深度玻爾茲曼機(DBMs)、以及相關變體。這些模型使用了歸一化處理,針對随機參數的所有狀态。這些歸一化比例函數以及他們的梯度是很難計算的,雖然可以采用Markov chain Monte Carlo(MCMC)方法進行估計。
(2)DBNs(Deep belief networks) 是組合模型,包括一個非定向層和一堆定向層。當一個快速近似逐層訓練存在時,DBNs在集合非定向與定向模型時也會面臨計算困難的問題。
(3)生成随機網絡GSN, 使用了Markov chain。而GAN不需要Markov chain,因為在生成時,不需要反向傳播。
3.對抗網絡
p(z):帶有噪聲的輸入;
G(z,θ):一個可微分的函數,帶參數θ的多層感覺機;
D(x):代表x是來自于data還是來自于生成函數的機率。
整體訓練函數如下,最大化D,同時針對G來最小化log(1-D(G(z))):
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBnLxMjM3MTOzIjMyIzMwAjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
算法如下:
3.1命題1
如果G固定,最佳的D如下:
證明如下:
3.2定理1
C(G)=max V(G,D)。
隻有生成資料的分布函數p和原資料data的分布函數p相等時,C(G)訓練完成,其值等于-log4.
3.3算法的收斂
生成資料的分布函數p收斂于原資料data的分布函數p。
實際上,生成網絡隻有有限的生成資料分布函數P,因為函數G(z,θ)的存在,我們最終是最優化θ,而不用最優化生成資料分布函數P。
4.實驗結果
使用Parzen窗估計,應用于G産生的樣例。
核密度估計(kernel density estimation)是在機率論中用來估計未知的密度函數,屬于非參數檢驗方法之一,由Rosenblatt (1955)和Emanuel Parzen(1962)提出,又名Parzen窗(Parzen window)。
生成的示例,比如下圖最右側的圖檔是生成網絡生成的。
5.總結
1.可以用于半監督學習,比如在标簽資料較少時,識别器或者推理網絡獲得的特征可以改善分類效果。
2.訓練效率提升,知道了G和D可以有效提升訓練速度。