
きょうは画像生成AIの中身を、役割分担の図として一本につなげます
CNN、VAE、GAN。
画像生成の話を調べると、この3つが必ず出てきます。
それぞれの説明は、どこにでもあります。
でも、知りたいのはそこではないと思うのです。
結局、どれとどれが一緒に使われてるの?ってところだよね


そこです。単語の意味ではなく、並び順と役割分担。それが分かると1枚の図になります
先に結論:3つは並列ではありません
ここが最大の誤解だと思っています。
CNNは「部品」。
VAEとGANは「作り方」。
層が違うので、そもそも比べる対象ではありません。
3つを横に並べた比較表を見ると、同じ土俵にいるように見えます。
でも実際は、VAEの中にもGANの中にもCNNが入っています。
その前に、ひとつだけ。
この分野の情報は、順番に届きません。
新しい名前が、毎週ばらばらに飛び込んできます。
学生時代は違いました。
教科書が順番を決めてくれて、前から積めばよかった。
大人の学び直しに要るのは、順番ではなく置き場所です。
入れる棚さえあれば、ばらばらに来ても積み上がります。
この記事は、その棚を作る話だと思ってください。
順に見ていきます。
CNN:画像から「特徴」を取り出す部品
CNNは、画像の中の細かいパターンを拾う仕組みです。
端っこの線。色の変わり目。並んだ点。
それを重ねていくと、輪郭になり、部品になり、最後に「猫の顔」になります。
ここで押さえておきたいのは1点です。
CNNそのものは、絵を作りません。
見る側の仕組みです。
ではなぜ生成の話に出てくるのか。
VAEやGANの内部で、目や手として使われているからです。
VAE:意味の地図を作る
VAEは、2つの部分でできています。
入れる側(エンコーダ)が、画像をぎゅっと圧縮して短い数字の列にします。
出す側(デコーダ)が、その数字の列から画像を戻します。
この「短い数字の列」が置かれている場所を、潜在空間と呼びます。
圧縮って、ZIPみたいなもの?


似ていますが、決定的に違う点があります
ZIPは戻すためだけの圧縮。
潜在空間は、近い意味のものが近くに並ぶ「地図」になっています。
地図になっていると、何が嬉しいか。
途中の場所を指させます。
笑顔の位置と真顔の位置の中間を指すと、その中間の表情が出てきます。
VAEはこの地図が滑らかになるように学習します。
だから生成される絵は、なめらかで、多様で、そして——少しぼんやりします。
平均を取るような学習をしているので、細部が丸まるのです。
GAN:偽造犯と鑑定士を競わせる
GANは、まったく別の発想です。
2つのネットワークを戦わせます。
生成器は、ランダムな数字から絵を作ります。偽造犯です。
識別器は、それが本物か偽物かを当てます。鑑定士です。
偽造犯は、見破られないように腕を上げる。
鑑定士は、見破れるように目を鍛える。
この繰り返しで、結果として非常にリアルな絵が出てくるようになります。
ただし、弱点があります。
学習が不安定です。
そして、同じような絵ばかり作るようになることがあります。
理由は考えると当たり前で、偽造犯は「見破られない1枚」を見つけたら、それを繰り返せば勝てるからです。
多様性を評価する仕組みが、この構造の中にありません。
ずるい勝ち方を覚えちゃうんだ

だから、組み合わせる
ここまで来ると、組み合わせる理由が見えてきます。
VAEは、地図がきれいだが絵がぼんやりする。
GANは、絵は鮮明だが暴れるし偏る。
弱点が、ちょうど裏返しになっています。
そこで、VAEのデコーダ(出す側)を、そのままGANの生成器として使います。
そこに識別器をつけて、鮮明さを詰める。
VAEが「どこに何があるか」を決める。
GANが「その1枚をどこまで本物らしくするか」を決める。
これがすみ分けです。
この形はVAE-GANと呼ばれ、2015年ごろに提案されました。
入れる側と出す側を同時に鍛える別の系統(ALI/BiGAN)も、狙いは同じです。
そして今の主流は、4つ目にあります
ここが大事なところです。
いま実際に使われている画像生成の多くは、GANではありません。
拡散モデルです。
やっていることは、拍子抜けするほど単純です。
まず、砂嵐のようなノイズを置く。
そこから少しずつノイズを取り除いていく。
何十回も繰り返すと、絵が浮かび上がってきます。
それだけで絵になるの?


