1行定義
GANとは、データを作る生成器と、本物か偽物かを見分ける識別器を競わせながら学習し、本物に近いデータを生成できるようにするモデルのことです。
くわしく
GAN(Generative Adversarial Network、敵対的生成ネットワーク)は、2014年にイアン・グッドフェローらが発表した生成モデルです。
生成器と識別器
生成器(Generator)は、ランダムなノイズを受け取り、画像などのデータを作ります。識別器(Discriminator)は、入力されたデータが訓練データ(本物)か、生成器が作ったもの(偽物)かを見分け、本物である確率を出力します。
よく使われるたとえが、偽札を作る人と、それを見破る警察です。識別器は見分ける精度を上げるように学習し、生成器は識別器をだませるように学習します。互いに相手を上回ろうとすることで、生成器は本物と区別しにくいデータを作れるようになります。元の論文はこの関係をミニマックスゲームとして定式化しました。理論上の最適な状態では、生成器が訓練データの分布を再現し、識別器はどの入力にも1/2を出力します。
学習の難しさ
GANの学習は不安定になりやすいことが知られています。代表的な問題がモード崩壊です。生成器が、識別器をだましやすい一部の種類のデータばかり作るようになり、多様性が失われる現象です。
派生モデル
畳み込み層を使って画像生成を安定させたDCGAN、対応する画像のペアから画像の変換を学ぶPix2Pix、ペアのない2種類の画像の間で変換を学ぶCycleGANなどがあります。精巧な偽の画像や動画(ディープフェイク)に悪用されることもあります。
ほかの生成モデルとの違い
VAEは、入力を潜在変数の分布に変換し、そこから元のデータを復元するように学習するモデルで、識別器をもちません。拡散モデルは、ノイズを少しずつ取り除く過程を学習します。GANには、1回の計算で生成できるため速いという利点があります。
覚え方
「偽札づくり(生成器)と警察(識別器)のいたちごっこ」と覚えます。
G検定での出題
出題のされ方
生成器と識別器の役割、敵対的に学習する仕組み、モード崩壊などの課題、DCGAN・Pix2Pix・CycleGANといった派生モデルの違い、VAEや拡散モデルとの比較が問われます。
混同しやすい用語
| 用語 | 意味 |
|---|---|
| GANこのページの用語 | データを作る生成器と、本物か偽物かを見分ける識別器を競わせながら学習し、本物に近いデータを生成できるようにするモデル |
| VAE | 入力を潜在変数の確率分布として表し、潜在空間から取り出した値をデコーダに通して新しいデータを生成できる、オートエンコーダの一種 |
| Diffusion Model | データに少しずつノイズを加える過程を逆にたどり、ノイズを段階的に取り除くことで新しいデータを生成するモデル |
◯×チェック
次の文が正しいか、誤りかを選んでください。
-
GANの学習が理論上の最適な状態に達すると、識別器はどの入力に対しても、本物である確率を1/2と出力する。
答えを見る
答え ◯ 正しい
このとき生成器は訓練データの分布を再現しており、本物と偽物の区別がつきません。元の論文で、ミニマックスゲームの解として示された性質です。
-
学習を終えたGANで新しい画像を作るときは、識別器にランダムなノイズを入力して画像を出力させる。
答えを見る
答え × 誤り
画像を作るのは生成器です。ノイズを生成器に入力して画像を得ます。識別器は、主に学習の段階で生成器を鍛えるために使います。
-
GANの生成器が、識別器をだましやすい似たようなデータばかり作るようになり、多様性が失われる現象をモード崩壊という。
答えを見る
答え ◯ 正しい
GANの学習の代表的な課題です。画質が高くても種類が偏ることがあるため、生成データの多様性も確かめる必要があります。