生成器と識別器

Generator and Discriminator

生成器と識別器とは

生成器(Generator)と識別器(Discriminator)は、GAN(敵対的生成ネットワーク)を構成する2つの主要なネットワークです。この2つのネットワークが互いに競い合うことで、生成器はますますリアルなデータを生成できるようになります。偽造者と鑑定士の関係に例えられることが多く、敵対的学習の根幹を成す概念です。

表:生成器と識別器の要点まとめ
ひとことで言うとGANを構成する2つの役。作る側(生成器)と見破る側(識別器)。
たとえると偽札を作る職人と、それを見抜く鑑定士。互いに腕を上げていく関係。
注意点どちらかが強くなりすぎると学習が止まる。バランス調整が難しい。

生成器の役割と構造

生成器はランダムなノイズベクトル(潜在ベクトル)を入力として受け取り、訓練データに似たデータサンプルを出力します。画像生成の場合、全結合層や転置畳み込み層(Transposed Convolution)を用いて、低次元のノイズから高次元の画像へと変換します。StyleGANではスタイルベースの生成器が提案され、生成画像の属性を細かく制御することが可能になりました。

図:2つの役割の関係
1生成器本物らしさを追求
▶
2サンプルを提出偽物データを出す
▶
3識別器本物確率を返す
▶
4フィードバックどこが偽物っぽいか
▶
5生成器が改良指摘を踏まえて上達
↺ 1〜5をくり返す(ゼロサムゲーム)

識別器の役割と構造

識別器は入力データが本物の訓練データか生成器が作成した偽のデータかを判別する二値分類器として機能します。通常はCNNの構造を持ち、入力データから特徴を抽出して最終的に本物である確率を出力します。識別器は学習の品質を左右する重要なコンポーネントであり、強すぎても弱すぎても学習が不安定になります。

生成器と識別器のバランス

GANの学習では、生成器と識別器のバランスが極めて重要です。識別器が強すぎると生成器が学習できず、弱すぎると生成器に有意義なフィードバックを与えられません。このバランスの維持が難しいことがGANの学習を困難にする主な原因であり、学習率の調整、勾配ペナルティの導入、Spectral Normalizationなどの手法が安定化のために使用されます。