オムライスの備忘録

数学・統計学・機械学習・プログラミングに関することを記す

【深層学習】Diffusion Probabilistic Model / DPM

Index

Diffusion Probabilistic Model / DPM



Diffusion Model は、非平衡熱力学から発想を得ている.

マルコフ連鎖を用いて、各 Diffusion Step で、少しずつ画像などの実データにランダムノイズ を足していく.

モデルは、反対にノイズから少しずつ、実データに近づけていくように学習する

Algorithm

データの真の確率分布  q から、データ (確率変数)  x_{0} が標本抽出 (Sampling) されたとする.



真の確率分布  q は、わからないが、これを仮定して、進めることで、この確率分布を推定する方向に考えていく.





 x_0 \sim q(x_{0})

Forward Diffusion Process / 拡散過程

次に、データ  x_{1} の確率分布を考える.

データ  x_{1} は、データ  x_{0} に非常に酷似したデータであるが、データ  x_{0} ではない.

しかし、データ  x_{0} ありきのデータなので、確率分布は、条件付き確率分布である.



 q(x_{1})\ =\ q(x_{1}\ |\ x_{0})



diffusion step を  T 回行うとする.

 x_{t}\ \sim\ q(x_{t})\ =\ q(x_{t}\ |\ x_{t-1})



確率分布はこのように更新されていく.

条件付きの同時分布  q(x_{1:T}\ |\ x_{0}) は、

 q(x_{1:T}\ |\ x_{0})\ =\ \displaystyle \prod_{t=1}^{T} q(x_{t}\ |\ x_{t-1})


と表現できる.

同じ意味だが、同時分布のみで、こうともかける.

 q(x_{0:T})\ =\ q(x_{0})\ \displaystyle \prod_{t=1}^{T} q(x_{t}\ |\ x_{t-1})



 
\begin{eqnarray}
q(x_{0},\ x_{1},\ x_{2})\ &=&\ q(x_{1}, x_{2}\ |\ x_{0})\ \cdot\ q(x_{0}) \\
 \\
 &=&\ q(x_{2}\ |\ x_{1},\ x_{0})\ \cdot\ q(x_{1})\ \cdot\ q(x_{0}) \\
 \\
 & &\ \because\ q(x_{1})\ =\ q(x_{1}\ |\ x_{0}) \\
 \\
 &=&\ q(x_{2}\ |\ x_{1},\ x_{0})\ \cdot\ q(x_{1}\ |\ x_{0})\ \cdot\ q(x_{0}) \\
 \\
 & &\ \because\ q(x_{2}\ |\ x_{1},\ x_{0})\ =\ q(x_{2}\ |\ x_{1}) \\
 \\
 &=&\ q(x_{2}\ |\ x_{1},)\ \cdot\ q(x_{1}\ |\ x_{0})\ \cdot\ q(x_{0}) \\
\end{eqnarray}



では、前ステップ  t-1 のデータ  x_{t-1} に、 t のデータ  x_t をどのように、酷似させるのか.



 t 回目のデータ  x_t を標本抽出 (Sampling) する確率分布  q(x_t\ |\ x_{t-1}) を以下のように決定する.

 q(x_t\ |\ x_{t-1})\ =\ N(\sqrt{1 - \beta_{t}}\ x_{t-1},\ \beta_{t}\ I)




 \alpha_{t}\ =\ 1\ -\ \beta_{t} として、

 
\begin{eqnarray}
q(x_t\ |\ x_{t-1})\ &=&\ N(\sqrt{\alpha_{t}}\ x_{t-1},\ \beta_{t}\ I) \\
 \\
 &=&\ N(\sqrt{\alpha_{t}}\ x_{t-1},\ (1\ -\ \alpha_{t})\ I)
\end{eqnarray}



 x_0 に小さなガウシアンノイズを足していく.

 x_{t}\ =\ \sqrt{\alpha_{t}}\ x_{t-1}\ +\ \sqrt{\beta_{t}}\ z_{t-1}





  •  \sqrt{\alpha_{t}}\ <\ 1 より、データ成分は、徐々に小さくなる.
  • 一方ノイズ  \beta_{t} は、大きくなっていく.
  • 任意の  x_{0} について、 q(x_{1:T}\ |\ x_{0})\ \simeq\ N(0,\ I) が成り立つ.


 x_t \sim q(x_t\ |\ x_{t-1})\ = \ q(x_{1:T}\ |\ x_{0})

