GANの基礎からStyleGAN2まで

この記事について

この記事では、GANの基礎から始まり、StyleGAN、そして”Analyzing and Improving the Image Quality of StyleGAN “で提案されたStyleGAN2を解説します。記事の目次は以下の通りです。

1. GANとは?

2. GANの評価指標

— 2.1. Frechet Inception Distance

3. StyleGAN

— 3.1. Progressive Growing

4. StyleGANの解析

5.StyleGAN2

— 5.1. 概要とkey insights

6. まとめ

1. GANとは?

GANとはGenerative Adversarial Networksの略で、教師なし学習で画像を生成するフレームワークです。

2. GANの評価指標

GANは教師なし学習であるため、教師あり学習のAccuracy, F1 scoreのように確立した評価指標がありません。ここではよく使われるFrechet Inception Distanceという評価指標とStyeGANで提案されたPerceptual Path Lengthを紹介します。

2.1. Frechet Inception Distance

Frechet Inception Distance(FID)は、生成された画像の分布と元の画像の分布がどれだけ近いかを測る指標です。

Frechet Inception Distance

2.2. Perceptual Path Length

Perceptual Path Length(PPL)は、「知覚」的に、つまり我々の感覚で見て潜在空間上で画像が滑らかに変化するか、という指標です。FIDと同様に学習済みモデルで埋め込まれる画像の距離を使います。

PPLの概念図。
PPLの定義。gはGenerator, fはStyleGANにおいて潜在変数zをスタイルwにする関数、lerpは線形補完を示す。

3. StyleGAN

GANの研究は数多くありますが、一際有名なものが2018年に発表されたStyleGAN[1]です。下の図はStyleGANで生成された画像ですが、本物と見紛うような高解像度画像が生成されているのがわかると思います。

StyleGANで生成された画像

3.1. Progressive Growing

Progresive GrowingはProgressive-Growing GAN[2]で提案された高解像度画像を生成する手法です。ざっくり言うと『低解像画像の生成から始め、徐々に高解像用のGenerator,Discriminatorを追加していくことで高解像度画像を生成する手法』です。下の図はPG-GANの模式図です。

3.2. AdaIN

AdaINはXun Huangらによって2017年に提案されたスタイル変換用の正規化手法で、表式は以下の通りです[3]。オリジナルの論文では、コンテンツ入力xとスタイル入力yを平均と分散を用いて正規化します。

AdaINを用いたスタイル変換の例。上のビル群がコンテンツ画像(スタイル変換したい画像)で、下の絵画がスタイル入力

3.3. StyleGANのネットワーク構造

StyleGANのネットワークは以下のようになっています。特徴は下記の3つです。

  • PG-GANのように確率的に生成される潜在変数から画像を生成せず、固定値から画像を生成する
  • 確率的に生成される潜在変数は8層ニューラルネットで非線形変換されてStyleベクトルWとなり、各解像度でAdaINを通して入力される。

3.4. Mixing Regularization

StyleGANでは、学習中にStyleに使われる2つの潜在変数をまぜるMixing Regularizationという正則化手法を用いています。例えば、潜在変数z_1, z_2からマッピングされたw_1, w_2というスタイルベクトルがあったとして、4x4の画像を生成するときはw_1を使い、8x8の画像を生成するときはw_2を使うというような感じです。

4. StyleGANの解析

今まで見てきたようにStyleGANでは綺麗な画像を生成することができますが、いくつかノイズや不自然な部分が発生することが知られています。

PPL vs Image Quality

5. StyleGAN2

StyleGAN2の概要とkey insightsは下記のようになっています。

概要

Key Insights

  1. AdaINのように実際の統計量で正規化するのではなく推定の統計量で正規化することで、不要なモードの顕在化を防ぎdropletを除去する
  2. Progressive Growingの代わりにskip connectionを持った階層的なGeneratorを用いることで、低解像度から順々に学習させながらも目や歯の滞留を低減する。
  3. PPLを小さくして潜在空間を滑らかにすることによる画像品質向上

5.2. StyleGAN2の画像生成手法

このパートでは、実際にStyleGAN2で何をしているのかを見ていきます。

5.2.1. AdaINに変わる正規化手法

AdaINは実際に入ってきたデータの統計量を使って正規化していますが、それがdroplet発現に繋がっています。そこで著者たちは、実際のデータの統計量ではなく推定の統計量を使って畳み込みの重みを正規化することでdroplet発現を防いでいます。模式的に示したのが下図です。

5.2.2. Progressive Growingに変わる高解像画像生成手法

元々のStyleGANのGeneratorはskip connection等がないシンプルな構成です。それのまま高解像画像生成をするとうまくいかないのでProgressive Growingを使っていたわけですが、GeneratorとDiscriminatorの表現力を上げることによりProgressive Growingを使わずとも高解像度生成ができるようにしています。

StyleGAN ( use Progressive Growing)
New Training Method( No Progressive Growing)

5.2.3. 潜在空間を滑らかにするPath Length Regularization

潜在空間の知覚的な滑らかさを示すPerceptual Path Lengthと画像の品質に相関がありそうなことがわかってきたので、それを正則化項としてモデルに組み込みます。表式は下記の通りです。aは定数でyは正規分布から生成されるランダムな画像です。

5.3. Results

まずは、それぞれの手法導入によるスコアの変化を2つのデータセットでみてみます。

6. まとめ

今回はGANの基礎とStyleGAN、そしてStyleGAN2を紹介しました。StyleGAN2では、正規化の改善と潜在空間を滑らかにする制約を加えることで画像の品質を向上させています。しかし、8 GPU(V100)を使っても、FFHQデータセットでは 9日、LSUN CARでは13日の学習時間が必要のようです。パラメータの多さ=性能であることはBigGANs等でも実証済みですが、個人PCでも扱えるような高性能GANが出てくると個人的には嬉しい限りです。。。。

Twitter , 一言論文紹介とかしてます。

Reference

  1. Tero Karras, Samuli Laine, Timo Aila, A Style-Based Generator Architecture for Generative Adversarial Networks, CVPR2019
  2. Tero Karras, Timo Aila, Samuli Laine, Jaakko Lehtinen, Progressive Growing of GANs for Improved Quality, Stability, and Variation,ICLR2018
  3. Xun Huang, Serge Belongie, Arbitrary Style Transfer in Real-time with Adaptive Instance Normalization,ICCV2017
  4. Tero Karras, Samuli Laine, Miika Aittala, Janne Hellsten, Jaakko Lehtinen, Timo Aila, Analyzing and Improving the Image Quality of StyleGAN, arXiv:1912.04958
  5. StyleGAN2, https://www.youtube.com/watch?v=c-NJtV9Jvp0

Data Scientist (Engineer) in Japan Twitter : https://twitter.com/AkiraTOSEI LinkedIn : https://www.linkedin.com/mwlite/in/亮宏-藤井-999868122