(DDPM)これは、論文「ノイズ除去拡散確率モデル」のPyTorch実装/チュートリアルです。簡単に言うと、データから画像を取得し、段階的にノイズを追加します。次に、モデルをトレーニングして各ステップでそのノイズを予測し、そのモデルを使用して画像を生成します。以下の定義と派生は、これがどのように機能するかを示しています。詳しくは論文を参照してください。転送プロセスフォワード処理ではx0​∼q(x0​)、Tタイムステップのノイズがデータに追加されます。β1​,...,βT​差異スケジュールはどこですか。以下を使用すると、xt​t任意のタイムステップでサンプリングできます。つのタイムステップからノイズを除去します。θ私たちがトレーニングするパラメータです。損失(ジェンソンの不等式から)ELBOを負の対数確率で最適化します。損失は次のように書き直すことができます。L​=Eq​[−logq(x1:T​∣x0​)pθ​(x0:T​)​]=Eq​[−logp(xT​)−t=1∑T​logq(xt​∣xt−1​)pθ​(xt−1​∣xt​)​]=Eq​[−logq(xT​∣x0​)p(xT​)​−t=2∑T​logq(xt−1​∣xt​,x0​)pθ​(xt−1​∣xt​)​−logpθ​(x0​∣x1​)]=Eq​[DKL​(q(xT​∣x0​)∥p(xT​))+t=2∑T​DKL​(q(xt−1​∣xt​,x0​)∥pθ​(xt−1​∣xt​))−logpθ​(x0​∣x1​)]​DKL​(q(xT​∣x0​)∥p(xT​))β1​,...,βT​私たちは一定なので一定です。Σθ​(xt​,t)=σt2​Iσt2​βt​用紙セットは定数またはに設定されています。εθ​ε(xt​,t)与えられたものを予測する学習済み関数はどこかこれにより、Lt−1​​=Ex0​,ε​[2σt2​αt​(1−αt​ˉ​)βt​2​∥∥​ε−εθ​(αt​ˉ​​x0​+1−αt​ˉ​​ε,t)∥∥​2]​つまり、ノイズを予測するためのトレーニングを行っています。簡易損失Lsimple​(θ)=Et,x0​,ε​[∥∥​ε−εθ​(αt​ˉ​​x0​+1−αt​ˉ​​ε,t)∥∥​2]これにより、−logpθ​(x0​∣x1​)t=1Lt−1​t>1ウェイトを廃棄するタイミングと廃棄するタイミングを最小限に抑えることができます。Lt−1​2σt2​αt​(1−αt​ˉ​)βt​2​重みを捨てると、t(ノイズレベルが高い)高いほうに与えられる重みが増え、サンプルの品質が向上します。このファイルには、トレーニング中に画像を生成するために使用する損失計算と基本的なサンプリング方法が実装されています。εθ​(xt​,t)これがコードを提供してトレーニングするUNetモデルです。このファイルでは、トレーニング済みのモデルからサンプルと補間を生成できます。