実データ  x_{0} は、ステップが進むごとに徐々に自身の特徴を失っていく.

最終的には ( T\ \rightarrow\ \infty)、実データはガウシアンノイズ  x_{T}\ \sim\ N(0,\ I) となる.



つまり、元データ  x_0 からノイズデータ (潜在空間)へ変換する.

Reverse Diffusion Process / 逆拡散過程

Forward Diffusion Process の逆のプロセス.

Forward Diffusion Process では、データ  x_{t-1} から  x_{t} を得るための条件付き確率分布  q(x_t\ |\ x_{t-1}) を決定した.

次に、データ  x_{t} から  x_{t-1} を得るための条件付き確率分布  p(x_{t-1}\ |\ x_{t}) を得ることを考える.

それができれば、ノイズデータ (潜在空間) から元のデータに戻すことができる.



 p (x_{0:T})\ =\ p(x_{T})\ \displaystyle \prod_{t=1}^{T}\ p (x_{t-1}\ |\ x_{t})

 p(x_{t-1}\ |\ x_{t})\ =\ N(\mu(x_{t},\ t),\ \Sigma(x_{t},\ t))



Reverse Diffusion Process における  x_{t} から  x_{t-1} への変換 (確率分布  p からのサンプリング)である 条件付き確率分布  p (x_{t-1}\ |\ x_{t}) の確率をパラメータ  \theta を利用したニューラルネットで近似する.



 p_{\theta} (x_{0:T})\ =\ p(x_{T})\ \displaystyle \prod_{t=1}^{T}\ p_{\theta} (x_{t-1}\ |\ x_{t})

 p_{\theta}(x_{t-1}\ |\ x_{t})\ =\ N(\mu_{\theta} (x_{t},\ t),\ \Sigma_{\theta} (x_{t},\ t))



Reverse Diffusion Process では、必ずしも正規分布にで表せないが、 \beta_{t} が十分に小さい場合は、 Forward Diffusion Process とReverse Diffusion Process は、同じ関数形を持つことが証明ができる.

さらに、変換

 p(x_{t-1})\ =\ \displaystyle \int\ p(x_{t-1}\ |\ x_{t})\ p(x_{t})\ dx_{t}

Loss

パラメータを最尤推定で求めるために、尤度を求めたいが、

データ  x_{0} を生成する確率分布は、

 p(x_{0})\ =\ p(x_{0:T})\ =\ 
\displaystyle \int p(x_{0:T})\ dx_{1:T}



確率変数  x_{1},\ \cdots,\ x_{T} で周辺化している.



方法1 / 確率の相対値

Forward Diffusion Process とReverse Diffusion Process の確率の相対値に持っていく.

Naively this integral is intractable – but taking a cue from
annealed importance sampling and the Jarzynski equality,
we instead evaluate the relative probability of the forward
and reverse trajectories, averaged over forward trajectories,



以下のように変形する.

 

\begin{eqnarray}
p(x_{0})\  &=&\ \displaystyle \int p(x_{0:T})\ \displaystyle \frac{q(x_{1:T}\ |\ x_{0})}{q(x_{1:T}\ |\ x_{0})}\ dx_{1:T} \\
  \\
 &=&\ \displaystyle \int q(x_{1:T}\ |\ x_{0})\ \displaystyle \frac{p(x_{0:T})}{q(x_{1:T}\ |\ x_{0})}\ dx_{1:T} \\
  \\
 & & \because\ p (x_{0:T})\ =\ p(x_{T})\ \displaystyle \prod_{t=1}^{T}\ p (x_{t-1}\ |\ x_{t}) \\
 & & \because\ q(x_{1:T}\ |\ x_{0})\ =\ \displaystyle \prod_{t=1}^{T} q(x_{t}\ |\ x_{t-1}) \\
  \\
 &=&\ \displaystyle \int q(x_{1:T}\ |\ x_{0})\ \times\ 
p(x_{T})\ \displaystyle \prod_{t=1}^{T}\ \displaystyle \frac{p(x_{t-1}\ |\ x_{t})}{q(x_{t}\ |\ x_{t-1})}\ dx_{1:T}
\end{eqnarray}

Loss の計算

以下のように、モデルの尤度を設定する.

 L\ =\ \displaystyle \int q(x_{0})\ \log\ p(x_{0})\ dx_{0}





尤度を最大化したい.

Lower Bound の計算

以下のように、変形する.

 

