# StyleGAN 論文閱讀 文中提出一另類的GAN的架構,並引入了style transfer literature的機制,StyleGAN這個架構能夠實現高階屬性(例如訓練人臉時的姿勢、身分)以及生成影像中的隨機變異(如雀斑、頭髮)在不需要監督式學習的情況下自動分離,此外,StyleGAN也可以更直觀地對於不同屬性的尺度進行控制,StyleGAN改進了傳統分佈質量指標,並具有更好的插值特性,同時能更好地解耦了高維因子(latent factor,隱空間或高維空間的一個向量,常為512維)的變化。為了量化插值質量和解耦程度,文中提出了兩種適用於任何生成器架構的新的自評估方法。最後,文中介紹了一個新的高度多樣且高質量的人臉數據集。 **Paper:** [A Style-Based Generator Architecture for Generative Adversarial Networks ](https://arxiv.org/abs/1812.04948) ## Introduction 儘管近年來許多以GAN為基礎的模型讓生成影像的解析度、質量越來越好,但仍有許多知識層面是非常缺乏的,特別是對於latent space的理解,如latent space的特性以及在比較不同生成器在latent space進行插值時,並沒有一個定量的方法。 StyleGAN重新設計了生成器的架構來控制合成影像的流程,StyleGAN從輸入一個經過訓練的定值開始,在每層輸入由latent code經訓練後的值來調整影像的風格,因此可以使用不同尺度來直接調整影向中人臉的特徵,結合加入noise到網絡中,這種架構變化使生成人臉影像中的高階屬性(如姿態、身分)到隨機變異(如雀斑、頭髮)在不需要監督式學習即可自動分離,並能夠在特定尺度下進行混和與內插等操作。 StyleGAN的生成器將輸入的latent code嵌入到中介的latent space,如此對於變異因素在網路中的表示方式有深遠的影響,作者認為因為原始的latent code必須符合訓練資料的概率密度,導致一定程度上無可避免的糾纏(可將latent code想像成高維特徵因子,如果糾纏在一起會導致某些特徵無法分辨),而文中提出的中介latent space可以避免這些限制(因為經過fc layer的訓練)並且比較容易完成解藕。由於過去評估latent space解藕的方法不適用於StyleGAN,因此文中提出兩個自動評估的方法:(1)perceptual path length及 (2)linear separability,藉由這些方法可以得知,相較於傳統的生成器,StyleGAN在生成人臉影像中對於不同的變異因素表達更為線性、更不會有特徵糾纏的情況。 最後,文中提出了一個由StyleGAN所生成的人臉資料集-Flickr-Face-HQ(FFHQ)。 ## Style-based generator StyleGAN由Mapping network(f)與Synthesis network(g)兩個網路所組成,如圖1,其中Mapping network由8層MLP組成,Synthesis network有18層從$4^2$到$1024^2$每層包含兩個卷積層,而輸出層為一個1x1的卷積層,StyleGAN總參數量為26.2M。  傳統上的生成器是直接將latent code輸入至輸入層,如圖1(a),而StyleGAN則是將latent code分開,先直接輸入已訓練的定值,另一方面,latent code z則是會經由non-linear mapping network產生w,因此會由輸入的latent space $Z$ 轉換到$W$的空間域。Mapping network(f)是由8層的MLP所組成,w經由仿射轉換(A)後會被分派到styles $y=(ys, yb)$中,這些style控制著在每層卷基層後的Adaptive instance normalization(AdaIN),AdaIN的定義如下:  其中每個feature map $xi$會分別被標準化,並乘上相應的scaler $ys,i$在加上一個bias $yb,i$而這些數值都是由style $y$所提供,因此$y$的維度會是該層特徵圖數量的兩倍(有scaler, bias)。 最後,文中提供的生成器藉由輸入noise,可以生成隨機的細節,這些noise是由不相關的Gaussian noise所組成,其為單通道的影像與該層的特徵圖大小相同,並且在Synthesis network每層都會加入這些noise,noise image會先使用learned per-feature scaling factor(B)拓展到所有特徵圖中,之後加入到相應的卷積層的輸出層中,如圖1b所示。 ### Quality of generated images  文中比較了由PGGAN與FFHQ在加入不同trick之後的結果,可以看到在Baseline(A)的情況下PGGAN產出的CelebA-HQ資料集的FID較低,而在加入了其他trick之後FFHQ的FID值都較CelebA-HQ來的低,作者也發現在加入noise(E)的情況下較傳統生成器(B)的FID值降低了20%。而FFHQ資料集中的影像如圖2所示,可以看到這些生成的人臉質量都非常高,而帽子、眼鏡等配件也都有成功合成,並且可以維持很高的解析度。  ### Prior art 文中由以下幾點比較了許多GAN架構的研究與StyleGAN的不同: 1. 許多GAN架構的研究都是專注在判別器的改善,如使用多個判別器、不同解析度的判別器等。 2. 在改善生成器方面,大多專注在改進輸入的latent space的實際分布或是利用Gaussian mixture model, clustering等方法來塑造輸入的latent space。 3. 近期在conditional生成器的研究上,也嘗試將類別分類器利用單獨的網路額外嵌入到生成器中,然而這些方法的仍然是藉由輸入層直接輸入latent code。 4. 某些研究中將latent code輸入生成器的不同層,並利用AdaINs來控制。 * 而與以上方法不同的是StyleGAN設計了Mapping Network來重新塑造輸入latent code的空間(latent space $w$),並利用AdaINs控制,同時引入了noise的輸入。 ## Properties of the style-based generator StyleGAN的架構實現了可以對特定範圍風格進行控制,可以將mapping network和affine transformation視為從學習到的分布對每個style產生特定的樣式的方法,synthesis network則是從這些style的子集中生成影像,而在synthesis network中不同層對應到的style對於最後合成的影像都會有不同的影響。可以對局部風格影響的原因在於AdaIN的操作,按照每層輸入的style,每一層的AdaIN都會修改到其後續卷積層對於特徵的相對重要性,且因為正規化,style並不會取決於原始數值,因此在被AdaIN操作複寫前,每個style都只會控制一個卷積層。 ### Style mixing 文中使用了mixing regularization(F) 方法來訓練StyleGAN,此方法是在訓練的過程中,先使用兩個隨機的latent code $z1$ $z2$經過mapping network後得到$w1$, $w2$,在synthesis network中隨機選取一個點(層),在此點(層)之前使用$w1$;之後使用$w2$,再進行訓練,這樣可以防止網路假定相鄰的style具有相關性。  圖三中表示了混和兩個latent code的結果,並且可以看到每個style的子集都控制著影像中特定的高階座標。 ### Stochastic variation 傳統的生成器都是藉由輸入層輸入,因此網路需要在初期的激活函數中就產生具有空間變化的偽隨機數,如此會消耗網路的容量且不容易隱藏生成訊號的週期,這點從生成人臉影像中常出現類似的特徵就看的出來,而StyleGAN通過在每層卷積層後加入noise來避免此情況。  圖4中呈現的即是在相同樣板的影像中透過加入不同noise所產生出來的結果,可以看到這些noise僅影響到頭髮中隨機的變異,但對於整體的特徵來說沒有太大的變化。  圖5中說明在不同層中noise對於特徵隨機變異的影響,可以看到若省略noise,會產製出如畫般無特徵的外觀,而在解析度較小的層(coarse layer)加入noise會影響較大尺度的特徵;在解析度較大的層(fine layer)中加入noise則是會影響小尺度的特徵。 ### Separation of global effects from stochasticity 文中發現,全域的特徵如pose, identity會由style來控制,而noise只會影響無關緊要的隨機變異如不同髮型、鬍子等。這是因為style會藉由scale與bias控制整張feature map因此可以協調地控制大範圍特徵,而noise則是獨立地加入到每個像素中,因此較適合控制隨機變異。如若網路試圖用noise來控制全域特徵,則會導致空間決策不一致而被判別器懲罰,因此網路會學習如何適當使用全域、局部通道,且無須指導。 ## Disentanglement studies  Disentanglement(解糾纏)的定義有很多,但目標都是為了讓latent space由一個線性的子空間來組成,且每一個子空間控制一個變化因素,然而實際情況下,$Z$中每個因子的採樣概率需要對應訓練資料的密度,如圖6中說明一個由兩項因子控制的變異(e.g.男子氣概程度與頭髮長度),在訓練集中可能會缺乏某些組合(如長頭髮男性),其特徵分布的情況可能會像(a)一樣左上角有缺失,而為了防止採樣去生成此種不存在的組合,會使得從$Z$到影像特徵的映射變的彎曲(b),而文中加入了mapping network,即從$Z$到$W$的映射(c),因$W$不需要按照任何固定分布進行採樣,藉由$f(z)$這段過程可以取得解藕的$W$,其特徵分布也更加線性化。此外,因從已解糾纏的特徵來生成影像一定較未解糾纏的特徵來的簡單,因此生成器會強迫mapping network對$Z$進行解糾纏,因此$W$可以消除大部分的特徵糾纏。 ### Pereptual path length 在[Laine](https://openreview.net/pdf?id=BJslDBkwG)的一篇文章中討論到在latent 空間中向量的內插會導致圖像中非線性的變化,這代表latent空間是有糾纏,且變異因子並未適當的被分離,為了量化這些影響,文中使用了以下方法: * Perceptually-based pairwise image distance 此方法將以$z1$, $z2$兩個latent code生成的圖像利用預訓練的VGG網路取得兩個embedding,而在$z1$到$z2$這段路徑下每經過$\epsilon = 10^{-4}$就會取一次perceptual distance,因此計算方法如下:  其中$G$代表生成器,$slerp$代表球面線性插植(因$z$是有normalized),$t$代表差值得某個位置並藉於$0~1$之間,$d$為perceptaul distance的評估,$E$為取100,000個樣本的期望值。 同理,如果要評估$W$也可以用相同方法:  其中因$W$沒有正規化,因此使用線性插值$lerp$   Table3 中表示了各種方法的perceptual path length,其中路徑的值越小越好,Table4中說明了不論是傳統或Style-based的生成器都可以藉由mapping newtwork改善path length,然而傳統方法中雖然$lw$有所改善,但$lz$卻變得更差。 ### Linear separability 若latent space有很好地被解糾纏,則其都應該可以找到相對於各個變異因素的一致的方向向量,為了量化這點,文中提出了一個利用超平面來區分兩個不同集合的latent space的度量方法,而在此平面的兩邊分別對應一種二元特徵。 為了標記生成影像,文中使用CelebA-HQ(40類)額外訓練了一個二元分類網路,在評估一個特張上,會先生成200000張影像,並利用分類網路分類,之後依據confidence排序,將confidence低於一半的刪除,並留下100000標記的latent space向量。 對於每個屬性會使用一個相對應的SVM來分類latent space向量及其label,之後計算conditional entropy $H(Y|X)$,X為SVM預測的類別;Y為分類網路預測的類別,這告訴我們需要多少附加信息來確定樣本的真實類別,前提是我們知道它位於超平面的哪一側,較低的值表明相應的變異因素的latent space方向一致(若$H(Y|X)$越大則Y的不確定度越高)。 Table3與Table4中說明了在$W$空間中separability都是比較低的。 ## Conclusion 文中提出的架構、各項指標都很好驗證了style-based的生成器是優於傳統的生成器,作者也相信,他們在高階特徵、隨機變異及中介latent space的研究將會改善對於GAN影像合成的了解與控制。 ### FFHQ dataset FFHQ資料集包含了70000張$1024^2$解析度的影像,並可於以下連結下載:https://github.com/NVlabs/ffhq-dataset ### Truncation trick in $W$  如果考慮訓練數據的分布,很明顯在數據密度低在網路中的表達能力相對較弱(因出現機率較小,網路學習的次數就少),而可以理解,若在這些分布中繪製latent vector可以提升影像質量。 沿著這個思路,文中首先計算$W$空間中所有$w$的平均值$\bar{w} = Ez∼P (z)[f(z)].$,在FFHQ資料集中$\bar{w}$所生成的影像也代表所有臉的平均值,之後給定一個$w$並計算$w' = \bar{w} + ψ(w − \bar{w})$,如圖8中可以看到由$\bar{w}$出發,生成的人臉都不會有artifact,而給定不同$w$往不同方向做scaling會得到特徵相反的臉。
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up