回覆列表
-
1 # 北航秦曾昌
-
2 # 東北振興
一個 GAN 是一個生成模型,使用雙神經網路模型進行訓練。 其中一個模型被稱為"生成器"或"生成網路"模型,用於學習生成新的看似合理的樣本;另一個模型被稱為"判別器"或"判別網路",它學習區分生成的例子和真例項子。
關注優就業,學習更多深度學習知識。
一個 GAN 是一個生成模型,使用雙神經網路模型進行訓練。 其中一個模型被稱為"生成器"或"生成網路"模型,用於學習生成新的看似合理的樣本;另一個模型被稱為"判別器"或"判別網路",它學習區分生成的例子和真例項子。
關注優就業,學習更多深度學習知識。
生成對抗網路(GAN)自提出後發展出了許多GAN網路模型,DCGAN就是由GAN發展而來的網路模型。
DCGAN(deep convolutional generative adversarial networks,深度卷積生成對抗網路)在GAN的發展過程中具有舉足輕重的作用,其構建了穩定的對抗網路結構,有利於工程上的實現。DCGAN相較於傳統的對抗網路,其將G和D兩個模型用卷積神經網路實現,同時也改變了CNN的部分結構,模型的效能有了一定的提高、模型的訓練時間有了一定的縮短。DCGAN對CNN的改變列於以下六點:
(1)取消所有的池化層,並用卷積層對池化層進行替代;
(2)在G和D中全部使用歸一化演算法,在每一個階段都進行階段性質的歸一化操作,有助於生成更高質量的影象,解決了CNN初始化引數差的問題、防止了G網路把所有的樣本資料都收斂於一點;
(3)在G網路中每一個層級結構最後進行反捲積操作;
(4)移除FC層,使得網路變為全卷積網路;
(5)在G網路中的所有中間層的啟用函式統一設定為ReLU函式,輸出層的啟用函式採用Tanh函式;
(6)在D網路中輸出層和中間層採用統一的啟用函式LeakyReLU。
DCGAN中生成網路的示意圖如下圖所示,輸入為200z的噪音資料,經過相應的操作(Project and reshape),生成一個4×4×1024(這裡面的1024可以理解為特徵圖的數目)的向量,再經過一步又一步的卷積和反捲積操作,最終生成64×64×3的列向量(影象的三維向量)。
DCGAN中判別網路的示意圖如下圖所示,模型運算的方向正好和生成模型運算的方向相反,模型從64×64×3的影象資料開始,經過一系列的卷積層級結構最後對資料進行了二分類。
最後給出DCGAN發表時的論文以供參考:https://arxiv.org/abs/1511.06434
原始程式碼地址:https://github.com/carpedm20/DCGAN-tensorflow