参考:拡散モデル - 拡散モデル - CSDN ブログ;拡散モデルを基礎から詳細まで理解する - Zhihu ; https://arxiv.org/abs/2308.09388
1。概要
拡散モデルは生成モデルです。画像の超解像度、ぼかし除去、JPEG アーティファクトの除去、影の除去、霧/かすみ/雨の除去などのビジュアル生成タスクに使用できます。
拡散モデルは順(拡散)過程と逆過程に分かれます。順方向プロセスでは、画像がガウス ノイズを満たすまで、画像にピクセルごとのノイズが徐々に追加されます。逆方向プロセスでは、ノイズ除去を通じて画像が再構成されます。
拡散モデルにはさまざまな種類がありますが、最も一般的なのはノイズ除去拡散確率モデル ( DDPM ) です。
2. 転送プロセス
順方向プロセスはノイズを段階的に追加するプロセスであるため、その各瞬間は前の瞬間とのみ関連します。したがって、順方向プロセスはマルコフ連鎖としてパラメータ化できます。q ( xt ∣ xt − 1 ) = N ( xt ; 1 − β t ⋅ xt − 1 , β t I ) q(x_t|x_{t-1}) =\mathcal{N}(x_t;\sqrt{1-\beta_t}\cdot x_{t-1},\beta_tI)q ( xた∣ xt − 1)=N ( ×た;1−bた⋅バツt − 1、bたI )ここで、x 0 〜 p data ( x ) x_0\sim p_\text{data}(x)バツ0〜pデータ( x )はトレーニング データ ポイント、x 1, ⋯, x T x_1,\cdots,x_Tバツ1、⋯、バツT徐々にノイズを加えた後のデータに対して、β t \beta_tbたは事前定義されたパラメータです。
ヘビー パラメーター手法を使用すると、xt = 1 − β txt − 1 + β tzt x_t=\sqrt{1-\beta_t}x_{t-1}+\sqrt{\beta_t}z_t を取得できます。バツた=1−bたバツt − 1+bたzた。独立した確率変数z 1 、 z 2 、 ⋯ 、 zt z_1,z_2,\cdots,z_t を再帰して結合します。z1、z2、⋯、zた標準正規分布に従う確率変数ϵ \epsilonに結合されます。ϵ,得られるxt = α ^ tx 0 + 1 − α ^ t ϵ x_t=\sqrt{\hat{\alpha}_t}x_0+\sqrt{1-\hat{\alpha}_t}\epsilonバツた=ある^たバツ0+1−ある^たϵ。したがって、x 0 x_0バツ0xt x_tを計算するバツた次の確率分布: q ( xt ∣ x 0 ) = N ( xt ; α ^ t ⋅ x 0 , ( 1 − α ^ t ) ⋅ I ) q(x_t|x_0)=\mathcal{N}(x_t;\sqrt {\hat{\alpha}_t}\cdot x_0,(1-\hat{\alpha}_t)\cdot I)q ( xた∣ x0)=N ( ×た;ある^た⋅バツ0、( 1−ある^た)⋅I )其中α t = 1 − β t , α ^ t = ∏ i = 1 t α i \alpha_t=1-\beta_t,\hat{\alpha}_t=\prod_{i=1}^t\alpha_iあるた=1−bた、ある^た=∏i = 1たある私は。TTのときTが十分に大きい場合、α ^ t \hat{\alpha}_tある^た0, x T x_Tになる傾向がありますバツT分布はほぼ標準正規分布π ( x T ) 〜 N ( 0 , I ) \pi(x_T)\sim\mathcal{N}(0,I)π ( xT)〜N ( 0 ,私)。
3. 逆のプロセス
逆プロセスでは、事後分布を近似することでガウス ノイズからデータ分布を復元します。q ( xt − 1 ∣ xt , x 0 ) = N ( xt − 1 ; μ ~ t ( xt , x 0 ) , β ~ t I ) q (x_{t-1}|x_t,x_0)=\mathcal{N}(x_{t-1};\チルダ{\mu}_t(x_t,x_0),\チルダ{\beta}_tI)q ( xt − 1∣ xた、バツ0)=N ( ×t − 1;メートル~た( ×た、バツ0)、b~たI )其中μ ~ t ( xt , x 0 ) = α ^ t − 1 β t 1 − α ^ tx 0 + α ^ t ( 1 − α ^ t − 1 ) 1 − α ^ txt = 1 α t ( xt − β t 1 − α ^ t ϵ ) , ϵ 〜 N ( 0 , I ) \tilde{\mu}_t(x_t,x_0)=\frac{\sqrt{\hat{\alpha}_{t-1} }\beta_t}{1-\hat{\alpha}_t}x_0+\frac{\sqrt{\hat{\alpha}_t}(1-\hat{\alpha}_{t-1})}{1- \hat{\alpha}_t}x_t=\frac{1}{\sqrt{\alpha_t}}(x_t-\frac{\beta_t}{\sqrt{1-\hat{\alpha}_t}}\epsilon) ,\epsilon\sim\mathcal{N}(0,I)メートル~た( ×た、バツ0)=1−ある^たある^t − 1bたバツ0+1−ある^たある^た( 1−ある^t − 1)バツた=あるた1( ×た−1−ある^たbた) 、_ϵ〜N ( 0 ,I ) β ~ t = 1 − α ^ t − 1 1 − α ^ t β t \tilde{\beta}_t=\frac{1-\hat{\alpha}_{t-1}}{1-\帽子{\alpha}_t}\beta_tb~た=1−ある^た1−ある^t − 1bたβ t \beta_t 以来bたが事前に定義されている場合、ノイズ除去ネットワークϵ θ ( xt , t ) \epsilon_\theta(x_t,t) を使用するだけで済みます。ϵ私( ×た、t ) ϵ \epsilonを推定するϵ、つまり平均μ θ ( xt , t ) = μ ~ t ( xt , x 0 ) \mu_\theta(x_t,t)=\tilde{\mu}_t(x_t,x_0) を取得します。メートル私( ×た、t )=メートル~た( ×た、バツ0)。
4. トレーニング
単純な L における不変方程式simple = E t , x 0 , ϵ [ ∥ ϵ − ϵ θ ( α ^ t ⋅ x 0 + ϵ 1 − α ^ t , t ) ∥ 2 2 ] \mathcal{L}_\ text {simple}=\mathbb{E}_{t,x_0,\epsilon}[\|\epsilon-\epsilon_\theta(\sqrt{\hat{\alpha}_t}\cdot x_0+\epsilon\sqrt{1 - \hat{\alpha}_t},t)\|_2^2L単純な=Et 、x0、 ϵ[ ∥ ϵ−ϵ私(ある^た⋅バツ0+ϵ1−ある^た、t ) ∥22】 上式の期待値はデータ、ノイズ、時間に対して求められるため、実際に損失を計算する際にはデータ、ノイズ、時間をサンプリングする必要があります。
拡散モデルのトレーニング プロセスは次のとおりです。
- トレーニング セットからのサンプル データx 0 x_0バツ0;
- 从{ 1 , 2 , ⋯ , T } \{1,2,\cdots,T\}{ 1 、2 、⋯、T }一様ランダムサンプリングttと;
- 標準正規分布からのサンプリング ノイズϵ \epsilonϵ;
- 関数ϵ − ϵ θ ( α ^ t ⋅ x 0 + ϵ 1 − α ^ t , t ) ∥ 2 2 \|\epsilon-\epsilon_\theta(\sqrt{\hat{\alpha}_t}\cdot x_0+) \epsilon\sqrt{1-\hat{\alpha}_t},t)\|_2^2∥ϵ _−ϵ私(ある^た⋅バツ0+ϵ1−ある^た、t ) ∥22損失関数としてバックプロパゲーションが実行されます。
5. 推論(サンプリング)
拡散モデルはガウス ノイズx T x_Tから推測されます。バツT、ネットワークによって推定されたノイズを使用しますϵ θ ( xt , t ) \epsilon_\theta(x_t,t)ϵ私( ×た、t ) 3 の式に従って前の瞬間の平均を計算します (分散について、DDPM はσ t 2 = β ~ t = 1 − α ^ t − 1 1 − α ^ t β t ≈ β t \sigma^ を考慮し2_t=\ チルダ{\beta}_t=\frac{1-\hat{\alpha}_{t-1}}{1-\hat{\alpha}_t}\beta_t\about\beta_tpt2=b~た=1 −ある^た1 −ある^t − 1bた≈bた)、元のデータx 0 x_0を反転します。バツ0。
拡散モデルの推論プロセスは次のとおりです。
- 標準正規分布からのサンプルx T x_TバツT;
- t = Tからt=Tt=Tから開始して、以下のプロセス (つまり、拡散モデルの逆プロセス) がt = 1 t=1t=1 :
標準正規分布からのzzz;
计算xt − 1 = 1 α t ( xt − β t 1 − α ^ t ϵ θ ( xt , t ) ) + σ tz x_{t-1}=\frac{1}{\sqrt{\alpha_t} }(x_t-\frac{\beta_t}{\sqrt{1-\hat{\alpha}_t}}\epsilon_\theta(x_t,t))+\sigma_tzバツt − 1=あるた1( ×た−1 −ある^たbたϵ私( ×た、) )+pたz;- t = 1 t=1t=1、x 0 = 1 α 1 ( x 1 − β 1 1 − α ^ 1 ϵ θ ( x 1 , 1 ) ) を決定します x_0=\frac{1}{\sqrt{\alpha_1}}(x_1-\frac { \beta_1}{\sqrt{1-\hat{\alpha}_1}}\epsilon_\theta(x_1,1))バツ0=ある11( ×1−1 −ある^1b1ϵ私( ×1、1 ))
6. 条件付き拡散モデル
上記のモデル推論プロセスには入力信号がないため、生成されたデータには制約がなく、ユーザーは生成された結果を制御できません。条件を導入すると、生成されたデータがユーザーが期待する結果に偏る可能性があります。
条件を導入するにはさまざまな方法があります。たとえば、画像生成タスクの場合、分類器を導入して拡散モデルをガイドし、その勾配を使用して画像生成をガイドして特定のセマンティクスにバイアスを加えることができるため、モデルはラベルが与えられた対応する画像を生成できます。画像やテキストを入力して画像生成をガイドすることもできます。