Generative Adversarial Networks (GAN)

0

[改訂履歴]:

  • 2020/6/30「4.3 識別ネットワークの敵対的ドメイン適応」の説明をリライト/加筆した.

1 概要

Generative Adversarial Networks (GAN) [1]は,深層生成モデルを敵対的学習(Adversarial Training)を用いて学習を行う,2つのネットワーク(生成器,識別器)から構成されるDeep Neural Networksである.

敵対的学習では,生成器(Genarator)ネットワークがランダム潜在変数から生成するサンプルの「本物らしさ」を,バイナリーラベル(「真 (1)」もしくは「偽 (0)」)で鑑定を行う識別器(Discriminator)ネットワークを,生成器学習のための補助として用意する.そして,生成器と識別器の2つのネットワークを競わせて,徐々にお互いの学習を進ませるのが敵対的学習である.敵対的学習の結果として生成器ネットワークが出来上がり,その生成器ネットワークを用いると,本物学習データと見分けがつかない(画像などの)サンプルを生成することが可能となる.

論文[1]ではまず,MNISTデータセットの手書きの数字画像データ向けに,GANの実証実験が行われた.その後,画像以外の音響データやテキストデータも対象にして,幅広いデータを対象にGANの応用が研究されている.また,当初はサンプル生成の目的で提案されたGANであったが,画像対画像変換(Image-to-Image Translation)画像復元(Image Restoration)ドメイン適応(Domain Adaptation)など,他の問題でも広く活用されている.

[記事の構成] 2節ではまず,提案研究の[1]を基にGANの基本的な仕組みと,その課題を整理する.3節では,その課題を克服するために多数提案されて改善されてきているGANの発展のうち,主要なものだけ整理を行う.4節では,画像生成以外のコンピュータビジョンおけるGANの応用問題(画像対画像変換,画像復元,ドメイン適応)について,概要のみ触れる.

2 GANの基本モデル

2.1 キーアイデア:敵対的学習

GANのキーとなるアイデアは,「2つのニューラルネットワーク$G$と$D$がお互いの評価をして競い合い学習する」敵対的学習(Adversarial Training)の仕組みを通じて,クリアな生成画像を出力可能な生成モデルを学習する点にある.敵対的学習は「2プレイヤー間による minimaxゲーム」からインスパイアされて考案された生成モデル学習方法である[1].

GANのネットワークは,以下の2つのニューラルネットワークから構成される:

  • 生成器(Generator) $G$:ランダムノイズ変数$\bm{z}$を入力として,学習データにそっくりなデータを生成する:$\bm{x} = G(\bm{z})$ ($\bm{z}$はランダムノイズであり,正規分布などの分布のPriorを仮定していない点に注意)
  • 識別器(Discriminator)$D$:生成器が生成したデータ$G(\bm{x})$が,教師データである$\bm{x}$と同じクラスラベルかどうかを識別する.

旧来の潜在変数付きの生成モデルでは,ベイズ確率理論に従った「最大尤度を目的関数に使用した最適化」により学習が行われることが主流であった.しかし,尤度関数によるモデル表現だと,実データとモデルが生成するデータ間の近さを精密に表現するのには限界があり,大量の学習データからそれらにそっくりの綺麗なサンプルを生成するためには十分な仕組みがなかった.そこをGANでは,敵対学習を用いることで,学習データにそっくりな高次元データを生成する(implicitな)深層ネットワークを,大量データから学習することが可能となった.

2.2 ネットワーク構造と目的関数

2.1節で述べた最適化の目的関数をもとに,GANの2つのネットワーク$D$と$G$と各変数の関係性を以下の図1に示す

図1: GANのネットワーク構造

GANのフレームワーク[1]では,以下(1)式に示す価値関数$V(D,G)$を用い,2つのニューラルネットワーク$G$と$D$による「2プレイヤーのminimaxゲーム」通じて,$G$と$D$の同時最適化を行う:

$\min_{G}\max_{D}V(D,G) = E_{x \sim p_{data(\bm{x})}}[log(D(\bm{x}))]+E_{z \sim p_z(\bm{z})}log[1-D(G(\bm{z})))] \ldots (1)$

