Open shimopino opened 4 years ago
[arXiv:1802.09178] Photographic Text-to-Image Synthesis with a Hierarchically-nested Adversarial Network
Zizhao Zhang, Yuanpu Xie, Lin Yang
2018-02-26
End-To-Endで高解像度な画像を生成できるHDGANを提案した。Generatorで解像度を徐々に上げながら画像の生成を行い、それぞれの解像度で意味の一貫性が保たれるようDiscriminatorにPatchGANを採用している。
またGANの評価指標として、テキストと画像の意味一貫性を測るVS Similarityを提案し、様々なデータセットを使用してモデルと評価指標の有効性を調べた。
StackGANを使用すればテキストから高解像度な画像を生成することが可能だが、ネットワークの学習プロセスが2段階に分かれており、End-To-Endな学習ができない。また1つのネットワークで画像を生成する手法も、高解像度な画像を生成することができていない。
本論文ではEnd-To-Endで高解像度な画像を生成可能なHDGANを提案した。
典型的なGANの構造は以下のように分類できる。(A)StackGANのようにGeneratorとDiscriminatorのペアを複数使用する構造、(B)1つのGeneratorに対して複数のDiscriminatorを使用する構造、(C)ProgressiveGANのようにGeneratorとDiscriminatorの層を徐々に増やしていく構造に分類される。
今回提案するGANは、Generatorの各層に対して対応するDiscriminatorを使用する構造である。
HDGANでは、テキストのベクトル表現とノイズを入力として、各層で徐々に解像度を上げながら画像を生成していく。
ネットワーク全体としては、実画像とDiscriminatorをGeneratorの各層に合わせて用意しておき、それぞれを同時に最適化させることで、それぞれの解像度で得られる情報(低解像度では全体像、高解像度ではより細部の情報)をGeneratorにフィードバックできる。
Text-To-ImageのタスクでReedらによって提案されたテキストと画像のペアに対する損失関数と、通常の敵対的損失関数を同時に学習させていく。なお通常の敵対的損失関数を計算する際には、各層のDiscriminatorに対して入力パッチの大きさが異なるPatchGANを適用する。
全体の構造は以下の図になり、Discriminatorが解くべきタスクが画像の識別のみを行う部分とテキストと画像のペアを識別させる部分で構成されていることがわかる。
従って最終的な損失関数は以下になる。
第1項と第3項が通常のGANで用いる損失関数であり、残りの項はテキストと画像のペアを識別するタスクに該当する。なお使用する関数はクロスエントロピーではなく、平均2乗誤差を採用している。
複数のデータセットを使用してモデルごとのInception ScoreとMS-SSIMを比較した。MS-SSIMは生成された画像がモード崩壊を起こしていないこと、つまり多様性を有していることを確かめるために使用した。
また新たにテキストと画像の意味一貫性を調べるために、それぞれを同じ特徴空間にマッピングしベクトルの類似度を計算するVisual-Semantic Similarity(VS Similarity)を提案した。
Inception Scoreはどのデータセットにおいてもほかのモデルよりも優れた性能を示している。
またVS Similarityに関しては、StackGANよりも高い値(類似度が高い)となっている。ただしCOCOデータセットでは使用しているデータセットよりもかなり低い類似度になってしまっている。
実際に生成された画像を見ていくと、StackGANと比較してより細かな部分を描画できていることがわかる(左図)。また、各層で出力される異なる解像度の画像を見てみても(右図)、生成される画像が一貫性を保ちながら解像度が拡大されている様子がわかる。
PatchGANの効果も確認しており、下図のようにテキストで指定されているより細かな部分描画に成功している。
https://github.com/ypxie/HDGan
論文へのリンク
[arXiv:1802.09178] Photographic Text-to-Image Synthesis with a Hierarchically-nested Adversarial Network
著者・所属機関
Zizhao Zhang, Yuanpu Xie, Lin Yang
投稿日時(YYYY-MM-DD)
2018-02-26
1. どんなもの?
End-To-Endで高解像度な画像を生成できるHDGANを提案した。Generatorで解像度を徐々に上げながら画像の生成を行い、それぞれの解像度で意味の一貫性が保たれるようDiscriminatorにPatchGANを採用している。
またGANの評価指標として、テキストと画像の意味一貫性を測るVS Similarityを提案し、様々なデータセットを使用してモデルと評価指標の有効性を調べた。
2. 先行研究と比べてどこがすごいの?
StackGANを使用すればテキストから高解像度な画像を生成することが可能だが、ネットワークの学習プロセスが2段階に分かれており、End-To-Endな学習ができない。また1つのネットワークで画像を生成する手法も、高解像度な画像を生成することができていない。
本論文ではEnd-To-Endで高解像度な画像を生成可能なHDGANを提案した。
3. 技術や手法の"キモ"はどこにある?
典型的なGANの構造は以下のように分類できる。(A)StackGANのようにGeneratorとDiscriminatorのペアを複数使用する構造、(B)1つのGeneratorに対して複数のDiscriminatorを使用する構造、(C)ProgressiveGANのようにGeneratorとDiscriminatorの層を徐々に増やしていく構造に分類される。
今回提案するGANは、Generatorの各層に対して対応するDiscriminatorを使用する構造である。
3.1 ネスト型の敵対的損失関数
HDGANでは、テキストのベクトル表現とノイズを入力として、各層で徐々に解像度を上げながら画像を生成していく。
ネットワーク全体としては、実画像とDiscriminatorをGeneratorの各層に合わせて用意しておき、それぞれを同時に最適化させることで、それぞれの解像度で得られる情報(低解像度では全体像、高解像度ではより細部の情報)をGeneratorにフィードバックできる。
3.2 複数のタスクの組み合わせ
Text-To-ImageのタスクでReedらによって提案されたテキストと画像のペアに対する損失関数と、通常の敵対的損失関数を同時に学習させていく。なお通常の敵対的損失関数を計算する際には、各層のDiscriminatorに対して入力パッチの大きさが異なるPatchGANを適用する。
全体の構造は以下の図になり、Discriminatorが解くべきタスクが画像の識別のみを行う部分とテキストと画像のペアを識別させる部分で構成されていることがわかる。
従って最終的な損失関数は以下になる。
第1項と第3項が通常のGANで用いる損失関数であり、残りの項はテキストと画像のペアを識別するタスクに該当する。なお使用する関数はクロスエントロピーではなく、平均2乗誤差を採用している。
4. どうやって有効だと検証した?
複数のデータセットを使用してモデルごとのInception ScoreとMS-SSIMを比較した。MS-SSIMは生成された画像がモード崩壊を起こしていないこと、つまり多様性を有していることを確かめるために使用した。
また新たにテキストと画像の意味一貫性を調べるために、それぞれを同じ特徴空間にマッピングしベクトルの類似度を計算するVisual-Semantic Similarity(VS Similarity)を提案した。
Inception Scoreはどのデータセットにおいてもほかのモデルよりも優れた性能を示している。
またVS Similarityに関しては、StackGANよりも高い値(類似度が高い)となっている。ただしCOCOデータセットでは使用しているデータセットよりもかなり低い類似度になってしまっている。
実際に生成された画像を見ていくと、StackGANと比較してより細かな部分を描画できていることがわかる(左図)。また、各層で出力される異なる解像度の画像を見てみても(右図)、生成される画像が一貫性を保ちながら解像度が拡大されている様子がわかる。
PatchGANの効果も確認しており、下図のようにテキストで指定されているより細かな部分描画に成功している。
5. 議論はあるか?
6. 次に読むべき論文はあるか?
論文情報・リンク