第56回となる今回は、「敵対的生成ネットワーク (GAN: Generative Adversarial Network)」を紹介します。
これまで紹介してきた一般物体認識、一般物体検出とは考え方が大きく異なるので、生成モデルとは何かというところから説明していきます。

生成モデルとは?

生成モデルとは、教師データを学習することで、それらのデータと似たような新しいデータを生成するモデルのことです。つまり、生成モデルは人工的なデータを作り出すことができます。データを入れたらクラスを分類してくれるだけでなく、あるクラスに属する擬似的なデータそのものを作ることができるのです。GANはこの生成モデルの一種です。

GAN (Generative Adversarial Network) とは?

GANは、生成ネットワーク(Generator Network)と識別ネットワーク(Discriminator Network)の2つのネットワークから構成されます。
Generator Networkは本物と同じようなデータを生成しようとします。一方、Discriminator Networkは、入力されたデータが本物のデータ(Real data)から来たものか、それともGenerator Networkによって生成された偽物(Fake data)かを識別します(図1)。
Generator Networkはより精巧な偽物のデータを生成するように学習が進み、Discriminator Networkはより正確に偽物か本物かを見分けるように学習します。この2つのNetworkが競い合いながら学習することで、より精度の高い結果が得られるようになるというのが、GANの基本的なアイデアです。

図1 GANの概要

図1 GANの概要

Generator Networkは、Discriminator Networkを欺こうと学習し、Discriminator Network側はより正確に識別しようと学習します。この2つのネットワークは、偽造通貨を作る犯罪組織と、それを取り締まる警察のように相反したものであるため、「敵対的」と呼ばれています。

GANの最終目的は、Generatorが本物のデータと見分けの付かないデータを生成できるようになることです。GANにより手書き数字を生成する場合を例に、もう少し詳しく説明します(図2)。

Generator Networkは、Random noiseをアップサンプルすることで手書き数字画像のFake dataを生成します。Random noiseから画像を生成することで多様な画像が生成されることになります。また、Discriminator Networkは画像をダウンサンプルすることで、Real data(Training data)とFake dataを見分けます。Generatorは、より手書き数字に似た画像を生成できるように学習し、Discriminatorはその偽物の画像を見分けるように学習が進みます。

図2 GANによる手書き数字画像の生成

図2 GANによる手書き数字画像の生成

GANにより画像を生成した結果は図3のとおりです。黄色い枠で囲まれている画像が教師データで、それ以外は生成された画像です。

図3 GANによる画像の生成結果

図3 GANによる画像の生成結果

次回は、「DCGAN(Deep Convolutional Generative Adversarial Networks)」について紹介します!


参考文献
[1] Goodfellow, Ian J., Pouget-Abadie, Jean, Mirza, Mehdi, Xu, Bing, Warde-Farley, David, Ozair, Sherjil, Courville, Aaron C., and Bengio, Yoshua. Generative adversarial nets. NIPS, 2014.