\begin{eqnarray}
L\ &=&\ \displaystyle \int q(x_{0})\ \log\ p(x_{0})\ dx_{0} \\
 \\
 & &\ \because p(x_{0})\ =\ p(x_{T})\ \displaystyle \prod_{t=1}^{T}\ \displaystyle \frac{p(x_{t-1}\ |\ x_{t})}{q(x_{t}\ |\ x_{t-1})}\ dx_{1:T} \\
 \\
 &=&\ \displaystyle \int q(x_{0})\ \log \left( \displaystyle \int
p(x_{T})\ \displaystyle \prod_{t=1}^{T}\ \displaystyle \frac{p(x_{t-1}\ |\ x_{t})}{q(x_{t}\ |\ x_{t-1})}\ dx_{1:T}
\right) dx_{0} \\
\end{eqnarray}



Jensen の不等式より、下限を計算.

 
\begin{eqnarray}
L\ &\geq& \displaystyle \int\ \int\ q(x_{0:T})\ \log\ \left(
p(x_{T})\ \displaystyle \prod_{t=1}^{T}\ \displaystyle \frac{p(x_{t-1}\ |\ x_{t})}{q(x_{t}\ |\ x_{t-1})}
\right)\ dx_{0}\ dx_{1:T} \\
  \\
\ &=&\ \displaystyle \int q(x_{0:T})\ \log\ \left(
p(x_{T})\ \displaystyle \prod_{t=1}^{T}\ \displaystyle \frac{p(x_{t-1}\ |\ x_{t})}{q(x_{t}\ |\ x_{t-1})}
\right)\ dx_{0:T}
\end{eqnarray}



 K を以下のように定義し、変換する. (ここの変形は省略)

 

\begin{eqnarray}
K\ &=&\ \displaystyle \int q(x_{0:T})\ \log\ \left(
p(x_{T})\ \displaystyle \prod_{t=1}^{T}\ \displaystyle \frac{p(x_{t-1}\ |\ x_{t})}{q(x_{t}\ |\ x_{t-1})}
\right)\ dx_{0:T} \\
 \\
 &=&\ -\ \displaystyle \sum_{t=2}^{T}\ \displaystyle \int\ \int\ q(x_{0},\ x_{t})\ D_{KL}\ (q(x_{t\ -\ 1}\ |\ x_{t},\ x_{0})\ ||\ p(x_{t\ -\ 1}\ |\ x_{t}))\ dx_{0}\ dx_{t} \\
 &+&\ H_{q}(X_{T}\ |\ X_{0})\ -\ H_{q}(X_{1}\ |\ X_{0})\ -\ H_{p}(X_{T})
\end{eqnarray}



 Hエントロピー.

解析可能なエントロピーを KL Divergence のみで表現できた.

目的関数

 
\hat{p} (x_{t\ -\ 1}\ |\ x_{t})\ =\ \DeclareMathOperator*{\argmax}{arg\,max} \displaystyle \argmax_{p (x_{t\ -\ 1}\ |\ x_{t})}\ K

方法2

負の対数尤度の最小化を考える.

 E[-\log\ p\ (x_{0})]



 
\begin{eqnarray}
E[-\log\ p_{\theta}\ (x_{0})]\ &\leq&\ E_{q}\left[ - \log\ \displaystyle \frac{p_{\theta} (x_{0:T})}{q(x_{1:T}\ |\ x_{0})}\ \right] \\
 \\
 &\because&\ p_{\theta}\ (x_{0})\ =\ \displaystyle \frac{p_{\theta} (x_{0:T})}{q(x_{1:T}\ |\ x_{0})} \\
 \\
 &=&\ E_{q} \left[ - \log p(x_{T})\ -\ \displaystyle \sum_{t \geq 1}\ \log\ \displaystyle \frac{p_{\theta} (x_{t-1}\ |\ x_{t})}{q(x_{t}\ |\ x_{t-1})} \right] \\
  \\
 &\because&\ p (x_{0:T})\ =\ p(x_{T})\ \displaystyle \prod_{t=1}^{T}\ p (x_{t-1}\ |\ x_{t}) \\
 &\because&\ q(x_{1:T}\ |\ x_{0})\ =\ \displaystyle \prod_{t=1}^{T} q(x_{t}\ |\ x_{t-1})
\end{eqnarray}

Loss の設定

