1 基本概念

敵対的生成ネットワーク(Generative Adversarial Network, GAN)は、2014年Ian Goodfellowらによって提案された深層学習ベースの生成モデルである。二つのニューラルネットワーク(生成器識別器)が相互に競争するゼロサムゲームの枠組みで学習を行い、実データの分布に近い新しいデータ画像音声、テキストなど)を生成することを目的とする。GAN画像生成、スタイル変換、データ拡張など多様な応用で成果を挙げているが、学習不安定性やモード崩壊といった課題も存在し、現在も多くの改良手法が研究されている。

1.1 生成器

生成器(Generator)は、ランダムノイズ(通常はガウス分布や一様分布からサンプリングされた潜在変数)を入力として受け取り、実データに類似した偽のデータを出力するニューラルネットワークである。生成器の目的は、識別器を欺いて偽データを本物と誤認させるように、可能な限りリアルなデータを生成することにある。例えば画像生成の場合、生成器は低次元の潜在ベクトルから高次元の画像テンソルへと変換するデコーダ構造を持つ。

1.2 識別器

識別器(Discriminator)は、入力されたデータが実データ(学習データセットから取得)か生成器が生成した偽データかを判別する二値分類器である。識別器の目的は、生成器が作った偽データを見破り、実データとの区別を正確に行うことにある。典型的には、畳み込みニューラルネットワーク(CNN)などの分類モデルが用いられ、出力層のシグモイド関数によって実データである確率(0~1)を出力する。

1.3 敵対的学習の仕組み

GANの学習は、生成器と識別器が互いに競争しながら同時に最適化される。識別器は実データと偽データを正しく区別できるように学習し、生成器は識別器を欺くように偽データの品質を向上させる。この過程は以下のように定式化される:ミニマックスゲームの価値関数V(D, G)において、識別器DはVを最大化し、生成器GはVを最小化する。学習が進むにつれて、生成器は実データ分布収束し、識別器は判別が困難になる(最終的に確率1/2を出力する)。

2 学習プロセス

2.1 損失関数

GANの標準的な損失関数は、以下のミニマックス損失に基づく。

\[ \min_G \max_D V(D, G) = \mathbb{E}_{x \sim p_{\text{data}}} [\log D(x)] + \mathbb{E}_{z \sim p_z} [\log (1 - D(G(z)))] \]

ここで、\(p_{\text{data}}\)は実データ分布、\(p_z\)はノイズ分布(通常はガウス分布)、\(G(z)\)は生成器の出力、\(D(x)\)は識別器がxを実データと判断する確率である。識別器は\(\log D(x)\)と\(\log(1 - D(G(z)))\)を最大化し、生成器は\(\log(1 - D(G(z)))\)を最小化する。実際の実装では、生成器の勾配を安定させるために、\(\log D(G(z))\)を最大化する(非飽和損失)などの変形が用いられることが多い。

2.2 最適化手法

GANの学習には確率的勾配降下法(SGD)やAdamなどの最適化アルゴリズムが使用される。通常は、ミニバッチごとに識別器と生成器を交互に更新する。識別器の更新回数は生成器よりも多く設定される場合がある(例えば、識別器をk回、生成器を1回)。また、学習率の調整やバッチ正規化ラベル平滑化などのテクニックが不安定性の軽減に寄与する。

2.3 学習の課題

2.3.1 モード崩壊

モード崩壊(Mode Collapse)とは、生成器がデータ分布の一部のモード(多様なパターン)しか生成できなくなる現象である。例えば、手書き数字生成タスクで、生成器が「1」と「7」のみを生成し続ける状態が該当する。原因は、生成器が識別器を欺くことに成功した局所的な解に陥ってしまい、多様性を学習できなくなることにある。対策として、ミニバッチ識別(Minibatch Discrimination)やWGANの導入などが提案されている。

2.3.2 勾配消失問題

学習初期に識別器が識別性能を高めすぎると、生成器の損失関数の勾配がゼロに近づき、学習が停滞する現象。特に、標準的な損失関数では識別器が完全に実データと偽データを区別できた場合、生成器の勾配が消失する。非飽和損失やWGANのWasserstein距離を用いることで緩和される。

2.3.3 非収束と不安定性

GANは理論上ナッシュ均衡に収束するが、実際の学習では振動や発散が起こりやすい。識別器と生成器の更新速度の不均衡、ネットワーク構造やハイパーパラメータの選択、学習率の設定などが要因となる。スペクトル正規化(Spectral Normalization)や勾配ペナルティ(Gradient Penalty)などの正則化手法が安定性向上に用いられる。

3 主要なバリエーション

3.1 DCGAN

DCGAN(Deep Convolutional GAN)は、畳み込みニューラルネットワークをGANに適用した代表的なアーキテクチャである。生成器は転置畳み込み層を用いて潜在ベクトルから画像を生成し、識別器は畳み込み層を用いて判別を行う。バッチ正規化、Leaky ReLU活性化関数、全結合層の排除などの設計指針が提案され、画像生成の安定性と品質を大幅に向上させた。

