Análisis DDPM del algoritmo central de difusión estable

DDPM: Modelo probabilístico de difusión de eliminación de ruido, modelo de probabilidad de difusión de eliminación de ruido

Referencia en este artículo: Un vídeo para comprender la derivación del principio del modelo de difusión DDPM | Modelo subyacente de pintura de IA_哔哩哔哩_bilibili

1. Principio general

De derecha a izquierda x_0\flecha derecha x_Testá el proceso de adición de ruido directo y de izquierda a derecha x_t\flecha derecha x_0está el proceso de reducción de ruido inverso.

Continuamente agregando ruido en el proceso de avance, después de T veces x_T, esperamosx_T\simN(0,1)

De esta manera, durante la inferencia, podemos norte(0,1) sacarlo del azar x_T{'}(agregue ' para indicar que se trata de un valor nuevo).

Si podemos aprender x_t\rightarrow x_{t-1}el método de reducción de ruido, finalmente podremos pasar x_T{'}\rightarrow x_0{'}la nueva imagen.

2. ¿Qué predice el método de reducción de ruido del modelo de difusión?

Ahora es necesario aprender x_t\rightarrow x_{t-1}el método de reducción de ruidox_ {t-1} . El algoritmo DDPM no es un método para aprender directamente el valor predicho , sino la x_ {t-1}distribución de probabilidad condicionalp(x_{t-1}|x_t) predicha y luego el valor obtenido tomando el valor de la distribución x_ {t-1}. Este método es similar al método de predicción profunda en el sentido de que se predicen distribuciones en lugar de valores.

Entonces, ¿por qué predecir distribuciones en lugar de x_ {t-1}valores exactos?

