【かくさんもでる】

拡散モデル とは?

最終更新:
💡 「ぐちゃぐちゃから綺麗なものを作り出す」生成モデル

データにノイズを加える過程をもとに、逆向きにノイズを取り除く処理を学習して、画像などを生成するモデル。生成時は新しいノイズから始められ、特定の元画像を取り戻すだけの仕組みではない。

📌 このページのポイント
拡散モデル:ノイズから生成する 学習時:ノイズを加えたデータを用意 元データ 途中の状態 ノイズ 途中の状態から、ノイズなどを予測する学習 生成時:学習した処理で段階的に生成 新しいノイズ 中間の状態 生成データ 特定の元画像を取り戻すだけの処理ではない
基本的な画像生成の模式図。実際の段階数や、画像・潜在表現のどちらで処理するかは方式によります。
ひよこ ひよこ
拡散モデルってどうやって画像を作るの?
ペンギン先生 ペンギン先生
基本例のDDPMでは、画像に少しずつノイズを加える過程をあらかじめ定めるよ。その途中の画像からノイズなどを予測するようニューラルネットワークを学習し、逆向きの生成に使うんだ
ひよこ ひよこ
生成するときも、元の画像が必要なの?
ペンギン先生 ペンギン先生
新しいランダムノイズから出発できるよ。学習した処理を繰り返し、学習データの特徴に沿った画像を作る。特定の画像をノイズの中から必ず復元する、という意味ではないんだ
ひよこ ひよこ
GANとは何が違うの?
ペンギン先生 ペンギン先生
GANは生成器と識別器の競い合いを使うけれど、基本的な拡散モデルはノイズ除去の学習を使うよ。学習方法が違うんだ。拡散モデルのほうが、どんなデータや計算条件でも必ず優れるとは言えないよ
ひよこ ひよこ
テキストで指定した画像を作れるのはなぜ?
ペンギン先生 ペンギン先生
文章を数値の表現に変え、それを条件としてノイズ除去の処理へ渡す方法があるんだ。潜在拡散モデルの研究では、クロスアテンションで条件を取り込んでいる。どのモデルも必ずCLIPで実現するわけではないよ
ひよこ ひよこ
何ステップも計算するのは大変そうだね
ペンギン先生 ペンギン先生
そこで、DDIMのように少ない生成ステップを使う方法や、画像を圧縮した潜在表現で処理する潜在拡散モデルがあるよ。速度と品質は方式や設定によるから、ステップ数だけでは決まらないんだ
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「拡散モデル」って出てきたら「ノイズを取り除く過程を学んでデータを生成するモデル」と思えばだいたいOK!
📖 おまけ:英語の意味
「Diffusion Model」 = 拡散モデル
💬 非平衡熱力学の考え方に着想を得た名前だよ。データをノイズへ変える向きと、その逆向きの生成を考える。実物のインクを必ず元通りに戻せるという意味ではないんだ

参考資料

← 用語集にもどる