1. 程式人生 > 實用技巧 >變老 - 6 - A Style-Based Generator Architecture for Generative Adversarial Networks(StyleGAN)- 論文學習

變老 - 6 - A Style-Based Generator Architecture for Generative Adversarial Networks(StyleGAN)- 論文學習

https://github.com/NVlabs/stylegan2

A Style-Based Generator Architecture for Generative Adversarial Networks

Abstract

我們從風格轉換文獻中提出了一種生成對抗網路的可替代生成器框架。新的框架導致了高階屬性(如人臉訓練時的姿勢和身份)的自動學習和無監督分離,以及生成影象中的隨機變化(如雀斑、頭髮),並實現了對合成的直觀、特定規模的控制。新的生成器在傳統分佈質量指標方面改進了目前最先進的技術的效果,有明顯更好的插值特性,也更好地解耦變數的潛在因素。為了量化插值質量和解耦效果,我們提出了兩種新的、自動化的方法,適用於任何生成器架構。最後,我們介紹了一個新的、高度多樣化和高質量的人臉資料集。

1. Introduction

生成方法產生的影象的解析度和質量——特別是生成對抗網路(GAN)[22]——最近得到了快速的改善[30,45,5]。然而,這些生成器仍然像黑盒子一樣執行,儘管最近的努力[3],對影象合成過程的各個方面的理解,例如,隨機特徵的起源,仍然缺乏。潛在空間的性質也沒有得到很好的理解,常用的潛在空間插值[13,52,37]沒有提供定量的方法來比較不同的生成器。

受風格轉換文獻[27]的啟發,我們重新設計了生成器的架構,以暴露了新的方法來控制影象合成過程。我們的生成器從一個學習過的常量輸入開始,根據潛碼在每個卷積層調整影象的“風格”,從而直接控制不同尺度下影象特徵的強度。與直接注入網路的噪聲相結合,這種架構上的變化導致生成影象中的高階屬性(例如姿態、身份)與隨機變化(例如雀斑、頭髮)自動、無監督地分離,並實現了直觀的特定尺度的混合和插值操作。我們不以任何方式修改判別器或損失函式,因此我們的工作與正在進行的關於GAN損失函式、正則化和超引數的討論是正交的[24,45,5,40,44,36]。

我們的生成器將輸入的潛在編碼嵌入到一箇中間的潛在空間中,這對變數因子在網路中的表現方式有著深遠的影響。輸入潛在空間必須遵循訓練資料的概率密度,我們認為這導致了某種程度的不可避免的糾纏。我們的中間潛在空間中就不受這個限制,因此可以解耦合。由於之前估計潛在空間解耦程度的方法不能直接應用於我們的案例,我們提出了兩個新的自動化度量方法——感知路徑長度和線性可分性——來量化生成器的這些方面。使用這些指標,我們表明,與傳統的生成器架構相比,我們的生成器實現了一個在不同變數因素中能得到更線性,更少耦合表現的效果。

最後,我們提供了一個新的人臉資料集(Flickr-Faces-HQ, FFHQ),它比現有的高解析度資料集提供了更高的質量,涵蓋了更廣泛的變化(附錄A)。我們將這個資料集,連同我們的原始碼和預先訓練好的網路一起公開。在同一個連結下可以找到相應的視訊。

2. Style-based generator

通常潛在編碼通過輸入層提供給生成器,即前向網路(圖1a)的第一層。我們通過省略該輸入層和從一個可學習常量(圖1b,右)開始來分離該設計。給定一個在輸入潛在空間Z的潛在編碼z、一個非線性的對映網路來生成(圖 1b,左)。簡單來說,我們設定兩個空間的維度為512(即Z和W都是512x1),對映函式f使用8層MLP來實現,決策函式將在Section 4.1分析。可學習的仿射轉換(A)將w轉換成styles,用來控制生成網路g每一個卷積層後面的adaptive instance normalization(AdaIN)[27,17,21,16]操作。該AdaIN操作被定義為:

每個特徵對映xi將會被分別歸一化,然後使用來自style y的對應尺寸成分ys,i和yb,i來按比例變化和實現偏差。因此,y的維數是該層上特徵圖數量的兩倍。

