《StackGAN: Text to Photo-realistic Image Synthesis with Stacked GAN》閱讀筆記
原文鏈接:《StackGAN: Text to Photo-realistic Image Synthesis with Stacked Generative Adversarial Networks》
文章來源:2016年12月10日發表於 arXiv
一、文章簡介:
針對根據文本句子描述生成圖像的任務,借鑒別人提出兩個GAN疊加在一起的結構,改進了輸入條件的部分,使以前只能生成96*96的圖片,而現在可以用於生成256*256的圖片。
其中兩個GAN的作用是:第一個GAN用於根據文本描述生成一張相對粗糙的圖像,包括目標物體的大致形狀和顏色等,然後再通過第二個GAN去修正之前生成的圖並添加細節,比如鳥的嘴和眼睛等。
1. Generative Adversarial Networks 和 Conditional Adversarial Networks 的詳細介紹在《Conditional Generative Adversarial Nets》閱讀筆記
2. 提出基於cGAN的用於Image-to-Image Translation的通用框架在《Image-to-Image Translation with Conditional Adversarial Networks》閱讀筆記
三、本文主要工作
在以往的GAN中,都是直接把放入生成器,但是這個特徵一般維度比較高而且是離散的,可能存在很多訓練生成器過程中不需要的信息,這可能就是之前模型效果不是很好的原因,根據這點,作者提出了以下的改進方法:
從獨立的高斯分布中隨機採樣得到隱含變數。其中
和
是關於
的函數。
這種方法不僅在條件多樣化的時候能使模型更穩定,另一方面,在給定文本-圖像對時,也能產生更多的訓練樣本。
根據高斯條件變數生成器:
經過一個全連接層得到
和
(
的對角元素)。
維的條件向量
是由下面的公式計算得到的
判別器:首先
經過一個全連接層被壓縮到
維,然後經過空間複製將其擴成一個
的張量。同時,圖像會經過一系列的下採樣到
。然後,圖像過濾映射會連接圖像和文本張量的通道。隨後張量會經過一個
的卷積層去連接跨文本和圖像學到的特徵。最後,會通過只有一個節點的全連接層去產生圖像真假的概率。
2. 第二個GAN —— 前一GAN生成的圖形可能會存在物體形狀的失真扭曲或者忽略了文本描述中的細節部分,所以再利用一個GAN去根據文本信息修正之前得到的圖像,生成更高解析度含有更多細節信息的圖像。
訓練過程中最大化最小化
模型結構:
生成器:與前一個階段相似,由
生成
維的高斯條件變數
然後被擴成一個
的張量。同時,由前一個GAN生成的圖像會經過下採樣變成
。後面的過程同上。
判別器:由於這個部分圖像的尺寸更大,所有這裡只有一系列下採樣塊。
三、實驗:
1. 與其它方法的對比
2. 本文方法兩個GAN生成圖像的對比
3. 作者認為這個方法比較好的原因也在於能夠很好地學到文本與圖像之間的潛在聯繫
傳統的方法就是只有一個GAN,於是就有人提出用兩個GAN堆在一起。實際上,思想就是提出把傳統的任務拆成兩部分,分段完成。正常我們畫圖也是會先畫出輪廓再上色,把一個相對困難的任務拆分成兩個簡單的任務。但是任務分開後,如果對所有問題的做法都一樣可能效果也不會很好,因此要針對各個任務去找重點。
推薦閱讀:
※關於Kaggle的一些數據分析
※自動生成硬體優化內核:陳天奇等人發布深度學習編譯器TVM
※機器學習之Logistic回歸(五)
※Deep Reinforcement Learning for Dialogue Generation
※盤點丨2016年機器學習十大文章整理