今回は、第58回で紹介したEmbodymeさんも使っている「敵対的生成ネットワーク(GAN:Generative Adversarial Network)」を紹介します。今まで紹介してきた一般物体認識、一般物体検出とは考え方が大きく異なりますので、生成モデルとは何かから説明していきたいと思います。
生成モデルとは?
生成モデルとは、教師データを学習することで、それらのデータと似たような新しいデータを生成するモデルのことです。つまり、生成モデルは、人工的なデータを作り出すことができます。データを入れたらクラスを分類してくれるだけでなく、あるクラスに属する擬似的なデータそのものを作ることができる訳です。GANはこの生成モデルの一種です。
GANとは?
GANは生成ネットワーク(Generator network)と識別ネットワーク(Discriminator network)の2つのネットワークから構成されます。Generator networkは本物と同じようなデータを生成しようとします。
一方、Discriminator networkは、入力されたデータが本物のデータ(Real data)から来たものか、それともGenerator networkによって生成された偽物(Fake data)かを識別します(図1)。Generator networkはより精巧な偽物のデータを生成するように学習が進み、Discriminator networkはより正確に偽物か本物かを見分けるように学習します。この2つのNetworkが競い合いながら学習することで、より精度の高い結果が得られるようになるというのが基本的なアイデアです。非常に興味深いアイデアだと思います。
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はその偽物の画像を見分けるように学習が進みます。
GANにより画像を生成した結果は図3の通りです。黄色い枠で囲まれている画像が教師データで、それ以外は生成された画像です。
参考文献
[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.
著者プロフィール
樋口未来(ひぐち・みらい)日立製作所 日立研究所に入社後、自動車向けステレオカメラ、監視カメラの研究開発に従事。2011年から1年間、米国カーネギーメロン大学にて客員研究員としてカメラキャリブレーション技術の研究に携わる。
日立製作所を退職後、2016年6月にグローバルウォーカーズ株式会社を設立し、CTOとして画像/映像コンテンツ×テクノロジーをテーマにコンピュータビジョン、機械学習の研究開発に従事している。また、東京大学大学院博士課程に在学し、一人称視点映像(First-person vision, Egocentric vision)の解析に関する研究を行っている。具体的には、頭部に装着したカメラで撮影した一人称視点映像を用いて、人と人のインタラクション時の非言語コミュニケーション(うなずき等)を観測し、機械学習の枠組みでカメラ装着者がどのような人物かを推定する技術の研究に取り組んでいる。
専門:コンピュータビジョン、機械学習