將我們的方法與風格轉移相比較,我們從向量w中計算空間不變風格y,而不是從一個例子影象中計算。我們選擇對y重複使用“style”這個詞是因為類似的網路架構已經被用於前向風格傳輸[27]、無監督影象到影象的轉換[28]和域混合[23]中。與更一般的特徵變換相比[38,57],因為AdaIN的效率和緊湊的表示,其特別適合我們的目的。

簡單說明下這個網路:

在潛在編碼Z中間新增一個mapping 網路,用來將輸入的向量編碼為中間向量W,然後該中間向量將會分別傳送18個控制向量A到生成網路g中的18層上,用來控制不同的style。

為何要加Mapping Network呢?因為如果不加這個Mapping Network的話,後續得到的18個控制向量之間會存在特徵糾纏的現象——比如說我們想調節8*8解析度上的控制向量(假設它能控制人臉生成的角度),但是我們會發現32 * 32解析度上的控制內容(譬如膚色)也被改變了,這個就叫做特徵糾纏。所以Mapping Network的作用就是為輸入向量的特徵解纏提供一條學習的通路。

最後就能夠使用上面(圖 1b)輸出的1024*1024的影象和真正影象作為Discriminator的輸入,最小化損失來訓練模型引數

最後,我們提供了一個直接的方法,通過引入顯式噪聲noise輸入以產生隨機細節。這些是由不相關的高斯噪聲組成的單通道影象,我們為合成網路的每一層提供一個專用的噪聲影象。利用學習到的每個特徵的縮放因子將噪聲影象廣播到所有的特徵對映上,然後加入到相應卷積的輸出中,如圖1b所示。在第3.2和3.3節中討論了新增噪聲輸入的影響。

2.1. Quality of generated images

在研究我們的生成器的特性之前,我們通過實驗證明,重新設計不會影響影象質量,但實際上,它大大改善了影象質量。表1給出了各種生成器架構在資料CELEBA-HQ[30]和在我們的新FFHQ資料集(附錄A)上的Fre ́chet inception distances(FID)[25]效果。其他資料庫的結果在附錄E中。我們的baseline配置(A)是Karras et al. [30]的Progressive GAN設定, 除非另有說明,否則我們繼承了網路和所有超引數。我們首先通過使用雙線性上/下采樣操作[64]、更長時間的訓練和調優超引數來切換到改進的baseline(B)。訓練設定的詳細描述和超引數包含在附錄C中。然後我們通過新增對映網路和AdaIN操作進一步改善這一新的baseline(C),並得到一個令人驚訝的發現,即網路不再受益於將潛在編碼輸入到卷積第一層的這個操作。我們因此通過消除傳統的輸入層和開始從一個可學習的4×4×512常量張量開始影象合成來簡化架構(D,因為StyleGAN生成影象的特徵是由W和AdaIN控制的)。我們發現一個很了不起的效果,即合成網路能夠產生有意義的結果,儘管它接收輸入只有用來控制AdaIN操作的style。

最後,我們引入了進一步改善結果的噪聲輸入(E,noise inputs),以及新的混合正則化(F,mixing regularization),它去除了鄰近的style,並對生成的影象進行更細粒度的控制(第3.1節)。

我們使用兩種不同的損失函式來評估我們的方法:對於CELEBA-HQ,我們依賴於WGAN-GP[24],而FFHQ使用WGAN-GP來處理配置A,對於配置B-F,使用R1正則化[44,51,14]的非飽和損失[22]。我們發現這些選擇可以得到最好的結果。我們的貢獻不改變損失函式。

我們觀察到,對比傳統的生成器(B),基於風格的生成器(E)很明顯地改進了FIDs,幾乎提高了20%,這證實了在並行工作中進行的大規模ImageNet測量[6,5]。圖2顯示了使用生成器從FFHQ資料集生成的一組未策劃的新影象。經FIDs確認,平均質量高,甚至連眼鏡、帽子等配件都成功合成。對於這個數字,我們使用所謂的截斷技巧[42 5 34]來避免極端地區的抽樣W——附錄B詳細描述了這些技巧如何使用在W而不是z上。注意我們的生成器僅允許選擇性地應用截斷到低解析度上,所以高解析度細節不受影響。

本文中所有的FIDs都是在沒有使用截斷技巧的情況下計算的,我們僅在圖2和視訊中用於說明目的。所有影象生成的解析度為10242

2.2. Prior art

