拡散モデル

提供: testwiki
2025年2月16日 (日) 23:14時点における133.86.227.82 (トーク)による版 (参考文献)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動 検索に移動

機械学習分野における拡散モデル(かくさんモデル、英:diffusion model)は潜在変数モデルの一種で、拡散確率モデル(かくさんかくりつモデル)とも呼ばれる。これは変分ベイズ法を用いて訓練されたマルコフ連鎖である[1]。拡散モデルの目標とするところは、データの各点が潜在空間上で拡散していく振る舞いをモデル化することで、データ集合のもつ潜在構造を学習することにある。コンピュータビジョンの分野では、これはガウス雑音によってぼやけた画像から雑音を除去するために、拡散過程を反転させる学習を通じて訓練されたニューラルネットワークに相当する[2][3]。コンピュータビジョンで用いられる一般的な拡散モデルの枠組みを表現する3つの例が、拡散モデルの雑音除去、ノイズ条件付きスコアネットワーク、そして確率微分方程式である[4]

拡散モデルは非平衡熱力学を動機として、2015年に導入された[5][6]

拡散モデルは画像の雑音除去、修復、超解像、画像生成、データ圧縮など様々な操作に応用できる。例えば画像生成モデルはランダムノイズの画像を初期値とし、自然画像の拡散過程を逆向きに学習することによって、新たな自然画像を生成することが可能となる。2022年4月13日に公開されたOpenAIの文章画像生成モデルDALL-E 2は最近の例である。DALL-E 2は拡散モデルを、画像生成モデルの事前分布と最終的な画像生成のデコーダの両方に用いている[7]テンプレート:Sfn。拡散モデルを利用したデータ圧縮には符号化が不要と言った利点があり、従来の最高性能の圧縮手法に比べても性能が高いテンプレート:Sfn

数学的原理

画像生成

画像生成という問題を考える。xを画像とし、画像空間上の確率密度関数をp(x)とおく。もしp(x)自体が与えられているならば、特定の画像が生成される確率を明確にすることができるが、一般には確率を知ることは難しい。

たいていの場合、特定の画像が生成される具体的な確率には興味がない。むしろ興味の対象は、その特定の画像が近傍の画像と比較してどの程度生成されやすいかである。例えば2本のひげが生えた猫の画像があるとき、その画像のわずかな変種(たとえば3本のひげが生えた猫の画像や、何らかのガウス雑音が加わった画像)と比較してどの程度生じやすいのか、が問題である。

したがって、興味の対象はp(x)そのものではなく、むしろxlnp(x)である。これは2つの効果をもたらす。

  • 第一にp(x)を正規化する必要がなく、p~(x)=Cp(x)を用いることができる。ここでC=p~(x)dx>0は任意の定数であり、具体的な値は計算に何の影響も与えない。
  • 第二に、p(x)とその近傍画像の確率p(x+dx)を、p(x)p(x+dx)=exlnp,dxによって比較できる。

スコア関数をs(x):=xlnp(x)とおくと、s(x)p(x)からテンプレート:仮リンク(SGLD)を用いた標本抽出を可能にする。これは本質的にマルコフ連鎖モンテカルロ法の無限小バージョンである[2]

スコア関数の学習

スコア関数はnoising-denoisingによって学習可能である[1]

主要な変種

分類器誘導

あらゆる画像群から標本抽出するのではなく、画像に関する記述によって条件付けされた範囲から抽出することを考える。一般的な画像群から取り出さず、例えば「赤い目の黒猫」といった記述に合致する画像から取り出すということである。一般に、これはp(x|y)という分布上での標本抽出を意味する。ここで画像xは全ての画像の範囲から得られるのに対して、画像yの範囲はある画像のクラスに限定される(「赤い目の黒猫」はかなり詳細なクラスであり、それに対して「猫」はかなり漠然とした記述である)。

雑音のある通信路モデルの観点に立つことで、この過程を以下のように理解することができる。記述yが与えられた条件のもとで画像xを生成しようとするとき、画像を生成したい人は実のところ画像xを思い描いているのだが、その画像は雑音のある通信路を通ってきたために文字化けした結果、記述yとして受信されている、と想像するのである。この場合、画像生成とは生成したい人が本来思い描いていたxを推定する操作に他ならない。

言い換えると、条件付き画像生成は単に「文字で表現された言語を画像で表現された言語に翻訳する」ということである。そこで雑音のある通信路モデルと同様に、ベイズの定理から p(x|y)p(y|x)p(x) を得る。すなわち、もしも全画像空間に関する良質なモデル(p(x))と、画像→クラスの良質な翻訳器(p(y|x))が得られるのであれば、それらから労せずしてクラス→画像の翻訳器を得られるということである。

SGLDでは以下の等式を用いる。xlnp(x|y)=xlnp(y|x)+xlnp(x)ここでxlnp(x)は前述のように学習したスコア関数であり、xlnp(y|x)は微分可能な画像分類器を用いて導かれる。

温度の導入

分類器誘導型の拡散モデルではp(x|y)から標本抽出を行うが、これは最大事後確率による推定値argmaxxp(x|y)の周辺に集中することになる。もしモデルを最尤推定値argmaxxp(y|x)に強制的に近づけたいのであれば、以下の式を用いればよい。pβ(x|y)p(y|x)βp(x)ここでβ>0逆温度とみなすことができる。拡散モデルの文脈においては、βは誘導スケールと呼ばれることが多い。βが大きいほど、モデルに対してargmaxxp(y|x)周辺に集中した分布からの標本抽出を強制する。これはしばしば生成される画像の品質を改善する[8]

温度の導入は、SGLDにおいてxlnpβ(x|y)=βxlnp(y|x)+xlnp(x)とおくだけで実現できる。

分類器フリー誘導(CFG)

分類器p(y|x)が無い場合でも、画像モデル自体から以下のように分類器を抽出することが可能である[9]xlnpβ(x|y)=(1β)xlnp(x)+βxlnp(x|y)このようなモデルは通常、(x,y)(x,None)の双方を与えることで訓練され、それによってxlnp(x|y)xlnp(x)をともにモデル化できる。

CFGはGLIDE[10]DALL-E[11]、Google Imagen[12]といったモデルの必要不可欠な部分となっている。

脚注

テンプレート:脚注ヘルプ テンプレート:Reflist

参考文献

  • テンプレート:Cite book
  • 岡野原大輔:「生成AIのしくみ〈流れ〉が画像・音声・動画をつくる」、岩波書店 (岩波科学ライブラリー 328) 、ISBN 978-4-00-029728-8 (2024年12月20日)。※ 数式を避けて言葉で解説された入門書。

関連文献

関連項目

テンプレート:Probability-stub