Generative Adversarial Network(GAN)とは

Generative Adversarial Network(GAN)とは

 

1.  はじめに

【E資格対策】ディープラーニング最新論文講座」でも取り上げた、E資格で出題が予想される論文として Generative Adversarial Network(GAN)[1] をご紹介いたします。Generative Adversarial Network は、Goodfellow らが 2014 年に発表したモデルです。このモデルでは「用意されたデータから特徴を学習し、擬似的なデータを生成する」ことができます。

図1 は、実際に GAN が生成した画像を示しています。黄色の枠で囲われたのが事前に用意された訓練データであり、そのほかが GAN の生成した“偽物“の画像たちです。こういった擬似的なデータを作り出すことを「生成」と言い、それを達成するモデルのことを「生成モデル」と呼びます。
本記事では、生成モデルとは何か?、そして GAN を活用してできることや GAN を学習する方法など、 GAN について概括的に解説していきます。

図 1. GANの生成する画像

図1. GAN の生成する画像
(引用元: http://papers.nips.cc/paper/5423-generative-adversarial-nets.pdf

 

2. 生成モデルとは

確率の考え方を用いた機械学習のモデルは、大きくは「識別モデル」と「生成モデル」の 2つに分類されます。例えば、画像分類のタスクをニューラルネットで行う場合、入力画像とクラスの対応関係を学習させます。このときに、ニューラルネットは、与えられた入力画像に対して「どのくらいの確率でクラス A に当てはまるか?」という値を返します。このように、識別の部分のみに確率の考え方が導入されたモデルのことを「識別モデル」と呼びます。

これに対して「生成モデル」では、入力画像も確率変数として扱います。すなわち、「ある確率分布から生成された入力画像に対して、それがどのくらいの確率でクラス A に当てはまるか?」ということを考えます。このときに、入力画像が従う確率分布をうまく求めることができれば、その確率分布を用いて擬似的に入力画像に相当する画像を生成することができるというわけです。

図 2. 生成モデルと識別モデル

図2. 生成モデルと識別モデル

 

3. GAN の構造とGAN の学習

GAN の具体的な構造について見ていきます(図3)。GAN は Generator と Discriminator という2 つのブロックで構成されています。いずれのブロックもニューラルネットワークが用いられているため、誤差逆伝播法による学習が可能です。

A. Generator

Generator 部分は「何らかの数値を(基本は乱数)を入力として受け取り、その数値に基づいて新しいデータを出力」します。図2 の生成モデルでいうところの「確率分布」→「入力」が Generator の部分に対応します。

一般に、入力として受け取る数値には、正規分布などの確率分布に従う乱数が用いられます。

B. Discriminator

Discriminator 部分は「入力されたデータが Generator の生成した“偽物”か、あるいは訓練データとして用意された“本物”か」を判別します。図2 の生成モデル でいうところの「識別」が、この Discriminator に対応します。

Generator 部分とDiscriminator 部分の関係を図3に示します。図3の「クラス」は、「“本物”か、“偽物”か」の2クラスです。

図 3. GANの模式図

図3. 生成モデルと識別モデル

C. GAN の学習

GAN の学習では、Generatorは「Discriminator を騙せるような精巧な“偽物”を作ることができる」ように、Discriminator は「用意された“本物”と Generator が作り出した“偽物”を区別できる」ように学習していきます。Generator と Discriminator の関係が敵対的であることから、Generative Adversarial Network 「敵対的生成ネットワーク」という名がつけられました。Generator と Discriminator はそれぞれの目的に従って交互に最適化されます。最終的に、Generator が生成する“偽物”が、“本物”と区別できないようなデータになっていれば GAN の学習は成功といえます。

 

4. GAN を活用して何ができるのか

2014年にGoodfellow らが GAN を発表して以来、世界中の様々な研究者が GAN の派生系を考案しました。その GAN の派生系は、数百以上あると言われています。 GAN の派生系ができることの例を以下に示します。

画質の高い画像を生成する

低画質の画像を入力として受け取り、その画像を高画質にした画像を出力することができます。

テキストから画像を生成する

テキストを入力として受け取り、そのテキストに基づく画像を生成することができます。この技術は、脚本からアニメーションを制作する場面など、さまざまな場面への活用が期待されています。

画像をスタイル変換する

簡単な線画を入力として受け取り、その線画をアニメーション作家が描いた絵のように変換し出力することができます。

画像とテキストを合成する

画像とテキストを入力として受け取り、それらを合成して新たな画像を生成し出力することができます。


この他にも、動画生成や画像の欠損補完、画像のモザイク除去、音声生成、異常検知、2D画像の3D化など、さまざまな GAN の派生系が提案されています。

 

5. GAN の発展

GAN は、先述したとおり、Goodfellow らを始めとする研究者たちが 2つのニューラルネットワークを競い合わせながら学習させるという方法を 2014年に論文で発表したことがはじまりです。

この新しい学習方法が提案されて以降、GAN は多くの研究者の研究対象となりました。GAN の派生系は、前述した通り、数百以上あると言われております。本記事では、これ以降、GAN とその派生系を単に GAN と呼ぶことにします。

2015年には、畳み込み層を取り入れた 「DCGAN(Deep Convolutional GAN)」が発表され、これまでの生成モデルよりも鮮明で、リアリティのある画像を生成ができるようになりました。
2017年には、CycleGAN が発表されました。CycleGAN は、画像のスタイルを相互変換することができるモデルです。例えば、馬の画像をシマウマの画像へ変換することと、シマウマの画像を馬の画像に変換することを、1つのモデルで実現できます。

図4. CycleGAN による画像変換
参考文献[2]より引用

2018年には、StyleGAN が発表されました。StyleGAN は、高解像度かつ高品質な画像を生成できるモデルです。図5の画像は、すべて存在しない人物の顔写真であり、StyleGAN によって生み出されたものです。StyleGAN の概要についてはこちらの記事をご覧ください。

図5:StyleGAN による生成画像
参考文献[3]より引用

 

6. GAN の活用事例

GAN を実際に活用されている企業やサービスは多数あります。ここからは、GAN の活用事例を2つ紹介します。

アクションゲーム「パックマン」

大手 GPU メーカーの NVIDIA は2020年、ナムコの生誕40周年を記念して、GAN を使ってパックマンを完全再現したことを発表しました。この完全再現には、GameGAN と命名された技術が使われました。
NVIDIA GameGAN: Celebrating 40 Years of PAC-MAN with Game-Changing AI

NVIDIA の GameGAN は、基本となるゲームエンジンなしで、完全に機能するパックマンを生成することができます。GameGAN は、学習を通して動かない背景と動くキャラクターを区別することができます。ゲームの完全再現に成功すると、背景を他のものに差し替えて新たなゲームステージを生成することも可能です。この技術を使えば、今後コーディングすることなく新規ゲームステージを生成することが可能となるため、ゲーム業界で大きなニュースとなりました。

Mad Street Den のファッション AI

Mad Street Den Inc が開発する AI「Vue,ai」は、AI を活用した小売業向けの総合ソリューションプラットフォームです。Mad Street Den Inc は、 2013年創業の AI 開発企業であり、米国の他にインドやイギリスにも拠点をもっています。「Vue,ai」では、ファッションモデルに洋服やアクセサリーを試着させた画像を生成できます。

GAN は、大きな可能性を秘めた生成モデルであり、今後もさまざまな分野での活用が期待されています。

 

7. もっと詳しく学びたい方へ

本記事では、GAN の概要を解説しました。スキルアップAI のディープラーニング講座では、具体的な GAN の定式化や TensorFlow を用いた学習などを学ぶことができます。
また、GAN(敵対的生成ネットワーク)講座を開講中です。この講座では、様々なGANの派生形について体系的に学ぶことができます。StyleGAN を題材とした最新の技術動向からビジネスへの応用方法までをハンズオンを通して学ぶため、「どのGANを使えば良いか分からない」という問題を解決することが可能です。是非ご検討ください。

スキルアップAIでは、毎週水曜日に実践的AI勉強会「スキルアップAIキャンプ」を開催しています。勉強会では、様々な実践的テーマを取り上げ、データ分析・AI開発の実務力アップにつながるヒントをご提供します。講師が参加者の皆さんからの質問や悩みに答えるコーナーもあります。
興味がある方はぜひ参加してみてください!

 

8.  参考文献

 

>>「分野横断型!機械学習・深層学習TIPSシリーズ」

 

スキルアップAIのメールマガジンでは会社のお知らせや講座に関するお得な情報を配信しています。
配信を希望される方はこちら

また、SNSでも様々なコンテンツをお届けしています。興味を持った方は是非チェックしてください♪
  • Twitter
  • Facebook
  • LinkedIn
更新日:2022.08.22

関連する講座

Page Top