GAN體系結構的大部分工作都集中在通過使用多重鑑別器[18,47,11]、多解析度鑑別器[60,55]或自注意[63]等方法改進鑑別器。在生成器方面的工作主要集中在輸入潛空間[5]的精確分佈,或通過[4]高斯混合模型塑造輸入潛空間,聚類[48],或鼓勵凸性[52]。

最近的條件生成器通過單獨的嵌入網路將類識別符號提供給生成器[46]中的大量層,而潛在編碼仍然通過輸入層提供。一些作者考慮將部分潛在程式碼提供給多個生成器層[9,5]。在並行工作中,Chen等人[6]使用AdaINs“自調製”生成器,類似於我們的工作,但不考慮中間潛在空間或噪聲輸入。

3. Properties of the style-based generator

我們的生成器架構,使它能夠通過特定比例的style修改來控制影象合成。我們可以把對映網路和仿射變換看作是一種從學習分佈中為每種風格抽取樣本的方法,而合成網路則是一種基於styles集合來生成新影象的方法。每種style的效果在網路中都是區域性的,即修改style的特定子集只能影響影象的某些方面。

為了瞭解這種定位的原因,讓我們考慮一下AdaIN操作(Eq. 1)如何首先將每個通道歸一化為零均值和單位方差,然後根據style應用尺度和偏差。根據style,新的每個通道統計資訊修改了後續卷積操作中特徵的相對重要性,但由於歸一化,它們不依賴於原始統計資訊。因此,每種style在被下一個AdaIN操作覆蓋之前只能控制一個卷積。

3.1. Style mixing

為了進一步鼓勵style的定位,我們採用mixing regularization,即在訓練過程中使用兩個隨機的潛碼生成給定百分比的影象。當生成這樣的影象時,我們只需要在合成網路中隨機選擇的一個點從一個潛在程式碼切換到另一個——我們稱之為style mixing的操作。具體來說,我們通過對映網路執行z1、z2這兩個潛碼,然後就有對應的w1、w2控制style,將w1應用在交點之前,w2應用在交點之後。這種正則化技術防止網路假設相鄰樣式是相關的。

表2顯示了在訓練期間啟用混合正則化如何顯著改善了區域性性,這可以從測試時多個潛在編碼混合的情況下改進的FIDs中看出。圖3展示了在不同尺度混合兩種潛在碼合成的影象的例子。我們可以看到,每個styles子集控制影象中有意義的高階屬性。

補充:

首先需要知道

層和解析度越低,它所影響的特徵就越粗糙。簡要將這些特徵分為三種類型:
  1、粗糙的(coarse)——解析度不超過8^2,影響姿勢、一般髮型、面部形狀等;
  2、中等的(middle)——解析度為16^2至32^2,影響更精細的面部特徵、髮型、眼睛的睜開或是閉合等;
  3、高質的(fine)——解析度為64^2到1024^2,影響顏色(眼睛、頭髮和面板)和微觀特徵;

3.2. Stochastic variation

在人類肖像中,有許多方面可以被認為是隨機的,比如頭髮、胡茬、雀斑或面板毛孔的確切位置。只要它們遵循正確的分佈,它們中的任何一個都可以被隨機化,而不影響我們對影象的感知。

讓我們考慮一個傳統的生成器如何實現隨機變化。考慮到網路的唯一輸入是通過輸入層,網路需要發明一種方法,在需要的時候從早期啟用生成空間變化的偽隨機數。這消耗了網路容量,而隱藏生成訊號的週期性是困難的——而且並不總是成功的,從生成影象中常見的重複模式就可以看出。我們的架構通過在每次卷積後新增逐畫素噪聲,完全避開了這些問題。

圖4顯示了相同的底層影象的隨機實現,使用了我們的生成器與不同的噪聲實現。我們可以看到,噪音隻影響隨機方面,留下整體組成和高層次的方面,如身份不變。

圖5進一步說明了應用隨機變化對不同層次子集的影響。由於這些效果最好在動畫中看到,請參考伴隨的視訊演示如何改變一個層的噪聲輸入導致在匹配的規模上的隨機變化。

有趣的是,我們發現噪聲的影響在網路中顯得很緊密。我們假設,在生成器的任何點上,都存在儘快引入新內容的壓力,而我們的網路建立隨機變化的最簡單方法是依賴所提供的噪音。每一層都有一組新的噪聲,因此沒有動機從早期啟用產生隨機效應,導致區域性效應。

