1. 程式人生 > >LAPGAN:Deep Generative/Image Models using a Laplacian Pyramid of Adversarial Networks 使用拉普拉斯金字塔的GAN

LAPGAN:Deep Generative/Image Models using a Laplacian Pyramid of Adversarial Networks 使用拉普拉斯金字塔的GAN

Emily Denton
Dept. of Computer Science
Courant Institute
New York University
Soumith Chintala
Arthur Szlam
Rob Fergus
Facebook AI Research
New York

原文連結,引用請註明出處


摘要

本文介紹了一種能夠生成高質量自然影象樣本的生成引數模型。作者的方法在拉普拉斯金字塔框架內使用級聯卷積網路,以粗略到精細的方式生成影象。在金字塔的每個層,使用生成對抗網路(GAN)[11]的方法訓練單獨的生成性連線模型。從該模型中抽取的樣本質量明顯高於其他方法。在人類評估員的主觀評估中,CIFAR10樣本有大約40%被評估員認為是真實影象,而從GAN的baseline模型中抽取的樣本則只有10%。作者還展示了在LSUN場景資料集的高解析度影象上訓練的模型的樣本。

1 引言

建立良好的自然影象生成模型一直是計算機視覺中的一個基礎的問題。然而,由於影象的結構複雜且尺寸很大,對影象建立良好的模型是很困難的。考慮到以高解析度對整個場景進行建模的困難,大多數現有方法是生成影象塊。相比之下,作者提出了一種方法,能夠在 32 × 32 32×32 64

× 64 64×64 的尺度下,生成看似合理的影象。為此,作者利用自然影象的多尺度結構,構建一系列生成模型,每個模型都利用拉普拉斯金字塔[1]捕獲不同尺度的影象結構。該策略將原始問題分解為一系列更易於解決的子問題。在每個尺度上,作者使用Goodfellow等人的Generative Adversarial Networks(GAN)[11]方法訓練基於卷積網路的生成模型。生成的樣本以從粗到細的方式被繪製,從低頻殘留影象開始。第二級金字塔採用帶通結構,以取樣殘差為條件。後續級的金字塔繼續此過程,始終調整先前比例的輸出,直到達到最後一層金字塔。因此,繪製樣本是一種有效且簡單的過程:將隨機向量作為輸入並通過級聯的深度卷積網路(convnets)向前執行以產生生成影象。

事實證明,深度學習方法在視覺中的判別任務中非常有效,例如目標分類[4]。然而,儘管做了很多努力[14,26,30],生成任務還沒有取得同樣的成功。在這種背景下,作者提出的方法取得了重大進展,因為它可以直接進行訓練和取樣,結果樣本顯示出令人驚訝的視覺保真度。

1.1 相關工作

影象生成模型的研究很多,主要分為兩種方法:非引數方法和引數方法。前人從訓練影象中複製影象塊以執行例如紋理合成[7],或超解析度[9]。更雄心勃勃的是,如果給定足夠大的訓練資料量,影象的整個部分可以進行繪製[13]。 早期的引數方法解決了例如紋理合成[3,33,22]之類的簡單問題(Portilla和Simoncelli[22]利用可操縱的金字塔小波表示[27],類似於這裡對拉普拉斯金字塔的使用)。對於影象處理任務,基於影象梯度的邊緣分佈模型是有
效的[20,25],但這僅用於影象恢復而不是真正的概率密度模型(因此不能對實際影象樣本進行生成)。也可以使用非常大的高斯混合模型[34]和影象塊的稀疏編碼模型[31],但是這些工作都面臨著同樣的問題。

很多深度學習方法涉及生成引數模型。受限Boltzmann機[14,18,21,23],深度Boltzmann機[26,8],去噪自動編碼器[30]都有一個生成解碼器,可以從潛在表示中重建影象。變分自動編碼器[16,24]提供了便於取樣的概率解釋。 然而,對於所有這些方法,令人信服的實驗僅在諸如MNIST和NORB的簡單資料集上被展示過,可能是由於訓練複雜性限制了它們對更大和更逼真的影象的適用性。

最近幾篇論文提出了新的生成模型。Dosovitskiy等[6]展示了一個卷積網路如何能夠繪製出具有不同形狀和視角下的椅子。作者的模型也使用了convnet,它能夠對一般場景和物件進行取樣。Gregor等人的DRAW模型[12]使用具有RNN的注意機制通過影象塊的軌跡生成影象,並給予MNIST和CIFAR10影象樣本進行了樣本生成。Sohl-Dickstein等[28]使
用基於擴散的過程進行深度無監督學習,得到的模型能夠生成合理的CIFAR10樣本。Theis和Bethge[29]採用LSTM來捕捉空間依賴性並展示令人信服的自然紋理修復效果。

