1 原理
對于生成對抗網絡GAN,一個簡單的理解是可以將其看做博弈的過程,我們可以將生成模型和判別模型看作博弈的雙方,比如在犯罪分子造假幣和警察識別假幣的過程中:
-
生成模型G相當于制造假幣的一方,其目的是根據看到的錢幣情況和警察的識別技術,去盡量生成更加真實的、警察識別不出的假幣。
-
判別模型D相當于識別假幣的一方,其目的是盡可能的識別出犯罪分子制造的假幣。 這樣通過造假者和識假者雙方的較量和朝目的的改進,使得最后能達到生成模型能盡可能真的錢幣、識假者判斷不出真假的納什均衡效果(真假幣概率都為0.5)。
2 訓練
生成器G的目標是欺騙鑒別器D,其目標是能夠區分真實數據和生成數據。因此,在訓練生成器時,我們希望誤差最大化,同時我們想要使鑒別器的誤差最小化。
2.1 判別模型
目標函數是:
其中D(x)是判別模型的輸出結果,是一個0-1范圍內的實數值,用來判斷圖片是真實圖片的概率,其中Pr和Pg分別代表真實圖像的分布與生成圖像的數據分布情況,可以看出目標函數是找到使得后面兩個式子之和最大的判別模型函數D(z),后面兩個式子是一個加和形式,其中:
是指使得真實數據放入到判別模型D(x)輸出的計算值和整個式子值盡可能大。
指使得造假數據放入到判別模型D(x)輸出的計算值盡可能小和整個式子值盡可能大。
這樣整合下來就是使得目標函數盡可能大,因此在訓練時就可以根據目標函數進行梯度提升。
2.2 生成模型
目標是讓判別模型無法區分真實圖片和生成圖片,其目標函數是:
也就是找到生成函數g(z)使得生成模型的目標函數盡量小。