3.3. Separation of global effects from stochasticity

前面的章節以及伴隨的視訊都表明,雖然style的改變會產生全域性效應(改變姿勢、身份等),但噪聲只會影響無關緊要的隨機變化(不同梳理的頭髮、鬍鬚等)。這一觀察結果與風格遷移文獻一致,其中已經建立了空間不變統計(Gram matrix、channel-wise mean、variance等)來可靠地編碼影象的style[20,39],而空間變化特徵用來編碼特定例項。

在我們的基於style的生成器中,style會影響整個影象,因為完整的特徵對映會以相同的值縮放和偏移。因此,全域性效果,如姿態,燈光,或背景風格,可以控制一致。同時,該方法將噪聲獨立地加入到每個畫素中,非常適合於控制隨機變化。如果網路試圖控制,例如,利用噪音的姿勢,那會導致空間上不一致的決定,然後會被鑑別器懲罰。因此,在沒有明確指導的情況下,網路學會了適當地使用全域性和區域性通道。

總結來說,其實就是其styleA和高斯噪聲B能夠分別控制生成影象的不同level:A控制全域性屬性,如姿態、身份等,而B控制一些相對次要的 隨機變數,如不同的髮型、鬍鬚分佈等等。因為A的作用是對所有的特徵對映進行scale和shift,自然影響結果也是全域性性的; 而只是加到了每層的畫素上,緊接著就被AdaIN給歸一化了,自然只能影響很小一部分,而在人臉生成這個任務上,這個很小一部分恰巧表現為頭髮、鬍鬚、雀斑等的分佈而已。

4. Disentanglement studies

解耦有不同的定義[54,50,2,7,19],但共同的目標是由線性子空間組成的潛在空間,每個子空間控制一個變數因子。但是Z中各因子組合的取樣概率需要與訓練資料中對應的密度匹配。如圖6所示,這阻止了這些因素與典型資料集和輸入潛在分佈完全分離。

我們的生成器架構的一個主要好處是,中間潛在空間W不必支援根據任何固定分佈的取樣;它的取樣密度是由學習的分段連續對映f (z)誘導的,這種對映可以適應“unwarp”W,使變化因素變得更加線性。我們假設,有壓力讓生成器這樣做,因為它應該在基於一個解耦表徵時比基於糾纏表徵更容易產生現實的影象。因此,我們期望訓練在無監督的設定中產生一個較少糾纏的W,即變數因子不是提前知道的[10,35,49,8,26,32,7]。

不幸的是,最近提出的量化解耦的度量標準[26,32,7,19]需要一個將輸入影象對映到潛碼的編碼器網路Encoder。這些度量標準不適合我們的目的,因為我們的baseline GAN缺少這樣的編碼器。雖然可以為此目的增加一個額外的網路[8,12,15],但我們希望避免將精力投入到一個不屬於實際解決方案的元件上。為此,我們描述了兩種量化解耦的新方法,這兩種方法都不需要編碼器或已知的變數因素,因此對於任何影象資料集和生成器都是可計算的。

4.1. Perceptual path length

正如Laine[37]所指出的,對潛在空間向量進行插值可以使影象產生令人驚訝的非線性變化。例如,在任意端點中沒有的特性可能會出現線上性插值路徑的中間。這是潛在空間被糾纏和變數因素沒有被適當分離的標誌。為了量化這種效果,我們可以測量當我們在潛在空間內進行插值時影象經歷的劇烈變化。直觀地說,一個不那麼彎曲的潛在空間應該比一個高度彎曲的潛在空間在感知上更平滑地過渡。

作為我們的度量的基礎,我們使用了基於感知的成對影象距離[65],它是兩個VGG16[58]embeddings之間的加權差,其中的權值是合適的,使得度量符合人類感知相似度判斷。如果我們將一個潛在的空間插值路徑細分為線性段,我們可以定義該分段路徑的總感知長度為每段感知差異的總和,如影象距離度量報告那樣。感知路徑長度的自然定義是這個總和在無限精細細分下的極限,但在實踐中我們使用一個小的細分epsilon 來近似它。潛在空間Z中所有可能端點的平均感知路徑長度為:

