paper : StyleGAN XL
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
- modify the generator and its regularization losses
- adapting the latent space to work well with Projected GAN
- class-conditional setting
- progressive growing to improve training speed and performance
- training to find a well-suited configuration
- provide class information via a pretrained classifier
regularization
正則化常常被使用在 GAN 的訓練中,對於單一物件的資料集有好的影響 (ex. FFHQ),但是對於比較複雜的資料集卻會造成潛在的傷害,所以應該要避免使用,而在 StyleGAN 使用的正則化有 style mixing regularization 與 path length regularization (plr) 兩種,第一個在 StyleGAN3 中已經沒有使用了, plr 雖然會對圖片早成傷害,以及導致訓練早期步穩定,但 plr 可以實現高品質的圖片反演化 (映射到 mapping space ),所以他們等到訓練經過一定時間後才啟用 (當訓練足夠),可以避免上方提到的問題。
low-dimensional latent space
最近有研究表明真實圖片的 latent space 其實比我們想像的都還低,比如 ImageNet 的維度就落在約 40 附近,而與 StyleGAN3 的 512 比較起來, 512 明顯有些太多於了,這樣也使的 mapping network 訓練的十分緩慢,為此他們將 noise 設定成 64 ,但不針對 mapping network 的架構進行修改 (512),不去影響 model capacity 。
pretrained class embeddings
在插入 class embeddings 的地方原本的方法使用 one hot 的方式進行編碼,但作者發現到這麼做網路會傾向對相同 class 生成類似的結果,於是他們使用 Efficientnet-lite0 的 pretrain ,根據 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 。