StyleGAN-A Style-Based Generator Architecture for GANs

Generating and Tuning Realistic Artificial Faces

Moris
Computer Vision Note
10 min readMar 18, 2024

--

生成對抗網絡 (GAN) 是機器學習中相對較新的概念,於2014年首次被介紹。它們的目標是合成與真實圖像無法區分的人工樣本,例如圖像。一個常見的GAN應用是通過從名人臉部數據集學習來生成人工臉部圖像。雖然GAN圖像隨著時間變得更加逼真,但它們的主要挑戰之一是控制它們的輸出,即改變臉部圖像中的特定特徵,如姿態,臉型和髮型。

NVIDIA的新論文,基於風格的對抗生成網絡架構(StyleGAN)提出了一種解決這個挑戰的新模型。StyleGAN逐漸生成人工圖像,從非常低的解析度開始,然後繼續到高解析度(1024×1024)。通過單獨修改每個級別的輸入,它控制在該級別表達的視覺特徵,從粗糙特徵(姿態,臉形)到細節(髮色),而不影響其他級別。

這種技術不僅允許更好地理解生成的輸出,而且還產生了最先進的結果 — 高解像度圖像看起來比以前生成的圖像更逼真。

Source: StyleGAN

Outline

  1. Background
  2. How StyleGAN works
  3. Results
  4. Feature disentanglement
  5. Implementation Details
  6. Conclusion

1. Background

GAN的基本組成部分包括兩個神經網路-一個生成器,從頭開始合成新樣本,以及一個鑑別器,該鑑別器接收來自訓練數據和生成器輸出的樣本,並預測它們是“真實的”還是“假的”。

生成器的輸入是一個隨機向量(噪聲),因此其初始輸出也是噪聲。隨著時間的推移,隨著它從鑑別器接收反饋,它學會合成更“真實的”圖像。鑑別器也通過將生成的樣本與真實樣本進行比較來隨著時間的推移改進,使得生成器更難欺騙它。

GAN總覽

研究人員在2018年之前一直無法生成高質量的大圖像(例如1024×1024),直到NVIDIA首次用ProGAN解決了這個挑戰。 ProGAN的關鍵創新是逐步訓練 — — 它首先用非常低解析度的圖像(例如4×4)訓練生成器和鑑別器,然後每次添加一個更高解析度的層。

這種技術首先通過學習即使在低解析度圖像中也會出現的基礎特徵來創建圖像的基礎,並隨著解析度的提高隨著時間的推移學習更多的細節。訓練低解析度圖像不僅更容易且更快,而且還有助於訓練更高的級別,因此,總訓練時間也更快。

ProGAN overview

ProGAN可以生成高質量的圖像,但就像大多數模型一樣,其控制生成圖像的特定特徵的能力非常有限。換句話說,這些特徵是纏繞在一起的,因此即使嘗試稍微調整輸入,通常也會同時影響多個特徵。對此的一個好的類比可能是基因,其中改變單個基因可能會影響多個特性。

