なっトク! 生成AI・DL/機械学習

画像生成AIから動画生成AIまで、一気に解説

2024-05-14

たすく

きょうは画像生成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月)

  • この記事を書いた人
  • 最新記事

花丸たすく

▸「思考タイプ診断」で、働き方をスマートに
▸ あなたの価値を、現実を変える力へ
▸ 「IT戦略×データ分析×プロジェクトマネジメント」の知見
▸ 京都大学卒業後、教育・情報サービス系JTCなどでDX推進・データ分析・人材開発に従事