深層生成モデル (Deep Generative Model)

1. 深層生成モデル (Deep Generative Model)とは [概要]

深層生成モデル (Deep Generative Model) とは,ディープニューラネットワークを(微分可能な)生成モデルとして学習し,高次元で綺麗な画像データや音声データなどを生成できるモデルの総称をさす.コンピュータビジョン目的で初期の代表的なモデルであるGAN (Generative Adversarial Networks) [Goodfellow et al., 2014] とVAE (Variational AutoEncoder) [Kingma and Welling, 2014] が提案され,2つともその後よく研究されることとなった.また,これらの深層生成モデルは,画像生成に限らず,他のモーダルの高次元データ生成にもよく使われることになっていく.

この記事では,GAN [Goodfellow et al., 2014], 変分オートエンコーダ(VAE) [Kingma and Welling, 2014] の元論文の内容の概要だけを説明し,応用については少し言及するに留める.GANとVAEの詳細についてはそれぞれの子記事を参照のこと.

またRealNVP [Dinh et al., 2017] や音響生成モデルWaveNet [Oord et al., 2016]などに代表される自己回帰モデル(Autoregressive Model)や,フロー正規化モデル (Normalizing Flow)も,その後に登場した深層生成モデルである.ただし,現時点では,この記事はGANとVAEのみにフォーカスした記事構成としている.

1.1 この記事の構成

2節以降の,この記事の構成は以下の通りである:

  • 2節 (導入) 深層生成モデルの一般的な特徴
  • 3節 GAN
  • 4節 VAE
  • 5節 まとめ

2. 深層生成モデルの一般的な特徴

以前の生成モデルと比べた際に,深層生成学習モデルには,たとえば以下のような代表的な特徴が挙げられる:

  • 画像データや音響データなどの「複雑なデータ分布を持つ,高次元の実データ群」から生成モデルを学習することで,生成モデルから任意の本物らしく高精細な(疑似)データを生成することが可能になる.
  • Encoder-Decoderモデルも同時に使用すると,その中で真ん中のボトルネック部に,データの類似度から学習した低次元の中間表現を同時に学習できる (VAE や VAE-GAN [Larsen et al., 2016] など).
  • ディープニューラルネットワーク(特に画像の場合CNN)を用いて実現しているので,潜在表現を学習する際に,同時にもつれほどき(disentanglement)を行いやすい.例えば,infoGAN [Chen et al., 2016],DC-IGN [Kulkarni et al., 2015],$\beta$-VAE [Higgins et al., 2017]などの手法で,もつれほどきが活用できる.
  • 深層生成モデルは,ニューラルネットワークを使って実現するので,ニューラルネットワークの高いモジュール性(微分可能な層の任意の組み合わせ)を活用できる.従って,生成モデルを他の識別モデルと結合したり,複数タスクや複数モーダルの同時学習を行ったりするのが容易である.また,複数の処理をステージ化したうえで組み合わせて,一気にEnd-to-End学習を行いやすい.
  • 生成モデルを応用して,2モーダル間でモーダル間の画像対画像変換(Image-to-Image Translation)同時埋め込み(joint embedding)を学習する際に,モーダル間で順方向の変換ネットワークと逆方向の変換を同時に相互学習するなかで,GANを応用した自己教師表現学習(Self-supervised Representation Learning)が実現できる (Cycle GAN など).

3. GANと敵対的学習

3.1 GANのネットワーク構成

[Goodfellow et al., 2014] は, 生成ネットワークと,その学習を助けるTrue/False識別ネットワークの2つを,敵対的学習(Adversarial Training)と名付けられた,2プレイヤーによるminimax ゲームにより交互最適化する手法を考案した.

