Inventamos un nuevo modelo generativo aceptado en ICLR
(discrete-distribution-networks.github.io)- Discrete Distribution Networks (DDN) es un modelo generativo innovador con nuevos principios y características
- DDN ofrece resultados experimentales únicos y capacidad de representación discreta 1D mediante un algoritmo de optimización de Split-and-Prune
- Basado en una estructura jerárquica, también aproxima distribuciones continuas y muestra propiedades interesantes como la generación condicional Zero-Shot
- DDN muestra potencial de aplicación en diversas tareas reales como generación de imágenes y transferencia de estilo
- Se diferencia de los modelos generativos existentes en aspectos como escalabilidad, eficiencia y capacidad de adaptación natural
Resumen de DDN: Discrete Distribution Networks
¿Por qué es importante?
DDN (Discrete Distribution Networks) es un nuevo enfoque completamente distinto a los modelos generativos existentes, con principios simples, una estructura jerárquica única y características como generación condicional Zero-Shot. Al funcionar de forma diferente a GAN y Diffusion, abre muchas posibilidades tanto para investigación como para aplicaciones reales.
Resumen de los puntos principales
- DDN es un nuevo modelo generativo que aproxima la distribución de los datos mediante una estructura jerárquica de distribuciones discretas
- Propone la técnica de optimización Split-and-Prune y realiza experimentos con propiedades distintivas, como Zero-Shot Conditional Generation y representación latente discreta 1D, que son difíciles de lograr con modelos generativos existentes
- En cada capa, DDN genera múltiples muestras al mismo tiempo y selecciona la más cercana al objetivo para usarla como condición en la siguiente capa
- A medida que aumenta el número de capas, el espacio de representación de la salida se expande exponencialmente, lo que finalmente permite generar muestras similares al objetivo
- A través de diversos experimentos (CIFAR-10, FFHQ, transferencia de estilo, superresolución, etc.), muestra ventajas sobre enfoques existentes en simplicidad, capacidad de generalización y aplicabilidad práctica
Experimentos de estimación de densidad de DDN
- Demostración del proceso de aproximación de densidad de probabilidad 2D
- Izquierda: todas las muestras que DDN puede generar actualmente
- Derecha: mapa de densidad de probabilidad objetivo
- Se aplican en secuencia distintas distribuciones objetivo (blur_circles, QR_code, spiral, etc.) mientras continúa la optimización
- Optimizador: uso simultáneo de Gradient Descent y Split-and-Prune
- Al aplicar Split-and-Prune, la divergencia KL llega a ser incluso menor que la de las muestras reales
Aportes clave del artículo
- Propuesta de un nuevo modelo generativo, más simple y eficiente: DDN
- Aplicación de un algoritmo de optimización Split-and-Prune y técnicas prácticas
- Verificación de propiedades como generación condicional Zero-Shot sin gradientes y representación discreta 1D única
- En la revisión de ICLR se evaluó como “muy diferente de los modelos generativos existentes y capaz de ampliar la dirección de investigación”
- Principio de DDN: en cada capa genera múltiples muestras discretas y selecciona solo el resultado más cercano al objetivo para refinarlo jerárquicamente
Estructura y funcionamiento
Estructura jerárquica de distribución discreta
- Cada capa recibe como entrada la muestra seleccionada de la capa anterior y genera múltiples muestras
- De ellas, solo el resultado más cercano a la muestra de entrenamiento actual (respuesta correcta) se pasa a la siguiente capa
- El resultado se refina de forma repetida y se acerca a la distribución objetivo
- Al aumentar las capas, el espacio de representación de la salida generada crece exponencialmente
- La propia red puede representar directamente una distribución al generar varias muestras simultáneamente
Reconstrucción de imágenes y representación latente
- Cada salida de capa produce imágenes distintas, y solo el resultado similar al objetivo final pasa a la siguiente capa
- Función del muestreador: seleccionar la imagen más parecida al objetivo
- En tareas generativas, el muestreo aleatorio maximiza la diversidad
- Las variables latentes de DDN pueden interpretarse como una estructura de árbol, donde cada muestra se mapea al extremo del árbol (nodo hoja)
Ejemplos de resultados experimentales
- Aproximación de diversas distribuciones 2D (spiral, QR_code, etc.)
- Split-and-Prune minimiza la divergencia KL y reduce problemas como dead nodes o density shift
- En CIFAR-10, FFHQ, etc., se confirma un método de generación y una eficiencia distintivos frente a modelos basados en GAN y Diffusion
Compatibilidad con generación condicional Zero-Shot
- DDN permite generación condicional Zero-Shot sin gradientes
- Ejemplo: generación de texto a imagen usando un black-box de CLIP
- También procesa eficazmente condiciones diversas que no se limitan a píxeles, como transferencia de estilo y superresolución
Entrenamiento y dos paradigmas de modelo
- Durante el entrenamiento, en cada Discrete Distribution Layer (DDL) se seleccionan muestras y luego se optimiza con Adam + Split-and-Prune
- Single Shot Generator: cada capa tiene pesos independientes
- Recurrence Iteration: todas las capas comparten pesos
Diversos casos de aplicación
Generación aleatoria de imágenes de rostros
- Los resultados de generación de rostros con un DDN entrenado confirman la diversidad y calidad de las salidas
Colorización condicional de imágenes / conversión de bordes a color
- A partir de una imagen específica, busca aproximarse lo más posible al estilo y también cumplir la condición
- Resolución de imagen generada: 256x256
Visualización de generación jerárquica (MNIST, etc.)
- Visualización de resultados intermedios y finales en cada etapa de generación
- Las imágenes grandes son borradores; las pequeñas son resultados finales refinados
Líneas futuras de investigación y posibilidades de aplicación
- Posibilidad de mejorar el rendimiento de DDN mediante ajuste de hiperparámetros, experimentación exploratoria y análisis teórico
- Extensión hasta problemas con complejidad de nivel ImageNet y construcción de modelos utilizables en servicios reales
- Aplicación a tareas diversas como superresolución, colorización de imágenes, estimación de profundidad, estimación de pose y robótica
- Frente a modelos basados en Diffusion, genera múltiples muestras en un solo forward-pass
- Facilita la eficiencia y la aplicación de restricciones en usos como estimación de incertidumbre
- Su posibilidad de diferenciación end-to-end permite combinarlo eficientemente con aprendizaje discriminativo o por recompensa
- También puede usarse en tareas no generativas (clustering no supervisado, compresión de datos, etc.)
- Investigación posterior que aplica las ideas de diseño de DDN a modelos generativos existentes (por ejemplo, combinación de Diffusion con espacio latente discreto 1D)
- Plantea nuevas direcciones como modelar directamente cadenas binarias en modelado de lenguaje sin tokenizador
Preguntas frecuentes
P1: ¿Aumentan los requisitos de memoria GPU?
- Aumentan ligeramente frente a un Generator de GAN tradicional, pero sin gran diferencia
- Durante el entrenamiento, solo se guarda el gradiente de las muestras seleccionadas y el resto se descarta de inmediato, lo que deja margen de memoria
- En la etapa de generación, como solo se genera una muestra aleatoria y no todas las muestras posibles, el uso adicional de recursos es mínimo
P2: ¿Qué pasa con el problema de mode collapse?
- No ocurre. Como siempre se aplica la pérdida solo al resultado más parecido al objetivo, se garantiza la diversidad
- Experimentalmente también muestra un excelente rendimiento de reconstrucción del conjunto de prueba
- Sin embargo, en datos de alta dimensión difíciles de cubrir con la complejidad propia de DDN, pueden aparecer muestras borrosas
1 comentarios
Comentarios en Hacker News
Los autores expresaron alegría porque las reseñas de ICLR les resultaron útiles; consideran que este caso muestra cómo la política de ICLR de publicar todas las revisiones de los artículos funciona exitosamente.
Los revisores, de forma anónima, cumplen para los autores el papel de un “informe de evaluación” sobre cómo interpretaron el artículo, y además personas fuera de la academia tradicional pueden ver las discusiones que se esconden detrás de la aceptación o el rechazo de un trabajo.
El enlace a las reseñas de este artículo está aquí.
La lista completa de artículos rechazados puede consultarse aquí
En la Fig.18 del artículo se menciona que Taiji-DDN se parece al taiji de la filosofía china antigua.
Esa parte se me hizo un poco complicada.
Como la estructura ramificada es un concepto bastante común, me pareció algo extraño interpretarla vinculándola específicamente con una expresión clásica.
No creo que haya nada supersticioso ni raro ahí.
Ver un artículo de un solo autor aceptado en ICLR se siente especialmente impresionante, más aún cuando propone un método innovador.
La estructura me parece muy interesante.
Tiene la ventaja de que es fácil de depurar, pero como usa un sampler y no un router estilo Mixture-of-Experts (MoE), tiene la desventaja de que en cada capa se desperdician efectivamente K-1 operaciones.
A mí me parece que la analogía más cercana es una combinación de MoE con un modelo de difusión latente
x0-target, y que las principales innovaciones son el sampler guiado y el optimizador split-and-prune, más que el router.Creo que eso hace que el entrenamiento sea más sencillo.
Como la probabilidad de muestreo es 1/K sin depender de la entrada, en inferencia no hace falta realizar las K operaciones intermedias en cada capa; se puede decidir de antemano cuál se va a usar y ejecutar solo esa operación.
Esto aparece en la pregunta Q1 de la sección “Common Questions About DDN” al final del artículo.
Creo que entendiste mal el artículo.
No existen “experts”; la salida simplemente sirve para aproximar una muestra aleatoria de la distribución.
No hay difusión latente, y se usan convoluciones parecidas a las de un GAN.
Se enfatiza que en inferencia el índice de muestra se elige de antemano, así que no hay cómputo inútil.
Es un concepto realmente genial.
Al ver los ejemplos debajo del resumen del artículo, sorprende lo precisos que son algunos resultados del modelo.
Por ejemplo, la línea del cabello en la fila 2 columna 3; el color de la camisa en la fila 2 columnas 7/8/9/11; todo el lápiz labial en las filas 4/6; y la posición/forma de la cara y el cabello en la fila 6 columna 4.
En particular, la parte roja en la esquina inferior izquierda de la fila 6 columna 4 me parece fascinante: el modelo detectó que había algo rojo y puso una mancha roja en la ubicación correcta.
Podría ser sesgo del dataset (por ejemplo, el lápiz labial) o simplemente una observación selectiva mía, pero con la tira roja del hombro me pregunto si podría haber fuga de datos, sobreajuste o si solo fue coincidencia.
Yo también implementé algo con una arquitectura parecida, aunque con un método distinto: construí una jerarquía de atención cruzada y consultas aprendidas, y apliqué L1 a la matriz de atención para aumentar la dispersión.
Las representaciones jerárquicas discretas son realmente interesantes.
El patrón que se activa en cada capa funciona para cada entrada como un “árbol de parseo”, lo que termina comprimiendo imágenes de manera efectiva en secuencias cortas de enteros.
Pregunto porque no manejo bien esta parte: si la red está compuesta solo por convoluciones 1x1, ¿no significa eso que no hay ningún intercambio de información entre píxeles?
Entonces cada píxel sería completamente independiente; me pregunto si eso no volvería inconsistente el resultado.
Aunque aquí no aplica, en la práctica sí existen arquitecturas que generan los píxeles de forma mutuamente independiente.
Pueden generar cualquier píxel o elemento de la imagen sin producir el resto, y son implícitas.
Ejemplos son NeRF, “single-pixel GAN” y MAE; aquí están este artículo, este artículo y este artículo.
Esto es posible porque puede verse como que el modelo tiene la capacidad de “recordar” todos los datos posibles, y generar de forma independiente sería simplemente sacar una parte específica de esa “memoria”.
Como el espacio latente es un objeto platónico inmutable, no resulta extraño generar físicamente cada punto por separado.
Así como puntos arbitrarios pueden generarse con una función como
y=mx+b, la generación de imágenes no es más que una entrada a una función compleja.Este concepto no se limita a imágenes; el lenguaje natural también puede generarse de forma algo independiente, y puede extenderse con este código y mi propuesta aquí.
En DDN, las convoluciones 1x1 solo se usan en la capa de salida de la Discrete Distribution Layer (DDL).
Los bloques de red neuronal entre las DDL son la fuente de las operaciones y parámetros principales, y ahí se adoptan convoluciones estándar de 3x3.
Interesante.
Hace unos días vi una investigación de difusión que paralelizaba sistemas profundos de reacción en grafos usando matrices de transformación simbólica, y mucha gente parece estar avanzando en esta dirección general.
Me da la impresión de que en los próximos 1-2 años los modelos basados en difusión van a liderar la generación de código.
Está muy genial; antes dediqué bastante tiempo al aprendizaje de representaciones, y la cuadrícula de dígitos de MNIST me trae recuerdos.
De verdad me parece un enfoque interesante y novedoso, y me da curiosidad cómo rendiría si se escala y se aplica a dominios que no sean de imágenes.
Me pregunto dónde se podrá seguir el trabajo futuro.
Voy a publicar los resultados de mis investigaciones futuras tanto en GitHub como en Twitter(X).
Parece una investigación realmente buena, así que la agregué a mi lista de lectura.
Gracias por compartirla en Hacker News.