Introducción al modelo de difusión

Referencia: Modelo de difusión - Modelo de difusión - Blog CSDN ; Comprender el modelo de difusión de básico a profundo - Zhihu ; https://arxiv.org/abs/2308.09388

1. Información general

  El modelo de difusión es un modelo generativo. Se puede utilizar para tareas de generación visual, como superresolución de imágenes, eliminación de desenfoque, eliminación de artefactos JPEG, eliminación de sombras, eliminación de niebla/neblina/lluvia, etc.
  Los modelos de difusión se dividen en procesos directos (difusión) y procesos inversos. El proceso directo agrega gradualmente ruido píxel a píxel a la imagen hasta que la imagen satisface el ruido gaussiano; el proceso inverso reconstruye la imagen mediante la eliminación de ruido.
  Hay muchos tipos de modelos de difusión, el más común es el modelo de probabilidad de difusión de eliminación de ruido ( DDPM ).

2. Proceso de avance

  El proceso de avance es un proceso de agregar ruido paso a paso, por lo que cada momento solo está relacionado con el momento anterior. Por lo tanto, el proceso directo se puede parametrizar como una cadena de Markov: 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 ( xt∣x _t - 1)=norte ( xt;1bt Xt - 1,btI ) dondex 0 ∼ p datos ( x ) x_0\sim p_\text{datos}(x)X0pagdatos( x ) es el punto de datos de entrenamiento,x 1, ⋯, x T x_1,\cdots,x_TX1,,XtPara los datos después de agregar ruido gradualmente, β t \beta_tbtSon parámetros predefinidos.
  Usando la técnica de parámetros pesados, podemos obtener xt = 1 − β txt − 1 + β tzt x_t=\sqrt{1-\beta_t}x_{t-1}+\sqrt{\beta_t}z_tXt=1bt Xt - 1+bt zt. Recurre y combina variables aleatorias independientes z 1 , z 2 , ⋯ , zt z_1,z_2,\cdots,z_tz1,z2,,ztCombinadas en variables aleatorias ϵ \epsilon que obedecen a la distribución normal estándarϵ,可得xt = α ^ tx 0 + 1 − α ^ t ϵ x_t=\sqrt{\hat{\alpha}_t}x_0+\sqrt{1-\hat{\alpha}_t}\epsilonXt=a^t X0+1a^t ϵ . Por tanto, segúnx 0 x_0X0Calcular xt x_tXtDistribución de probabilidad de: 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 ( xt∣x _0)=norte ( xt;a^t X0,( 1a^t)I )其中α t = 1 − β t , α ^ t = ∏ i = 1 t α i \alpha_t=1-\beta_t,\hat{\alpha}_t=\prod_{i=1}^t\alpha_iat=1bt,a^t=yo = 1tayo. Cuando TTCuando T es lo suficientemente grande,α ^ t \hat{\alpha}_ta^ttiende a 0, x T x_TXtLa distribución es aproximadamente la distribución normal estándar π ( x T ) ∼ N ( 0 , I ) \pi(x_T)\sim\mathcal{N}(0,I)π ( xt)norte ( 0 ,Yo )

3. Proceso inverso

  El procedimiento inverso recupera la distribución de datos del ruido gaussiano aproximando la distribución posterior: 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};\tilde{\mu}_t(x_t,x_0),\tilde{\beta}_tI)q ( xt - 1∣x _t,X0)=norte ( xt - 1;metro~t( xt,X0) ,b~tI )其中μ ~ 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)metro~t( xt,X0)=1a^ta^t - 1 btX0+1a^ta^t ( 1a^t - 1)Xt=at 1( xt1a^t bt) , _ϵnorte ( 0 ,I ) β ~ t = 1 − α ^ t − 1 1 − α ^ t β t \tilde{\beta}_t=\frac{1-\hat{\alpha}_{t-1}}{1-\ sombrero{\alpha}_t}\beta_tb~t=1a^t1a^t - 1bt  Dado que β t \beta_tbtestá predefinido, solo necesitamos usar la red de eliminación de ruido ϵ θ ( xt , t ) \epsilon_\theta(x_t,t)ϵi( xt,t ) estimaciónϵ \epsilonϵ , obteniendo así la mediaμ θ ( xt , t ) = μ ~ t ( xt , x 0 ) \mu_\theta(x_t,t)=\tilde{\mu}_t(x_t,x_0)metroi( xt,t )=metro~t( xt,X0)

4. Entrenamiento

  Ecuaciones invariantes en simples L = 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^2lsencillo=mit , x0, ϵ[ ϵϵi(a^t X0+ϵ1a^t ,t ) 22]   La expectativa de la fórmula anterior se obtiene para los datos, el ruido y el tiempo, por lo que al calcular realmente la pérdida, es necesario muestrear los datos, el ruido y el tiempo.

El proceso de entrenamiento del modelo de difusión es el siguiente:

  1. Datos de muestra x 0 x_0 del conjunto de entrenamientoX0
  2. { 1 , 2 , ⋯ , T } \{1,2,\cdots,T\}{ 1 ,2 ,,T } Muestreo aleatorio uniformettt
  3. Ruido de muestreo ϵ \epsilon de una distribución normal estándarϵ
  4. La función ϵ − ϵ θ ( α ^ 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∥ϵ _ϵi(a^t X0+ϵ1a^t ,t ) 22Como función de pérdida, se realiza la retropropagación.

5. Inferencia (muestreo)

  El modelo de difusión se infiere del ruido gaussiano x T x_TXt, utilizando el ruido estimado por la red ϵ θ ( xt , t ) \epsilon_\theta(x_t,t)ϵi( xt,t ) Calcula la media del momento anterior según la fórmula en 3 (para la varianza, DDPM consideraσ t 2 = β ~ t = 1 − α ^ t − 1 1 − α ^ t β t ≈ β t \sigma^ 2_t=\ tilde{\beta}_t=\frac{1-\hat{\alpha}_{t-1}}{1-\hat{\alpha}_t}\beta_t\approx\beta_tpagt2=b~t=1- _a^t1- _a^t - 1btbt), invirtiendo así los datos originales x 0 x_0X0

El proceso de inferencia del modelo de difusión es el siguiente:

  1. Muestra x T x_T de la distribución normal estándarXt
  2. De t = T t=Tt=A partir de T , se lleva a cabo el siguiente proceso (es decir, el proceso inverso del modelo de difusión) hastat = 1 t=1t=1 :zz
      de la distribución normal estándarz
      计算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_tzXt - 1=at 1( xt1- _a^t btϵi( xt,t ))+pagtz
  3. t = 1 t = 1t=1 , determinax 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))X0=a1 1( x11- _a^1 b1ϵi( x1,1 ))

6. Modelo de difusión condicional

  Dado que el proceso de inferencia del modelo anterior no tiene señal de entrada, los datos generados no tienen restricciones y el usuario no tiene control sobre los resultados generados. La introducción de condiciones puede sesgar los datos generados hacia los resultados esperados por el usuario.
  Hay muchas maneras de introducir condiciones. Por ejemplo, para tareas de generación de imágenes, se puede introducir un clasificador para guiar el modelo de difusión, y su gradiente se puede usar para guiar la generación de imágenes para sesgar una semántica específica, de modo que el modelo pueda generar las imágenes correspondientes con una etiqueta. También puede ingresar imágenes o texto para guiar la generación de imágenes.

Supongo que te gusta

Origin blog.csdn.net/weixin_45657478/article/details/132592446
Recomendado
Clasificación