250 敵対的生成ネットワーク(GAN)

Generative Adversarial Network:2種類のネットワークジェネレータとディスクリミネータで構成されている。ここで大事なのは、ジェネレータはディスクリミネータが間違えるような偽物画像をつくるように学習をしていき、ディスクリミネータは偽物をきちんと見抜けるように学習をしていくということ。
イアン・グッドフェローが考案した教師なし学習に用いられる手去。画像生成等に利用される。
生成ネットワークが生成したイメージに対し、識別ネットワークが「教師データ」か「生成ネットワークが生成したもの」かを判定をしながら学習を行う。生成ネットワークは識別ネットワークを欺くように、識別ネットワークはよリ正しく判別ができるように学習が進む。
ヤン・ルカンが「機械学習においてここ10年で最もおもしろいアイディア」と評した。

本稿ではGANをブランド品にたとえて説明していきます。
人を騙そうと試行錯誤をする偽物ブランド屋がいて、絶対に騙されまいと注意する鑑定士がいる場面を想像してみてください。

GANは最終的に最高の「嘘(本物かのようなデータ)」を作り出すために、

・偽物ブランド屋:Generator(生成ネットワーク)
・鑑定士:Discriminator(識別ネットワーク)

の両者が競い合ういたちごっこだと仮定します。

偽物ブランド屋であるGenerator(生成ネットワーク)は与えられた「デザイン(入力データ)」から「類似品(偽のデータ)」を作り、
鑑定士Discriminator(識別ネットワーク)はGeneratorで作られた類似品の真偽を「本物のブランド品(本物データ)」と比較して判別します。

この2つのネットワークが相互作用することによって徐々にデータが本物に近づきます。

一番最初の段階では、質の良くない製品や、形が違うブランド品が出来上がり、すぐに見分けがついてしまいます。そうすると、偽物ブランド屋はよりリアルな製品を作り出し、鑑定士を騙そうとしてきます。

そして、徐々に本物と見分けのつかないブランド品を生成することが可能になり、鑑定士も自信を持って偽物だと判断できなくなってきます。最終的に、「鑑定士が自信を持って本物と判断したブランド品が、実は偽物だった」というレベルまで持っていくのが全体の流れです。

このように、GeneratorとDiscriminatorは騙し騙されを繰り返していくことで、生成データを本物と見間違えるレベルまで持っていきます。