ここで$p_z(\bm{z}$)は潜在変数$\bm{z}$を生成するランダムノイズ分布であり,$p_{data(\bm{x})$は$D$で生成できるリアルデータの分布を示す.minimax学習を通じて,これら2つの分布は同じ分布になっていく.

敵対学習は(1)のminimaxで行うが,$D$と$G$はが個別のロス関数$\mathcal{L}_D$と$\mathcal{L}_G$を持っていて,片方のロス関数のみで$G$と$D$の片方のみのパラメータ更新を交互に繰り返していくとみなせる:

  • $\mathcal{L}_D$: $G$で生成されたサンプル$G(\bm{z}))$が,Ground Truthのサンプルと同じクラスの「本物(True: $y=1$)」のサンプルなのか,それとも別クラスの「偽物(False: $y=0$)」なのかを,バイナリー識別器$D$によって判別できるようにするためのクロスエントロピー(ロス)関数である:

$\mathcal{L}_D = -\mathbb{E}{x \sim p_{data(\bm{x})}}[log(D(\bm{x}))]-\mathbb{E}_{z \sim p_z(\bm{z})}[log(1-D(G(\bm{z})))]$

  • $\mathcal{L}_G$: 生成器$G$による生成結果が,正解サンプルと同じクラスであるかを$D$による識別結果で判定するロス関数:($\mathcal{L}_G$を符号反転した逆方向関数$-\mathcal{L}D$に相当している)

$\mathcal{L}_G = \mathbb{E}{z \sim p_z(\bm{z})}[log(1-D(G(\bm{z})))]$

これらを踏まえて(1)式を構成する2項の役割を見てみよう.前半の項は,Realデータが$D$に入力された時に,大きくなっていく項である.一方,後半の項は,Realデータが$D$に入力されたときに$D(G(\bm(z)))$を0に近づけていく.

$D$と$G$が共に十分に学習が進んだ際には,minimaxゲームはナッシュ均衡とよばれる状態に到達し,$D$は,$G(z)$で生成されたデータを本物だとしか判定しなくなる.

2.3 GANにおけるチャレンジ

GANは,2つのネットワーク間を双方少し学習させる必要があり,2者のバランスの取りづらさがある.ここでは最適化の難しさ(2.3.1)についてと,GANの学習で起きやすいモード崩壊(2.3.2)について取り上げる.

2.3.1 最適化の難しさ

GANの目的関数の式(1)を眺めると,GANで2つのネットワークを最適化する上での難しさは「第一項の真データの分布$p_{data(\bm{x})}$と,生成データの分布$p_z(\bm{z})$の2分布間の距離を,どのように計量してなおかつ最小化するか」にあると言える.

元の提案[1]では,GANは理論的に完成したものでなく,不明点も多かった.2プレイヤーのやりとりであるが複雑なモデルを初期から生成していく生成器に対して,識別器は早めに収束状態に突入して勾配消失が生じ易い.敵対学習では2つのネットワークがナッシュ均衡状態を作っていけないとうまく学習できないわけであるが,GANの提案時点ではそのテクニックやその収束の理論がないまま,とりあえず基本的なデータセットでうまくいった,という状態であった.よって,大きな画像のデータセットや,画像中に写っている対象が複雑だったり混合的なシーンの場合は,良い生成モデルが学習できないというのが最初の時点での状態であった([1]の時点ではCNNさえ使われていない).

そこで,GANの学習の不安定さを緩和したり克服するために,GAN向けの新しい目的関数の提案や,新しいネットワーク構造の提案が行われていく.(各研究例は,3.1節と3.2節で代表例だけ手短に触れる)

以降の2.3節では,代表的なGANの課題として,「モード崩壊(2.3.2)」 についてだけ述べる. 

2.3.2 モード崩壊 (mode collapse)

GANの大きな問題として,生成器が学習の過程で,多様性を失ったものができあがり,少数のモードしかサンプルできなくなってしまうモード崩壊(mode collapse)が挙げられる.GANの敵対学習においては,生成器は必ずしもデータセット全体の画像を生成できる必要がなく,例えば敵対的学習中に,学習データのうち5枚だけ生成できるモデルとして学習されても,識別器を十分騙せてしまうのであれば,生成モデルが良いものになってしまうと敵対的学習がそのまま完了(収束)してしまう.このようなモード崩壊した生成モデルは多様性を失っているので,$\bm{z}$のうち多くが,同一の少数サンプルばかりに変換されてしまうことになり,ほぼ同じような生成画像ばかり生成されてしまってデータゼット全体の多様性を捉えきれない.このモード崩壊を防ぐためには,例えば次の段落に述べるような手法が提案されている.

