拡散モデル

機械学習分野における拡散モデル（かくさんモデル、英:diffusion model）は潜在変数モデルの一種で、拡散確率モデル（かくさんかくりつモデル）とも呼ばれる。これは変分ベイズ法を用いて訓練されたマルコフ連鎖である。拡散モデルの目標とするところは、データの各点が潜在空間上で拡散していく振る舞いをモデル化することで、データ集合のもつ潜在構造を学修することにある。コンピュータビジョンの分野では、これはガウス雑音によってぼやけた画像から雑音を除去するために、拡散過程を反転させる学習を通じて訓練されたニューラルネットワークに相当する。コンピュータビジョンで用いられる一般的な拡散モデルの枠組みを表現する3つの例が、拡散モデルの雑音除去、ノイズ条件付きスコアネットワーク、そして確率微分方程式である。
拡散モデルは非平衡熱力学を動機として、2015年に導入された。
拡散モデルは画像の雑音除去、修復、超解像、画像生成など様々な操作に応用できる。例えば画像生成モデルはランダムノイズの画像を初期値とし、自然画像の拡散過程を逆向きに学習することによって、新たな自然画像を生成することが可能となる。2022年4月13日に公開されたOpenAIの文章画像生成モデルDALL-E 2は最近の例である。DALL-E 2は拡散モデルを、画像生成モデルの事前分布と最終的な画像生成のデコーダの両方に用いている。
数学的原理.
全画像空間上での1画像生成.
画像生成という問題を考える。ある画像をformula_1とおき、考えられる全ての画像の中で画像formula_1に与えられる確率をformula_3とおく。もしformula_3自体が与えられているならば、特定の画像が生成される確率を明確にすることができるが、一般には確率を知ることは難しい。
たいていの場合、特定の画像が生成される具体的な確率には興味がない。むしろ興味の対象は、その特定の画像が近傍の画像と比較してどの程度生成されやすいかである。例えば2本のひげが生えた猫の画像があるとき、その画像のわずかな変種（たとえば3本のひげが生えた猫の画像や、何らかのガウス雑音が加わった画像）と比較してどの程度生じやすいのか、が問題である。
したがって、興味の対象はformula_3そのものではなく、むしろformula_6である。これは2つの効果をもたらす。
スコア関数をformula_13とおくと、formula_14はformula_3から（SGLD）を用いた標本抽出を可能にする。これは本質的にマルコフ連鎖モンテカルロ法の無限小バージョンである。
スコア関数の学習.
スコア関数はnoising-denoisingによって学習可能である。
主要な変種.
分類器誘導.
あらゆる画像群から標本抽出するのではなく、画像に関する記述によって条件付けされた範囲から抽出することを考える。一般的な画像群から取り出さず、例えば「赤い目の黒猫」といった記述に合致する画像から取り出すということである。一般に、これはformula_16という分布上での標本抽出を意味する。ここで画像formula_1は全ての画像の範囲から得られるのに対して、画像formula_18の範囲はある画像のクラスに限定される（「赤い目の黒猫」はかなり詳細なクラスであり、それに対して「猫」はかなり漠然とした記述である）。
雑音のある通信路モデルの観点に立つことで、この過程を以下のように理解することができる。記述formula_18が与えられた条件のもとで画像formula_1を生成しようとするとき、画像を生成したい人は実のところ画像formula_1を思い描いているのだが、その画像は雑音のある通信路を通ってきたために文字化けした結果、記述formula_18として受信されている、と想像するのである。この場合、画像生成とは生成したい人が本来思い描いていたformula_1を推定する操作に他ならない。
言い換えると、条件付き画像生成は単に「文字で表現された言語を画像で表現された言語に翻訳する」ということである。そこで雑音のある通信路モデルと同様に、ベイズの定理から
formula_24
を得る。すなわち、もしも全画像空間に関する良質なモデル（formula_3）と、画像→クラスの良質な翻訳器（formula_26）が得られるのであれば、それらから労せずしてクラス→画像の翻訳器を得られるということである。
SGLDでは以下の等式を用いる。formula_27ここでformula_6は前述のように学習したスコア関数であり、formula_29は微分可能な画像分類器を用いて導かれる。
温度の導入.
分類器誘導型の拡散モデルではformula_16から標本抽出を行うが、これは最大事後確率による推定値formula_31の周辺に集中することになる。もしモデルを最尤推定値formula_32に強制的に近づけたいのであれば、以下の式を用いればよい。formula_33ここでformula_34は逆温度とみなすことができる。拡散モデルの文脈においては、formula_35は誘導スケールと呼ばれることが多い。formula_35が大きいほど、モデルに対してformula_32周辺に集中した分布からの標本抽出を強制する。これはしばしば生成される画像の品質を改善する。
温度の導入は、SGLDにおいてformula_38とおくだけで実現できる。
分類器フリー誘導（CFG）.
分類器formula_26が無い場合でも、画像モデル自体から以下のように分類器を抽出することが可能である。formula_40このようなモデルは通常、formula_41とformula_42の双方を与えることで訓練され、それによってformula_43とformula_44をともにモデル化できる。
CFGはGLIDEやDALL-E、Google Imagenといったモデルの必要不可欠な部分となっている。