作者的工作建立在Goodfellow等的GAN[11]的基礎之上。原始的GAN適用於較小的影象(例如MNIST)但不能處理大影象。與作者的方法最相關的是Mirza和Osindero[19]以及Gauthier[10]的初步工作,他們都提出了GAN模型的有條件版本。前者基於MNIST樣本,而後者僅關注正面的人臉影象。作者的方法也使用了幾種形式的條件GAN模型,但其應用範圍更加激進。

2 方法

作者方法的基本構建是Goodfellow等人的生成對抗網路(GAN)[11]。在回顧了這一點之後,作者介紹了自己的LAPGAN模型,該模型將條件形式的GAN模型整合到拉普拉斯金字塔的框架中。

GAN方法[11]是一個訓練生成模型的框架,本節在影象資料的背景下進行了簡要解釋。 該方法使兩個網路彼此對抗:捕獲資料分佈的生成模型 G G ,和區分 G G 繪製的樣本與訓練資料的影象的辨別模型 D D 。在本文的方法中, G G D D 都是卷積網路。前者以從噪聲分佈 p N o i s e ( z ) p_{Noise}(z) 中提取的噪聲向量 z z 作為輸入,並輸出影象 h ~ \tilde{h} 。辨別網路 D D h ~ \tilde{h} G G 生成的影象)或者 h h (來自訓練資料分佈 p D a t a ( h ) p_{Data}(h) 的影象)作為隨機選擇(具有相等概率)的輸入, D D 的輸出是標量概率,如果輸入為真實樣本,則概率較高,如果從G生成,則概率較低。最後使用minimax目標將兩個模型訓練在一起:
(1) min G max D V ( D , G ) = E h p D a t a    ( h ) [ log D ( h ) ] + E z p N o i s e ( z ) [ log ( 1 D ( G ( z ) ) ) ] . \min_G \max_D V(D, G)=\mathbb E_{h\sim p_{Data}\ \ (h)}[\log {D(h)}]+\mathbb E_{z\sim p_{Noise} (z)}[\log(1-D(G(z)))].\tag{1}
這鼓勵 G G 擬合 p D a t a ( h ) p_{Data}(h) 以便用其生成的樣本"欺騙" D D 。在以上的式子中, G G D D 都是通過反向傳播方程中的損失來訓練的兩個模型來更新引數。

條件生成對抗網路(CGAN)是GAN的擴充套件,其中網路 G G D D 都接收 l l 作為輸入的附加資訊向量。這可能包含有關訓練樣本 h h 的類別的資訊。 因此損失函式變為
(2) min G max D V ( D , G ) = E h , l p D a t a    ( h , l ) [ log D ( h , l ) ] + E z p N o i s e ( z ) , l p l   l [ log ( 1 D ( G ( z , l   ) , l   ) ) ] . \min_G \max_D V(D, G)=\mathbb E_{h,l\sim p_{Data}\ \ (h,l)}[\log {D(h,l)}]+\mathbb E_{z\sim p_{Noise} (z),l\sim p_l\ {l}}[\log(1-D(G(z,l\ ),l\ ))].\tag{2}
其中 p l   ( l ) p_l\ (l) 是類別的先驗分佈。該模型允許生成模型的輸出由調節變數 l l 控制。Mirza和Osindero [19]以及Gauthier [10]都使用 l l 作為類指示器,通過在MNIST和人臉資料集上的實驗來探索這個模型。在本文的方法中, l l 是從另一個CGAN模型生成的影象。

2.2 拉普拉斯金字塔

拉普拉斯金字塔[1]是線性可逆影象表示,由一組帶通影象組成,在空間上相隔八個畫素,另加上低頻殘差。 形式上,令 d ( . ) d(.) 是下采樣操作,它可以模糊和抽取一個 j × j j×j 影象 I I ,生成一個 j / 2 × j / 2 j/2×j/2 的新影象 d ( I ) d(I) 。另外,令 u ( . ) u(.) 是一個上取樣運算子,它影象 I I 將平滑和擴充套件為兩倍大小,因此 u ( I ) u(I) 是一個大小為2j 2j的新影象。 要建立一個拉普拉斯金字塔,首先建立一個高斯金字塔 G ( I ) = [ I 0 , I 1 , . . . , I k ] \mathcal G(I)=[I_0,I_1,. . . ,I_k] ,其中