オムライスの備忘録

数学・統計学・機械学習・プログラミングに関することを記す

【深層学習】Style GAN #アルゴリズム編

Index

Style GAN

深層学習を用いた生成アルゴリズム GAN の応用手法.

画像生成の精度に対する改善手法.

Generator に関する改善の提案.

Progressive Growing GAN / PG GAN をベースに、Generator を改善した.

Generator Architecture

従来の GAN では、潜在変数は、Generator の最初の層へ入力されるのみだった.



対して、Style GAN では、

  • 潜在変数を画像へ変換する関数 (CNN) の入力のように扱わない
  • 入力は、潜在変数の代わりに、学習可能なテンサー



では、潜在変数  z は、どのように扱うのか.

  • 潜在変数  z は、Mapping Network  f へ入力されて、中間潜在変数  w として出力される
  • 従来の入力のようなものは、Synthesis Network  g へ入力される

Mapping Network

潜在変数  z\ \in\ Z は、非線形関数 Mapping Network  f によって、中間潜在変数  w\ \in\ W写像される.



512 次元の潜在変数  z を、8 つの MLP で、512 次元の中間潜在変数  w へ変換・写像する.

Synthesis Network / 合成ネットワーク

入力 を CNN で Upsampling する.

Adaptive Instance Normalization / AdaIN

変換された潜在変数  w は、Synthesis Network の内部で、生成途中の画像に、情報として追加される.



その際に、中間潜在変数  w は、スタイル情報  y = (y_s,\ y_b) として扱う.

そして、Adaptive Instance Normalization / AdaIN という正規化方法で、Style 情報を加えつつ、正規化する.

 AdaIN(x_{i},\ y)\ =\ y_{s,\ i}\ \displaystyle \frac{x_{i}\ -\ \mu(x_{i})}{\sigma (x_{i})}\ +\ y_{b,\ i}

Noise

自然な表現を得るために、ノイズを加えるフェイズを導入する.

生成画像の品質

高解像度の生成画像の品質を向上させるために、PG GAN をベースに改善している.

Bilinear Up / Downsampling

  • Making Convolutional Networks Shift-Invariant Again

Mixing Regularization

潜在空間におけるスタイルのローカライズ (似ている画像は近くに、異なる画像は遠くに) を促進するために、 正則化 / Regulation を考える.

提案されている Mixing Regularization では、2 つのランダムな潜在変数  z_1,\ z_2 を使い、 Style Mixing と呼ばれる操作を行う.

Style Mixing

Style Mixing では、2 つの異なる潜在変数  z_1,\ z_2 から画像を生成する操作を行う.

Synthesis Network 内のランダムなポイントで、ある潜在変数から、異なる潜在変数に 切り替える操作を行うことを Style Mixing と呼ぶ.



ランダムな潜在変数  z_1,\ z_2 を Mapping Network を介して、中間潜在変数  w_1, w_2 を取得する.

Synthesis Network 内のスタイル情報の合成する際に、あるポイントから 中間潜在変数を  w_1 から  w_2 に切り替える.

Regulation の狙い

この正則化は、隣接するスタイルが、相関していると学習することを防ぐ.

Noise

実際の人間の画像では、「無精髭」、「そばかす」、「毛穴」の位置は、確率的であると考えることができる.

そこで、Generator のランダム性を加えることができる仕組みを導入する.

上で、すでに述べたとおり、畳み込み層のあとに、ピクセル単位のノイズを追加する.



(b) では、異なるノイズを加えた Generator を使用することによる、生成画像の微細な違い (確率的な変動)が確認できる.

(c) では、100 画像を生成したときの、標準偏差ピクセルごとに表示した画像である.

これから、ノイズにの影響範囲は、全体的な形状などには、影響していないことが確認できる.



上の画像では、ノイズを与えるタイミングを調整することで、生成される画像の変化を確認できる.

  • (a) では、すべての CNN Layer の後で、ノイズを加えている
  • (b) では、ノイズを加えていない
  • (c) では、細いノイズのみを加える (層の後半のみ)
  • (d) では、粗いノイズのみを加える (層の前半のみ)

参考

  • A Style-Based Generator Architecture for Generative Adversarial Networks
    • [2018]
    • Abstract
    • 2 Style-based generator
      • 2.1 Quality of generated images
    • 3 Properties of the style-based generator
      • 3.1 Style mixing
      • 3.2 Stochastic variation
    • arxiv.org

Web サイト