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會影響整個圖像,因為完整的特征映射會以相同的值縮放和偏移。因此,全局效果,如姿態,燈光,或背景風格,可以控制一致。同時,該方法將噪聲獨立地加入到每個像素中,非常適合於控制隨機變化。如果網絡試圖控制,例如,利用噪音的姿勢,那會導致空間上不一致的決定,然后會被鑒別器懲罰。因此,在沒有明確指導的情況下,網絡學會了適當地使用全局和局部通道。
總結來說,其實就是其style A
和高斯噪聲 B
能夠分別控制生成圖像的不同level: A
控制全局屬性,如姿態、身份等,而 B
控制一些相對次要的 隨機變量,如不同的發型、胡須分布等等。因為A
的作用是對所有的特征映射進行scale和shift,自然影響結果也是全局性的; 而B
只是加到了每層的像素上,緊接着就被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合成的理解和可控性。
我們注意到,我們的平均路徑長度度量可以很容易地用作訓練中的正則化器,也許線性可分性度量的一些變體也可以作為一個正則化器。總的來說,我們期望在訓練中直接塑造中間潛在空間的方法將為未來的工作提供有趣的途徑。