オムライスの備忘録

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

【深層学習】Diffusion Model

yhayato1320.hatenablog.com

Index

データ(確率変数) を  x 、標本抽出 (Sampling) される確率分布を  q とする.

Forward Diffusion Process

標本  x_0 をサンプリングする.  x_0 \sim q(x)

diffusion step を  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)

 N正規分布 / ガウス分布で、 \beta_{t}\ \in (0, 1) はステップサイズのコントロールするパラメータ.

確率分布は以下のように更新されていく.
 q(x_{1:T} | x_{0})\ =\ \displaystyle \prod_{t=1}^{T} q(x_{t} | x_{t-1})

 x_0 に小さなガウシアンノイズを足していくイメージ.
 x_t \sim q(x_t\ |\ x_{t-1})

最終的には、 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}) を得ることができれば、
ノイズデータ (潜在空間) から元のデータに戻すことができる.

そこで、 x_{t} から  x_{t-1} への変換 (確率分布  p からのサンプリング) をニューラルネットで近似する.

応用

yhayato1320.hatenablog.com

参考

  • Deep Unsupervised Learning using Nonequilibrium Thermodynamics

    • [2015] v8
    • 2 Algorithm
      • 2.1 Forward Trajectory
      • 2.2 Reverse Trajectory
    • arxiv.org
  • GLIDE: Towards Photorealistic Image Generation and Editing with Text-Guided Diffusion Models

    • [2021 OpenAI]
    • 2 Background
      • 2.1 Diffusion Models
    • arxiv.org

Web サイト