¿Qué es un modelo de difusión? Una definición exhaustiva

¿Qué es un modelo de difusión? Una definición exhaustiva
¿Qué es un modelo de difusión?
Los modelos de difusión son una clase de modelos generativos probabilísticos. Son potentes para reducir el ruido en aprendizaje automático, así como para la síntesis de imágenes. Un modelo de difusión destruye progresivamente los datos añadiendo ruido gaussiano y aprende a invertir el proceso para la generación de muestras.
En la generación de imágenes, por ejemplo, los modelos de difusión añaden ruido a una imagen cien o mil veces hasta que se convierte en una imagen de ruido puro. A continuación, eliminan gradualmente el ruido de la imagen hasta obtener una imagen coherente. Por último, el modelo puede generar nuevas imágenes diversas que se asemejan mucho a la imagen original.
Componentes de los modelos de difusión
Los modelos de difusión se basan en tres marcos matemáticos subyacentes:
- Modelos probabilísticos de difusión con eliminación de ruido (DDPM): Los DDPM utilizan dos cadenas de Markov, la directa y la inversa, para añadir o eliminar ruido de los datos. Aprovechan las redes neuronales profundas para aprender a invertir el ruido introducido en la cadena directa, lo que en última instancia permite generar muestras de datos que se asemejan mucho a la distribución de datos original.
- Modelos generativos basados en puntuaciones (SGM): Los SGM funcionan añadiendo ruido gaussiano a los datos y estimando funciones de puntuación mediante una red neuronal profunda entrenada en ruido. Estas funciones de puntuación guían la generación de nuevas muestras de datos que se asemejan mucho a la distribución original.
- Ecuaciones diferenciales estocásticas (SDE de puntuación): Las SDE de puntuación generalizan las DDPM y las SGM para modelar datos con infinitos pasos temporales o niveles de ruido. Utilizan SDE para modelar la perturbación del ruido y los procesos de generación de muestras, y se basan en funciones de puntuación para eliminar el ruido de los datos generados.
¿Cómo funcionan los modelos de difusión?
Los modelos de difusión funcionan a un nivel sofisticado, que implica la interacción meticulosa de datos, ruido gaussiano controlado y un espacio latente intermedio. Este intrincado proceso les permite, en última instancia, elaborar versiones mejoradas de los datos originales. Profundicemos en la mecánica:
1. **El papel del ruido gaussiano
Los modelos de difusión introducen ruido gaussiano sistemáticamente a lo largo de sus operaciones. En cada paso iterativo, se añade a los datos ruido gaussiano controlado con precisión. Este ruido se muestrea a partir de una distribución gaussiana, lo que permite un control preciso de los niveles de ruido.
# Añadir ruido gaussiano controlado datos_ruidos = datos_originales + ruido
2. Transición a la Distribución Normal:
Para facilitar el proceso de difusión, los datos de entrada se someten a una transformación. Primero se convierten en una distribución normal, caracterizada por una media de 0 y una desviación típica de 1. Esta conversión no sólo simplifica el control del ruido, sino que también sienta las bases para el viaje de difusión.
# Transformar los datos en una distribución normal normalized_data = (original_data - original_data.mean()) / original_data.std()
3. Proceso de modelización de la difusión:
Vamos a diseccionar el proceso de modelización de la difusión en el contexto de los modelos generativos, especialmente para imágenes o vídeos. El proceso de difusión consta de dos fases fundamentales:
- Proceso de difusión hacia delante: En esta fase, el modelo se embarca en un viaje de transformación de los píxeles de una imagen prístina. A través de cientos o incluso miles de pasos incrementales, se introduce progresivamente ruido gaussiano. Este proceso se desarrolla en una cadena de Markov, en la que cada paso inyecta una cantidad de ruido controlada con precisión. La imagen se "difunde" hacia un estado de ruido puro.
# Proceso de difusión hacia delante para paso en rango(número_pasos): imagen_ruido = imagen_ruido + paso_ruido[paso].
- Proceso de difusión inversa:** Por el contrario, el proceso de difusión inversa marca el camino hacia la claridad. Esta fase implica la eliminación del ruido, el escalado y pasos iterativos que finalmente conducen a la aparición de una imagen clara. Es como ver una imagen nublada que se va enfocando poco a poco.
# Proceso de difusión inverso for step in reversed(range(num\_steps)): noisy\_image = noisy\_image - step\_noise\[step]
En el proceso de difusión hacia adelante, es fundamental tener en cuenta que el escalado de los valores de píxel es un paso clave antes de la adición de ruido. Omitir este paso podría llevar a la saturación de la imagen, donde se pierden detalles.
# Escalado de los valores de los píxeles imagen_escalada = imagen_original * factor_escalado
4. Utilizando redes neuronales convolucionales (CNN):
En el proceso de difusión inversa, las redes neuronales convolucionales (CNN) desempeñan un papel fundamental. Dada una imagen envuelta en ruido puro, estas redes neuronales son expertas en eliminar el ruido de la imagen. Eliminan hábilmente el ruido y revelan una imagen clara y coherente que refleja fielmente la original.
5. **Entrenamiento para las generaciones futuras.
Tras el entrenamiento, el modelo de difusión se prepara para generar nuevas imágenes. Esto implica la introducción intencionada de ruido en los datos de entrada. A continuación, el modelo toma las riendas y utiliza su destreza aprendida en la eliminación de ruido para crear nuevas versiones prístinas de los datos de entrada.
# Generación de nuevas imágenes mediante la introducción de ruido nueva_imagen = datos_de_entrada_ruido + ruido_generado
Espacio Latente Intermedio en Modelos de Difusión Modernos:
En el ámbito de los modelos modernos de difusión de imágenes, se produce un giro convincente. Estos modelos suelen introducir un tercer actor en la mezcla: un espacio latente intermedio. En lugar de operar directamente sobre los píxeles de la imagen en bruto, el proceso de difusión se produce dentro de este espacio latente. Esta innovación mejora la eficiencia y eficacia de los modelos de difusión, permitiendo transformaciones más matizadas y controladas.
Aplicaciones de los modelos de difusión en IA/ML
El modelo de difusión es un enfoque que está ganando popularidad en el modelado generativo debido a sus numerosos casos de uso en la vida real. Se utiliza en la generación de imágenes, la generación de texto a imagen, la superresolución de imágenes, la generación de lenguaje natural, etc.
Generación de lenguaje natural
El procesamiento del lenguaje natural (PLN) tiene muchas aplicaciones en la vida real en el mundo actual de la IA. Debido a su capacidad para producir diversos resultados, los modelos de difusión se aplican esencialmente en la generación de lenguaje natural (NLG). Permiten realizar muchas tareas NLG en grandes modelos de lenguaje (LLM), como los transformadores generativos preentrenados (GPT). Entre ellas se incluyen la generación de contenidos, el resumen de textos y la finalización de textos.
Generación de imágenes y vídeos
Los modelos de difusión mejoran la calidad de los vídeos generados. Abordan los problemas de complejidad y continuidad espaciotemporal de los fotogramas de vídeo. Esta capacidad permite a los creadores de contenidos introducir indicaciones de texto para generar guiones de vídeo cortos y de alta calidad.
Generación de texto a imagen
Hoy en día, puedes generar imágenes introduciendo mensajes de texto en un generador de texto a imagen. Imagen de Google y DALL-E de OpenAI son algunos ejemplos. Los LLM utilizan la difusión para decodificar palabras visuales en una imagen. Idealmente, estos generadores codifican las imágenes como palabras visuales vectoriales. A continuación, utilizan estas palabras para condicionar un modelo de difusión con el fin de generar una nueva imagen con un estilo similar a la imagen original.
Superresolución de imágenes
Una de las primeras aplicaciones de los modelos de difusión es la superresolución de imágenes. Se trata de aumentar la resolución de una imagen de baja a alta resolución conservando al máximo su contenido.
La resolución de imágenes mediante el modelo de difusión se realiza en dos pasos. En primer lugar, se utiliza el modelo de difusión para generar imágenes de baja resolución, que son más fáciles y rápidas de entrenar. En segundo lugar, se entrena un modelo de difusión separado y se condiciona el modelo a una superresolución que mejorará la resolución de las imágenes de baja calidad.
Limitaciones de los modelos de difusión
Los modelos de difusión son potentes y están revolucionando la industria de la IA. Sin embargo, como demostraremos a continuación, presentan bastantes dificultades.
Los modelos de difusión tardan en entrenarse
Los modelos de difusión se basan en la eliminación de ruido para generar imágenes. Entrenar modelos de eliminación de ruido desde cero implica muchas iteraciones. En los primeros niveles, los modelos de difusión se entrenan durante más tiempo. El entrenamiento se reduce gradualmente en las etapas posteriores, cuando el modelo puede generar muestras que se aproximan a los datos de entrenamiento. Este proceso puede llevar minutos u horas de tiempo de cálculo. En otras palabras, los modelos de difusión utilizan miles de llamadas a las redes neuronales para generar muestras, en comparación con las GAN, que sólo utilizan una llamada. Esto hace que los modelos de difusión sean más lentos en la generación de muestras.
Es difícil afinar un modelo de difusión
Para obtener una versión individualizada de un modelo, se toma un modelo preentrenado y se entrena con los propios datos. Sin embargo, es difícil ajustar un modelo de difusión incondicional preentrenado con datos limitados. Las limitaciones de datos pueden llevar a un ajuste excesivo en las primeras fases del entrenamiento. Las imágenes resultantes de modelos sobreajustados son de baja calidad y diversidad limitada.
Los modelos de difusión requieren mucha memoria
Los grandes modelos de difusión exigen grandes requisitos de memoria. Un modelo de difusión puede contener miles de millones de parámetros. Por eso se entrenan y prueban en servidores potentes. Teniendo en cuenta el tamaño limitado de la memoria de la GPU, la implementación de estos modelos en dispositivos móviles es exigente. Con esta limitación, los dispositivos móviles tienen dificultades para ejecutar un único modelo de difusión de gran tamaño.
Dado que el uso de la memoria de la GPU supone una amenaza para la implantación de modelos de difusión en los móviles, están surgiendo soluciones. Una de ellas consiste en publicar versiones más pequeñas de los modelos de difusión. Los modelos se comprimen lo suficiente como para poder utilizarse en móviles.
Preguntas frecuentes
¿Cuál es la diferencia entre un GAN y un modelo de difusión?
Las redes generativas adversariales (GAN) funcionan mediante un proceso de entrenamiento adversarial. Emplean una red neuronal generadora para producir muestras de datos y una red neuronal discriminadora para diferenciar entre muestras de datos auténticas y falsas. Un modelo de difusión es un modelo basado en la verosimilitud que genera muestras añadiendo iterativamente ruido gaussiano a los datos y aplicando una función de eliminación de ruido aprendida para transformar gradualmente los datos en muestras realistas.
¿Cuál es la diferencia entre transformador y modelo de difusión?
Los transformadores aplican mecanismos de autoatención para aprender la relación contextual entre elementos de datos secuenciales y destacan en la clasificación de imágenes y la PNL. Los modelos de difusión destacan en la generación de imágenes fotorrealistas de alta calidad.
¿Cuáles son algunos de los retos de los modelos de difusión?
Los modelos de difusión requieren un largo proceso de entrenamiento de eliminación de ruido con muchas iteraciones. Además, los modelos de difusión de gran tamaño con miles de millones de parámetros requieren muchos recursos de memoria. Por último, el ajuste fino de un modelo de difusión con datos limitados puede dar lugar a un ajuste excesivo que genere imágenes de baja calidad y menos diversas.
¿Cómo genera imágenes un modelo de difusión?
Los modelos de difusión generan imágenes mediante un proceso iterativo que implica la difusión y eliminación de ruido de los valores de los píxeles de una imagen para generar imágenes cada vez más coherentes y detalladas.
- ¿Qué es un modelo de difusión?
- Componentes de los modelos de difusión
- ¿Cómo funcionan los modelos de difusión?
- Aplicaciones de los modelos de difusión en IA/ML
- Limitaciones de los modelos de difusión
- Preguntas frecuentes
Contenido
Comienza Gratis, Escala Fácilmente
Prueba la base de datos vectorial completamente gestionada construida para tus aplicaciones GenAI.
Prueba Zilliz Cloud Gratis