StyleGAN-XL: Scaling StyleGAN to Large Diverse Datasets

briefly explained in a few minutes
difficulty : 💛💛💛💛🖤

tags: GAN, T2I

👀 Take a look

這篇論文的基礎架構是建立在 StyleGAN3 上,為了解決 StyleGAN base 的 generator 在複雜資料集的生成問題,比如知名的資料集 ImageNet

📖 Prior knowledge

🚀 Motivation

在 2021 年的時候,diffusion model 被號稱會在圖像生成任務上擊敗 GAN ,這是因為 GAN 天生的一些問題,比如多樣性、訓練不穩定等等,然而 StyleGAN XL 卻在 ImageNet-256 的圖像生成任務上獲得當前最低的 fid ,以及非常優秀的圖片真實性。

當然 diffusion model 也有他對應的一些問題,比如他在生成圖片上的速度非常緩慢,所以沒辦法直接替換原本 GAN 在實務上的使用模式。

🧠 Main Ideas

  • scaling stylegan to ImageNet

    1. modify the generator and its regularization losses
    2. adapting the latent space to work well with Projected GAN
    3. class-conditional setting
    4. progressive growing to improve training speed and performance
    5. training to find a well-suited configuration
    6. provide class information via a pretrained classifier
  • regularization

    正則化常常被使用在 GAN 的訓練中,對於單一物件的資料集有好的影響 (ex. FFHQ),但是對於比較複雜的資料集卻會造成潛在的傷害,所以應該要避免使用,而在 StyleGAN 使用的正則化有 style mixing regularizationpath length regularization (plr) 兩種,第一個在 StyleGAN3 中已經沒有使用了, plr 雖然會對圖片早成傷害,以及導致訓練早期步穩定,但 plr 可以實現高品質的圖片反演化 (映射到 mapping space ),所以他們等到訓練經過一定時間後才啟用 (當訓練足夠),可以避免上方提到的問題。

  • low-dimensional latent space

    最近有研究表明真實圖片的 latent space 其實比我們想像的都還低,比如 ImageNet 的維度就落在約 40 附近,而與 StyleGAN3512 比較起來, 512 明顯有些太多於了,這樣也使的 mapping network 訓練的十分緩慢,為此他們將 noise 設定成 64 ,但不針對 mapping network 的架構進行修改 (512),不去影響 model capacity

  • pretrained class embeddings

    在插入 class embeddings 的地方原本的方法使用 one hot 的方式進行編碼,但作者發現到這麼做網路會傾向對相同 class 生成類似的結果,於是他們使用 Efficientnet-lite0pretrain ,根據 ImageNet 相同 class 的圖片進行編碼,並將結果取平均來獲得 class embeddings ,並在 generator 的部分通過 linear projection ,獲得與 noise 同樣大小的向量。

  • progressive growing

    progressive growing 一開始被使用在 StyleGAN 的架構中,來穩定 GAN 的訓練過程,並生成高解析度的圖片,但在 StyleGAN2 的研究中,發現到他會造成一些額外的問題,比如說 artifact 以及產生紋理沾黏 ( StyleGAN3 要解決的)。
    於是作者希望能重新考慮使用 progressive growing ,並在此基礎上避免紋理沾黏產生。他們採用了最近在 diffusion model 上的想法,把高解析度的生成任務分解成多個低解析度的任務,在藉由 upsampling 來產生最終的圖像,他們發現到這在 ImageNet 上對 fid 有很大的進步。

  • classifier guidance for GANs

    這個方法本來被應用在 diffusion model 上,在每個時間段用來插入 class information ,作者提到即使模型已經接收到了有關於 class 的資訊 (在 generator 階段) ,模型還是可以因此受益。
    具體的做法是將生成的圖片通過預訓練的 (classifier) 來獲得預測 label ,並在 generator 上加入一個 loss ,控制生成圖片的類別,在這個地方它們使用 DeiT-small,因為該模型在不怎麼影響訓練時間的情況下具有很好的 classification performance

👓 results

Interpolations

🔗 reference

StyleGAN XL