なるんです。学習しているのは「絵の描き方」ではなく「このノイズはどう取り除くか」のほうなので
なぜGANより広まったのか。
1枚を作るのに競争が要らないので、学習が安定するからです。
同じ絵ばかりになる問題も起きにくい。
そして面白いのは、ここでVAEが消えていないことです。
よく使われる形では、ノイズを取り除く作業を、画像そのものではなく潜在空間の上でやります。
圧縮された地図の上で処理して、最後にデコーダで画像に戻す。
手法は入れ替わりました。
でもVAEが持ち込んだ「潜在空間」という考え方は、そのまま生き残っています。
だから、VAEを学ぶのは古い話ではありません。
いまの土台の説明になっています。
動画になると、何が増えるのか
動画は、画像を並べたものです。
では、1枚ずつ作って並べればいいのか。
それだと、こうなります。
前のコマと服の色が違う。人が瞬間移動する。背景が入れ替わる。
増えるのは1つだけです。時間のつながり。
ここをどう担保するかで、やり方が分かれます。
- 前のコマを覚えておく(RNN・LSTMなど)。順番に見ていく素直な方法
- 時間ごと立体として扱う(3D CNN)。数コマをまとめて一気に処理する
- 全部のコマを一度に見比べる(Transformer)。離れたコマ同士の関係まで扱える
短いクリップなら、まとめて処理する方法が向きます。
長く、複雑な動きになるほど、全体を見比べる方法が効いてきます。
Soraは、何をしているのか
ここまでの流れが分かっていると、すっと入ります。
OpenAIが2024年2月に公開した技術レポートによると、Soraは拡散モデルであり、かつTransformerです。
手順は3段です。
ひとつ、圧縮する。
動画を、低い次元の潜在空間へ落とします。
ふたつ、細かく刻む。
それを「時空間パッチ」という小さな単位に切り分けます。
縦横だけでなく、時間の方向にも切る。
この一つひとつが、Transformerにとっての単語のようなものになります。
みっつ、ノイズを取る。
ノイズだらけのパッチから、きれいなパッチを予測する。
それを繰り返して動画にします。
時間を「後から足す連続性」ではなく、最初から一緒に刻んでいる。
ここがSoraの勘所です。
この刻み方のおかげで、長さも解像度も縦横比もバラバラのまま学習できます。
ぜんぶ、ここまでの部品でできてるんだ


そうなんです。潜在空間はVAEから、ノイズ除去は拡散モデルから、パッチを見比べる仕組みはTransformerから
新しいのは、組み合わせ方のほうです。
仕組みを知ると、何の役に立つのか
最後に、いちばん実用的なところを書きます。
この分野は、それらしい説明がいくらでも作れます。
横文字の略称に、それらしい正式名称を付ければ、専門的な文章に見えてしまう。
そして知らない人には、本物と見分けがつきません。
ここで効いてくるのが、役割分担の図です。
「特徴を取る部品」「地図を作る作り方」「本物らしさを詰める競争」「ノイズを削る手順」
この4つの引き出しを持っていると、新しい名前が出てきたときに、どこの話かを当てにいけます。
当てはまらなければ、そこで手が止まる。
その「引っかかり」が、間違いを見つける唯一の入口です。
仕組みを学ぶ実利は、作れるようになることではありません。
もっともらしい説明を、疑えるようになることです。
そして、棚さえあれば全部を覚える必要はありません。
忘れても、置き場所を覚えていれば戻ってこられます。
覚えられないことに落ち込んでしまう人は、覚えたのに思い出せない。1か月でほぼ忘れるのが普通ですを読んでみてください。
大人の学び直しは、記憶力ではなく戻り方の設計です。
【訂正とおわび】
この記事の以前の版では、Soraを「強化学習にもとづく手法」として説明し、実在しない正式名称を記載していました。
誤りです。上記のとおり、Soraは拡散モデルとTransformerを組み合わせた手法です。
お詫びして訂正します。
そして、ちょうどこの記事が扱っている話の実例になってしまいました。もっともらしい説明ほど、疑いにくい。
出典: OpenAI「Video generation models as world simulators」(2024年2月)