[2](Improve training of GAN)はGANの学習安定化を助けるテクニックを複数提案した研究であるが,そのうちモード崩壊対策のテクニックとしてminibatch discriminationが提案された.通常は識別器は単一サンプルごとにTrue/False識別を行うが,これでは生成器の崩壊を発見できないので,ミニバッチ単位でのデータの多様性が十分保たれていることを,識別器が知っておきたい.そこで[2]は,ミニバッチ内のサンプル間距離を測ったものも補助特徴として加えた特徴によって,ミニバッチ単位の識別がTrue/Falseかの判定を行うことを提案した.一方,Unrolled GAN[3]では,識別器の目的関数をkステップに展開(unroll)して分割し,識別器側のロスを少しずつ勾配伝搬することにより,生成器の早期の一方的勝利を防ぐ学習方法を提案した.

3 GANの発展モデル

3.1 目的関数の発展

(※3.1について詳しくは,別の記事にまとめる予定)

WGAN, WGAN-GP,LSGANなどについて,のちほど書く予定.

3.2 ネットワーク構造の発展

DCGAN

GANの最初の提案である[1]では,縦横サイズの小さいMNISTのバイナリー画像での実験のみで非CNNの全結合メインのネットワーク構造であった.しかし,これだとカラー画像や大きなサイズの画像ではスケールしない.そこでDCGAN(Deep Convolutional Generative Adversarial Networks)[5]の研究では,生成器と識別器のCNN化が初めて行われた.この研究により,少し大きめの画像でGANによる生成モデル学習が可能であることが実証され,以降は畳み込み層や,CNN系のバックボーンがGANでも用いられ始めた.

条件付きGAN

CGAN(Conditional GAN)[6]では,条件変数$c$の値に条件付けされて変化する$G(\bm{z}|c)$として生成器(Generator)を学習する仕組みが提案された.$c$はクラスラベルのスカラー値でもよければ,テキストデータや画像データなどの補助クエリーのベクトルも使用できる.

また,ACGAN(Auxiliary Classifier GAN)[7]では,CGAN[6]の更なる拡張が提案された.CGANの条件付き生成器$G(\bm{z}|c)$に加え,識別器$D$側が「Real/Fakeの2クラス識別」と一緒に「(物体)クラス$c$の識別」もマルチタスク学習する「物体クラス識別器も学習の補助で用いるGAN」が提案された.

一方,infoGAN[8]では,潜在コード$c$を情報量基準を利用してもつれほどき(disentanglement)を行うことで,$c$の教師を与えることなく,データだけから解釈可能な潜在コード$c$を学習できるConditiona GANが提案された.InfoGANでは,追加の潜在コード\bm{c}と生成データ$\bm{x}$の間の相互情報量最大化を行う正則化項を,Conditionla GANのロスに追加し,データに対して$c$のもつれほどきも生成器学習中に同時に行う.[8]では,MINISTで実験を行い,潜在クラス変数による分類や,潜在スカラー変数(MNISTによる論文中の実験では「回転」「幅」など)が,データだけから$c$の教師は用いずに学習できることを示している.

AutoEncoder 型 GAN

VAEのように,GANにもEncoder-Decoder構造を付け加えると,モード崩壊を防ぎやすくなったり学習の安定性を保ちやすくなるメリットなどがあることや,説明可能な潜在変数(分布)も持てるなどの理由で.Autoencoders的なネットワーク構造のGANが提案されている.

VAE-GAN[9]では,VAEのDecoderとGANのGeneratorの役割を兼ねるネットワークを真ん中に配置した,名前の通りのVAEとGANの素直な結合が提案された.

同時期に提案された同じ構造のBiGAN[10]とALI[11]では,Encoderにより潜在変数空間も学習するAutoencoder構造を提案し,

4 GANを用いたコンピュータビジョンの応用

GANは色々なところで応用が多いが,この記事では以下の3つに絞って応用例を述べる

  • 画像対画像変換 (4.1)
  • 画像復元や画像強調などの逆問題 (4.2)
  • 敵対的ドメイン適応 (4.3)

