GAN

ディープラーニングは画像認識の分野において、著しい進化を遂げている。代表的な応用としては、画像中のオブジェクトを認識したり、判定したりするのに用いられる。これらは言ってみれば、非常に高い次元のデータ(画像)を低い次元(キーワード、数値)に落とす作業である。このような作業を行う DNN は、高次元のデータを次々と低次元に畳んでいくプロセスをこなしている。では、ここで作成した DNN を逆にして、キーワードから画像を生成できるのかというと、今の技術では非常に困難である。このような問題があるために、キーワードから画像を生成するアルゴリズムに関する研究が行われるようになってきた。

Generative Adversarial Network (GAN) は、キーワードから画像を生成するアルゴリズムとして発表された(Goodfellow et al, 2014)。GAN は、generator と discriminator と呼ばれる 2 つのニューラルネットワークを含む。Generator は、ノイズ z が与えられると、そのノイズを元に画像 G(z) を生成するニューラルネットワークとなっている。Discriminator は、ある画像が与えられたとき、その画像は学習データセット中のものなのか、それとも generator によって作られた画像 G(z) なのかを判断するニューラルネットワークとなっている。GAN アルゴリズムにおいて、generator と discriminator は敵対状態にあり、generator は discriminator を騙そうと、学習データセット中の画像と非常に似た画像を作るようになっていく。他方の discriminator は generator に騙されないように、判定能力を高めるようになる。このように、generator と discriminator は互いに競争しあって学習が進み、やがて discriminator が学習データセットの画像なのか、それとも生成画像なのかを判別できなくなる状態に収束する。つまり、discriminator の正解判定率が 50% に収束していく。

GAN Generative Adversarial Network フレームワーク

以上のことを数学的にいえば、discriminator の判定能力を最大化する前提で、discriminator の generator に対する判定能力を最小化することである。Generator が生成する画像を G(z) とし、discriminator によって出力される画像 i が学習データセットである確率を D(i) とすると、GAN は次のように定式化できる。第 1 項は学習データセットに由来する画像に対するスコアである。第 2 項は、画像が generator によって生成された偽画像に対するスコアである。

\[ \min\limits_{G} \max\limits_D V(D,G) = \mathbb{E}_{x \sim p_{data}(x)}\left[\log D(x)\right] + \mathbb{E}_{z \sim p_{z}(z)}\left[\log (1-D(G(z)))\right] \]

GAN フレームワークを通して、generator と discriminator の性能を次々と更新していくと、最終的には discriminator が見分け使いないほどの偽画像が generator から生成される。このとき、generator だけを残して、画像の生成モデルとして利用していくことができる。このように生成されたモデルは、様々なところで応用されている。例えば、手書き画像から写真を生成したり、モノクロ写真をカラー写真にしたり、写真中のオブジェクトの色を変更させたりすることができる。また、最近では写真中の影の領域を検出したり、除去したりすることにも応用され始めている。

References

  • Ian J. Goodfellow, Jean Pouget-Abadie, Mehdi Mirza, Bing Xu, David Warde-Farley, Sherjil Ozair, Aaron Courville, Yoshua Bengio. Generative Adversarial Networks. arXive. 2014, 1406.2661