見出し画像

【AIとの距離感・補足】ノイズから絵が生まれる、らしい|拡散モデル

前の記事の最後で、「今使っているのは拡散モデルという別の仕組みらしい」と書いて、そのまま置いてきました。

気になって調べました。


🌫️ 拡散モデルとは何か

拡散モデル(Diffusion Model)は、画像にノイズを少しずつ加えていって、最終的にぐちゃぐちゃにする過程を学習する仕組みです。つまり、「きれいな画像を壊す手順」を覚えることで、逆に「壊れた状態から復元する方法」を身につける、という発想です。

そして、その逆を覚えます。ぐちゃぐちゃな状態から、少しずつノイズを取り除いていくと、もとの画像に戻せるようになる。

この「逆向きの復元」を応用したのが、画像生成です。

完全なノイズを出発点にして、少しずつ「それらしい画像」に近づけていく。プロンプトを入れると、AIがノイズの中から意図した画像を彫り出してくる、というイメージに近いかもしれません。


🔄 GANとどう違うのか

GANは生成器と識別器が対決しながら学習するモデルでした。一言でいうと、「偽物を作る側」と「見抜く側」が競い合うことで精度を上げていく仕組みです。精度は高いのですが、2つのネットワークのバランスが崩れると学習が不安定になりやすい、という課題があったそうです。

拡散モデルは対決の構造を持ちません。ノイズを加える・取り除くという、比較的シンプルな手順を繰り返すことで学習します。

学習が安定しやすく、多様な画像を生成できることから、2020年代に入って急速に普及しました。Stable DiffusionやMidjourney、Geminiの画像生成機能も、拡散モデルをベースにしています。

毎日使っているのはこれだったんだな、と、少し遅れて気づきました。


⏱️ 「少しずつ」が肝らしい

拡散モデルの特徴は、一発で画像を作るのではなく、何百回もの小さなステップを踏むことです。

ステップ数を増やすと精度が上がる代わりに時間がかかる。減らすと速いけれど荒くなる。このトレードオフ、つまり「どちらかを立てるともう一方が犠牲になる」という関係を調整する研究が今も続いていて、「速くて精度も高い」方向に少しずつ改善されているようです。

Geminiで画像を生成するとき、数秒で出てくる裏でこの処理が走っていると思うと、少し見え方が変わりました。速いのは当たり前じゃなかったんだな、と。


🤔 VAEとの関係

調べていくと、実は拡散モデルはVAEと組み合わせて使われることが多いとわかりました。

画像をそのままノイズにするのではなく、VAEで一度圧縮した「特徴の塊」の空間でノイズと復元を行う。これを潜在拡散モデルと呼びます。つまり、画像を丸ごと扱うのではなく、いったん小さく圧縮した状態で処理することで、計算を効率化した仕組みです。Stable Diffusionはこの方式です。

前の記事で調べたVAEが、ここでつながってきました。遠回りじゃなかったかもしれません。

ま、いっか。


練習問題はありません

今回は補足記事のため、練習問題はお休みです。
次回は本編に戻ります。


あとがき

ここまで読んでくださり、ありがとうございます。

ノイズから生まれてるんですね〜
拡散モデル…ふむふむ…なるほど?

よし!

「フォロー」や「スキ」をしていただけると励みになります!
今後ともよろしくお願いします!



※シリーズ一覧用のマガジンです。よければ〜


いいなと思ったら応援しよう!

緑どんぐり 気に入っていただけたら、チップで応援してもらえると嬉しいです。 いただいた応援は、今後の記事作りの励みになります!

この記事が参加している募集