Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

<In progress> [StyleGAN2] Analyzing and Improving the Image Quality of StyleGAN #52

Open
Yagami360 opened this issue Dec 15, 2019 · 0 comments

Comments

@Yagami360
Copy link
Owner

Yagami360 commented Dec 15, 2019

0. 論文情報・リンク

1. どんなもの?

  • 従来の StyleGAN で発生していた生成画像における不自然なアーティファクトを、StyleGAN の生成器の AdaIN 部分のアーキテクチャや正則化処理の改善、及び progressive growing での学習方法を変更することで発生しないようにした改善版 StyleGAN

2. 先行研究と比べてどこがすごいの?

  • 従来の StyleGAN では非常に高品質な画像を生成できるものの、生成画像の一部に、水滴のシミのようなアーティファクトや Phase アーティファクトが生じる傾向があるという問題があった。
    本手法では、この StyleGAN のアーキテクチャと学習方法の一部を改善(具体的には、生成器の AdaIN 部分のアーキテクチャや正則化処理の改善、及び progressive growing での学習方法の変更)することで、このようなアーティファクトが生成しないようにしている。
  • 更に、progressive growing での学習において、各解像度スケールでの生成画像における寄与を可視化した検証結果より、より大きなネットワークサイズにすることで、生成画像のさらなる品質改善を実現している。
  • 更に、Path length regularization により、従来の StyleGAN と比べて、Perceptual path length (PPL) スコアを低下させ、生成画像の品質を向上させることを実現している。

