拡散モデル(ノイズ付加と段階的ノイズ除去)
きれいなデータに少しずつノイズを足して壊し(前方拡散)、逆向きに 1 ステップずつ「ノイズ除去」して構造を立ち上げる(逆拡散)様子を体感します。
20
20 / 20
0.12
対象データ
現在の段階 t
—
信号の残り √ᾱₜ
—
ノイズの割合 √(1−ᾱₜ)
—
復元の粗さ(残差 RMS)
—
現在の状態 xₜ(ノイズあり)
スケジュール ᾱₜ(信号がどれだけ残るか)
拡散モデルは、画像などのデータを「少しずつノイズで壊す前方過程」と「その逆を学習してノイズから生成する逆過程」の 2 段階で考えます。
前方過程は
逆過程ではモデルが「混ざったノイズ ε」を推定し、1 ステップずつ取り除いて x₀ に近い構造を立ち上げます。
スライダーで前方のノイズ量を変えてデータが崩れる様子を、ボタンで逆向きに 1 ステップずつ復元される様子を確かめましょう。総ステップ数 T が少ないほど復元は粗く、多いほど滑らかになります。
前方過程は
xₜ = √ᾱₜ · x₀ + √(1−ᾱₜ) · ε(ε は標準正規ノイズ)。ステップ t が進むほど ᾱₜ は 0 に近づき、データはほぼ純粋なノイズになります。逆過程ではモデルが「混ざったノイズ ε」を推定し、1 ステップずつ取り除いて x₀ に近い構造を立ち上げます。
スライダーで前方のノイズ量を変えてデータが崩れる様子を、ボタンで逆向きに 1 ステップずつ復元される様子を確かめましょう。総ステップ数 T が少ないほど復元は粗く、多いほど滑らかになります。
いま何が起きている?
ここがポイント
- 前方拡散は
xₜ = √ᾱₜ·x₀ + √(1−ᾱₜ)·ε── 信号 √ᾱₜ が減り、ノイズ √(1−ᾱₜ) が増える。それぞれの 2 乗の和が 1 に保たれる(分散保存)。 - 逆拡散(生成)は純ノイズ
x_Tから出発し、推定したノイズ ε̂ を引いて 1 ステップずつx₀へ近づける。 - ノイズスケジュール βₜ・
ᾱₜ = Π(1−βᵢ)が壊し方/戻し方を決める。β が大きいほど早く壊れる。 - ステップ数 T は復元の滑らかさを左右する ── 少なすぎると 1 ステップの跳びが大きく粗い、多いほど 1 ステップが小刻みで滑らか(ただし計算は重い)。