Re:ゼロから始めるML生活

機械学習ド素人が、流行に乗ってニューラルネットとかその他いろいろ勉強してみるブログ

【論文メモ:HDGAN】Photographic Text-to-Image Synthesis with a Hierarchically-nested Adversarial Network

論文

[1802.09178] Photographic Text-to-Image Synthesis with a Hierarchically-nested Adversarial Network

著者

Zizhao Zhang, Yuanpu Xie, Lin Yang
University of Florida

背景

テキストから写実的画像を生成すること(Text-to-Image)は生成モデルの分野での大きなテーマとなっている。 このテーマでは、精細な画像を生成することと入力したテキストとの一貫性を両立することが必要になる。

Text-to-Imageの分野では、近年ではGANを用いた生成モデルが多数提案されている。 GANを使用する場合には学習の収束と安定性が大きな課題となる。 これらの課題を解決し解像度とテキストの一貫性を実現するような先行研究が行われてきたが、解像度が低かったり大きなネットワークを必要としたりと、まだまだ確立した手法があるとは言えない。

目的とアプローチ

目的

高解像度かつテキスト一貫性を併せ持つ生成モデルの実現

アプローチ

HDGAN (High-Definition results and the idea of Hierarchically-nested Discriminators)

  • one generator - multi discriminator の使用によるステージングを必要としない
  • 中間生成画像を段階的にDiscriminatorに入力するLoss

提案手法

HDGAN

GANを使用した生成モデルの先行研究では、学習を安定させるためにStageを使用したり、multi Discriminatorにすることで、DiscriminatorがGeneratorより過剰に学習していくことを回避していた。 今回の提案手法であるHDGANの概要を下記に示す。

f:id:nogawanogawa:20180625223238j:plain

HDGANは、Generator1つに対して、複数の階層的Discriminatorを用意する。 Generatorの中間生成画像をそれぞれDiscriminatorに入力することで、Generatorを1つにすることが可能である。

また、先行研究と提案手法を比較を下記に示す。

f:id:nogawanogawa:20180625223635j:plain

(A)StackGANでは、低解像度の画像を生成するStage-Ⅰと高解像度の画像を生成するStage-Ⅱの二段階のステージを使用する。 Stage-Iを先に重点的に学習することで、安定した学習が可能になる一方で、通常のネットワークに加えステージを導入するためアーキテクチャが複雑になる。

(B)また、GMANのようにDiscriminatorを複数使用したGANのモデルも提案されている。 これによって、Discriminatorに1つの場合より、Generatorの学習が安定する。 一方で、これを高解像度の場合に適用してうまくいくかは不透明である。

(C)さらに、PGGANでは低解像度から高解像度まで段階的にGeneratorとDiscriminatorの層を増やしていく。 これにより、低解像度の層が安定するまで学習して層を追加するので、安定して学習させる事ができる。 一方で、高解像度を生成しようとするにつれて、高い演算性能ができる。

(D)提案手法では、Generatorの中間生成物と対応する解像度のDiscriminatorに入力する。 これにより、隠れ層の出力に対するフィードバックの信号がより強いフィードバックとして反映されるため、学習が安定化する。

Multi-purpose adversarial losses

一般的なGANの目的関数を下記に示す。

f:id:nogawanogawa:20180702213014j:plain

ここでGはGenerator、DはDiscriminatorを表している。 このように一般的なGANではGeneratorとDiscriminatorのLossを最小化することが目的関数になっている。 このときのLossは下記の様になっている。

f:id:nogawanogawa:20180702213741j:plain

Eはクロスエントロピーを表し、DiscriminatorをGeneratorに対して2つの項を考えている。

一方、HDGANの目的関数を下記に示す。

f:id:nogawanogawa:20180702213105j:plain

一般的なGANに対して、Textに関する項tが追加されている。 このときのLoss計算の概念図とLossの計算式を下記に示す。

f:id:nogawanogawa:20180625223709j:plain

f:id:nogawanogawa:20180702213118j:plain

HDGANでは、Discriminatorが複数あるmulti-Discriminatorの構成を取るため、Generatorの隠れ層の分だけLossを個別に計算して足し合わせ る。 そのため、Lossも各階層について計算した後、総和を取ることで表現される。

Architecture Design

Generator

Generatorは単純な3つのモジュールで構成される。

  • K-repeat Res block
    • 畳み込み層×2
    • ReLU
    • batch normalization
  • stretching layers
    • サイズ2の近傍アップサンプリング
    • ReLU
    • 畳み込み層×1
    • batch normalization
  • linear compression layers
    • 畳み込み層
    • Tanh(RGB空間に圧縮)

入力は conditioning augmentationと学習済みのembedding matrixによって生成された1024×4×4のembeddingを使用する。