Debido a que la distribución se puede muestrear x_{t-1}{'}, el modelo tiene aleatoriedad.

Además, si lo obtienes , puedes obtenerlo mediante muestreo , para que puedas obtenerlo paso a paso . Por tanto, lo que queremos aprender es la distribución de p, no una gráfica exacta.p(x_{t-2}|x_{t-1})x_{t-2}{'}x_T{'}\rightarrow x_0{'}

Conclusión: Todo el proceso de aprendizaje consiste en predecir la distribución p .

Más adelante veremos que el modelo predice ruido, que no es el ruido entre x_ty , sino el ruido involucrado en el cálculo x_ {t-1}de la distribución normal p .\mu\varepsilon

Entonces, \varepsilonlo obtenemos por predicción \muy luego obtenemos p. También verificó nuestra conclusión, es decir, todo el proceso de aprendizaje predice la distribución p .

3. Desmontaje de la distribución de probabilidad condicional.

Fórmula 1 :p(x_{t-1}|x_t)=\frac{p(x_t|x_{t-1})\cdot p(x_{t-1})}{p(x_t)}la distribución de probabilidad condicional original se transforma de acuerdo con la fórmula bayesiana y la nueva fórmula contiene 3 distribuciones de probabilidad.

(1) Cálculo de la primera p

La primera p es:p(x_t|x_{t-1})

Desde x_ {t-1}hasta x_tla distribución de probabilidad en el proceso de agregar ruido, debido a que el proceso de agregar ruido se define de antemano, también se puede definir la distribución de probabilidad p.

Ahora definimos el proceso de rampa de la siguiente manera:

Ecuación 2 :x_t=\sqrt{\alpha _t}\cdot x_{t-1} + \sqrt{\beta_t}\varepsilon _t, donde\varepsilon _t\sim N(0,1)el ruido,\beta_t=1-\alpha_t.

Porque \varepsilon _t\sim N(0,1), así es \sqrt{\beta_t} \varepsilon_t \sim N(0, \beta_t). (ps: la varianza debe elevarse al cuadrado)

Puede verse \beta_tcomo la variación del ruido; debe ser muy pequeña, cercana a 0. Sólo cuando el ruido añadido es pequeño, las direcciones de avance y retroceso obedecen a la distribución normal.

Derivación adicional, x_t \sim N(\sqrt{\alpha_t} \cdot x_{t-1}, \beta_t)a saber:

Fórmula 3:p(x_t|x_{t-1}) \sim N(\sqrt{\alpha_t} \cdot x_{t-1}, \beta_t) .

(2) Cálculo de la tercera p

La tercera p es: p(x_t), que es similar a la segunda p. Si encuentra un método de cálculo para uno, entonces el otro se puede obtener de manera similar.

En el paso anterior, obtuvimos la fórmula 2 de cada paso del proceso de agregar ruido y la fórmula 3 de la distribución de probabilidad condicional de cada paso de agregar ruido.

Para el proceso de agregar ruido, x_0 \rightarrow x_t \rightarrow \cdots \rightarrow x_{t-1} \rightarrow x_tse puede x_0utilizar x_t.

Transformación de la fórmula 1:

Fórmula 4:p(x_{t-1}|x_t,x_0)=\frac{p(x_t|x_{t-1},x_0)\cdot p(x_{t-1}|x_0)}{p(x_t|x_0 )}

Debido a que el proceso de calentamiento es un proceso de Markov, solo está p(x_t|x_{t-1},x_0)relacionado con el paso anterior y no tiene nada que ver con el paso anterior, es decir, la suma x_0no tiene nada que ver, entoncesp(x_t|x_{t-1},x_0)=p(x_t|x_{t-1})

Sep(x_t|x_0) obtiene paso a x_0paso x_t, por lo que no es posible una mayor simplificación. Además, la Ecuación 4 se simplifica a:

Fórmula 5 :p(x_{t-1}|x_t,x_0)=\frac{p(x_t|x_{t-1})\cdot p(x_{t-1}|x_0)}{p(x_t|x_0)}

Ahora comience a calcular nuevamente el valor de la nueva tercera p y deduzcalo de la fórmula 2 de la siguiente manera (ps: los corchetes indican que algunos parámetros están incluidos pero no escritos, y se omite información sin importancia):

x_t=\sqrt{\alpha_t} \cdot x_{t-1} + \sqrt{\beta_t} \cdot \varepsilon_t \\ =\sqrt{\alpha_t}(\sqrt{\alpha_{t-1}} \cdot x_{t-2}+\sqrt{\beta_{t-1} }\cdot \varepsilon_{t-1}) + \sqrt{\beta_t} \cdot \varepsilon_t \\ = \cdots \\ =\sqrt{ \alpha_t \cdots \alpha_1} \cdot x_0 + ()\varepsilon_t + \cdots + ()\varepsilon_2 + ()\varepsilon_1 \\ = \sqrt{\alpha_t \cdots \alpha_1} \cdot x_0 + ()\varepsilon

Finalmente, tras una derivación imprecisa, damos el resultado oficial:

Ecuación 6 :p(x_t|x_0) \sim N(\sqrt{\bar{\alpha_t}} \cdot x_0, (1- \bar{\alpha_t}) \cdot \varepsilon_t ^{2}), que\bar{\alpha_t} = \alpha_t \cdots \alpha_0representa la multiplicación continua.

(3) Solución de fórmula de difusión

Si se obtuvo en el paso anterior p(x_t|x_0), también se puede obtener de manera similar p(x_{t-1}|x_0).

El resultado oficial de la fórmula 4 se da directamente:

Fórmula 7 :p(x_{t-1}|x_t, x_0) \sim N(\bar \mu (x_0,x_t), \tilde{\beta_t})

Entre ellos \tilde{\beta_t}se encuentra el hiperparámetro, \bar{\mu} (x_0,x_t)la fórmula es la siguiente:

Fórmula 8 :\bar{\mu }(x_0,x_t)=\frac{\sqrt{\bar{\alpha_{t-1}}} \cdot \beta_t}{1-\bar{\alpha_t}} \cdot x_0 + \ frac{\sqrt{\alpha_t} \cdot(1-\bar{\alpha_{t-1}})}{1-\bar{\alpha_t}} \cdot x_t

Debido a \tilde{\beta_t}que es fija, p(x_{t-1}|x_t,x_0)la tarea de buscar se convierte en búsqueda \bar{\mu} (x_0,x_t).

Si es así \bar{\mu }(x_0,x_t), entonces el valor de inferencia previsto se puede obtener de acuerdo con la siguiente fórmula:

Fórmula 9 :x_{t-1}=\bar{\mu }(x_0, x_t)+ \sqrt{\tilde{\beta_t}} \cdot \varepsilon _t,\varepsilon _t \sim N(0,1)

Si toma uno p(x_{t-1}|x_t,x_0)directamente x_ {t-1}, el proceso no se puede derivar (al ingresar directamente el valor medio y el valor de la varianza a través del paquete Python), entonces hay un problema con el proceso inverso, por lo que se puede convertir. a la fórmula 9 a través de la técnica de parámetros pesados.Fórmula guiada para expresar x_ {t-1}.

En la etapa de inferencia x_0está el valor que finalmente queremos, el cual se desconoce, por lo que se necesita una fórmula para convertirlo a un factor conocido.

La ecuación 6 se transforma mediante la técnica de parámetros pesados ​​de la siguiente manera:

Fórmula 10 :x_t=\sqrt{\bar{\alpha_t}} \cdot x_0 + \sqrt{1-\bar{\alpha_t}} \cdot \varepsilon _ty luego obtienes:

Fórmula 11 :x_0=\frac{1}{\sqrt{\bar{\alpha_t}}}(x_t - \sqrt{1-\bar{\alpha_t}} \cdot \varepsilon _t), donde t es el número actual de etapas de adición de ruido, que cambiarán. Al mismo tiempo, estex_0es el valor del parámetro del proceso intermedio y no puede usarse como el valor predicho final, porque el proceso p de razonamiento debe seguir el proceso de Markov, por lo que debe derivarse paso a pasox_0.

En la Fórmula 7, el valor desconocido es \bar{\mu} (x_0,x_t), y el valor desconocido en el valor es x_0, y x_0el valor desconocido en es \varepsilon _t, que no se puede calcular ni derivar mediante fórmulas existentes .

Entonces usamos la red UNet, entrada x_t, salida \varepsilon _t.

Sustituyendo la Ecuación 11 en la Ecuación 8, obtenemos:

Ecuación 12 : \bar{\mu }(x_0, x_t)=\frac{1}{\sqrt{\alpha_t}}(x_t-\frac{\beta_t}{\sqrt{1-\bar{\alpha_t}}} \cdot \varepsilon_t), donde entre \varepsilonotras cosas se conocen.

Lo\varepsilon predice la red UNet, que puede expresarse como \varepsilon _\theta (x_t, t)un \thetaparámetro del modelo UNet.

*************El proceso del modelo de difusión para obtener la imagen predicha a través de la red UNet*************** :

UNet \rightarrow \varepsilon _t \rightarrow x_0 -> \bar{\mu }(x_0,x_t) \rightarrow p(x_{t-1}|x_t,x_0) \rightarrow x_{t-1}{'} \rightarrow \cdots\rightarrow x_0{'}

Lo anterior es la lógica más importante del modelo de difusión DDPM .

4. Entrenamiento modelo

Según la Ecuación 12, se puede ver que la red UNet está entrenada con ruido normalmente distribuido \varepsilon.

Pregunta 1: ¿Cuál es la entrada y la salida durante el entrenamiento del modelo?

Respuesta: entrada x_t, salida \varepsilon _t.

Pregunta 2: Entonces, ¿qué proceso realiza el entrenamiento de los parámetros de la red UNet?

Respuesta: el proceso de adición de ruido. El proceso de eliminación de ruido es la fase de entrenamiento y el proceso de eliminación de ruido es la fase de inferencia.

De acuerdo con la fórmula 2, el ruido del proceso de adición de ruido está definido por la implementación, por lo que podemos comparar el ruido predicho \sombrero{\varepsilon }y la \varepsilondivergencia KL real para calcular el valor de pérdida. En la descripción oficial, la fórmula de divergencia KL se puede simplificar para calcular el dos El valor mse de un valor.

Pregunta 3: ¿Se deduce paso a paso durante el entrenamiento?

Respuesta: No es necesario. Durante el proceso de entrenamiento , según la fórmula 10  x_t=\sqrt{\bar{\alpha_t}} \cdot x_0 + \sqrt{1-\bar{\alpha_t}} \cdot \varepsilon _t, x_tse puede calcular mediante \bar{\alpha_t},,,  estos cuatro valores.x_0\varepsilon _tt

\bar{\alpha_t}Puede calcularse de antemano y almacenarse en la memoria, x_0que es el conjunto de imágenes de entrada, \varepsilon _tel ruido de entrada ty el número de etapas que agregan ruido.

Por lo tanto, cada paso en la dirección de avance puede obtener directamente x_tel valor.

5. Implementación de pseudocódigo de entrenamiento e inferencia.

(1) Etapa de formación

Interpretación:

q(x_0)Representa tomar fotografías del conjunto de datos.

Uniforme(\left \{1,...,T \right \})Indica que se seleccionan aleatoriamente varias etapas de adición de ruido. Como se mencionó anteriormente, no es necesario realizar el proceso de adición de ruido paso a paso.

\sqrt{\bar{\alpha_t}} \cdot x_0 + \sqrt{1-\bar{\alpha_t}} \cdot \varepsilon _tparax_t

(2) Etapa de razonamiento

 

 Interpretación:

para t=T,...,1 hacer Significa que el proceso inverso debe realizarse paso a paso.

El cálculo complejo del paso 4 corresponde a la Ecuación 9, y la primera fórmula del cálculo corresponde a la Ecuación 12.

Supongo que te gusta

Origin blog.csdn.net/benben044/article/details/132331725
Recomendado
Clasificación