GANは生成器(Generator)$G$と識別器(Discriminator)$D$の2つのネットワークから構成される.これら2つのネットワークが,ゼロサムゲームでお互い凌ぎを削りながら敵対関係的に相互最適化をおこなうことから,「敵対的学習」と名付けられた:

  • 生成器 (Generator)ネットワーク$G$:
    • 潜在表現に相当する,低次元のランダムノイズから生成したベクトル$\bm{z}$を入力として,高次元の実データ(画像)にそっくりなデータを生成するネットワーク.
    • 敵対学習を通して獲得したい成果物が,この生成モデル$G$.
  • 識別器 (Discriminator)ネットワーク$D$:
    • 学習時に$G$から生成したサンプルのTrue/False判定をバイナリ識別(1/0)で行う
    • $G$を学習する際の補助役を担当するので,学習終わったら破棄して使わない.

GANを用いると,(画像などの)高次元データの大規模データセットさえ準備すれば,ユーザーはOptimizerにお任せして,(あまり苦労もせずに)高次元データ生成器を学習できる(※ ただし初期のGANは収束が不安定で,うまく学習させるのが大変だった).そして,尤度から解放されているおかげで,「データセットからの最尤推定」を用いない生成モデルである点も特徴的である.

GAN(やVAE)登場以前の,「ベイズグラフィカルモデルによる生成モデル」では,ベイズ推論に頼る必要があるので,「共役事前分布関係を作れる潜在変数分布」からしかデータ生成やサンプリングができなかった.それが,GANでは,データの分布の複雑さや種類や尤度などをあまり気にせずに,綺麗な高次元データを生成できる生成モデルを,「えいや!」と画像群を突っ込めば学習できるようになった.これは,生成モデルにおけるパラダイムシフトとなった.

3.1.1 GANの敵対的学習

GANの敵対的学習(Adversarial Training)
図1. GANの敵対的学習(Adversarial Training)

敵対的学習では,$G$と$D$のうち,片方を固定してもう片方だけをSGDで学習することを相互に繰り返すことにより,双方の最適化を(少しずつ交互に)行う.

GANの学習で最終的に欲しい目的物は,ノイズからリアルサンプルを生成できるようになる「生成モデル$G$」である.この意味で,$D$はあくまで学習中に生成サンプルのリアルさを増していくための補助役であり,テスト時には使用しない.

以下の合成ロス関数が,敵対的学習における2プレイヤーミニマックスゲームの目的関数である:

$\min_{G}\max_{D}\mathcal{V}(D,G) = \mathbb{E}_{x \sim p_{data(\bm{x})}}[\log(D(\bm{x}))]+\mathbb{E}_{z \sim p_z(\bm{z})}[1-\log(D(G(\bm{z})))] \tag{2.1}$

片方のネットワークパラメータだけを固定しながら,最大化と最小化を交互に行うことで,$D$と$G$の学習が交互に進んでいき,最終的に双方の学習が達成される.

3.2 GAN のネットワーク構造の拡張

この節ではGAN登場後,2017年ごろまでの初期の「ネットワーク構造の拡張」について述べたい (より詳しくはGANの記事で述べている)

2.1節で述べた最初のGANの提案[Goodfellow et al., 2014]の実験では,MNIST データセットの28 × 28画素のグレー画像群から,GANの生成ネットワークの学習が行われた.よって,畳み込み層は用いられておらず,サイズの小さい画像で生成モデル的にもまだ簡単な対象を用いてしか敵対的学習はできていないという基礎的な段階の研究であった.

DCGAN [Radford et al., 2016] において,$D$と$G$に畳み込み層が初めて導入され,これ以降,GANでもCNNを用いることが一般的となった.CNN導入のおかげで,対象物体やシーンが複雑であっても敵対学習を適用することが可能になり始める.

一方,オリジナルのGAN [Goodfellow et al., 2014] に,VAEのような「明示的な潜在確率分布の学習」やAutoencoding 機構が加わると便利である.そこで「VAEとGANをハイブリッド化したモデル」や「GANをAutoencoder化したモデル」などの「GANの拡張モデル」の研究も,数多く行われた.条件変数を補助入力として使用できるConditional GAN(cGAN) [Mirza and Osindero., 2014]や,VAEとの素直な結合であるVAE-GAN [Larsen et al., 2016] などがGANの拡張モデルの代表例である.また,双方向型の学習を行うGANである Bi-GAN [Donahue et al., 2017] と ALI [Dumoulin et al., 2017] の提案などである.これらの登場で,更にGANを使用できるタスクの幅が広がっていく展開となった.

