1. 程式人生 > >從頭開始GAN【論文】(二) —— DCGAN

從頭開始GAN【論文】(二) —— DCGAN

上一篇介紹了GAN 的基本原理以及相關的概念和知識點,同時也反映出GAN 的一些缺點,比如說訓練不穩定,生成過程不可控,不具備可解釋性等。這一篇就來看看GAN 的改進版之一,DCGAN(Deep Convolutional GAN)。

1. 網路結構

DCGAN 的判別器和生成器都使用了卷積神經網路(CNN)來替代GAN 中的多層感知機,同時為了使整個網路可微,拿掉了CNN 中的池化層,另外將全連線層以全域性池化層替代以減輕計算量。

2. 去卷積(反捲積,Deconvolution)

從上圖中可以看到,生成器G 將一個100 維的噪音向量擴充套件成64 * 64 * 3 的矩陣輸出,整個過程採用的是微步卷積的方式。作者在文中將其稱為fractionally-strided convolutions,並特意強調不是deconvolutions。關於上取樣和去卷積等概念,我特意找了一些資料來看看他們的區別是什麼,相關內容整理在下面。

上取樣和去卷積是同一個概念,它的目的是將經過池化層以後縮小的矩陣擴大到一定的大小,比如說從3 * 3 擴大到5 * 5,如下圖所示:

而去卷積(連結:反捲積)又包含轉置卷積和微步卷積,兩者的區別在於padding 的方式不同,看看下面這張圖片就可以明白了:

另外還有一個概念叫空洞卷積(Dilated Convolution)。在pixel-wise 目標檢測任務上有一個常見的場景就是需要通過去卷積來會恢復經過池化層以後的矩陣大小,先池化再去卷積的過程實際上損失了很多資訊,而這個過程的真實目的實際上就是為了通過縮小矩陣size 的方式來增大感受野,那能不能跳過先縮小在增大的過程直接進行感受野放大呢?這個就是所謂的空洞卷積,更詳細的內容可以參考這個連結:

空洞卷積

3. 訓練方法

DCGAN 的訓練方法跟GAN 是一樣的,分為以下三步:

