GANの栄枯盛衰 — 敵対で学ぶ発明と、拡散に負けた理由
2014年に「本物らしさの物差しごと学習させる」という発想で画像生成を一変させたGANが、なぜモード崩壊と学習の不安定さに悩み、WGANで立て直し、それでも拡散モデルに主役を譲ったのか。10年の流れを式と動く図でたどります。
Generative Adversarial Networks
一次資料 — この記事の根拠
この解説の公開 2026-08-22
Generative Adversarial NetworksarXiv:1406.2661論文ページ·PDFWasserstein 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本です。
記号を1つずつ。 は本物のデータが従う分布、 は乱数の分布(普通は正規分布)、 は乱数から作った偽物、 は「本物である確率」を返す判別器です。
要するにこの式は、「鑑定士は本物に高い点、偽物に低い点を付けたい。贋作師は、自分の偽物に高い点を付けさせたい」と言っているだけです。特筆すべきは、両者が同じ1つの数値を、片方は最大化し、片方は最小化しようとしている点です。だから と が並びます。これは損失を下げていく最適化ではなく、2人ゲームの均衡探しです。この違いが、後のあらゆる苦労の源になります。
論文はさらに、生成器を固定したときに最強の鑑定士がどう振る舞うかを示しました。
は生成器が作り出す分布です。つまり最適な鑑定士は、その地点に本物がどれだけ濃く、偽物がどれだけ濃いかの比を返します。半々の場所では 0.5 になる。これを元の式に戻すと、全体は と の Jensen-Shannonダイバージェンス(2つの分布のズレの測り方の一種。KL情報量を1からの対称版だと思ってください)に定数を足した形になります。最適化しきれば 、つまり本物と完全に同じ分布に到達する。理論としては、これ以上ないほど綺麗でした。
最初のつまずき: 勾配が消える
綺麗な理論は、最初の1000ステップで裏切られます。
学習の序盤、生成器はまだ何も作れないので、鑑定士は自信満々に を返します。ここで生成器側の項 を見てください。 が0に近いところで、この関数はほとんど平らです。「全部だめ」という答えは返ってくるのに、「どっちへ動けばマシになるか」の傾きが返ってこない。 生成器がいちばん助けを必要としている序盤に、いちばん情報が来ないわけです。
原論文自身がこの問題を認め、実装上の回避策を併記しています。生成器は を最小化する代わりに、 を最大化する。最適解の位置は同じですが、序盤の傾きが桁違いに急になります。非飽和損失(non-saturating loss)と呼ばれるこの書き換えは、以後ほぼ全てのGAN実装の既定値になりました。
「平らなところでは学べない」という感覚は、シグモイドの形を触ると一発で腑に落ちます。
コメント
コメントにはログインが必要です