生成判別對抗網絡

最近的一篇Wasserstein GAN火遍朋友圈,相關的文章也拿來讀一讀,趕個時髦

簡介

文章用博弈論,令生成模型和判別模型的相愛相殺後,得到與訓練數據分佈儘可能接近的生成模型,一個扮演打假者,一個扮演造假者,前者試圖在真貨與假貨中辨別哪個樣本是假貨(生成的),哪個是真貨(真實樣本),後者不斷提高自己的製假水平,不讓前者辨別出來

文章全名:Generative Adversarial Nets

這是生成對抗網絡的開山之作,發表之後,無數相關論文雪花般飄落

訓練目標與過程

判別模型可以認爲就是一般的二分類模型,分辨真僞,因此,當生成模型一定時,最優值即爲下式

分子爲真實數據,分母的右側爲生成模型造出的數據

生成模型要使得差別模型儘可能無法識別,因此目標函數同時包含二者的成分,即最小化下式

或最大化

所以,綜合目標爲

訓練過程分爲兩步:

1、訓練判別模型,迭代k次

2、訓練生成模型,只迭代1次

兩個模型都是神經網絡,對數據的分佈不作假設,因此極易過擬合,所以兩個步驟的訓練都採用了不充分的訓練,特別是生成模型,儘量讓擬合速度慢下來,擬合的過程如下圖:

黑點代表訓練數據分佈,藍色是判別界面,綠色是生成數據分佈。如(a)所示,一開始兩個模型都是離各自目標比較遠的,在(b)中,判別模型首先發力,取得了更爲清晰的判別面,在(c)中,生成模型與之對抗,生成模型與訓練數據越來越像,最後,如(d),生成數據分佈與訓練數據完全重合,判別模型的預測結果是50%-50%,完全不能區分。

具體的訓練過程:

效果示例

四組示例的最右邊一列,是臨近的左側的生成圖片的最接近實際樣本,所有數據均是隨機給出,並非精心挑選

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章