Discriminator

Discriminatorはシンプルにストライド2の畳み込み層に対してバッチノーマライゼーションとLeakyLUを適用させる。 実装には2通りの選択肢がある。 1つはDiscriminatorそれぞれに対して教師データと生成データの判別を行う方法である。 もう1つは、始めに512×4×4の特徴マップと128×4×4のtext embeddingを合体させる。 それからサイズ1の畳み込み層を使用してテキストと画像の特徴を統合し、4×4の畳み込み層によって画像とテキストのペアに対して教師データと生成データとを判別する。

その他の最適化等は通常のGANと同様であるため割愛する。

評価

Experimental Setup

Dataset

評価に使用するデータセットは下記の3種類である。

  • CUB dataset
  • Oxford-102
  • COCO dataset

Evaluation metric

評価の指標としてInception scoreとMulti-scale structural similarity (MS-SSIM score)を使用する。 これら2つはGANの評価に広く使用されている一方、テキストと生成画像の一貫性については評価できない。 そこで本研究では、 Visual-semantic similarityを評価指標として導入する。

Visual-semantic similarityは下記の式によって評価する。

f:id:nogawanogawa:20180702213933j:plain

ここでvはインセプションモデルによって抽出された特徴ベクトルを表す。 スコアリング関数cを使用して二次元のロスを計算している。

テスト段階においては、text embeddingと生成画像のペアで算出される特徴ベクトルは同じであることが望ましい。 上の式によって、ペアの特徴ベクトルが親しいほど、大きく算出される仕組みとなっている。

先行研究との比較

提案手法の妥当性を評価するために、先行研究との比較を行う。 比較対象は、GAN-INT-CLS、GAWWN、TAC-GAN、Progressive GAN、StackGAN、StackGAN++をとする。 特に、StackGANについては詳細に評価する。

提案手法と比較対象のInception scoreを下記に示す。

f:id:nogawanogawa:20180625224100j:plain

HDGANでは、CUBのデータセットでStackGANに比べて45%、StackGAN++に比べて31%良いなど、先行研究に対して非常に良い効果が得られている事がわかる。 Oxford-102では、TAC-GANと同等の結果が得られているが、TAC-GANで使用しているような付加情報を本研究では使用していないという優位性がある。

提案手法とStackGANで生成された画像を下記に示す。

f:id:nogawanogawa:20180625224207j:plain

f:id:nogawanogawa:20180625224241j:plain

提案手法のほうが、文章の詳細も表現され、自然な色使いで複雑な形状を表現できている。

解像度別のInception scoreを下記に示す。

f:id:nogawanogawa:20180625224313j:plain

解像度が高くなってもInception scoreはStackGANより優れている。 また、StackGANでは画像の一貫性が崩れているが、HDGANでは解像度を大きくしたときに画像の一貫性が崩れていない。

Visual-semantic similarityの評価を下記に示す。

f:id:nogawanogawa:20180625224124j:plain

HDGANのほうが値が大きく、意味論的な一貫性が取れていることがわかる。

さらに多様性についても評価した結果を下記に示す。

f:id:nogawanogawa:20180625224438j:plain

HDGANは、同じ入力からでも広いバリエーションで画像を生成できている。

MS-SSIMについてStackGAN・Prog.GANと比較した結果を下記に示す。

f:id:nogawanogawa:20180625224507j:plain

StackGANよりEquallity lineより小さく、多様性の高い優れたモデルとわかる。 また、Prog.GANと比較してもMS-SSIMの値は優れている。

文を書き換えによるstyle transfer

文の書き換えによるstyle transferに関する結果を下記に示す。

f:id:nogawanogawa:20180625224528j:plain

提案手法により、なめらかに画像が変換されている事がわかり、細部まで表現されている。

考察

階層的敵対性学習

階層化した学習の妥当性に関して、下記に示す。

f:id:nogawanogawa:20180625224558j:plain

Discriminatorの層が深くなればなるほど、当手法は有効であると考えられる。 また、StackGANではStageごとにTextを入力していたが、当手法では入力は一度だけにもかかわらず、良い結果となっている。

局所的画像のLoss

局所的画像のlossの使用について評価する。

f:id:nogawanogawa:20180625224614j:plain

上の表ではlocal image lossを使用した場合(w/)、使用しない場合(w/o)よりも値が優れることがわかる。 そのため、local image lossの活用は妥当であるといえる。

また、下記の図からも、テキストの内容をより詳細に反映した画像を生成できることがわかる。

f:id:nogawanogawa:20180625224632j:plain

結論

本論文では、中間生成画像をDiscriminatorに階層的に学習させるHDGANを提案した。 本手法により、先行研究よりテキストに忠実かつ表現力のある生成モデルが実装されることがわかった。