其中,G是生成器(表示基於style的網路),d(.,.)評估結果影象之間的感知距離。此處slerp表示球面插值[56],這是在我們的歸一化輸入潛在空間中最合適的插值方法[61]。為了將注意力集中在面部特徵而不是背景上,我們對生成的影象進行裁剪,使其只包含人臉,然後再對影象進行兩兩對比。由於度量d是二次的[65],我們除以ε2。我們通過10萬個樣本值來計算期望。

在W中計算平均感知路徑長度也採用類似的方式:

唯一的區別是插值發生在W空間。因為向量在W中沒有以任何方式標準化,所以我們使用線性插值(lerp)。

表3顯示,對於我們帶有噪聲輸入的基於style的生成器來說,完整路徑長度大大縮短了,表明W對比Z來說是更線性感知的。然而該測量實際上是稍微偏向支援輸入潛在空間Z的。如果W的確是一個解耦的且“flatten”的Z的對映,它可能包含不在輸入manifold的區域-因此被生成器嚴重重建-即使是在從輸入manifold對映的點之間,而輸入潛空間Z根據定義沒有這樣的區域。因此,如果我們限制我們的測量路徑的端點,即, t∈{0,1},則應該獲得更小的lW,而lZ不受影響。這確實是我們在表3中看到的。

表4顯示了對映網路對路徑長度的影響。我們看到,傳統的和基於style的生成器都能從對映網路中受益,而附加的深度通常會改善感知路徑長度和FIDs。有趣的是,當傳統生成器的lW得到了改進,lZ卻變得相當糟糕,這說明了我們的主張,即輸入潛在空間確實可以在GANs中任意糾纏。

4.2. Linear separability

如果一個潛在的空間被充分地解開,它應該是可能的找到方向向量一致地對應個別的變化因素。我們提出了另一種度量方法來量化這種效果,方法是通過線性超平面將潛在空間點劃分為兩個不同的集合,這樣每個集合都對應於影象的一個特定的二值屬性。

為了對生成的影象進行標記,我們訓練了一些二值屬性的輔助分類網路,例如區分男性和女性的人臉。在我們的測試中,分類器具有與我們使用的鑑別器相同的體系結構(和[30]中相同),並使用CelebA-HQ資料集進行訓練,該資料集保留了原始CelebA資料集中可用的40個屬性。為了測量一個屬性的可分離性,我們生成了20萬張z ~ P (z)的影象,並使用輔助分類網路對它們進行分類。然後,我們根據分類器置信度對樣本進行排序,並去除最不置信度的一半,得到100,000個標記的潛在空間向量。

對於每個屬性,我們擬合一個線性支援向量機來預測基於潛在空間點的標籤——對應傳統網路使用z,對於基於風格的網路使用w——並根據該平面進行分類。然後計算條件熵H(Y |X),其中X為SVM預測的類,Y為預訓練分類器確定的類。這告訴我們需要多少額外的資訊來確定一個樣本的真實類,假設我們知道它位於超平面的哪一邊。H(Y |X)值越低,對應變數因子的潛在空間方向越一致。

計算最終的separability score為,其中i列舉了40種屬性。與inception score[53]相似,求冪可以將對數域的值轉換為線性域,以便於比較。

表3和表4表明,W始終比Z具有更好的可分離性,這表明一種較少糾纏的表示。此外,增加對映網路的深度可以提高W中的影象質量和可分性,這與合成網路天生傾向於一個解糾纏的輸入表示的假設是一致的。另外,在傳統的生成器前增加一個對映網路,雖然導致了Z的可分性嚴重喪失,但改善了中間潛在空間W的情況,FID也得到了改善。這表明,當我們引入一個不需要遵循訓練資料分佈的中間潛在空間時,即使是傳統的生成器架構也會表現得更好。

5. Conclusion

基於我們的結果和Chen等人[6]的並行工作,傳統的GAN生成器架構在各個方面都不如基於風格的設計,這一點越來越明顯。從已建立的質量指標來看,這是正確的,我們進一步相信,我們對高階屬性和隨機效應的分離以及中間潛在空間的線性的研究將證明是卓有成效的,有助於提高對GAN合成的理解和可控性。

我們注意到,我們的平均路徑長度度量可以很容易地用作訓練中的正則化器,也許線性可分性度量的一些變體也可以作為一個正則化器。總的來說,我們期望在訓練中直接塑造中間潛在空間的方法將為未來的工作提供有趣的途徑。