読むだけでちょっと賢くなる、架空のまとめスレ

【疑問】拡散モデルって、ノイズから画像を作るってどういうことなん?【AI】

21レスカテゴリ:AI・機械学習
1: 名無しさん

画像生成AIの「拡散モデル」
ノイズを消していったら画像が出てくる、って説明されても意味が分からん

2: 名無しさん

>>1
基本の形は Ho、Jain、Abbeel の DDPM(Denoising Diffusion Probabilistic Models、2020年)
2つの向きの処理を考える
前向き:画像に少しずつノイズを足して、最後は完全なノイズにする
逆向き:ノイズから1段ずつノイズを取り除いて、画像に戻す。学習するのはこっち

3: 名無しさん

>>2
前向きはどのくらいずつノイズを足すん

4: 名無しさん

>>3
論文では1000段に分けて、段ごとのノイズの大きさ を0.0001から0.02まで直線的に増やしてる
1段ごとの式は

は標準正規分布(平均0、分散1)のノイズ

5: 名無しさん

>>4
便利なのは、何段目でも元画像から一発で出せること
を を1段目から 段目まで掛けたものとすると

元画像の割合が 、ノイズの割合が

6: 名無しさん

>>5
数字で

7: 名無しさん

>>6
論文の設定で計算すると
:
:
:
259段目あたりで がほぼ0.5、つまり元画像とノイズが半々

8: 名無しさん

>>7
1つの画素でやってみて

9: 名無しさん

>>8
画素の値は から1に直してある。元の画素が0.8、引いたノイズが0.5、 の段なら

1000段目になると元画像の係数は約0.006で、ほぼノイズだけ

10: 名無しさん

>>9
で、逆向きは何を学習するん

11: 名無しさん

>>10
ニューラルネットに「この に混ざってるノイズ はどれか」を当てさせる
損失(当て外れの大きさ)は

がネットワークの予想。本物のノイズとの差の2乗を小さくする

12: 名無しさん

>>11
画像そのものを当てさせるんやなくて、ノイズを当てさせるんか

13: 名無しさん

>>12
そう。論文では、画像を当てさせる方式は初期の実験で質が悪かった、と書いてる
ノイズを当てる方式と、この単純な損失の組み合わせで一番いい画像が出た

14: 名無しさん

>>13
生成するときは?

15: 名無しさん

>>14
完全なノイズから始めて、予想したノイズを少しずつ引く、を1000段くり返す
1段ずつ、少しランダムなノイズも足し直しながら進める

16: 名無しさん

>>15
1000回もネットワークを動かすん?一発で消せばええやん

17: 名無しさん

>>16
論文の DDPM は1000段そのまま
1段のノイズを小さくしてるのは、逆向きの1段を正規分布で近似できるようにするため。一気に大きく戻そうとすると、その近似が成り立たん
段数を減らして速くする工夫は、後の研究のテーマになってる

18: 名無しさん

性能はどうやったん

19: 名無しさん

>>18
CIFAR10(32×32ピクセルの小さい画像のデータ)で、FID(生成画像と本物の画像の特徴の分布のずれ、小さいほどいい)が3.17
Inception スコア(大きいほどいい)は9.46

20: 名無しさん

>>19
いや、FIDが小さいなら画像として完璧ってことやろ

21: 名無しさん

>>20
FIDは特徴の分布の近さを測ってるだけで、1枚1枚の正しさは見てない
論文も、対数尤度(データをどれだけうまく説明できるかの指標)は他の方式に負けてる、と書いてる。見た目の質と別の指標の良し悪しは一致せん

管理人のひとこと