(1)for k steps:訓練D 讓式子【logD(x) + log(1 - D(G(Z)) (G keeps still)】的值達到最大

(2)保持D 不變,訓練G 使式子【logD(G(z))】的值達到最大

(3)重複step(1)和step(2)直到G 與D 達到納什均衡

4. 相比於GAN 的改進

DCGAN 相比於GAN 或者是普通CNN 的改進包含以下幾個方面:

(1)使用卷積和去卷積代替池化層

(2)在生成器和判別器中都添加了批量歸一化操作

(3)去掉了全連線層,使用全域性池化層替代

(4)生成器的輸出層使用Tanh 啟用函式,其他層使用RELU

(5)判別器的所有層都是用LeakyReLU 啟用函式

5. 漫遊隱空間

通過使用插值微調噪音輸入z 的方式可以導致隱空間結構發生變化從而引導生成影象發生語義上的平滑過度,比如說從有窗戶到沒窗戶,從有電視到沒電視等等。

6. 語義遮罩

通過標註視窗,並判斷啟用神經元是否在視窗內的方式來找出影響窗戶形成的神經元,將這些神經元的權重設定為0,那麼就可以導致生成的影象中沒有窗戶。從下圖可以看到,上面一行圖片都是有窗戶的,下面一行通過語義遮罩的方式拿掉了窗戶,但是空缺的位置依然是平滑連續的,使整幅影象的語義沒有發生太大的變化。

7. 向量演算法

在向量演算法中有一個很經典的例子就是【vector("King") - vector("Man") + vector("Woman") = vector("Queue")】,作者將該思想引入到影象生成當中並得到了以下實驗結果:【smiling woman - neutral woman + neutral man = smiling man】

相關推薦

從頭開始GAN論文() —— DCGAN

上一篇介紹了GAN 的基本原理以及相關的概念和知識點,同時也反映出GAN 的一些缺點,比如說訓練不穩定,生成過程不可控,不具備可解釋性等。這一篇就來看看GAN 的改進版之一,DCGAN(Deep Convolutional GAN)。 1. 網路結構 DCGAN 的判

論文GAN影象轉換之從pix2pix到cycle GAN

該節分享兩篇使用GAN的方法來進行影象轉換方面的文章,分別是pix2pix GAN 和 Cycle GAN,兩篇文章基本上是相同的作者發表的遞進式系列,文章不是最新,但也不算舊,出來半年多點,算是比較早的使用GAN的方法進行影象轉換的文章吧,該部分將詳細解讀其實

Git、安裝配置

config 查看 projects set col utl font ssl user 一、Git安裝   Linux 1 $ apt-get install libcurl4-gnutls-dev libexpat1-dev gettext 2 libz-dev

MySQL進制分發安裝

其中 bench color courier start 裝包 lin .tar.gz col 操作系統:Red Hat Enterprise Linux Server release 6.5 Mysql安裝包:mysql-5.6.34-linux-glibc2.5-x8

MT37次函數與整系數有關的題

width .com -1 border 經驗 ref idt ont es2017 解析:評:兩根式是不錯的考慮方向,一方面二次函數兩根式之前有相應的經驗,另一方面這裏$\sqrt{\frac{b^2}{4}-c}$正好和兩個根有關系.MT【37】二次函數與整系數有關的題

MT93次函數衣服一件

ntc wid .com borde isp itl width 技術 png MT【93】二次函數衣服一件

模板叉搜索樹

for truct false define queue ios size struct 刪除節點 二叉搜索樹:對於二叉樹中的任意節點,左子樹中所有的值都小於當前位置的值,右子樹中所有的值都大於當前位置的值。 操作: 1.插入一個數值。 2.查詢是否包含某個數值。 3.

初學JAVA的步驟你知道嗎轉載部分

分時 優化 基礎 最好的 問題 優雅 因此 速度 那一刻  第二部分:對於參加工作一年以內的同學。恭喜你,這個時候,你已經擁有了一份Java的工作。 這個階段是你成長極快的階段,而且你可能會經常加班。但是加班不代表你就可以松懈了,永遠記得我說的那句話,從你入行那一刻起,你就

洛谷 P3380 模板逼平衡樹(樹套樹)

span r+ namespace chan 優先級 efi 當前 name cst 洛谷 P3380 【模板】二逼平衡樹(樹套樹) 線段樹套treap: 就是線段樹每個節點放一個treap。建樹復雜度應該是$n log n$,操作1,3,4,5的復雜度是$(log n

luogu3380 模板逼平衡樹(樹套樹)

scanf main pan gtd node body pre turn rotate #include <iostream> #include <cstdlib> #include <cstdio> #include <ctim

叉樹遍歷算法(深度優先、廣度優先遍歷,前序、中序、後序、層次)及Java實現

order new link left 算法 很多 == 都是 off 二叉樹是一種非常重要的數據結構,很多其它數據結構都是基於二叉樹的基礎演變而來的。對於二叉樹,有深度遍歷和廣度遍歷,深度遍歷有前序、中序以及後序三種遍歷方法,廣度遍歷即我們平常所說的層次遍歷。因為樹的定義

洛谷P3380 模板逼平衡樹(樹套樹,樹狀數組,線段樹)

bre 就是 uniq nlog lin tdi 數組 比較 也有 洛谷題目傳送門 emm。。。題目名寫了個平衡樹,但是這道題的理論復雜度最優解應該還是樹狀數組套值域線段樹吧。 就像dynamic ranking那樣(蒟蒻的Sol,放一個link騙訪問量233) 所有的值(

維碼生成原理

char 方法 選擇 規則 什麽是 fff mode 進行 數字相加 原文鏈接:QR碼生成原理-QR Code(ISO 18004)編碼方式 一、什麽是QR碼 QR碼屬於矩陣式二維碼中的一個種類,由DENSO(日本電裝)公司開發,由JIS和ISO將其標準化。QR碼的樣子

MT189次條件配方

rac \n 條件 滿足 答案 提示 北大 方程 最大 (2017北大特優)若對任意使得關於 \(x\) 的方程 \(ax^2+bx+c=0\)(\(ac\ne 0\))有實數解的 \(a,b,c\) 均有 \((a-b)^2+(b-c)^2+(c-a)^2\geqslan

筆記維幾何模板

參考 uva11178 計算 end 必備 href 不同 void 方法 引言 參考劉汝佳大白書,有一些自己的修改,點、直線、圓的相關代碼 AC代碼匯總 UVA11178 Morley定理 LA 3263 好看的一筆畫 模板 Part 0 基本部分 計算幾何必備零散知識

洛谷 P3380 bzoj3196 Tyvj1730 模板逼平衡樹(樹套樹)

結果 數值 namespace del sca first || add int 【模板】二逼平衡樹(樹套樹) 題目描述 您需要寫一種數據結構(可參考題目標題),來維護一個有序數列,其中需要提供以下操作: 查詢k在區間內的排名 查詢區間內排名為k的值 修改某一位值上的數值

---- 叉樹

bec size 某個結點 vpd ima idt max-width usr oot 1 樹的基本概念(1)樹是由若幹結點組成的具有層次關系的集合,非空樹有且只有一個根結點(/)。(2)某個結點及其下面所有的結點並稱為以該結點為根的子樹(usr及其下的所有結點就是/的一顆

MT223次函數最大最小

http 最大 最小值 存在 its min bec 很多 解答 若函數$f(x)=ax^2+20x+14(a>0)$對任意實數$t$,在閉區間$[t-1,t+1]$上總存在兩實數$x_1,x_2$,使得$|f(x_1)-f(x_2)|\ge8$成立,則實數$a$的最

12、項堆

不能 並且 on() 連接 允許 暫時 其它 == 更新 一、二項樹的介紹 二項樹的定義 二項堆是二項樹的集合。在了解二項堆之前,先對二項樹進行介紹。 二項樹是一種遞歸定義的有序樹。它的遞歸定義如下:  (1) 二項樹B0只有一個結點;  (2) 二項樹Bk由兩棵二項樹B(

模板叉查詢樹

果然這些資料結構還是要自己寫一遍才熟悉啊。。。這次也是加深了我對指標的認識,以前都不怎麼注意的 二叉查詢樹 二叉查詢樹,每一個節點有左右兒子,然後這個節點的值大於左兒子,小於右兒子,那麼根據定義不難得出程式碼,先配個圖以便於理解(網上也有不少)~ 二叉查詢樹一共有三種操作:查詢