Loss を以下のように定める.

 L\ =\ E_{q} \left[ - \log p(x_{T})\ -\ \displaystyle \sum_{t \geq 1}\ \log\ \displaystyle \frac{p_{\theta} (x_{t-1}\ |\ x_{t})}{q(x_{t}\ |\ x_{t-1})} \right]



さらに変形. (内容は省略)

 
\begin{eqnarray}
L\ &=&\ E_{q} \left[ - \log p(x_{T})\ -\ \displaystyle \sum_{t \geq 1}\ \log\ \displaystyle \frac{p_{\theta} (x_{t-1}\ |\ x_{t})}{q(x_{t}\ |\ x_{t-1})} \right] \\
 \\
&=&\ E_{q}\ \left[ \right.
D_{KL}\ (q (x_{T}\ |\ x_{0})\ ||\ p(x_{T})) \\
&+&\ \displaystyle\ \sum_{t\ >\ 1}\ D_{KL} (q (x_{t-1}\ |\ x_{t},\ x_{0})\ ||\ p_{\theta} (x_{t-1}\ |\ x_{t})) \\
&-&\ \log\ p_{\theta} (x_{0}\ |\ x_{1})
\left. \right]
\end{eqnarray}

学習

SVM を用いた学習

確率関数を SVMSFO で最適化.

  • Fast large-scale optimization by unifying stochastic gradient and quasi-Newton methods

Loss

学習の方針 / Denoising Score Matching

 \tilde{\mu_{t}}\ =\ \displaystyle \frac{1}{\sqrt{\alpha_{t}}}\ (x_{t}\ -\ \frac{\beta_{t}}{\sqrt{1\ -\ \alpha_{t}}}\ z_{t})



を予測するように、 \mu_{\theta} を学習する.



Simplification

(係数を無視した) 以下の Loss を使うと、学習がよりうまく行うことができる.

 L_{t}^{simple}\ =\ E_{x_{0},\ z_{t}}\ \left[ ||\ z_{t}\ -\ z_{\theta}\ (\sqrt{\tilde{\alpha_{t}}}\ x_{0}\ +\ \sqrt{1\ -\ \tilde{\alpha_{t}}}\ z_{t},\ t)\ ||^{2} \right]



Noise Conditional Score Networks

スコア推定に基づく手法.

スケジューリングのパラメタ化

実データからガウシアンノイズへの近づけかたを決定する分散  \beta のスケジュール方法について.

サンプリングの高速化

Denoising Diffusion Probabilistic Model (DDPM) ではん、サンプリングは、 マルコフ連鎖に基づき、数千ステップ繰り返すが、時間がかかる.

Denoising Diffusion Implicit Model (DDIM)

クラス付き生成

Diffusion Model でクラス情報を扱う

参考

  • Deep Unsupervised Learning using Nonequilibrium Thermodynamics

    • [2015]
    • v8
    • Abstruct
    • 1 Introduction
      • 1.1 Diffusion probabilistic models
      • 1.2 Relationship to other work
    • 2 Algorithm
      • 2.1 Forward Trajectory
      • 2.2 Reverse Trajectory
      • 2.3 Model Probability
      • 2.4 Training
      • 2.5 Multiplying Distributions, and Computing Posteriors
      • 2.6 Entropy of Reverse Process
    • arxiv.org

  • Generative Modeling by Estimating Gradients of the Data Distribution

    • [2019]
    • v3
    • Abstract
    • 1 Introduction
    • 2 Score-based generative modeling
      • 2.1 Score matching for score estimation
        • Denoising score matching
        • Slice score matching
      • 2.2 Sampling with Langevin dynamics
    • 3 Challenges of score-based generative modeling
      • 3.1 The manifold hypothesis (多様体仮説)
      • 3.2 Low data density regions
        • 3.2.1 Inaccurate score estimation with score matching
        • 3.2.2 Slow mixing of Langevin dynamics
    • 4 Noise Conditional Score Networks : learning and inference
      • 4.1 Noise Conditional Score Network
      • 4.2 Learning NCSNs via score matching
      • 4.3 NCSN inference via annealed Langevin dynamics
    • arxiv.org

  • Denoising Diffusion Probabilistic Models

    • [2020]
    • Abstract
    • 1 Introduction
    • 2 Background
    • 3 Diffusion models and denoising autoencoders
      • 3.1 Forward process
      • 3.2 Reverse process
      • 3.3 Data scaling, reverse process decoder
      • 3.4 Simplified training objective
    • arxiv.org

書籍

Web サイト