3.2 CGAN

CGAN(Conditional GAN)は、生成器と識別器の両方に条件情報(クラスラベルや他の画像など)を入力として与えることで、条件付き生成を可能にする。これにより、特定のクラスや属性を持つデータの生成が制御できる。

3.2.1 条件付き生成

3.2.1.1 ラベル条件付け

ラベル条件付けでは、生成器にノイズベクトルとクラスラベルの埋め込み(one-hotベクトルなど)を連結して入力し、識別器にも画像とラベルを同時に入力する。これにより、手書き数字の「3」や「8」など、指定されたクラスの画像を生成できる。

3.2.1.2 画像条件付け

画像条件付けでは、例えばスケッチからカラー画像へ変換するタスクなど、別の画像を条件として与える。生成器は入力画像(例えばエッジマップ)とノイズから出力画像を生成し、識別器は条件画像と生成画像のペアを評価する。Pix2Pixが代表的な応用例である。

3.3 WGAN

WGAN(Wasserstein GAN)は、従来のJSダイバージェンスの代わりにWasserstein距離(Earth Mover's Distance)を損失関数に用いることで、学習の安定性を向上させた。識別器(ここではCriticと呼ばれる)はK-Lipschitz連続性を満たす必要があり、重みクリッピングや勾配ペナルティによって実現される。

3.3.1 Wasserstein距離

Wasserstein距離は、二つの確率分布の間の「最短輸送コスト」を測る指標である。GANにおいて、生成分布と実データ分布のWasserstein距離を最小化することで、勾配消失問題が緩和され、モード崩壊が抑制される。WGANではCriticの出力にシグモイド関数を用いず、スカラー値(実数)を出力する。

3.3.2 勾配ペナルティ

WGAN-GPは、重みクリッピングの代わりに勾配ペナルティ(Gradient Penalty)を導入した改良版である。Criticの入力に対する勾配のノルムが1に近づくように正則化項を追加することで、Lipschitz制約をより効果的に満たす。これにより、学習の安定性がさらに向上し、高品質な生成が可能となった。

3.4 StyleGAN

StyleGAN(Style-Based GAN)は、NVIDIAが提案した高解像度画像生成のための先進的アーキテクチャである。潜在ベクトルを直接生成器に入力するのではなく、マッピングネットワークとスタイル混合機構を導入し、生成画像のスタイルと構造を分離して制御できる。

3.4.1 スタイル混合

スタイル混合(Style Mixing)は、二つの異なる潜在ベクトルから得られたスタイルコードを、生成器の異なる層(解像度レベル)に適用することで、画像の低レベル特徴(テクスチャなど)と高レベル特徴(形状など)を独立に制御する手法。例えば、ある画像の大まかな形状と別の画像の細かいテクスチャを合成できる。

3.4.2 ノイズ注入

ノイズ注入(Noise Injection)は、生成器の各畳み込み層に入力特徴マップと同じ空間サイズのランダムノイズを加えることで、髪の毛や肌の細かいディテールなどの確率的なバリエーションを生成する。これにより、ノイズ成分が画像のランダムな外観変化(しわ、そばかすなど)を制御できる。

3.4.3 マッピングネットワーク

マッピングネットワーク(Mapping Network)は、入力潜在ベクトルを中間潜在空間(W空間)に変換する多層パーセプトロンである。この変換により、潜在空間がより解釈可能になり(線形分離性の向上)、スタイル混合や属性編集が容易になる。生成器はW空間のコードを各層のアフィン変換を通じてスタイル制御に用いる。

4 応用分野

4.1 画像生成

4.1.1 高解像度生成

4.1.1.1 Progressive GAN

Progressive GANは、生成画像の解像度を4×4から1024×1024へ段階的に増加させる手法である。低解像度の層から学習を開始し、安定した後に高解像度の層を追加することで、高品質な高解像度画像生成を可能にした。中間層の平滑化遷移とミニバッチ標準偏差の導入により、学習の安定性も向上している。

4.1.1.2 超解像GAN

超解像GAN(SRGAN)は、低解像度画像から高解像度画像を生成する超解像タスクにGANを適用したもの。生成器は低解像度画像を入力として高解像度画像を生成し、識別器は実物の高解像度画像との違いを判別する。知覚損失(Perceptual Loss)と敵対的損失を組み合わせることで、従来のL2損失より人間の視覚に合致する鮮明な画像が得られる。

4.1.2 アニメキャラクター生成

アニメキャラクターの顔や全身を生成するタスクでは、DCGANやStyleGANをアニメデータセットで学習したモデルが多く用いられる。特に、二次元イラストの自動生成やキャラクターデザインの支援ツールとして応用されている。条件付きGANを用いれば、髪型や目の色などの属性を指定して生成することも可能である。

4.1.3 アート作品生成

GANは絵画やデジタルアートの生成にも活用される。例えば、CycleGANを用いた写実的な風景画から印象派スタイルへの変換や、GAN自体にランダムノイズから抽象画を生成させる研究がある。また、ArtGANやCreative Adversarial Networksなど、芸術的創造性を目指したモデルも提案されている。

4.2 スタイル変換

4.2.1 CycleGAN

CycleGANは、ペアのない画像間のスタイル変換を可能にするモデルである。二つのドメイン(例えば写真と油絵)間で、一対一対応の学習データなしに変換を学習する。サイクル一貫性損失(Cycle Consistency Loss)を導入し、変換後の画像を元のドメインに戻すことで、写像の妥当性を保証する。代表的な応用には、馬とシマウマの変換、夏と冬の風景変換などがある。

4.2.2 ニューラルスタイル転送との比較

ニューラルスタイル転送(Neural Style Transfer, NST)は、コンテンツ画像の構造を保ちながらスタイル画像のテクスチャを適用する手法である。一方、CycleGANはドメイン全体のスタイル変換を学習し、任意の入力画像に対して高速に変換できる(一回の順伝播)。NSTは画像ごとに最適化が必要で時間がかかるが、細かいスタイル制御が可能。両者は用途に応じて使い分けられる。

4.3 データ拡張

GANを用いて実データに似た人工データを生成することで、機械学習モデルの訓練データを増強する手法。特に、医療画像や工業製品の異常検知など、データ不足が問題となる領域で有効である。例えば、CT画像の生成や、不均衡データセットにおける希少クラスの補完に利用される。ただし、生成データの品質と分布の妥当性には注意が必要である。

4.4 音声生成

GANは音声波形やスペクトログラムの生成にも応用される。例えば、WaveGANは波形ドメインで音声を生成し、SpecGANはスペクトログラムを生成してから逆変換で音声を得る。テキスト読み上げ(TTS)システムでは、条件付きGANを用いてテキストから音声を合成する研究がある。また、歌声合成(SVS)や楽器音生成にも利用される。

4.5 テキスト生成

テキスト生成へのGANの適用は、離散データ(単語の系列)であるため勾配の伝搬が困難だが、Gumbel-Softmaxや強化学習(SeqGAN)などの手法で対処される。SeqGANは生成器(言語モデル)がテキストを生成し、識別器がテキストが本物(人間が書いた)か偽かを判別する。モンテカルロ探索を用いて中間状態の報酬を推定する。ただし、テキスト生成では自己回帰モデル(Transformerなど)が主流であり、GANの性能は限定的である。

5 評価指標

5.1 Inception Score

Inception Score(IS)は、生成画像の品質と多様性を評価する指標。事前学習済みのInception v3ネットワークを用いて、生成画像のクラス確率分布を計算する。ISが高いほど、各画像が一つのクラスに明確に分類され(品質)、かつ画像全体でクラス分布が均一である(多様性)ことを示す。ただし、任意の分布に過剰適合する可能性や、クラス間の多様性しか測れないという限界がある。

5.2 FID(Fréchet Inception Distance)

FIDは、実データと生成データの特徴量分布の間の距離をFréchet距離(Wasserstein距離の一種)で計測する指標。Inception v3の中間層の特徴ベクトルを用い、実データと生成データの平均と共分散を比較する。FIDが低いほど、二つの分布が類似していることを示す。ISと異なり、実データとの比較が可能であり、より信頼性が高いとされている。

5.3 Precision-Recall曲線

GANの評価において、Precision(精度)は生成画像が実データとどれだけ類似しているかを、Recall(再現率)は生成画像が実データの多様性をどれだけカバーしているかを示す。Precision-Recall曲線は、識別器の閾値を変化させることでトレードオフを可視化する。モード崩壊が生じている場合、Recallが低下する。この指標により、品質と多様性を分離して評価できる。

6 発展と将来

6.1 現在の限界

GANには以下のような限界が存在する。第一に、学習の不安定性とハイパーパラメータへの敏感さ。第二に、モード崩壊の問題は完全には解決されていない。第三に、生成画像のアーティファクト(不自然なパターンや歪み)が高解像度で顕著になる。第四に、評価指標が不完全で、人間の主観評価に頼らざるを得ない場合が多い。第五に、大規模データセットや計算資源が必要なこと。これらの課題は現在も活発に研究されている。

6.2 研究動向

6.2.1 自己教師あり学習との融合

自己教師あり学習(Self-Supervised Learning)とGANの融合は、近年の重要な研究方向である。例えば、SimGANはシミュレーション画像を実画像風に変換するためにCycleGANを用いる。また、Contrastive Learningを損失関数に組み込むことで、識別器がより意味のある特徴を学習できるようにする手法(ContraGANなど)が提案されている。これにより、生成品質の向上と学習の安定化が期待される。

6.2.2 拡散モデルとの比較

拡散モデル(Diffusion Models)は、2020年代に入ってGANに匹敵する画像生成品質を示すようになった。拡散モデルは段階的にノイズを加えてから逆過程で画像を復元する手法で、GANのようなゲーム的学習が不要であるため、学習が比較的安定している。一方、生成に多数のステップが必要で推論が遅いという欠点もある。現在は、GANの高速生成と拡散モデルの高品質・多様性を組み合わせるハイブリッド手法も研究されている。