GAN入門理解及公式推導
首先,當我們拿到一個嶄新的網路的時候,先不管它到底是什麼,作為一個黑盒來研究研究它的外觀。
GAN:生成對抗網路
輸入:原始數據x和隨機雜訊信號z (比如高斯分布或者均勻分布)
輸出:一個概率值或一個標量值。 首先舉個簡單例子好個初始的印象:警察與造假幣者造假者按照真實錢幣的樣子來造假,警察來分辨遇到的錢幣是真還是假。最初的時候,造假者的造假能力不高,所以警察可以很容易的分辨出來。當被識別出來的時候,造假者就會繼續修鍊自己的技藝。
與此同時 警察的分辨能力也要相應提高。這樣的過程就是一種生成對抗的過程。對抗到最後,造假者已經能夠創造出可以以假亂真的錢幣,警察難以區分真假。
所以猜對的概率變成0.5。最後得到的造假者 已經是一個可以很好的刻畫錢幣的人,他掌握了錢幣的各種特徵,他也就是我們希望得到的生成器。
---------------------------------------------------------------------------------------
好,接下來開始研究一下黑盒內部,GAN的組成和工作原理。
生成對抗網路GAN,就是在這種對抗與生成的交替進行中對原數據進行刻畫的。
GANGAN啟發自博弈論中的二人零和博弈[1](此為註解,不理解的讀者可以跳到最後查看解答)是由Ian Goodfellow 於2014年開創性的提出。GAN是由兩部分主成:生成模型G(generative model)和判別模型D(discriminative model)。生成模型捕捉樣本數據的分布,判別模型是一個二分類器,判別輸入是真實數據還是生成的樣本。
X是真實數據,真實數據符合Pdata(x)分布。z是雜訊數據,雜訊數據符合Pz(z)分布,比如高斯分布或者均勻分布。然後從雜訊z進行抽樣,通過G之後生成數據x=G(z)。然後真實數據與生成數據一起送入分類器D,後面接一個sigmoid函數,輸出判定類別。
這裡,z是雜訊數據,從z中採樣作為x,形成綠色的高聳的部分,原始數據Xdata是不變的。藍色虛線是分類器(sigmoid),黑色虛線是原始數據,綠色實線是生成數據。最初的時候D可以很好的區分開真實數據和生成數據,看圖(b),對於藍色虛線而言,單純的綠色部分可以很明確的劃分為0,黑色虛線的部分可以很明確的劃分成1,二者相交的部分劃分不是很明確。看圖(c)綠色實現生成數據更新,與原始數據相似度增加。最後一張圖,經過多次更新與對抗生成之後,生成數據已經和原始數據非常相像的了,這時分類器已經無法判斷到底是輸出1還是0,於是就變成了0.5一條水平線。
這張圖形象的說明了一下G和D的優化方向。優化D的時候需要很好的畫出黑色虛線,使它能夠區分開真實數據和生成數據。優化G的時候,生成數據更加接近原始數據的樣子,使得D難以區分數據真假。如此反覆直到最後再也畫不出區分的黑色虛線。
主要特點和應用場景
(1)GAN可以用來產生data。
(2)根據GAN的組成結構我們可以知道,GAN 整個的過程就是,G產生一個自創的假數據和真數據放在一起讓D來區分,在這種不停的較量中G就模擬出來了跟真實數據十分相近的數據。所以GAN主要的應用場景就是能夠學習出這樣模擬分布的數據,並且可以用模擬分布代替原始數據的地方!
---------------------------------------------------------------------------------------
GAN優化目標函數:
D想辦法增加V的值,G想辦法減小V的值,兩人在相互的對抗。
下面講這個式子的數學意義。
首先固定G訓練D :
1)訓練D的目的是希望這個式子的值越大越好。真實數據希望被D分成1,生成數據希望被分成0。
第一項,如果有一個真實數據被分錯,那麼log(D(x))<<0,期望會變成負無窮大。
第二項,如果被分錯成1的話,第二項也會是負無窮大。
很多被分錯的話,就會出現很多負無窮,那樣可以優化的空間還有很多。可以修正參數,使V的數值增大。
2)訓練G ,它是希望V的值越小越好,讓D分不開真假數據。
因為目標函數的第一項不包含G,是常數,所以可以直接忽略 不受影響。
對於G來說 它希望D在劃分他的時候能夠越大越好,他希望被D劃分1(真實數據)。
第二個式子和第一個式子等價。在訓練的時候,第二個式子訓練效果比較好 常用第二個式子的形式。
證明V是可以收斂導最佳解的。
(1)global optimum 存在
(2)global optimum訓練過程收斂
全局優化首先固定G優化D,D的最佳情況為:
1、證明D*G(x)是最優解
由於V是連續的所以可以寫成積分的形式來表示期望:
通過假設x=G(z)可逆進行了變數替換,整理式子後得到:
然後對V(G,D)進行最大化:對D進行優化令V取最大
取極值,對V進行求導並令導數等於0.求解出來可得D的最佳解D*G(x)結果一樣。
2、假設我們已經知道D*G(x)是最佳解了,這種情況下G想要得到最佳解的情況是:G產生出來的分布要和真實分布一致,即:
在這個條件下,D*G(x)=1/2。
接下來看G的最優解是什麼,因為D的這時已經找到最優解了,所以只需要調整G ,令
對於D的最優解我們已經知道了,D*G(x),可以直接把它帶進來 並去掉前面的Max
然後對 log裡面的式子分子分母都同除以2,分母不動,兩個分子在log裡面除以2 相當於在log外面 -log(4) 可以直接提出來:
結果可以整理成兩個KL散度-log(4)
KL散度是大於等於零的,所以C的最小值是 -log(4)
當且僅當
即
所以證明了 當G產生的數據和真實數據是一樣的時候,C取得最小值也就是最佳解。
證明收斂:
核心部分偽代碼描述:
For number of training steps Sample n training images, X Compute n generated images, GCompute discriminator probabilities for X and G
Label training images 1 and generated images 0 Cost = (1/n)sum[log(D(X)) + log(1 - D(G))] Update discriminator weights, hold generator weights constant Label generated images 1 Cost = (1/n)sum[log(D(G))] Update generator weights, hold discriminator weights constant---------------------------------------------------------------------------------------
Further Research:DCGAN和Adversrial Autoencoders
---------------------------------------------------------------------------------------
[1] 零和博弈(zero-sum game),又稱零和遊戲,與非零和博弈相對,是博弈論的一個概念,屬非合作博弈。指參與博弈的各方,在嚴格競爭下,一方的收益必然意味著另一方的損失,博弈各方的收益和損失相加總和永遠為「零」,雙方不存在合作的可能。就像下棋的遊戲一樣,你走的每一步和對方走的每一步都是向著對自己有利的方向走,然後你和對手輪流走步
每一步都向著自己最大可能能贏的地方走。這就是零和博弈。Vs代表S能贏的可能性,S是當前棋手,S-是對方,aS是當前棋手可以做的選擇,aS-是對方可做的選擇。對於S來講V越大越容易贏。
=============================================================
參考資料:
(1)文章:2014 GAN 《Generative Adversarial Networks》-Ian Goodfellow, arXiv:1406.2661v1視頻:https://www.youtube.com/watch?v=7zXDGuW0Eq4
slides:https://www.slideshare.net/ckmarkohchang/generative-adversarial-networks
blog:http://blog.csdn.net/solomon1558/article/details/52537114
http://www.cnblogs.com/Charles-Wan/p/6238033.html http://www.cnblogs.com/wangxiaocvpr/p/6069026.html (2)DCGAN:文章:2015 DCGAN《Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks》 - Alec Radford & Luke Metz, arxiv:1511.06434代碼:https://github.com/kkihara/GAN
post:http://kenkihara.com/projects/GAN.html
slides:https://github.com/kkihara/GAN/blob/master/presentation.pdf
推薦閱讀:
※第一個永生的人類可能已經誕生
※請簽收,這是你的2018新年禮物!
※AI相關概念辨析
※美國用人臉識別防範恐襲
※十年後AI會成就怎樣的新零售?連阿里首席科學家都無法想像
TAG:生成对抗网络GAN | 深度学习DeepLearning | 人工智能 |