3.3 画像対画像変換 (Image-to-Image Translation)

pix2pix [Isola et al., 2017] において,異なる画像ドメイン間で,画像全体のドメイン統一性を保たせつつ,各画素同士を出力側の別ドメイン画像へと変換する,画像対画像変換 (Image-to-Image Translation)が登場した.

pix2pixでは「変換前後の位置合わせがされていないとならない」制限がある.これだと,変換画像ペアの準備に苦労する側面があった.

そこへCycleGAN [Zhu et al., 2017] が登場し,教師無し画像変換学習を可能にするCycle consistencyが提案された.ドメイン間の行きと戻り双方を考慮した拘束条件を活用し,変換前後の画素位置合わせがペア間の位置合わせ無し(Unpaired)に,ドメイン変換前後の画像ペア群を用意するだけで pix2pixを学習できるようになった

※ CycleGANと同時期に,実質的に同じ提案であるDiscoGAN [Kim et al., 2017] や DualGAN [Yi et al., 2017]も提案されている.

4. 変分オートエンコーダ (VAE: Variational Autoencoder)

4.1 変分オートエンコーダの概要

変分オートエンコーダ(VAE: Variational AutoEncoder) の構造
図2. 変分オートエンコーダ(VAE: Variational Autoencoder)

変分オートエンコーダ(VAE: Variational AutoEncoder)は,データの近さに対応した正規分布形の潜在変数を,中間層に学習可能な,深層生成モデルである(図2).実装はニューラルネットワークを用いているが,抽象的には確率グラフィカルモデル構造を成している.

変分オートエンコーダでは,中間のボトルネック部分に,正規分布を事前分布とする潜在変数$\bm{z}$を用意し,$\bm{x}^{\prime}$がその潜在変数$\bm{z}$から生成(推定)できると仮定する(図2).学習データとして観測ベクトル$\bm{x}$が与えられた際に,VAEは「データ尤度$p(\bm{x})$は,デコーダ$p_{\theta}(\bm{x}|\bm{z})$から生成される」とする.学習時には,その逆方向である「観測データ$\bm{x}$からの$p(\bm{z})$の推論」を,(ベイズの式より)事前分布$p{\phi}(\bm{z}|\bm{x})$を用いて行う.

しかし,事後分布$p(\bm{z}|\bm{x})$の(Exactな)ベイズ推定をおこなうのは非常に難しい.そこで,計算可能になる近似分布$q{\phi}(\bm{z}|\bm{x})$を代わりのエンコーダとして用意し,変分ベイズ推論(Variational Bayes Inference)を用いて$q_{\phi}(\bm{z}|\bm{x})$で近似推論をおこなう.

VAEの元論文 [Kingma and Welling, 2014]では,古典的な潜在変数グラフィカルモデルのように,潜在変数$\bm{z}$のPriorとして「対角化された正規分布」を仮定した.

変分オートエンコーダの学習では,近似解である周辺尤度の最大化を通して,VAEをSGDにより学習できる.具体的には,以下のELBO(Evidence Lower BOund)を損失関数に用いて,エンコーダのパラメータ($\phi$)とデコーダのパラメータ($\theta$)の同時最適化を行う:

$\mathcal{L}_{VAE}(\theta,\phi,x) = \mathbb{E}_{q_{\phi} (\bm{z}|\bm{x}) } [log p_{\theta}(\bm{x}|\bm{z})] – D_{KL}(q_{\phi}(\bm{z}|\bm{x}) || p_{\theta}(\bm{z}) ) \leq log p_{\theta}(\bm{x}) \tag{4.1}$

