文章を打ち込むだけで絵が出てくるサービスは、いまやほとんどが拡散モデルで動いています。やっていることは素朴で、画像をノイズまみれにしてから取り除くだけです。
こんにちは、zawato(@zawato7)です!
本記事はディープラーニング入門ロードマップの第27回です。画像を「認識する」側から「生成する」側へ、ここで軸足が移ります。
- 拡散過程と逆拡散過程が何をしているのか
- Stable Diffusionが潜在空間を使う理由
- 文章から画像を作るtext-to-imageの仕組み
拡散モデルはノイズを足して、取り除く
拡散モデル(Diffusion Model)は、画像に少しずつノイズを加えて完全な砂嵐にし、その逆をたどってノイズを取り除く過程を学習するモデルです。登場するのは2つの向きの過程です。
| 過程 | やること | 学習するか |
|---|---|---|
| 拡散過程(順方向) | 元画像に少しずつノイズを加える | しない |
| 逆拡散過程(逆方向) | ノイズを1段階ずつ取り除く | する(ここがモデル) |
ノイズを足す側に学習すべきものはなく、そのペアは自動でいくらでも作れます。人手のラベル付けなしに正解が手に入るわけです。学習後は完全なノイズから逆拡散過程を回すだけで、見たことのない画像が生まれます。
デノイジングは「引き算」を少しずつ繰り返す
デノイジング(ノイズ除去)とは、いま見えている画像に乗っているノイズを推定して引く処理です。拡散モデルの本体は、この推定を担うCNNベースのネットワークです。
ポイントは、一発できれいな画像を出そうとしない点です。曇ったガラスを何度も拭くうちに向こう側が見えてくるように、少しずつノイズを引くステップを数十回から千回近く繰り返します。
1回あたりの仕事が簡単なぶん、学習が崩れにくくなります。乱数から一気に画像を作り上げるGAN(敵対的生成ネットワーク)は学習が不安定になりやすく、主流の座が移ったのはこの差が効いています。
Stable Diffusionは潜在空間でノイズを扱う
Stable Diffusionは、ピクセルではなく圧縮された潜在空間の上で拡散と逆拡散を行うモデルです。素直に実装すると、ピクセル全部に対してノイズ除去を何百回も繰り返すことになり、計算量が重すぎます。
そこで画像を小さな表現に圧縮し、その空間でノイズの付加と除去を行ってから元のサイズに復元します。圧縮と復元にはVAE(変分オートエンコーダ)が使われます。
| 方式 | どこでノイズを扱うか | 計算コスト |
|---|---|---|
| 素朴な拡散モデル | ピクセル空間 | 非常に重い |
| Stable Diffusion | 潜在空間 | 大幅に軽い |
「潜在拡散モデル(Latent Diffusion Model)」と呼ばれるのはこのためで、個人のPCでも画像生成が動くのはこの工夫のおかげです。
テキストから画像へ|CLIPが言葉と絵をつなぐ
text-to-image(テキストから画像へ)を成立させているのは、画像と言語を対応づけるCLIPというモデルです。拡散モデル単体では、ノイズから何かしらの画像が出てくるだけで内容を指定できません。
CLIPは画像と説明文の大量のペアを学習し、対応する画像と文章が近い位置に来る表現を身につけます。これでプロンプトを「どんな絵に向かうか」の手がかりに変換でき、デノイジングの各ステップがそれに引っ張られて指示どおりの画像になります。
画像生成まわりでは、複数視点の写真から3次元表現を作るNeRFも頻出です。画像認識モデルの進化の延長で、Vision TransformerやSwin Transformerも押さえておきましょう。
まとめ
- 拡散モデルはノイズを加える拡散過程と、取り除く逆拡散過程からなる。学習するのは後者だけ
- デノイジングを少しずつ何度も繰り返すため学習が安定しやすく、GANに代わって画像生成の主流になった
- Stable Diffusionは潜在空間で処理して計算を軽くし、CLIPで文章と画像を結びつけてtext-to-imageを実現している
よくある質問
Q. 拡散モデルとGANはどちらが優れているのですか?
A. 画質と学習の安定性では拡散モデルが有利で、いまの主流です。ただし何十回もステップを踏むぶん、1枚を作る速さではGANに分があります。
Q. 拡散過程では何を学習しているのですか?
A. ノイズを加える拡散過程は決まった手順なので何も学習しません。学習するのは逆拡散過程、つまりノイズを推定して取り除くネットワークのほうです。
Q. 潜在空間でノイズを扱うと画質は落ちませんか?
A. 圧縮時に人が気づきにくい細部は削られますが、復元を担うVAEが構造を保つよう学習されているため、実用上は問題ない画質が保たれます。
Q. CLIPは画像を生成しているのですか?
A. していません。CLIPは画像と文章を対応づけるモデルで、生成そのものは拡散モデルが行います。CLIPは「どんな絵に近づけるか」という方向を示す役割です。



コメント