4.1 画像対画像変換(Image-to-Image Translation) : 生成ネットワークの敵対的ドメイン適応

同じ対象やシーンを撮影した画像同士ではあるが,両者でドメインが異なる2枚の画像をペアとして揃えておき,そのドメイン間の画素単位での変換ネットワークを学習する課題を,画像対画像変換(Image-to-Image Translation)と呼ぶ.

この課題が初めて提案されたpix2pxi(プロジェクトHP)[12]では,2枚の画像ペア$x$と$y$をもとに,conditional GANの設定にしたU-Netの学習を行うことで,画像対画像変換ネットーワークを初めて実現した.

pix2pixでは,変換前の$x$も条件入力として受け付ける識別器$D(x,y)$を用いて,Real/Fakeの判定を行う(論文[12]のFigure 2を参照).画像のセグメンテーションと同様に,変換後の画像の各画素の値は構造化推定されるべき問題設定であるので,通常の識別器で画像全体の統計に対するReal/Fakeを(まとめて)判定しただけでは,画素ごとの局所周辺状況を加味した変換モデルを学習することはできない.そこで,pix2pixのDiscriminator向けに,局所パッチ内でのみ画像間のロスを計算して足し合わせるPatch GAN ロス[12]が提案された.これにより,画素間の関係性も学習されたうえでの変換を,U-Nnetに(敵対的)学習できるようになった.

4.2 データドリブンな画像復元・画像強調

敵対学習や画像変換Encode-Decoderの登場により,復元前画像と復元後の画像のペアを大量に用意し,更にその復元後の画像に対して敵対的学習のロスも用いて復元ネットワークを学習させる「データドリブンな画像復元・画像強調手法」がGAN登場移行活発に研究されている.超解像やブラー除去に,画像のInpaintingやdenoisingにカラー強調など,「画像加工や画像補正を目的とした各種の逆問題(Inverse Problems)」に対して,データドリブンにGANを利用して解く手法が,近年広く研究されるようになった.敵対的学習の登場に加えて,4.1節の「画像変換ネットワーク」の技術発展の恩恵ににより,この問題の深層学習による解きやすさが向上したのも大きな要因である.

コンピュータビジョンや画像処理分野において,画像復元(Image Restoration)および画像強調(Image Enhancement)などの「逆問題」に対しては,かつては機械学習を用いず信号処理や最適化(変分法やTotal Variationなど)の技術を用いて解かれることが主流であった.例えば,超解像やブラー除去などの逆問題では,不良設定問題性を解消するための「正則化項を利用した最適化」をよく用いる.

また,従来の各種の復元問題では,画像形式(Image Formation)が陽に定義され,画像変換も関数として陽にモデル化されていた.それに対し,Deep Learningによる学習ベースの手法では,ニューラルネットワークによって復元関数がブラックボックスとして陰に表現されているのが違いである.

4.3 識別ネットワークの敵対的ドメイン適応

物体クラス識別器や,セマンティックセグメンテーション(画素ごとクラス識別器)をドメイン適応する際に敵対的学習による2ドメイン識別を活用する 敵対的ドメイン適応 (Adversarial Domain Adaptation)の研究が近年多く発表されている. ターゲットドメインに適応させる際に,識別CNNの入力画像や中間特徴量がどちらのドメインのものかを区別するための(Real v.s. Fakeの)敵対的学習を行う.敵対学習のおかげで,普通のクラス識別ロスでドメイン間の識別を行う要理も,ドメインの違いを厳密に反映させることができ,以前のドメイン適応手法より精度向上が期待できるというものである.

