|
|
||
|---|---|---|
| .. | ||
| Clip.ipynb | ||
| README.md | ||
README.md
Redes Multi-Modales
Tras el éxito de los modelos transformadores para resolver tareas de procesamiento de lenguaje natural (NLP), se han aplicado arquitecturas similares a tareas de visión por computadora. Existe un creciente interés en construir modelos que combinen capacidades de visión y lenguaje natural. Uno de estos intentos fue realizado por OpenAI, y se llama CLIP y DALL.E.
Preentrenamiento Contrastivo de Imágenes (CLIP)
La idea principal de CLIP es poder comparar indicaciones de texto con una imagen y determinar qué tan bien la imagen corresponde a la indicación.
Imagen tomada de este artículo
El modelo se entrena con imágenes obtenidas de Internet y sus subtítulos. Para cada lote, tomamos N pares de (imagen, texto) y los convertimos en representaciones vectoriales I, ..., I / T, ..., T. Estas representaciones se emparejan entre sí. La función de pérdida se define para maximizar la similitud coseno entre los vectores correspondientes a un par (por ejemplo, I y T) y minimizar la similitud coseno entre todos los demás pares. Por esta razón, este enfoque se llama contrastivo.
El modelo/biblioteca CLIP está disponible en GitHub de OpenAI. El enfoque se describe en este artículo y con más detalle en este documento.
Una vez que este modelo está preentrenado, podemos darle un lote de imágenes y un lote de indicaciones de texto, y lo que devolverá será un tensor con probabilidades. CLIP puede usarse para varias tareas:
Clasificación de Imágenes
Supongamos que necesitamos clasificar imágenes entre, por ejemplo, gatos, perros y humanos. En este caso, podemos darle al modelo una imagen y una serie de indicaciones de texto: "una foto de un gato", "una foto de un perro", "una foto de un humano". En el vector resultante de 3 probabilidades, solo necesitamos seleccionar el índice con el valor más alto.
Imagen tomada de este artículo
Búsqueda de Imágenes Basada en Texto
También podemos hacer lo contrario. Si tenemos una colección de imágenes, podemos pasar esta colección al modelo y una indicación de texto; esto nos dará la imagen que sea más similar a la indicación dada.
✍️ Ejemplo: Usando CLIP para Clasificación de Imágenes y Búsqueda de Imágenes
Abre el cuaderno Clip.ipynb para ver CLIP en acción.
Generación de Imágenes con VQGAN+CLIP
CLIP también puede usarse para generación de imágenes a partir de una indicación de texto. Para hacerlo, necesitamos un modelo generador que sea capaz de generar imágenes basadas en alguna entrada vectorial. Uno de estos modelos se llama VQGAN (GAN Cuantificado por Vectores).
Las ideas principales de VQGAN que lo diferencian de un GAN ordinario son las siguientes:
- Usar una arquitectura transformadora autorregresiva para generar una secuencia de partes visuales contextualmente ricas que componen la imagen. Estas partes visuales, a su vez, son aprendidas por CNN.
- Usar un discriminador de sub-imágenes que detecta si las partes de la imagen son "reales" o "falsas" (a diferencia del enfoque "todo o nada" en los GAN tradicionales).
Aprende más sobre VQGAN en el sitio web Taming Transformers.
Una de las diferencias importantes entre VQGAN y los GAN tradicionales es que estos últimos pueden producir una imagen decente a partir de cualquier vector de entrada, mientras que VQGAN probablemente produzca una imagen incoherente. Por lo tanto, necesitamos guiar aún más el proceso de creación de imágenes, y eso puede hacerse usando CLIP.
Para generar una imagen que corresponda a una indicación de texto, comenzamos con algún vector de codificación aleatorio que se pasa a través de VQGAN para producir una imagen. Luego, CLIP se utiliza para producir una función de pérdida que muestra qué tan bien la imagen corresponde a la indicación de texto. El objetivo es minimizar esta pérdida, utilizando retropropagación para ajustar los parámetros del vector de entrada.
Una excelente biblioteca que implementa VQGAN+CLIP es Pixray.
Imágenes de la colección Artificial Teachers por Dmitry Soshnikov
DALL-E
DALL-E 1
DALL-E es una versión de GPT-3 entrenada para generar imágenes a partir de indicaciones. Ha sido entrenada con 12 mil millones de parámetros.
A diferencia de CLIP, DALL-E recibe tanto texto como imagen como un único flujo de tokens para ambos. Por lo tanto, a partir de múltiples indicaciones, puedes generar imágenes basadas en el texto.
DALL-E 2
La principal diferencia entre DALL-E 1 y 2 es que este último genera imágenes y arte más realistas.
Ejemplos de generación de imágenes con DALL-E:
Referencias
- Documento de VQGAN: Taming Transformers for High-Resolution Image Synthesis
- Documento de CLIP: Learning Transferable Visual Models From Natural Language Supervision
Descargo de responsabilidad:
Este documento ha sido traducido utilizando el servicio de traducción automática Co-op Translator. Si bien nos esforzamos por lograr precisión, tenga en cuenta que las traducciones automáticas pueden contener errores o imprecisiones. El documento original en su idioma nativo debe considerarse como la fuente autorizada. Para información crítica, se recomienda una traducción profesional realizada por humanos. No nos hacemos responsables de malentendidos o interpretaciones erróneas que puedan surgir del uso de esta traducción.








