一泥技、 基本描述
1. 組成
1) 判別算法discriminative algorithms
判別算法根據(jù)輸入數(shù)據(jù)的feature進(jìn)行分類label; 比如這封郵件是不是垃圾郵件
2) 生成算法 generative algorithms
生成算法根據(jù)特定的label預(yù)測(cè)feature
3) 生成器 generator
一個(gè)卷積神經(jīng)網(wǎng)絡(luò)
生成新數(shù)據(jù)
4) 判別器 discriminator
一個(gè)卷積神經(jīng)網(wǎng)絡(luò)
評(píng)估生成數(shù)據(jù)的真實(shí)性
2. 工作過(guò)程
1) 簡(jiǎn)述
生成模型生成一些圖片->判別模型學(xué)習(xí)區(qū)分生成的圖片和真實(shí)圖片->生成模型根據(jù)判別模型改進(jìn)自己,生成新的圖片->····
2) 過(guò)程
a) 在以下兩個(gè)Minibatch應(yīng)用梯度下降等優(yōu)化算法
訓(xùn)練樣本
生成樣本
b) 優(yōu)化
3) 結(jié)果
生成模型與判別模型無(wú)法提高自己——即判別模型無(wú)法判斷一張圖片是生成出來(lái)的還是真實(shí)的而結(jié)束
二磕仅、 數(shù)學(xué)描述
1. 生成模型 g(z)
1) 概念
輸入z是一個(gè)隨機(jī)噪聲
g的輸出就是一張圖片
2. 判別模型? D(x)
1) 概念
輸入X是從模型中的抽取的樣本
D(x)的輸出是0-1范圍內(nèi)的一個(gè)實(shí)數(shù)珊豹,用來(lái)判斷這個(gè)圖片是一個(gè)真實(shí)圖片的概率是多大
2) 公式
解釋: ????D=1(真實(shí)圖片),則P_data=1, P_model=0
????????????????D=0(假的圖片)榕订,則 P_data=0
3. 優(yōu)化方法
o 交互迭代
????? 固定g店茶,優(yōu)化D,一段時(shí)間后劫恒,固定D再優(yōu)化g贩幻,直到過(guò)程收斂。
4. 代價(jià)函數(shù)
1) 判別器的代價(jià)函數(shù)J(D)
迄今為止两嘴,所有的判別其代價(jià)函數(shù)都一樣丛楚,不一樣的是生成器的代價(jià)函數(shù)。
這是一個(gè)標(biāo)準(zhǔn)的cross-entropy cost
真實(shí)數(shù)據(jù)的label=1憔辫,生成器生成的數(shù)據(jù)的label=0
目標(biāo)是最小化判別器的代價(jià)函數(shù)
2) Minimax 博弈/零和博弈
3) Non-saturating heuristic啟發(fā)式鸯檬,非飽和博弈
啟發(fā)式驅(qū)動(dòng)是說(shuō)按照實(shí)際操作改變策略,而不是遵循理論螺垢。
為了防止生成器的梯度消失喧务,把生成器的cost變成:
4) Maximum likelihood最大似然博弈
5) Divergence的選擇
6) Generator 的Cost function的比較
結(jié)論:使用non-saturating
三赖歌、 DCGAN
1. 引入——CNN
1) 概念
(convolutional neural network,卷積神經(jīng)網(wǎng)絡(luò))功茴。深度神經(jīng)網(wǎng)絡(luò)的一種庐冯,可以通過(guò)卷積層(convolutional layer)提取不同層級(jí)的信息
2) 輸入
圖片
3) 輸出
圖片
抽象表達(dá)(紋理/形狀etc)
2. 簡(jiǎn)介
o 人們?yōu)閳D像生成設(shè)計(jì)了一種類似反卷積的結(jié)構(gòu):Deep convolutional NN for GAN(DCGAN)
o 是GAN的使用場(chǎng)景——在圖片中的生成模型DCGAN。
3. 輸入
o 隨機(jī)噪聲向量(高斯噪聲etc)
4. 處理流程
o 輸入通過(guò)與CNN類似但是相反的結(jié)構(gòu)坎穿,將輸入放大成二維數(shù)據(jù)展父。
o 通過(guò)生成模型+判別模型
o 生成圖片
四、 訓(xùn)練GAN的tips
1. 用label訓(xùn)練
2. One-sided label smoothing
防止判別器的極端的可信分類(某一類的可能性為1)
幫助判別器抵抗生成器的攻擊
3. 注意Batch norm的使用
1) Feature norm的定義
subtract mean, divide by standard deviation
2) 注意
會(huì)導(dǎo)致batch之間相互影響玲昧,應(yīng)該使用virtual batch norm
4. 平衡G和D
D應(yīng)該獲勝栖茉,應(yīng)該多鍛煉D,D應(yīng)該更加復(fù)雜
https://deeplearning4j.org/generative-adversarial-network#tips-in-training-a-gan
1. discriminator 與generator孵延,固定一個(gè)吕漂,訓(xùn)練另一個(gè)
2. 開(kāi)始訓(xùn)練generator之前預(yù)先訓(xùn)練discriminator
3. GAN訓(xùn)練很費(fèi)時(shí)間,建議用GPU不要用CPU
五尘应、 GAN與其他神經(jīng)網(wǎng)絡(luò)的比較
1. Auto encoder/decoder
可以壓縮原始數(shù)據(jù)
2. VAE(Variational變化的 auto encoder)
增加了額外的限制
可以壓縮原始數(shù)據(jù)
可以生成數(shù)據(jù)(生成效果沒(méi)有GAN好)
六惶凝、 GAN的有趣應(yīng)用
https://deeplearning4j.org/generative-adversarial-network#unclassified-papers--resources
七、 評(píng)估
1. inception scores
It's particularly interesting because it seems to be a very reliable way to "quantify realism" in GANs,
八犬钢、 前沿研究
1. 解決Non-convergence
2. 如何評(píng)估生成模型
3. 離散的輸出
4. 半監(jiān)督化學(xué)習(xí)
5. 苍鲜。。玷犹。