ここまでをまとめる.VAEは高次元の学習データ分布だけを頼りに,各データを低次元の潜在変数多様体上に埋め込む,教師なし学習型の深層生成モデルである.SGDで大量データからの生成モデル学習が可能である.表面的にはニューラルネットで実現されているが,内部的には,潜在変数グラフィカルモデルである.従って,変分オートエンコーダの学習により,シンプルなベイズ確率モデルに沿った,潜在変数正規分布$\bm{z}$からの(画像などの)データ生成が可能である.

4.2 VAEの,GANとの違い.

オリジナルのGANでは,潜在変数$\bm{z}$は学習時にランダム分布から生成されるので,学習後の$\bm{z}$には特段の意味を持たせられない.一方,VAEでは,学習時に元の高次元データの類似度が反映された,正規分布の低次元埋め込み空間を作れる点がGANと異なる.また,エンコーダ$q(\bm{z}|\bm(x))$を用いてデータ$\bm{x}$から潜在変数を推論する点もGANとは異なる.

VAEは,確率的グラフィカルモデルを採用することにより,潜在変数空間を作成できて,事前分布・事後分布のいずれもシンプルな正規分布である.正規分布を用いて$p(\bm{z})$および$p(\bm{z}|\bm{x})$が(ベイズにより)陽にモデル化されているので,モデルの解釈性はGANより高い.一方で,モデリングに用いる正規分布は単純な形状なので,多峰性のデータ分布にはうまくフィットできずにノイズ混じりのモデルになってしまう.この意味では,VAEよりも敵対学習の方が有利であるケースは「解釈性はさておき,とにかく学習サンプルに近いデータを生成するモデルが欲しく,VAEのような潜在的な分布も必要ない場合」であると言える.とはいえ,VAEも$\bm{z}$の事前分布を混合正規分布に変えた発展モデルを用いれば,潜在変数の多峰性化はすぐに実現可能である.

4.2.1 綺麗な画像を生成できるか?

初期提案の頃から,綺麗な画像を生成しやすかったGANと比べると,オリジナルのVAEは,ボヤけた感じのサンプル画像しか生成できなかった.しかしVQ-VAE [Oord et al., 2017] の登場以降は,VAEも綺麗なサンプル画像を生成できる状況に変わっている.

4.2.2 データの粗密バランスの影響

VAEの元論文 [Kingma and Welling, 2014] での,MNISTから学習した潜在空間の可視化図を見てもわかるように,VAEは「均等にクラス間でバランスされたデータセット」や「ある潜在変数(例:姿勢,照明変化など)に対する画像変化が,密で豊富に収集されたデータセット」から学習した場合ほど,学習サンプル以外のデータも綺麗に生成しやすい.要するに,深層生成モデルも生成モデルの1種であるので,「学習サンプルの疎密バランスが,本物らしいデータを生成できるかどうかに強く関わってくる」という,当たり前のことを言っただけではある (当たり前とはいえ,GAN・VAEを,異常検知や画像補間に応用する際には,気をつけておきたい話ではある).

一方で,クラスラベルなどの補助入力を条件付けして学習する Conditional GAN [Mirza and Osindero., 2014] や Conditional VAE [Kingma et al., 2014] の条件付きGANがある.これらは,明示的にクラスラベル情報を条件変数として使用しながら生成モデルを学習できるので,クラス間での補間されたデータの生成結果にはあまり学習した実物と差が出ないように持ち込みやすい.

いずれにせよ,生成モデルの一種である以上,深層生成モデルでも,離散的なサンプルデータセットの分布の狭間に作られる生成データも,ちゃんと本物らしいデータになっていそうかについては,常に気をつけてもらいたい.

5. まとめ

この記事では基本的な深層生成モデルである,GANとVAEの概要を述べた.

また,元の提案論文をベースに,4.1節では両者の手法を少し比較し,2者を合成したネットワークを構成する(相互補完的な)メリットについても述べた.

一方でGANもVAEも初期提案手法の紹介のみに留めた.条件付けGAN・条件付けVAEに,画像対画像変換やCycle Consistencyなどの「拡張手法・発展手法」については,概要紹介に留めたので,詳細説明までは行っていない.

