GANの基礎からStyleGAN2まで

Source: Deep Learning on Medium

この記事について

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

1. GANとは?

2. GANの評価指標

— 2.1. Frechet Inception Distance

— 2.2. Perceptual Path Length

3. StyleGAN

— 3.1. Progressive Growing

— 3.2. AdaIN

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

— 3.4. Mixing Regularization

4. StyleGANの解析

5.StyleGAN2

— 5.1. 概要とkey insights

— 5.2. StyleGAN2の画像生成手法

— — 5.2.1. AdaINに代わる正規化手法

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

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

— 5.3. Results

6. まとめ

1. GANとは?

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

登場するネットワークはノイズから画像を生成するGeneratorと, Generatorが生成した画像と本物の画像を見分けるDiscriminatorと呼ばれる2つです。

GANでは、以下の目的関数を使ってGenerator、Discriminatorを交互に学習させていくことを特徴としています。ここでGeneratorはノイズzを入力として本物の画像と同じ次元をもつ画像データを生成し、Discriminatorは最終層のsigmoid関数によって0~1の値を出力します。

Discriminator学習時はGeneratorのパラメータを固定して、本物の画像を入れたときに1を出力(式の第1項)、Generatorの生成画像を入れた時は0を出力(式の第2項)させるように学習させます。つまり目的関数全体を最大化するように学習させます。

一方Generator学習時は、Discriminatorのパラメータを固定し、式の第2項を0にするように、つまりD(G(z))の値を1にするように学習させます。第1項は固定値になるので、目的関数全体を最小化するように学習を行います。

このようにGeneratorとDiscriminatorがお互い切磋琢磨するような学習を繰り返していると、最終的にGeneratorは本物の画像と見紛う偽画像を生成することができるようになります。

2. GANの評価指標

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

2.1. Frechet Inception Distance

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

しかし、画像は高次元空間に埋め込まれているので簡単に分布の距離を計測することができません。そこで、近年人間を超える画像認識精度をもつモデルを使って、画像を低次元空間に埋め込んでもらい、その空間で分布の距離を測ろうというのがFIDの基本的なコンセプトです。

定義式は下記のとおりで、Inception V3というネットワークで低次元空間に埋め込まれたベクトル(Poolingの出力)でWasserstein-2距離を算出しています。m,cは埋め込み空間上でん平均ベクトル、共分散行列で、添字wがついているものが生成画像、ついていないものは実画像です。分布の距離なので、値は小さいほど実画像っぽい偽画像が生成できている、つまりGenerator性能が良いことを示します。

Frechet Inception Distance

2.2. Perceptual Path Length

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

ざっくり説明すると、「画像を生成する種となる潜在空間上で、画像の変化は『知覚的』に短距離で変化しているか」の指標です。それを図で説明したのが下の図です

PPLの概念図。

白い犬を生成する潜在変数z1と黒い犬を生成する潜在変数z2があったとします。色以外の要素は変化させていないので、その中間データをとると、白と黒の間の色、つまり灰色の犬が出てくるように変化するような経路で潜在変数が移り変わっていくこと理想的です。つまり、色のみを変化させる青色経路が「知覚的」に最短距離となります。逆に、色だけを変化させたのに、物体の形が変化して一度寝室のような画像を経由する緑の経路は、「知覚的」に長い距離となります。

これを数値化したのがPPLで、定義式は下記のとおりです。2つの潜在変数z_1, z_2を比率tで混ぜ合わせた潜在変数で生成した画像と、比率t+εで混ぜ合わせた潜在変数で生成した画像の距離の期待値となっています。

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

図説明すると下記のようになります。tで混ぜたデータと、t+εで混ぜたデータが「知覚的」に近ければ、小さな値をとります。

z1とz2の混合比率tに微小変化ε1, ε2を与えた潜在変数で画像を生成した例です。「知覚的」な最短距離である青い経路は、微小変化を与えても同じような灰色の犬が出てくるので、我々の感覚では「画像間の距離が近い」と感じます。つまり「知覚的」な距離は短いです。しかし、「知覚的」に遠回りしている緑の経路では、寝室の画像が出てきています。感覚的には、灰色の犬と寝室の違いは大きいので、知覚的な距離は大きいです。

ここでは学習済みのVGGという画像認識ネットワークを使用し、それが算出する特徴量ベクトルの距離を「知覚的」な距離にしています。解析的に求めることはできないので、多くの画像でこの計算を行なって期待値をとった結果が、PPLの値になります。この値が小さいほど潜在空間が「知覚的」に滑らかだということになります。