GarminらのDANN(domain-adversarial neural network (DANN) [13]は.敵対的学習を活用する「画像クラス識別器のドメイン適応手法」を提案した.DANNは物体クラス識別器に対して,2個めのヘッドとしてドメインラベル$d$ ($d=1$ ソース/ $d= 0$ ターゲット)を識別するヘッドも「ドメインクラス識別器(Domain Classifier)」として追加することで,物体クラス識別器が2ドメイン間の違いも把握(識別)できるように学習する.DANNでは,1 Encoder – 2 Head (クラス識別器 +ドメイン識別器)の構造なので,2ドメイン間の両方の特徴を共通Enoderが符号化を担当する.

一方,ソースCNNとターゲットCNNで個別にクラス識別ネットワークを用意した方がドメイン適応の柔軟性が向上することを狙って,[13] の翌々年に[14]が発表される.このTzengらのADDA (Adversarial Discriminative Domain Adaptation)[13]では,まずソースCNNを事前に学習してこのCNNは重みを固定する.そして,ソースCNNと(ドメイン適応したい)ターゲットCNNについて,出力クラス分布の違いを敵対的学習でドメイン識別することで,ターゲットCNNを学習する. このアプローチでドメイン適応を行うことにより,[14]ではソースCNNだけ先に学習させておくことができて学習が2回に分離され,複数ドメインへの適応が楽になる.これは,[13]のように両ドメイン画像をいっぺんに学習する手法より,柔軟性の点で有利である.

以上の[13][14]のような「物体画像のクラス識別ネットワーク」を対象に,初期は敵対的ドメイン適応は取り組まれていたが,その後の近年は,セマンティックセグメンテーションネットワークをドメイン適応する手法の研究が主流となっている(この記事ではとりあげない).

5 まとめ

この記事では,GAN[1]の基本(2節)を紹介したのち,その発展(3節)と,各アプリケーション例の概要(4節)を紹介した.

最近の動向をさらに詳しく知りたい方は,[15][16]などのサーベイ論文を参照にされたい.

References

  • [1] I. Goodfellow, J. Pouget-Abadie, M. Mirza, B. Xu, D. Warde-Farley, S. Ozair, A. Courville, and Y. Bengio. Generative adversarial nets. In Advances in Neural Information Processing Systems (NeurIPS), 2014.
  • [2] T. Salimans, I. Goodfellow, W. Zaremba, V. Cheung, A. Radford, and X. Chen. Improved techniques for training gans. In NIPS, 2016.
  • [3] L. Metz, B. Poole, D. Pfau, and J. Sohl-Dickstein, ‘‘Unrolled generative adversarial networks. In ICLR, 2017.
  • [4] S. Arora, R. Ge, Y. Liang, T. Ma, and Y. Zhang. Generalization and equilibrium in generative adversarial nets (gans). In ICML, 2017.
  • [5] A. Radford, L. Metz, and S. Chintala. Unsupervised representation learning with deep convolutional generative adversarial networks. arXiv preprint arXiv:1511.06434, 2015.
  • [6] M. Mirza and S. Osindero. Conditional generative adversarial nets. arXiv preprint arXiv:1411.1784, 2014.
  • [7] A. Odena, C. Olah, and J. Shlens. Conditional image synthesis with auxiliary classifier gans. In ICML, 2017.
  • [8] X. Chen, Y. Duan, R. Houthooft, J. Schulman, I. Sutskever, and P. Abbeel, InfoGAN: Interpretable representation learning by information maximizing generative adversarial nets, In NIPS, 2016
  • [9] A. B. L. Larsen, S. K. Sønderby, H. Larochelle, and O. Winther. Autoencoding beyond pixels using a learned similarity metric. arXiv preprint arXiv:1512.09300, 2015.
  • [10] J. Donahue, P. Krähenbühl, and T. Darrell. Adversarial feature learning. arXiv preprint arXiv:1605.09782, 2016.
  • [11] V. Dumoulin, I. Belghazi, B. Poole, A. Lamb, M. Arjovsky, O. Mastropietro, and A. Courville. Adversarially learned inference. In ICLR, 2017.
  • [12] Isola, Phillip, et al. “Image-to-image translation with conditional adversarial networks.” In CVPR, 2017.
  • [13] Y. Ganin and V. Lempitsky. Unsupervised domain adaptation by backpropagation. In ICML, 2015.
  • [14] E. Tzeng, J. Hoffman, K. Saenko, and T. Darrell. Adversarial discriminative domain adaptation. In CVPR, 2017.
  • [15] Cao, Yang-Jie, et al. “Recent advances of generative adversarial networks in computer vision.” IEEE Access 7 (2018): 14985-15006.
  • [16] Pan, Zhaoqing, et al. “Recent progress on generative adversarial networks (GANs): A survey.” IEEE Access 7 (2019): 36322-36333.
0