說說GAN(生成式對抗網絡)


Auto-encoder中,input data通過一個encoder神經網絡得到一個維度的較低的向量,稱這個向量為code,code經過一個decoder神經網絡后輸出一個output data。
encoder 網絡的作用是用來發現給定數據的壓縮表示。decoder網絡使原始輸入的盡可能地相同的重建的表示。在訓練時,decoder 強迫 auto-encoder選擇最有信息量的特征,最終保存在code中。重建的輸入越靠近原始輸入,最終得到的表示越好。
通過得到的encoder和decoder可以做很多事情。例如,可以通過encoder網絡來對原始數據降維和自動抽取特征。我們也可以隨機生成的很多code(低維向量)經過decoder網絡來得到很多隨機生成的數據。如圖:

對於生成數據這個任務來說,比Auto-encoder更擅長的是VAE(Variational Auto-Encoding ),VAE在Auto-encoder框架加入了噪聲影響,同時加入了類似正則的約束。但是VAE存在的問題是VAE並不是真正的生成數據,而是生成一個和和訓練樣本最接近的數據。例如在訓練過程中:
output1:output2:
由於output1和output2都只變化了一個像素,VAE會認為output1和output2的損失是一樣的,但實際上output1比output2更像7。

GAN(Generative Adversarial Net)

GAN中有一個generator和discriminator。discriminator負責判斷是真實數據還是生成的數據,generator負責生成數據它的目標是生成的數據能夠騙過discriminator。

generator和discriminator是一種競爭和對抗的關系。
極小極大博弈問題:

\[\underset{G}{min} \: \underset{D}{max}V(D,G) =E_{x\sim p_{data}(x)}[logD(x)]+E_{z\sim p_{z}(z)}[log(1-D(G(z)))] \]

GAN的算法流程:

交替更新discriminator和generator,最終當\(P_{g}\)收斂到真實分布\(P_{data}\)時,達到均衡。
理論推導可以參考這里


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM