1.基本原理(此處以生成為例進行說明)
假設有2個網格,g(generator)和d(discriminator),功能分別是:
g:生成的網格 接收乙個隨機的雜訊z,通過這個雜訊生成,記作g(z);
d:判別網格,判別一張是不是「真實的」
它的輸入引數是x,x代表一張,輸出d(x)代表x真實的概率;
若為1,代表100%是真實的,若為0,代表不可能是真實的。
2.在訓練過程中,**生成網路g的目標是**盡量生成真實的去欺騙判別網格d;
**d的目標是**盡量把g生成的和真是分別開來。
這樣,g和d就構成了乙個動態的「博弈過程」。
3.最理想的結果:g可以生成足以「以假亂真」的g(z);d滿意判定g生成的究竟是不是真實的。d(g(z))=0.5。這樣我們的目的就達成了:得到乙個生成式的模型g,可以用來生成。
4.數學公式:見arxiv.org/abs/1406.2661.gan第一篇*****:lan goodfellow的generative adversarial networks
5.演算法:用隨機梯度下降法訓練d,g。具體也在上述文章裡。
6.dcgan原理介紹:
深度學習中對影象處理應用最好的模型是cnn,如何江cnn和gan結合?答案就是dcgan.
其原理和gan一樣。只是把上述g和d換成了兩個卷積神經網路cnn。但不是直接換就可以了,它對於卷積神經網路的結構做了一些改變,以提高樣本的質量和收斂的速度。這些改變有:
a.取消pooling層。g網路中使用轉置卷積進行上取樣,d網路中用加入stride的卷積代替pooling。
b.在d,g中均使用batch normalization
c.去掉fc層,使網路變成全卷積網路
d.g網路中使用relu作為啟用函式,最後一層手那個用tanh
e.d網路中使用leakyrelu作為啟用函式
生成對抗網路(一)GAN
最近在研究深度學習相關的知識,看了cnn rnn dnn等經典的神經網路,然後研究了一下生成模型,也就是今天要講的生成對抗網路 gan 打算出乙個系列,畢竟關於生成對抗網路的 太多了,github上有整理,有興趣的小夥伴可以自己看看原 順便跑一下 真的很有意思。gan自誕生起一直頗受讚譽,後期也衍生...
GAN 生成對抗網路
原理 假設我們有兩個網路 乙個生g generator 乙個判別d discriminator g是乙個生成的的網路,它接受乙個隨機的雜訊z,通過這個雜訊生成,記做g z d是乙個判別網路,判斷一張是不是 真實的 它的輸入引數是x,x代表一張的。輸出d x 代表x為真實的概率,如果為1,就代表100...
生成對抗網路 GAN
原文 generative adversarial networks 模型組成 核心公式 演算法圖示化描述 全域性最優點 pg pdata 效果與對比展望 ming maxdv d,g exp data x logd x exp x x log 1 d g z 分析 上方為 gan 網路的核心演算法...