ProGAN從低分辨率到高分辨率層的逐步訓練。來源:(Sarah Wolf的偉大ProGAN博客文章

2. How StyleGAN works

StyleGAN論文提供了ProGAN圖像生成器的升級版本,專注於生成器網路。作者觀察到,如果適當利用,ProGAN逐層進階的潛在好處是它能夠控制圖像的不同視覺特徵。層次越低(和解析度),它影響的特徵就越粗糙。論文將特徵分為三種類型:

  1. 粗糙 — 解析度高達82 — 影響姿態,一般髮型,臉型等
  2. 中等 — 解析度為162至322 — 影響更細致的面部特徵,髮型,眼睛開/關等。
  3. 細緻 — 解析度從642到10242 — 影響色彩方案(眼睛,頭髮和皮膚)和微觀特徵。

新的生成器包括對ProGAN生成器的幾個增補:

2.1 Mapping Network

Mapping Network的目標是將輸入向量編碼為一個中間向量,其不同的元素控制不同的視覺特徵。這是一個非常重要的過程,因為使用輸入向量控制視覺特徵的能力有限,因為它必須遵循訓練數據的概率密度。例如,如果數據集中有更多的黑髮人物圖像,則會將更多的輸入值映射到該特徵。因此,該模型無法將輸入的部分(向量中的元素)映射到特徵,這種現象被稱為特徵纏繞。但是,通過使用另一個神經網路,模型可以生成一個不必遵循訓練數據分佈並可以減少特徵之間的相關性的向量。

Mapping Network由8個全連接層組成,其輸出ⱳ與輸入層的大小相同(512×1)。

帶有Mapping Network的生成器(除了ProGAN合成網路)

2.2 Style Modules (AdaIN)

AdaIN(Adaptive Instance Normalization)模塊將由Mapping Network創建的編碼信息ⱳ轉換為生成的圖像。該模塊被添加到Synthesis Network的每個解析度級別,並定義該級別中特徵的視覺表達:

  1. 首先對卷積層輸出的每個通道進行規範化,以確保第3步的縮放和偏移具有預期的效果。
  2. 使用另一個全連接層(標記為A)將中間向量ⱳ轉換為每個通道的比例和偏差。
  3. 比例和偏差向量移動卷積輸出的每個通道,從而定義卷積中每個濾波器的重要性。這種調整將ⱳ的信息轉換為視覺表示。
生成器的自適應實例標準化(AdaIN)

2.3 Removing traditional input

大多數模型(包括ProGAN)使用隨機輸入創建生成器的初始圖像(即4×4級別的輸入)。 StyleGAN團隊發現圖像特徵由ⱳ和AdaIN控制,因此初始輸入可以省略並替換為常數值。雖然論文沒有解釋為什麼它可以提高性能,但一個安全的假設是它減少了特徵纏繞 — — 僅使用ⱳ而不依賴纏繞的輸入向量,使網路更容易學習。

以常數輸入替換Synthesis Network輸入

2.4 Stochastic variation

人們面部有許多細小的方面可以被視為隨機的,例如雀斑,頭髮的確切位置,皺紋,這些特徵使圖像更逼真並增加了輸出的多樣性。將這些小特徵插入GAN圖像的常見方法是將隨機噪聲添加到輸入向量。然而,在許多情況下,由於上述的特徵纏繞現象,控制噪聲效果可能很棘手,這導致圖像的其他特徵受到影響。

StyleGAN中的噪聲的添加方式與AdaIN機制類似 — — 在AdaIN模塊之前,將縮放的噪聲添加到每個通道,並稍微改變其操作的解析度級別的特徵的視覺表達。

在synthesis network的每個解析度級別上添加縮放噪聲

2.5 Style mixing

StyleGAN生成器在合成網路的每個級別中使用中間向量,這可能會導致網路學習級別之間的相關性。為了降低相關性,模型隨機選取兩個輸入向量,並為它們生成中間向量ⱳ。接著,它用第一個向量訓練某些級別,然後在隨機點切換到另一個向量,訓練其餘級別。隨機切換確保網路不會學習並依賴級別之間的相關性。

雖然這個概念並不提高所有數據集的模型性能,但它有一個非常有趣的副作用 — — 它能以一種連貫的方式結合多張圖像。該模型生成兩張圖像A和B,然後通過從A取低級別特徵和從B取其餘特徵來結合它們。

2.6 Truncation trick in W

生成模型中的一個挑戰是處理在訓練數據中表示不足的區域。生成器無法學習它們並創建類似它們的圖像(而是創建看起來不好的圖像)。為了避免生成劣質的圖像,StyleGAN截斷了中間向量ⱳ,強迫它靠近“平均”中間向量。

在訓練模型之後,通過選擇許多隨機輸入;用映射網路生成它們的中間向量;並計算這些向量的平均值,來產生”平均”的ⱳ_avg。當生成新圖像時,ⱳ被轉化成ⱳ_new=ⱳ_avg+𝞧(ⱳ -ⱳ_avg),其中𝞧的值定義了圖像可以與“平均”圖像有多遠(以及輸出可以有多麼多樣化)。有趣的是,通過在仿射變換塊之前為每個級別使用不同的𝞧,該模型可以控制每組特徵與平均值的距離。

通過在不同級別改變𝞧的值來調整生成的圖像

2.7 Fine-tuning

StyleGAN對ProGAN的進一步改進是更新了幾個網路超參數,如訓練持續時間和損失函數,並將上/下採樣從最近鄰居替換為雙線性抽樣。雖然這一步對模型性能的提升很重要,但它較不具創新性,因此在這裡不會詳細描述(論文的附錄C)。

StyleGAN概述

3. Results

該論文在兩個數據集上呈現了最先進的結果 — — CelebA-HQ,由明星的圖像組成,和一個新的數據集Flickr-Faces-HQ (FFHQ),由“普通”人的圖像組成,並且更加多元化。下面的圖表顯示了模型在不同配置下的Frèchet inception distance(FID)得分。

模型在不同配置下的性能(FID得分)與ProGAN相比。得分越低,模型越好(來源:StyleGAN

除了這些結果,該論文還表明該模型不僅適用於臉部,還通過呈現其在兩個其他數據集的臥室圖像和汽車圖像的結果來證明這一點。

4. Feature disentanglement

為了使特徵分離的討論更具量化,論文提出了兩種新的衡量特徵解纏的方法:

  1. Perceptual path length —測量插值於兩個隨機輸入之間的連續圖像(它們的VGG16嵌入)的差異。劇變意味著多個特徵一起改變,並且可能被糾纏在一起。
  2. Linear separability —將輸入分類為二元類別,如男性和女性的能力。分類越好,特徵越可分。

通過比較輸入向量z和中間向量ⱳ的這些指標,作者們顯示ⱳ中的特徵明顯更可分。這些指標還顯示了選擇在映射網路中選擇8層與選擇1或2層的好處。

5. Implementation Details

StyleGAN在CelebA-HQ和FFHQ數據集上訓練了一周,使用了8個Tesla V100 GPU。它在TensorFlow中實現,並將被開源。

6. Conclusion

StyleGAN是一篇突破性的論文,它不僅產生了高質量和真實的圖像,還允許對生成的圖像進行更好的控制和理解,使得生成看起來真實的假圖像比以前更容易。在StyleGAN中提出的技術,特別是映射網路和自適應歸一化(AdaIN),可能會成為GANs未來許多創新的基礎。

--

--

Moris
Computer Vision Note

An AI engineer who loves deep learning technology and is willing to share resources and learn new technologies