関連書籍

References

  • [Chen et al., 2016] Chen, Xi, Yan Duan, Rein Houthooft, John Schulman, Ilya Sutskever, and Pieter Abbeel. “Infogan: Interpretable representation learning by information maximizing generative adversarial nets.” In NeruIPS 2016.
  • [Dinh et al., 2017] L. Dinh, J. Sohl-Dickstein, and S. Bengio. Density estimation using Real NVP. In ICLR, 2017.
  • [Donahue et al., 2017] J. Donahue, P. Krähenbühl, T. Darrell, “Adversarial feature learning,” In ICLR, 2017.
  • [Dumoulin et al., 2017] V. Dumoulin, I. Belghazi, B. Poole, O. Mastropietro, A. Lamb, M. Arjovsky, A. Courville, “Adversarially learned inference,” In ICLR, 2017.
  • [Goodfellow et al., 2014] I. Goodfellow, J. Pouget-Abadie, M. Mirza, B. Xu, D. Warde-Farley, S. Ozair, A. Courville, and Y. Bengio. Generative adversarial nets. In NeurIPS, 2014.
  • [Higgins et al., 2017] Irina Higgins, Loic Matthey, Arka Pal, Christopher Burgess, Xavier Glorot, Matthew Botvinick, Shakir Mohamed, and Alexander Lerchner. beta-VAE: Learning basic visual concepts with a constrained variational framework.
  • [Isola et al., 2017] Phillip Isola, Jun-Yan Zhu, Tinghui Zhou, and Alexei A Efros. Image-to-image translation with conditional adversarial networks. In CVPR, 2017.
  • [Kim et al., 2017] T. Kim, M. Cha, H. Kim, J. K. Lee, and J. Kim, ‘‘Learning to discover cross-domain relations with generative adversarial networks,’’ In, ICML 2017,
  • [Kingma and Welling, 2014] D. P. Kingma and M. Welling. Auto-encoding variational bayes. In ICLR, 2014.
  • [Kingma et al., 2014] D.P Kingma, Shakir Mohamed, Danilo Jimenez Rezende, and Max Welling. Semi-supervised learning with deep generative models. In NIPS, 2014.
  • [Kulkarni et al., 2015] Tejas Kulkarni, William Whitney, Pushmeet Kohli, and Joshua Tenenbaum. Deep convolutional inverse graphics network. NIPS, 2015.
  • [Larsen et al., 2016] A. B. L. Larsen, S. K. Sønderby, H. Larochelle, O. Winther, “Autoencoding beyond pixels using a learned similarity metric,” In, ICML, 2016.
  • [Mirza and Osindero., 2014] M. Mirza and S. Osindero, “Conditional generative adversarial nets,” arXiv preprint arXiv:1411.1784, 2014.
  • [Oord et al., 2016] A. van den Oord, S. Dieleman, H. Zen, K. Simonyan, O. Vinyals, A. Graves, N. Kalchbrenner, A. W. Senior, and K. Kavukcuoglu. Wavenet: A generative model for raw au- dio. CoRR, 2016.
  • [Oord et al., 2017] A. van den Oord, O. Vinyals, and K. Kavukcuoglu, “Neural discrete representation learning,” in Proc. NeurIPS, 2017
  • [Radford et al., 2016] Alec Radford, Luke Metz, and Soumith Chintala. Unsupervised representation learning with deep convolutional generative adversarial networks. In ICLR, 2016.
  • [Yi et al., 2017] Z. Yi, H. R. Zhang, P. Tan, and M. Gong. Dualgan:Unsupervised dual learning for image-to-image translation. In ICCV, 2017.
  • [Zhu et al., 2017] J.-Y. Zhu, T. Park, P. Isola, and A. A. Efros. Unpaired image-to-image translation using cycle-consistent adversarial networks. In ICCV, 2017.

外部参照リンク

関連記事・ページ