敵対的生成ネットワーク(GANの実装と展開)

ミニマックス最適化の理論を実用的な深層学習モデルとして具現化したものが、敵対的生成ネットワーク(GAN)の実装体系である。GANは単なるモデルではなく、「対立的最適化ダイナミクス」を安定に実装するための設計原理の集合体であり、その発展はアーキテクチャ設計・損失関数・正則化手法の三位一体として理解される。本節では、初期実装から現代的高性能モデルに至るまでの技術的発展を、数理的背景とともに体系的に詳述する。

基本設定と学習アルゴリズム

GANの基本構造は、生成器 $G(z; \theta_g)$ と識別器 $D(x; \theta_d)$ の二つのネットワークからなる。生成器は潜在変数 $z \sim p_z(z)$ を入力としてデータ空間のサンプルを生成し、識別器は入力 $x$ が真のデータか生成データかを判定する関数である。

実装上の学習は、以下の交互最適化として実現される:

  1. ミニバッチ $\{x^{(i)}\}$ を $p_{\mathrm{data}}$ からサンプリングし、$\{z^{(i)}\}$ を $p_z$ からサンプリングする。
  2. 識別器を更新:\[\max_{\theta_d}\frac{1}{m}\sum_{i=1}^m\left[\log D(x^{(i)}) + \log(1 - D(G(z^{(i)})))\right]\]
  3. 生成器を更新(非飽和損失):\[\max_{\theta_g}\frac{1}{m}\sum_{i=1}^m\log D(G(z^{(i)}))\]

このように、確率的勾配法(SGDやAdam)によってパラメータ更新が行われるが、これは厳密なミニマックス最適化ではなく、サドル点近傍の動的探索として理解されるべきである。

DCGAN:実装指針の確立

DCGANは、GANの実用化において決定的な役割を果たした。特に画像生成においては、空間的構造を保持するために畳み込み構造が不可欠である。DCGANの設計原則は以下に要約される:

  • 転置畳み込み: 潜在空間から画像空間へのアップサンプリングを実現する。
  • バッチ正規化: 内部共変量シフトを抑制し、学習を安定化させる。
  • 活性化関数の設計: $G$ では ReLU と $tanh$、$D$ では LeakyReLU を使用する。
  • 全結合層の排除: 深い畳み込み構造により表現力を確保する。

これらの設計により、潜在変数空間において線形構造が意味的構造と対応する現象(ベクトル演算による意味操作)が観測される。

訓練の不安定性とモード崩壊

GANの実装における本質的課題は、以下の二点に集約される:

  • 勾配消失: 識別器が強すぎる場合、生成器の勾配が消失する。
  • モード崩壊: $p_g$ が $p_{\mathrm{data}}$ の一部モードに集中する。

モード崩壊は、生成器が以下のような退化分布に収束する現象として理解される:

\[p_g(x) \approx \sum_{k} \alpha_k \delta(x - x_k)\]

これはミニマックスゲームの非凸性および最適化ダイナミクスに起因する。

Wasserstein GANと距離の再定義

これらの問題を解決するために、WGANでは分布間距離としてワッサースタイン距離を導入する:

\[W(p_{\mathrm{data}}, p_g)=\sup_{\|f\|_L \le 1}\mathbb{E}_{x \sim p_{\mathrm{data}}}[f(x)]-\mathbb{E}_{x \sim p_g}[f(x)]\]

ここで $f$ は1-Lipschitz関数であり、識別器は「クリティック」として再定義される。この定式化により、サポートが一致しない場合でも有意な勾配が得られる。

Lipschitz制約の実装としては以下が用いられる:

  • 重みクリッピング
  • 勾配ペナルティ:\[\lambda \mathbb{E}_{\hat{x}} \left[ (\|\nabla_{\hat{x}} f(\hat{x})\|_2 - 1)^2 \right]\]

条件付き生成と構造制御

Conditional GAN(cGAN)では、条件変数 $y$ を導入する:

\[G(z,y), \quad D(x,y)\]

これにより、クラス条件付き生成や画像変換が可能となる。さらに、条件は単なるラベルに限らず、テキストや他画像にも拡張される。

StyleGANと潜在空間の再構成

StyleGANは、潜在変数の扱いを根本的に再設計したモデルである。まず、潜在変数 $z$ を中間空間 $\mathcal{W}$ に写像する:

\[w = f(z)\]

その後、各層に対してスタイル変調を適用する。このとき、特徴マップは以下のように制御される:

\[\mathrm{AdaIN}(x) = \sigma(w) \frac{x - \mu(x)}{\sigma(x)} + \mu(w)\]

この構造により、異なるスケールの特徴(構造・テクスチャ)が分離され、高精細かつ制御可能な生成が実現される。

その他の重要な拡張

  • CycleGAN: 対応関係のないドメイン間変換。
  • Spectral Normalization: Lipschitz制約の安定な実装。
  • BigGAN: 大規模バッチとクラス条件付き生成の統合。

まとめ

GANの実装は、単なるネットワーク設計ではなく、「不安定なゲームをいかに制御するか」という問題への解答である。DCGANによる構造的安定化、WGANによる距離概念の再定義、StyleGANによる潜在空間の再構成などを経て、GANは高度に洗練された生成モデルへと進化した。この発展は、生成モデルを「最適化問題」から「動的システム」として理解する視点の重要性を示している。

Mathematics is the language with which God has written the universe.





















数理統計学 機械学習