3. 技術や手法の"キモ"はどこにある?

  • 生成器の AdaIN 部分のアーキテクチャと正則化処理の改善

    StyelGAN では、上式の赤丸箇所のように、生成画像や中間特徴マップにおいて、水滴のシミや渦巻模様のようなアーティファクトが発生してしまうが、
    これは、progressive growing での学習における 64x64 の解像度スケールから発生し、解像度スケールが高くなりにつれて徐々に大きなアーティファクトになっていく挙動になっている。

    この問題は、StyleGAN で新たに導入されている AdaIN 正則化によって生じる問題であると考えられる。
    より具体的には、生成器が AdaIN 正則化の元で正則化による制約を受けながらも、局所的で強いスパイク信号を生成していることに起因していると考えられる。(強い信号であるが、非常に局所的であるので正則化による成約を満たすことが出来る。また、低解像度スケールでは非常に局所的であっても、解像度スケールが上がるに連れて、大きなアーティファクトとして目立つようになる。)
    ※ 実際に、AdaIN を取り除くと、このようなアーティファクトは生じなくなることから、AdaIN 正則化によって生じる問題であると考えられる。

    上図は、上記事項を考慮して、AdaIN 適用部分での StyleGAN のアーキテクチャと本手法での改善アーキテクチャ、及び改善正則化処理を示した図である。

    ① 生成器のアーキテクチャの改善
    従来の StyleGAN のアーキテクチャでは、AdaIN 操作が適用される段階を示した (b) の Style block(灰色部分)内では、正則化(normalization)と 調整処理(modulation)?の双方が適用され、AdaIN の式で計算する平均値(mean)と分散値(std)がそれぞれ反比例の関係となっている。
    改善アーキテクチャでは、(c) のように、まず AdaIN 操作とは関係ない入力ノイズの適用処理(B)を、Styleblock の外側で行うようにする。(※こうすることで、より予測しやすい結果が得られるようになるため)
    また、Style block の AdaIN の式における平均値処理(mean)は意味をなしていない?ので、分散値処理(std)のみを行うようにする。

    ② 生成器の正則化処理の改善
    次に、従来の SyleGAN で行われている?ネットワーク重みに対する instance normalization の代わりとして、(d) のように、ネットワーク重み w に対して、以下のような2段階のスケール変換処理で正則化を行う。
    ※ instance normalization による制約は強すぎる制約になっており、これがアーティファクトを生じさせる一因となっている?。
    ※ 各解像度スケールでのスタイル(画風)を維持しながら制約を行う正則化として、このような正則化処理を考えている。

    これらのアーキテクチャと正則化処理の改善により、下図のように、従来の StyleGAN で発生していたアーティファクトを取り除くことが出来る。

  • progressive growing での学習方法の改善
    先の生成器の AdaIN 部分のアーキテクチャと正則化処理の改善により、水滴のシミのようなアーティファクトの問題は解決することに成功したが、従来の StyleGAN で発生する別のアーティファクト問題として、以下のような Phase アーティファクトと呼ばれるアーティファクトが生じてしまう問題がある。
    ※ この Phase アーティファクトは、目の眼球や歯の並び位置などが人物の姿勢に伴って変化していないことに起因する不自然なアーティファクトであるが、デモ動画(1:40 ~ )を見たほうがわかりやすい。

    この Phase アーティファクトは、従来の StyleGAN が行っている progressive growing において、低解像度スケール内での学習で、高周波での局所的な詳細を過度に生成するように学習させるために、画像全体としての整合性を損なってしまうことに起因して発生していると考えられる。
    そのため本手法では、progressive growing での学習方法、及びアーキテクチャを廃止し、別のアーキテクチャを導入することを考える。

    本手法では、progressive growing の代わりに、上式のように、MSG-GAN のアーキテクチャ (a) をベースに、異なる解像度に対応するRGB出力の寄与をアップサンプリングして合計するように簡略化した (b)、或いは resudual net の構造を織り込んだ (c) を採用する。
    ※ 論文 「MSG-GAN: multi-scale gradient GAN for stable image synthesis.」
    ※ (b), (c) のアーキテクチャを採用することで、progressive growing 固有の Phase アーティファクトが生じる問題を解決できて、更に、大幅な FID スコアと PPL スコアの改善が見込める。

    • 各解像度スケールでの生成画像への寄与の可視化

      本手法で新たに採用している Figure7-(b), Figure7-(c) のアーキテクチャは、PGGAN の progressive growing なアーキテクチャがもっていた、低解像度での画像全体の大域的な特徴から学習し、その後徐々に高解像度での局所的な画像詳細を学習していくという特性を保持している。

      このような progressive growing なアーキテクチャの特性や効果を詳細に検証するためには、学習の過程において、各解像度スケールでの学習がどの程度生成画像に寄与するのかを視覚化することが有効である。
      上図は、このような考えのもとで、Figure7-(b) のアーキテクチャで、各解像度スケールでの学習がどの程度生成画像に寄与するのかを視覚化した図である。
      Figure8-(a) の StyleGAN と同様のネットワークサイズの設定では、学習の初期段階では、低解像度の寄与が大きくなり期待通りの動作をしているものの、学習を更に勧めても途中から高解像度の寄与が一定のままであり、期待通りの動作になっていないことが見て取れる。

      つまり、従来の StyleGAN のネットワークサイズのままでは、ネットワークの容量の制約により、期待通りの progressive growing 動作を行わなくなってしまうので、本手法では、ネットワーク容量を増やしたモデルを採用している。

  • Path length regularization
    Perceptual path length (PPL) は、StyleGAN において新たに導入された生成画像の品質を定量的に評価するための指標である。

    これは、下図のように、潜在空間 Z のある端点(1)から別の端点(9)までの線形補間を実施した場合に、中間の潜在空間での値 z で生される生成画像に非線形な変化(4,5,6)が生じるが、このような線形補間において、どれだけ急激に画像が変化するのかを計測することにより、潜在空間の entanglement(歪み)or disentanglement (解きほぐし)の定量的指標、並びに生成画像の定量的評価指標として利用したものである。

    実際に、この PPL では下図のように、低い PPL 値では生成画像の品質が向上し、逆に高い PPL 値では生成画像の品質が低下するという関係がある。

    つまり、より低い PPL 値になるように生成器を正則化すれば、より滑らかな潜在空間への埋め込みが行えていることになるので、結果として、生成器が生成する画像の品質を向上させることが期待できる。

    ここで、生成器が行っている潜在空間 W から画像空間 Y への写像 g : W → Y において、潜在空間 W 内での小さな振動(摂動)は、画像空間 Y 内では、摂動の方向に関係なく同じ大きさの変化(変位)をもたらすことが知られている?
    ※ 詳細は、論文 「Is generator conditioning causally related to GAN performance?」 参照

    この知見に基づき、摂動の方向に関係なく、潜在変数 w や画像中のベクトル y のベクトルの長さ?を保持するために、以下のような式を考える。

    そして、この式を最小化するような正則化処理(Path length regularization)を考えるが、この式は、ヤコビアン J が 直交行列になるとき最小化される(詳細計算略)。
    ※ 最小化問題を考えるのは、先の議論でみた、より低い PPL 値になるように生成器を正則化すれば、より滑らかな潜在空間への埋め込みが行えているという結果より?

    尚、このヤコビアン J をそのまま計算すると計算コストが高いので、以下の式で計算するようにする。

    下図は、このような正則化処理(Path length regularization)により、従来の StyelGAN より PPL スコアが低下し、その結果として生成画像の品質が向上していることを示している。

  • Projection of images to latent space
    上記 PPL で正則化された生成器(Path length regularized generator)では、生成画像の品質が向上するだけでなく、
    画像の潜在空間 W への埋め込み(=StyleGAN が行っている潜在空間→画像の反転)能力が向上するという効果もある。
    これにより、どのネットワークでどの画像が生成されているのか?といったことを特定することが可能になる。
    xxx

4. どうやって有効だと検証した?

  • 本手法で提案されている生成器の AdaIN 部分のアーキテクチャと正則化処理の改善により、従来の StyleGAN で発生していた生成画像や中間特徴マップにおける水滴のシミのようなアーティファクトが発生していないことを定性的に検証している。

  • Path length regularization)により、従来の StyelGAN より PPL スコアが低下し、その結果として生成画像の品質が向上することを検証している。

  • xxx

5. 議論はあるか?

  • StyleGAN で核となっていた AdaIN と PGGAN による progressive growing が全面的に廃止されており、改善版 StyleGAN とはいっても、アーキテクチャは大きく異る印象(今までの AdaIN はなんだったのという印象)
  • この論文だけでは各種提案アーキテクチャの詳細がわからない。公式実装をみる必要あり

6. 次に読むべき論文はあるか?

  • Is generator conditioning causally related to GAN performance?
  • MSG-GAN: multi-scale gradient GAN for stable image synthesis.

7. 参考文献

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Development

No branches or pull requests

1 participant