GAN(敵対的生成ネットワーク)本物の偽物を創造する

GAN(Generative Adversarial Network)は、2014年にイアン・グッドフェローらが「Generative Adversarial Nets」という論文で発表したアーキテクチャ(論理的構造)です。
2つのニューラルネットワークを互いに競わせて入力データの学習を深めていくことから、敵対的生成ネットワークとも呼ばれています。
コンピューターに大量のデータを学習させ、分類・予測などの動作を遂行するモデルやアルゴリズムを自動的に構築する技術を機械学習と言いますが、機械学習には主に2種類の分類・予測モデルがあります。
1つは画像認識などの識別モデル、入力されたデータや画像を何であるかコンピューターに判断させるモデルです。
そしてもう1つが生成モデル、入力されたデータや画像から新しい擬似データを生成するモデルです。GANはこの生成モデルに該当します。
GANの用途としては画像生成が有名ですが、データを生成するという点でディープラーニングを補う技術としても注目度が高いです。従来の、サンプル画像を傾けたり、色を変えたりしてデータを増やすというやり方ではなく、特徴を含んだデータを新たに作り出すことで、データ不足が課題になりがちなディープラーニングに応用できます。
この「オリジナルの特徴を含んだデータを増やす」というやり方を応用することで、新しい画像を生成したり、低画質の画像を変換して高画質にしたり、音声を生成したりするというアプローチが可能になりました。
仕組み
では、GANはどのように実行されるのでしょうか。
本稿ではGANをブランド品にたとえて説明していきます。
人を騙そうと試行錯誤をする偽物ブランド屋がいて、絶対に騙されまいと注意する鑑定士がいる場面を想像してみてください。
GANは最終的に最高の「嘘(本物かのようなデータ)」を作り出すために、
・偽物ブランド屋:Generator(生成ネットワーク)
・鑑定士:Discriminator(識別ネットワーク)
の両者が競い合ういたちごっこだと仮定します。
偽物ブランド屋であるGenerator(生成ネットワーク)は与えられた「デザイン(入力データ)」から「類似品(偽のデータ)」を作り、
鑑定士Discriminator(識別ネットワーク)はGeneratorで作られた類似品の真偽を「本物のブランド品(本物データ)」と比較して判別します。
この2つのネットワークが相互作用することによって徐々にデータが本物に近づきます。
一番最初の段階では、質の良くない製品や、形が違うブランド品が出来上がり、すぐに見分けがついてしまいます。そうすると、偽物ブランド屋はよりリアルな製品を作り出し、鑑定士を騙そうとしてきます。
そして、徐々に本物と見分けのつかないブランド品を生成することが可能になり、鑑定士も自信を持って偽物だと判断できなくなってきます。最終的に、「鑑定士が自信を持って本物と判断したブランド品が、実は偽物だった」というレベルまで持っていくのが全体の流れです。
このように、GeneratorとDiscriminatorは騙し騙されを繰り返していくことで、生成データを本物と見間違えるレベルまで持っていきます。
GANの今後
データを増やすという目的から、画像の生成や自然言語処理との連携まで可能になったGAN。複雑に見える技術でも、少しずつ理解すれば徐々に意味がわかるようになると思います。
今回ご紹介したGANの情報は、まだまだ氷山の一角に過ぎません。GANは世界中の研究者たちが研究を行っており、毎日のように新しい情報が生まれます。ぜひ、ご自身の必要とする領域で活用できそうなGANを探してみてください。