【AIとの距離感・補足】ノイズから絵が生まれる、らしい|拡散モデル
前の記事の最後で、「今使っているのは拡散モデルという別の仕組みらしい」と書いて、そのまま置いてきました。
気になって調べました。
🌫️ 拡散モデルとは何か
拡散モデル(Diffusion Model)は、画像にノイズを少しずつ加えていって、最終的にぐちゃぐちゃにする過程を学習する仕組みです。つまり、「きれいな画像を壊す手順」を覚えることで、逆に「壊れた状態から復元する方法」を身につける、という発想です。
そして、その逆を覚えます。ぐちゃぐちゃな状態から、少しずつノイズを取り除いていくと、もとの画像に戻せるようになる。
この「逆向きの復元」を応用したのが、画像生成です。
完全なノイズを出発点にして、少しずつ「それらしい画像」に近づけていく。プロンプトを入れると、AIがノイズの中から意図した画像を彫り出してくる、というイメージに近いかもしれません。
🔄 GANとどう違うのか
GANは生成器と識別器が対決しながら学習するモデルでした。一言でいうと、「偽物を作る側」と「見抜く側」が競い合うことで精度を上げていく仕組みです。精度は高いのですが、2つのネットワークのバランスが崩れると学習が不安定になりやすい、という課題があったそうです。
拡散モデルは対決の構造を持ちません。ノイズを加える・取り除くという、比較的シンプルな手順を繰り返すことで学習します。
学習が安定しやすく、多様な画像を生成できることから、2020年代に入って急速に普及しました。Stable DiffusionやMidjourney、Geminiの画像生成機能も、拡散モデルをベースにしています。
毎日使っているのはこれだったんだな、と、少し遅れて気づきました。
⏱️ 「少しずつ」が肝らしい
拡散モデルの特徴は、一発で画像を作るのではなく、何百回もの小さなステップを踏むことです。
ステップ数を増やすと精度が上がる代わりに時間がかかる。減らすと速いけれど荒くなる。このトレードオフ、つまり「どちらかを立てるともう一方が犠牲になる」という関係を調整する研究が今も続いていて、「速くて精度も高い」方向に少しずつ改善されているようです。
Geminiで画像を生成するとき、数秒で出てくる裏でこの処理が走っていると思うと、少し見え方が変わりました。速いのは当たり前じゃなかったんだな、と。
🤔 VAEとの関係
調べていくと、実は拡散モデルはVAEと組み合わせて使われることが多いとわかりました。
画像をそのままノイズにするのではなく、VAEで一度圧縮した「特徴の塊」の空間でノイズと復元を行う。これを潜在拡散モデルと呼びます。つまり、画像を丸ごと扱うのではなく、いったん小さく圧縮した状態で処理することで、計算を効率化した仕組みです。Stable Diffusionはこの方式です。
前の記事で調べたVAEが、ここでつながってきました。遠回りじゃなかったかもしれません。
ま、いっか。

練習問題はありません
今回は補足記事のため、練習問題はお休みです。
次回は本編に戻ります。
あとがき
ここまで読んでくださり、ありがとうございます。
ノイズから生まれてるんですね〜
拡散モデル…ふむふむ…なるほど?
よし!
「フォロー」や「スキ」をしていただけると励みになります!
今後ともよろしくお願いします!

※シリーズ一覧用のマガジンです。よければ〜
いいなと思ったら応援しよう!
気に入っていただけたら、チップで応援してもらえると嬉しいです。
いただいた応援は、今後の記事作りの励みになります!