この記事は日経Robotics 有料購読者向けの記事ですが
日経Robotics デジタル版(電子版)』のサービス開始を記念して、特別に誰でも閲覧できるようにしています。
本記事はロボットとAI技術の専門誌『日経Robotics』のデジタル版です
著者の岡野原大輔氏
著者の岡野原大輔氏

 GAN(Generative Adversarial Networks、敵対的生成ネットワーク)は2014年に登場し1)、2015年後半に有効な学習手法2)が確立されてから、急速に注目を受けるようになった。GANは特にこれまで困難だった自然画像の生成に成功し、人の顔、部屋の様子、アニメ画像、漢字、CDジャケット(図1)など様々な種類のデータをうまく生成できる。場合によっては、それが人が描いた絵なのか、機械が生成した絵なのか分からない程度まで作れるようになっている。これまで人の特権領域と思われていた創作活動を機械が実現できる可能性が出てきた。

 生成モデル(Generative Model)は、対象データがどのように生成されるのかをモデル化している。例えば、サイコロの目の生成では、1から6の目が全て等確率1/6で生成されると考えられる。生成の過程が複数の操作の組み合わせから成ることも考えられる。例えば、長さ5の文字列T=t1t2t3t4t5について、それぞれの文字が1文字前だけに依存して生成される場合、

P(T)=P(t1)P(t2|t1)P(t3|t2)P(t4|t3)P(t5|t4

として1文字ずつ順に生成することで得られる。

図1 GANが生成したベッドルームの画像の例
図1 GANが生成したベッドルームの画像の例
上から4行目の生成画像では、当初の窓のない状態の部屋が、左から右に向かって、次第に大きな窓のある部屋へとスムーズに変化している2)。(写真:米indico Research社、米Facebook社)
[画像のクリックで拡大表示]

機械翻訳などで使われる生成モデル

 生成モデルは様々なところで利用されている。与えられたデータの尤度を構成的に計算できるようになっていれば(今回紹介するGANは直接尤度を計算できず、別の手法を組み合わせる必要がある)、データの尤もらしさを評価することができる。これは音声認識や機械翻訳において、生成された文が正しいかという言語モデルで利用されている。また、生成モデルはラベル無しデータに適用できることから、条件付き確率モデルと組み合わせることで、半教師あり学習3)を実現できる。そして何より、新しいデータを生成することができる。

 これまで、データが画像や音声など高次元であり、かつ各次元が独立でなく複雑な相関を持っている場合、生成モデルを推定するのは困難だった。例えば、S(x;θ)>0をパラメータθで特徴付けられている正規化されていない確率密度関数として、あるデータの確率密度p(x;θ)を

と表した場合、積分を必要とする正規化項(分配関数とも呼ばれる)N(θ)の推定が問題となる。全てのデータに対する積分が効率良く計算できない場合、N(θ)やその勾配の推定は非常に困難となる。

生成モデルと判別モデルを競わせて学習

 GANは2つのニューラルネットワークを競合させることで、生成モデルを間接的に学習する。1つ目の生成モデルを表すネットワークNgenは、データ集合とそっくりなデータを生成する。はじめに、zを簡単な分布(例えば正規分布N(0,I))から生成し、次に決定的な関数x=Ngen(z;θ)で、データxを生成する。zの生成だけが確率的な関数であり、関数Ngen(z;θ)は決定的な関数であることに注意してほしい。2つ目の判別モデルを表すネットワークNdis(x)は、与えられたデータがNgen由来なのか、真のデータ由来なのかを判別し、Ngen由来と判別したなら1、真のデータ由来と判別したなら0を返すような関数である。

 この2つのネットワークは次の目的関数上で競合する。

ただし、xdataは真のデータからの分布、zは先ほどの簡単な分布である。生成モデルNgenは、Ndisをだますように(2)を最小化するように学習し、NdisはNgenが生成データかを見分けられるように、(2)を最大化するように学習する。例えていうと、Ngenは偽金を作る人、Ndisは偽金か本物かを見分ける警察官とみることができる。Ngenは警察官に見分けられないようにより巧妙な偽金を作るように鍛えられていき、Ndisはより些細な違いも見つけてそれを指摘し、偽金かどうかを正しく判定できるように鍛えられていく。

 この2つのモデルがうまく競争しあって育っていけば、最終的にはNgen(z)は真のデータと見分けがつかないデータを作れるようになる。つまり、Ngenは生成モデルとみなすことができるようになる。実際、前述の論文では、うまく学習を行えればNgenは真の生成モデルに漸近するように学習できるということが証明されている。

なぜGANでの画像生成がうまくいくのか

 なぜ、ニューラルネットを使ったモデルも含む従来の生成モデルで画像の生成は成功せず、GANで成功したかについてはまだよく分かっていないが、理由はいくつか考えられる。

 1つ目は、前述のように高次元データの場合、サンプリングによる正規化項の勾配の推定は精度が非常に低いという問題がある。GANは正規化項に関する計算は必要なく、Ndisをだますように学習する。別の言い方をすれば、全てのデータを見る必要がないようにNdisがどの部分に注目すればいいのかをNgenに教えてくれる。

 2つ目は、特に生成モデル、判別モデルにニューラルネットを使った場合、これが画像のモデル化の良い事前知識になっている可能性があるということである。例えば、判別モデルにCNN(畳み込みニューラルネット)を使った場合、CNNが備える画像中のオブジェクトに対する移動不変性の特徴を生かして判別することになる。生成においては、画像中のオブジェクトが多少移動しても構わないということになる。人が画像生成の良さをみる場合、数ピクセルの平行移動はほとんど気にならない。しかし、もし各次元ごとにガウシアンでモデル化し、対数尤度で評価している場合、平行移動は非常に大きな差になってしまう。

 3つ目は、一般に生成モデルをニューラルネットワークでモデル化して学習する場合、勾配が計算できるように生成する直前でガウシアンなどを掛け、どのようなデータに対しても、それに対する勾配を計算できるようになっている必要がある。これにより、画像はぼやけたものが生成されやすくなる。一方でGANは、生成時には最初にガウシアンを掛けて、その後は決定的なニューラルネットを使うため、非常にシャープな画像を生成できる。

 GANは高次元の確率モデルを学習する手法として非常に有効であり、生成モデル以外に利用する試みも進んでいる。例えば、データの確率分布ではなく、事後確率分布P(z|x)のモデル化にGANを使ったり、VAE(変分自己符号化器)3)と組み合わせたり、GANで獲得されたNdisの方を利用したりなどである。

 とはいえ、GANはまだ分かっていないことがほとんどである。現状では、GANの学習時は人が学習の状況を注意深くみて、うまく学習を進めていかないと、途中で生成側、判別側、どちらかが勝ち、もう片方がつぶれて、学習が進まなくなってしまう。今後の研究が待たれる。

1)I. Goodfellow et al., “Generative Adversarial Nets,” http://arxiv.org/abs/1406.2661
2)A. Radford et al., “Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks,”http://arxiv.org/abs/1511.06434
3)岡野原、「学習の本命『半教師あり学習』、少ない教師データで高い精度」、日経Robotics、2015年9月号、pp.34-35.
岡野原 大輔(おかのはら・だいすけ)
Preferred Networks 取締役副社長
岡野原 大輔2006年にPreferred Infrastructureを共同創業。2010年、東京大学大学院博士課程修了。博士(情報理工学)。未踏ソフト創造事業スーパークリエータ認定。東京大学総長賞。