Bicycle GAN(概要の把握)|DeepLearningを用いた生成モデルの研究を俯瞰する #2

f:id:lib-arts:20191130201454p:plain

当シリーズでは生成モデルの研究や実装にもフォーカスをあてられればということで、進めていきます。

GitHub - eriklindernoren/PyTorch-GAN: PyTorch implementations of Generative Adversarial Networks.

上記に様々なPyTorch実装や論文のリンクがまとめられていたので、こちらを参考に進めていくのが良いのではと思っています。
#1では"Conditional Image Synthesis With Auxiliary Classifier GANs"の概要について取り扱いました。

#2ではBicycle GAN(Toward Multimodal Image-to-Image Translation)について取り扱います。

[1711.11586] Toward Multimodal Image-to-Image Translation

以下目次になります。
1. Bicycle GANの概要(Abstract、Introductionの確認)
1-1 Abstractの確認
1-2 Introductionの確認(Section1)
2. 論文の重要なポイントの抜粋
2-1. Related Work(Section2)
2-2. Multimodal Image-to-Image Translation(Section3)
2-3. Implementation Details(Section4)
2-4. Experiments(Section5)
2-5. Conclusions(Section6)
3. まとめ


1. Bicycle GANの概要(Abstract、Introductionの確認)
1-1 Abstractの確認
まず1節では論文の概観を掴むにあたって、Abstractを確認していきます。

f:id:lib-arts:20191130202241p:plain

[1711.11586] Toward Multimodal Image-to-Image Translation

f:id:lib-arts:20191130202310p:plain

以下簡単にAbstractを要約します。
要約:『多くの画像変換(image-to-image translation)の問題は曖昧であり、一つの入力画像が複数の出力画像を取りうる。この研究では生成モデルの設定に条件を与えることで複数の出力の分布を出力できるように取り組んでいる。マッピングの曖昧さは低次元(low-dimensional)の潜在空間(latent vector)の蒸留される。Generatorは与えられた入力を潜在空間の情報を与えることで出力にマッピングすることを学ぶ。また、明示的に出力と潜在空間の情報(latent code)を反転可能(invertible)にすることで、モデルの性能を向上している。様々な実装を試したが、提案する手法は潜在空間のエンコーディングと出力の間の全単射の一貫性をもたらすものになっている。他の類似の手法と知覚的な現実性と多様性の双方の点から比較を行っている。』


1-2 Introductionの確認(Section1)
1-2ではIntroductionの確認を行っていきます。以下パラグラフ単位でリーディングを行なっていきます。

f:id:lib-arts:20191201140239p:plain

第一パラグラフでは、条件付き画像生成(conditional image generation)におけるDeepLearningの技術の急速な発展がある一方で、多くの手法が単一の結果(single result)を生成することにフォーカスしていることについて述べられています。また、そのことに対しこの研究では取りうる結果の分布(distribution)を考え多くの状態を持つ(multimodal)問題としてモデリングしているとされています。

f:id:lib-arts:20191201140255p:plain

multimodalな出力としては上記のFigure1のような結果が得られるとされています。一つのドメイン(ここでは夜の風景)に属する入力画像が与えられることで、ターゲットドメイン(ここでは昼間の風景)の画像を複数得ることができるとされています。ここでdistributionは直訳すると分布ですが少々意味が取りづらいので、複数の出力を取りうることだと解釈しておくのが良いかと思います。

f:id:lib-arts:20191201141337p:plain

第二パラグラフでは、高次元の入力(ここでは画像)から高次元の複数の出力(ここでは複数のパターンの画像)をマッピングするのはchallengingだとされています。この辺の問題についての解決策について論文はフォーカスしていると抑えておくと良いです。

f:id:lib-arts:20191201141350p:plain

f:id:lib-arts:20191201141400p:plain

第三パラグラフでは、論文のスタートとしてオーソドックスな画像の変換(image-to-image translation)に対する手法である、pix2pixのフレームワークから始めたことについて言及されています。pix2pixでは誤差関数として、(1)正解画像(ground truth image)と生成した画像の誤差、(2)Discriminatorが画像がground truthなのか生成画像かを見分けれているかの誤差、の二つを設けているとされています。ここにはドメインを司る低次元latent-codeが含まれていないので、論文ではこの点に対してアプローチを行っているとされています。

f:id:lib-arts:20191201142559p:plain

第四パラグラフでは、当論文の研究の目的を達成するにあたって、cVAE-GAN(Conditional Variational Autoencoder GAN)とcLR-GAN(Conitional Latent Regressor GAN)のアプローチを参照しています。

f:id:lib-arts:20191201143654p:plain

それぞれ上記のように図示されています。

f:id:lib-arts:20191201142615p:plain

第五パラグラフでは、評価や実装コードについて言及されています。実装のコードは下記で公開されています。

GitHub - junyanz/BicycleGAN: Toward Multimodal Image-to-Image Translation


2. 論文の重要なポイントの抜粋
2-1. Related Work(Section2)
今回は省略します。


2-2. Multimodal Image-to-Image Translation(Section3)
Section3ではモデルの立式について行われています。

f:id:lib-arts:20191201144640p:plain

まず、3.1ではベースラインとして「pix2pix+noise」を定式化しています。こちらについてはpix2pixの式を参照している形になります。

f:id:lib-arts:20191201144914p:plain

次に、3.2では、cVAE-GANについて取り扱われています。Introductionのところで貼った図と対応させながら理解すると良さそうです。

f:id:lib-arts:20191201144929p:plain

3.3では、cLR-GANについて取り扱われています。Introductionのところで貼った図と対応させながら理解すると良さそうです。

f:id:lib-arts:20191201144942p:plain

3.4では、3.2と3.3のlossを足し合わせる(hybrid)ことでlossを設定していると考えると良さそうです。


2-3. Implementation Details(Section4)

f:id:lib-arts:20191201150155p:plain

ネットワーク構造としては、GeneratorとしてはU-Net、DiscriminatorとしてはPatchGAN discriminatorを用いたとされています。


2-4. Experiments(Section5)

f:id:lib-arts:20191201150207p:plain

Figure5では手法間の質的な比較(Qualitative method comparison)を行っています。「BicyvleGANがリアルで多様な結果を生成している」とコメントされています。

f:id:lib-arts:20191201150220p:plain

また、Figure6では、手法を定量化して比較を行っています。グラフの縦軸がRealismの軸、横軸がDiversityの軸とされています。


2-5. Conclusions(Section6)
今回は省略します。


3. まとめ
#2ではBicycle GAN(Toward Multimodal Image-to-Image Translation)について取り扱いました。類似研究をあまり読み慣れていないため若干粒度の粗い記載となっていますが、シリーズが進むにつれてより詳しい記述を追加していければと考えています。
#3ではDualGAN(Unsupervised Dual Learning for Image-to-Image Translation)について取り扱います。

[1704.02510] DualGAN: Unsupervised Dual Learning for Image-to-Image Translation