生成AI 基本

GANGenerative Adversarial Network

作る側と見抜く側が競い合って学ぶ方式

ポイント
  • GAN (Generative Adversarial Network、敵対的生成ネットワーク)は、作る側と見抜く側を並べて競わせる方式です。
  • 作る側の成績表は見抜く側がだまされたかどうかです。人が正解を付ける必要がありません。
  • 二つは交互に上達します。片方がよくなれば相手の課題もその分難しくなります。
  • 力が一方に大きく傾くと学びが止まります。均衡を保つことがこの方式最大の難題です。
  • 学び終えたら見抜く側は下ろして作る側だけを取り出して使います。
目次

1たとえで理解する

たい焼き屋の裏に機械が二台置いてあります。一台はたい焼きの型を新しく彫り、もう一台は焼き上がったたい焼きを見て、長年使ってきた正規の型から出たものか、たった今彫った新しい型から出たものかを見分けます。

最初は見分けがあまりに簡単です。新しい型はひれの部分がずんぐりしていて一目で分かります。彫る機械は指摘された部分を直してまた彫り、見抜く機械はもっと細かい所を見始めます。尾の先の厚み、縁の押した跡までです。

このやり取りを数え切れないほど繰り返すと、見抜く機械が五分五分で迷う地点に至ります。そのとき彫られた型は、正規のものと見分けがつきにくい品になります。

2くわしく

二台の機械が交互に競います

片方は**意味のない数の束を受け取って結果物を作ります。**毎回違う数が入るので毎回違う結果が出ます。もう片方は本物の資料と作られた結果物を混ぜて受け取り、どちらかを判定します。

学習は二つを交互に進めます。まず見抜く側に本物と偽物を見せながらうまく見分けられるよう手直しします。次に作る側を手直ししますが、このときは見抜く側をだます方向へ直します。一度ずつやり取りすると両方とも少しずつよくなっています。

競いが続くのは、課題が自動で難しくなるからです。作る側がよくなれば見抜く側の判定が難しくなり、見抜く側が鋭くなれば作る側が通りにくくなります。相手がそのまま次の段階の試験問題になるのです。

点数表は相手の失敗から生まれます

この方式が注目された理由は、正解を人が付けなくてよいという点です。絵を作る作業には元々採点表がありません。うまく描けたか数字で測る方法がありません。GANはその採点を別の機械に任せてしまいます。

見抜く側が「これは作られたようだ」と判定すれば、作る側はどこが引っかかったか信号を受けてその部分を直します。逆にだまされれば、その方向が正しかったという信号になります。採点表が学習の途中でずっと書き換えられるわけです。

おかげで結果物がくっきりします。平均を狙う方式で学んだ模型はぼやけた結果を出しがちですが、ここではぼやけた結果がすぐ見破られて通りません。

均衡が崩れると学びが止まります

問題は二台の機械の力が近くないと競いが成り立たない点です。見抜く側が強くなりすぎると、何を差し出しても偽物判定が出ます。作る側はどちらへ直せばよいか分からなくなり学びが止まります。

逆の状況も困ります。作る側が**うまく通る結果をひとつ見つけると、それだけを焼き続けます。**毎回違う数を入れても出てくるものは似たり寄ったりになります。たい焼きの型ひとつが通ったからとその模様ばかり彫り続ける状況です。この現象をモード崩壊と呼びます。

だから学習は順調に進みません。二つの速さを合わせ片方が先走らないよう調節する手直しが多く入ります。同じ設定でもう一度回しても結果が大きく変わることもあります。

学び終えたら見抜く側は下ろします

学習が終わると実際に使うのは作る側ひとつです。見抜く機械は訓練用の採点者だっただけなので完成後は要りません。サービスに載るのも作る側だけです。

作る側は数の束を受け取って結果を出すので**一回の計算で結果が出ます。**何段階も踏む方式よりずっと速く、リアルタイムで画面を作らなければならない場面では今もこの方式が使われます。

今はどこに使われるか

しばらく絵作りの中心でしたが、今その席は染みを取り除きながら作る方式に多く移りました。学習が安定していて多様な結果を出しやすいうえ、文で方向を示すのもしやすいからです。

代わりにGANは速くて軽い場面で生き残りました。低解像度の写真を大きく拡大する作業、声の波形を音に変える作業、画面をリアルタイムで変える作業のように一度で済ませなければならない仕事に向いています。競わせて学ばせるという発想自体も他の分野へ広く広がりました。

3もう少し正確に

GANは生成器と判別器という二つの神経網を、ひとつの目的関数の上で互いに反対方向へ最適化する構造です。判別器は本物と偽物をうまく見分けるよう、生成器は判別器の判定を裏返すよう学習します。理論的には生成器が作り出す分布が実際のデータ分布と同じになる地点で均衡が取れ、そのとき判別器の正解率は半分に近づきます。

たとえがずれる点があります。たい焼きの型は一度彫れば同じ形しか出しませんが、生成器は入ってくる数の束に応じて毎回違う結果を出さなければなりません。同じものしか出ないなら、それこそが失敗の合図です。また見抜く機械は本物のたい焼きを横に置いて比べますが、判別器は学習の途中で本物の資料をずっと新しく見て基準自体を変えていきます。

二つが均衡に達したかどうか確かめにくい点も指摘しておくべきです。損失の値が下がったからといって結果がよくなったとは限らないので、人が結果物を直接見るか別の指標で改めて測らなければなりません。

4やってみる

5よくある誤解

  • GANが二つのAIが対話しながら互いに教え合う構造だと思われがちですが、実際にはそれぞれ自分の目標だけを追い相手の失敗を利用するだけで、情報をやり取りするわけではありません。

  • 学習が終われば両方を一緒に使うと思われがちですが、実際には作る側だけを残し見抜く側は捨てます。

  • 競わせれば自然によくなると思われがちですが、実際には力の均衡が崩れると同じ結果ばかり繰り返す状態に陥りやすいです。

7ひとこと要約

つまりGANは作る機械と見抜く機械を組ませ、相手をだましたり見破られたりを繰り返しながらともに腕を上げていく方式です。

誤りや、もっと良いたとえがありますか? 修正を提案する · 最終更新2026-09-02