JA EN
体系生成モデル
·★ 会員·論文·14分で読めます

GANの栄枯盛衰 — 敵対で学ぶ発明と、拡散に負けた理由

2014年に「本物らしさの物差しごと学習させる」という発想で画像生成を一変させたGANが、なぜモード崩壊と学習の不安定さに悩み、WGANで立て直し、それでも拡散モデルに主役を譲ったのか。10年の流れを式と動く図でたどります。

対象textタスクgeneration

Generative Adversarial Networks

一次資料 — この記事の根拠

この解説の公開 2026-08-22

Generative Adversarial NetworksarXiv:1406.2661論文ページ·PDF
Wasserstein GANarXiv:1701.07875論文ページ·PDF
Diffusion Models Beat GANs on Image SynthesisarXiv:2105.05233論文ページ·PDF

比喩: 贋作師と鑑定士を同じ部屋で育てる

美術品の贋作師を育てたいとします。教科書はありません。代わりに、隣に鑑定士見習いを座らせます。

贋作師は絵を描き、鑑定士は「本物か偽物か」を当てる。最初はどちらも素人なので、鑑定士は絵の具のムラだけで見抜けます。すると贋作師はムラを消すことを覚え、今度は鑑定士が筆致の違いに気づき、贋作師は筆致を真似る——このいたちごっこを何万回も回すと、鑑定士が半々でしか当てられない、つまり本物と見分けがつかない絵を描く贋作師ができあがっています。

これが GAN(Generative Adversarial Network、敵対的生成ネットワーク) です。贋作師が生成器(Generator)、鑑定士が判別器(Discriminator)。2014年の Goodfellow らの論文が示したこの構図は、それまでの生成モデルの常識を壊しました。

直感: 「本物らしさ」を人間が式で書かなくていい

何がそんなに新しかったのか。物差しそのものを学習させた点です。

それ以前の画像生成は、「正解画像とどれだけ近いか」を人間が決めた式で測っていました。典型は画素ごとの二乗誤差です。ところがこれには根の深い欠陥があります。正解が複数あるとき、二乗誤差を最小にするのは「正解たちの平均」なのです。人の顔を生成する場面で、髪が右に流れる絵と左に流れる絵の両方がありうるなら、二乗誤差にとっての最善手は両方を薄く重ねた、ぼんやりした絵になります。実際、初期のオートエンコーダ系の出力がぼやけるのはこれが主因でした(この事情はVAEを1からで扱っています)。

GANはここを回避します。判別器は「ぼやけた絵は偽物だ」とすぐ学びます。だから生成器が平均へ逃げると即座に見破られ、罰が返ってくる。平均への逃げ道が塞がれている——これがGANの絵が当時ずば抜けて鮮明だった理由です。

仕組み: たった1本のminimax式

論文の中心は、次の1本です。

minGmaxD  Expdata[logD(x)]+Ezpz[log(1D(G(z)))]\min_G \max_D \; \mathbb{E}_{x \sim p_{\text{data}}}[\log D(x)] + \mathbb{E}_{z \sim p_z}[\log (1 - D(G(z)))]
(1)

記号を1つずつ。pdatap_{\text{data}} は本物のデータが従う分布、pzp_z は乱数の分布(普通は正規分布)、G(z)G(z) は乱数から作った偽物、D(x)D(x) は「本物である確率」を返す判別器です。

要するにこの式は、「鑑定士は本物に高い点、偽物に低い点を付けたい。贋作師は、自分の偽物に高い点を付けさせたい」と言っているだけです。特筆すべきは、両者が同じ1つの数値を、片方は最大化し、片方は最小化しようとしている点です。だから min\minmax\max が並びます。これは損失を下げていく最適化ではなく、2人ゲームの均衡探しです。この違いが、後のあらゆる苦労の源になります。

論文はさらに、生成器を固定したときに最強の鑑定士がどう振る舞うかを示しました。

D(x)=pdata(x)pdata(x)+pg(x)D^*(x) = \frac{p_{\text{data}}(x)}{p_{\text{data}}(x) + p_g(x)}
(2)

pgp_g は生成器が作り出す分布です。つまり最適な鑑定士は、その地点に本物がどれだけ濃く、偽物がどれだけ濃いかの比を返します。半々の場所では 0.5 になる。これを元の式に戻すと、全体は pdatap_{\text{data}}pgp_gJensen-Shannonダイバージェンス(2つの分布のズレの測り方の一種。KL情報量を1からの対称版だと思ってください)に定数を足した形になります。最適化しきれば pg=pdatap_g = p_{\text{data}}、つまり本物と完全に同じ分布に到達する。理論としては、これ以上ないほど綺麗でした。

最初のつまずき: 勾配が消える

綺麗な理論は、最初の1000ステップで裏切られます。

学習の序盤、生成器はまだ何も作れないので、鑑定士は自信満々に D(G(z))0D(G(z)) \approx 0 を返します。ここで生成器側の項 log(1D(G(z)))\log(1 - D(G(z))) を見てください。DD が0に近いところで、この関数はほとんど平らです。「全部だめ」という答えは返ってくるのに、「どっちへ動けばマシになるか」の傾きが返ってこない。 生成器がいちばん助けを必要としている序盤に、いちばん情報が来ないわけです。

原論文自身がこの問題を認め、実装上の回避策を併記しています。生成器は log(1D(G(z)))\log(1-D(G(z)))最小化する代わりに、logD(G(z))\log D(G(z))最大化する。最適解の位置は同じですが、序盤の傾きが桁違いに急になります。非飽和損失(non-saturating loss)と呼ばれるこの書き換えは、以後ほぼ全てのGAN実装の既定値になりました。

「平らなところでは学べない」という感覚は、シグモイドの形を触ると一発で腑に落ちます。

FIG 1シグモイドの両端は水平に潰れている。判別器が自信満々(出力が0や1に張り付いた状態)だと、生成器に返る傾きがここで消える。非飽和損失は、この平らな端を避けるための書き換えだった

勾配消失を回避しても、GANには固有の病があります。モード崩壊(mode collapse) です。

この先にあるもの

§

ここから先は会員限定です

解説記事371本・教科書26章・学生モード48単元・論文精読6本が、月額¥490ですべて読み放題になります。新しい解説は毎日3本ずつ増えます。いつでも解約でき、解約後も期間の終わりまで読めます。

会員の方はログインすると続きが表示されます

参考文献

  1. Generative Adversarial Networks. arXiv:1406.2661論文ページ·PDF
  2. Wasserstein GAN. arXiv:1701.07875論文ページ·PDF
  3. Diffusion Models Beat GANs on Image Synthesis. arXiv:2105.05233論文ページ·PDF

本記事は上記論文の本文にもとづいて執筆しています。数値・主張は原典を優先してください。

コメント

コメントにはログインが必要です