1. 程式人生 > >李弘毅老師GAN筆記(二),Conditional GAN

李弘毅老師GAN筆記(二),Conditional GAN

目錄

5 其他技術

1 什麼是 Condition GAN

一般形式的GAN在上一篇部落格已經介紹過,今天這節課講的是conditional GAN,翻譯過來就是條件GAN,所謂條件呢就是指我們現在生成的網路不僅僅需要逼真,而且還要有一定的條件。比如圖1所示的網路,輸入一段文字,輸出不僅僅是接近真實的影象,同時還要滿足輸入文字的條件,不如輸入一隻狗在奔跑,輸出即為一直狗狗在噴跑的圖。由於增加了條件,所以生成網路和判別網路的原理和訓練均有所改變。

圖1 conditional GAN 示例

2  Conditional GAN 的原理

原理圖如圖2所示,上半部分是生成網路,輸入增加了一個條件,比如圖中所示的“train”說明輸出應該是一個火車。下半部分是判別網路,輸入除了生成的圖片,還有與生成網路輸入同樣的條件,輸出是一個綜合打分。若接近實際而且與條件符合則為1分,若輸出圖片質量低

圖片與條件不符則為0分。判別網路的兩種形式如圖3所示,上面一種是常規形式,及將兩種因素綜合成為一個分數,而下面這種形式也有一些人在研究,輸出兩個分數,分別表示真實程度和圖片與條件的相符程度。

圖2 Conditional GAN 結構圖 圖3 判別網路兩種形式

3 Conditional GAN 的訓練 

同一般形式的GAN類似,也是先訓練判別網路,再訓練生成網路,然後再訓練判別網路,兩個網路交替訓練。只是訓練判別網路的樣本稍有不同,如圖4所示,訓練判別網路的時候需要這三種樣本,分別是:(1)條件和與條件相符的真實圖片,期望輸出為1;(2)條件和與條件不符的真實圖片,期望輸出為0;(3)條件和生成網路生成的輸出,期望輸出為0。

圖4 訓練判別網路的三種樣本

4 Conditional GAN 的一些應用

(1)image-to-image

 輸入是一種圖片,輸出是另一種圖片,則將輸入的那種圖片作為條件,及替換掉上文所例子中的“train”。示意圖如圖5所示,其中z是一個向量,訓練時使用正態分佈隨機生成向量。

圖5 image-to-image的結構圖

(2)語音增強 

其實也是類似於影象到影象,示意圖如圖6所示

圖6 語音增強示意圖

(3)視訊生成

根據視訊的前幾幀生成後一幀,與前兩個應用不同的是輸入的條件是一系列圖片,示意圖如圖7所示。

圖7 視訊生成示意圖

5 其他技術

(1)Stack GAN 

原理為先生成小圖,再生成大圖。

(2)Patch GAN

主要用作生成大圖,判別網路不在根據一整副圖來判斷,而是整幅圖中的一塊。

注:上文中所有的圖片均來自李弘毅老師的課件。