CLIP, también conocido como "Preentrenamiento de imágenes de lenguaje contrastivo", es uno de los algoritmos de renombre discutidos en un documento técnico llamado "Aprendizaje de modelos visuales transferibles a partir de la supervisión del lenguaje natural". algoritmo llamado 'Dall-E 2' En este artículo, podemos discutir el objetivo, el procedimiento de trabajo y algunos de los pros y contras del CLIP a través de algunos ejemplos de la vida real.
Tabla de contenido
Introducción
El objetivo y la necesidad del algoritmo CLIP
El procedimiento de trabajo del algoritmo CLIP
Limitaciones
Aplicaciones en tiempo real
Introducción
CLIP, también conocido como "Preentrenamiento de imágenes de lenguaje contrastivo", es uno de los algoritmos de renombre discutidos en un documento técnico llamado "Aprendizaje de modelos visuales transferibles a partir de la supervisión del lenguaje natural" publicado por investigadores de OpenAI, un laboratorio de investigación de inteligencia artificial. El mayor consumo de CLIP se realiza en los casos de uso basados en visión artificial que utiliza un algoritmo denominado “Dall-E 2” que también fue desarrollado por el equipo de Open AI. Más precisamente, CLIP se está utilizando como modelo auxiliar para el algoritmo "Dall-E 2". Pero no malinterprete que CLIP no es poderoso ya que se consume como un modelo auxiliar :)
A pesar de ser un modelo auxiliar, CLIP se considera un paso importante en la investigación del aprendizaje profundo. Podemos implementar CLIP para la resolución de problemas por separado incluso sin "Dall-E 2". En este artículo, podemos discutir el objetivo, el procedimiento de trabajo y algunas de las ventajas y desventajas del CLIP a través de algunos ejemplos de la vida real y cómo podemos simplificar la vida de nuestros proyectos de aprendizaje profundo.
El objetivo y la necesidad del algoritmo CLIP
El objetivo principal detrás del algoritmo CLIP es encontrar un texto en particular de una lista de textos que sea más similar a la imagen dada.
Por ejemplo, Consideremos la siguiente imagen como entrada-
Y digamos que tenemos algunos de los textos en una lista dada-
Una foto de un avión.
Una foto de un pájaro.
Una foto de un oso.
Una foto de una jirafa.
Una foto de un coche.
La tarea principal de un modelo CLIP es hacer coincidir el texto más apropiado de la lista dada con la imagen de entrada como se muestra a continuación:
Fundamentalmente, se trata de una red neuronal artificial que considera cada texto de la lista como una clase y asigna un valor de probabilidad a cada texto correspondiente a la imagen. Lógicamente, el texto que obtiene el máximo valor de probabilidad se puede considerar como salida.
Un gran aspecto positivo del CLIP es que ya conoce todas las palabras en el idioma "inglés". Algunas de las características del modelo CLIP que lo hacen especial en comparación con otros algoritmos similares son:
El modelo CLIP no se limita a una sola palabra en el texto. En cambio, intenta extraer cada pieza de información de todas las palabras en la oración de entrada y todos los píxeles de una imagen. Nunca se olvida de recordar todos los aspectos de una imagen de entrada, como los objetos en el fondo, el color, las formas, etc.
Por ejemplo, Consideremos la siguiente imagen de entrada:
Todos los textos en la lista dada, excepto el último, parecen una coincidencia lógica para la entrada. Cualquier otro modelo habría tenido dificultades para alcanzar un valor de probabilidad de condena alto para una clase en particular. Sin embargo, el CLIP habría analizado los patrones de todos los aspectos de esta imagen, como la perrera, la celda, el perro, etc.
La luz del sol parece venir de afuera hacia adentro. Por lo tanto, debe ser una estructura interior. Además, hay una presencia de un animal en lugar de un humano. Por lo tanto, no debería ser una cárcel, pero podría ser una perrera.
Este tipo de análisis avanzado que considera todos los aspectos de la imagen y el texto podría no ser posible para otros modelos en la misma liga.
También se ha visto que CLIP funciona bien en casos de uso de reconocimiento óptico de caracteres, lo que no es posible en modelos similares.
Otras ramas de la visión artificial, como la geolocalización, el reconocimiento de emociones faciales, etc., también parecen estar funcionando bien con el modelo CLIP.
CLIP ha demostrado un gran rendimiento de tiro cero incluso en entradas no vistas. Además, no espera que el texto esté en una sola palabra como "gato", "perro", "pájaro", "coche". plano”, etc. En cambio, puede comprender un grupo de palabras que enmarcan lógicamente una oración. Esta característica generalmente no se ve en otros modelos.
El procedimiento de trabajo del algoritmo CLIP
El algoritmo CLIP ha sido entrenado en 400 millones de imágenes con descripciones de texto emparejadas que lo hacen un gran conocedor del universo y seguro para resolver tareas complejas con imágenes y textos complejos.
El conjunto de datos de Imagenet consta de solo 1,2 millones de imágenes. 400 millones es casi 300 veces más que 1,2 millones. La mayoría de los 400 millones de imágenes se extraen directamente de Internet, lo que la convierte en una colección grande y muy diversificada que aumenta su capacidad de detección de patrones.
Para el desarrollo de la arquitectura CLIP, necesitamos codificar tanto las imágenes como los textos correspondientes en vectores matemáticos. Esto se debe a que un algoritmo de aprendizaje automático no podrá inferir la información si está en formato visual o textual. Por lo tanto, necesitamos convertirlos en valores numéricos.
La entrada de imagen se convierte en un vector matemático usando un algoritmo Transformer o Resnet
La entrada de texto es en un vector matemático utilizando un algoritmo de Transformador.
Dado que tenemos una lista de pares Imagen-Texto, debemos indicarlo usando ciertos alfabetos.
Cada imagen se denota como I1, I2,I3...IN etc. Cada texto se denomina T1,T2,T3...TN, etc.
Después de eso, necesitamos construir una matriz de similitud con cada una de las imágenes como filas y cada uno de los textos como columnas.
Como se menciona en la imagen de arriba, los pares diagonales de imagen y texto tendrán más similitud ya que se refieren al mismo contexto. Los elementos no diagonales son pares aleatorios que no pertenecen al mismo contexto. Por lo tanto, su valor de similitud será bajo.
El objetivo de las funciones de optimización será aumentar el valor de similitud de los pares diagonales tanto como sea posible y disminuir la similitud entre los pares de imagen y texto no diagonales.
En un momento del aprendizaje, el modelo podrá aprender los patrones ocultos que coinciden con las imágenes y los textos que pertenecen al mismo contexto y diferenciar las imágenes y los textos que pertenecen a diferentes contextos.
Este procedimiento se denomina técnicamente “preentrenamiento contrastivo” .
CLIP se considera un algoritmo "computacionalmente eficiente". Esto se debe a que utilizan el algoritmo del transformador para codificar imágenes y textos que acceden a los datos de forma paralela. Si usamos otros algoritmos como LSTM o RNN, tienden a acceder a los datos para codificarlos en forma serial, lo que puede consumir mucho tiempo y espacio.
Dado que el CLIP puede hacer coincidir una imagen con una oración larga, los investigadores generalmente crean un mensaje de texto como "Una foto de un _____". Luego, mientras itera a través de una lista de textos, el programa de computadora ajusta automáticamente cada palabra de la lista en este mensaje de texto como-
una foto de un avion
una foto de un coche
Una foto de un perro, etc.
Luego, este texto se codifica y se compara con el vector codificado de la imagen de entrada para calcular el valor de similitud.
Limitaciones
Desafíos relacionados con la escalabilidad
En conjuntos de datos con divisiones de entrenamiento, el rendimiento de CLIP de disparo cero es, en promedio, competitivo con la línea de base supervisada simple de un clasificador lineal además de las características de ResNet-50. En la mayoría de estos conjuntos de datos, el rendimiento de esta línea de base ahora está muy por debajo del estado del arte general. Todavía se necesita un trabajo significativo para mejorar las capacidades de transferencia y aprendizaje de tareas de CLIP. Si bien hasta ahora la escala ha mejorado constantemente el rendimiento y sugiere una ruta para la mejora continua, los investigadores estiman que se requiere un aumento de alrededor de 1000 veces en la computación para que CLIP sin disparo alcance un rendimiento general de última generación. Esto es inviable de entrenar con el hardware actual. Será necesario seguir investigando para mejorar la eficiencia computacional y de datos de CLIP.
Desafíos relacionados con el rendimiento de tiro cero
Se encuentra que el rendimiento de disparo cero de CLIP es todavía bastante débil en varios tipos de tareas. En comparación con los modelos específicos de tareas, el rendimiento de CLIP es deficiente en varios tipos de clasificación detallada, como la diferenciación de modelos de automóviles, especies de flores y variantes de aeronaves. CLIP también lucha con tareas más abstractas y sistemáticas, como contar la cantidad de objetos en una imagen. Finalmente, para tareas novedosas que es poco probable que se incluyan en el conjunto de datos previo al entrenamiento de CLIP, como clasificar la distancia al automóvil más cercano en una foto, el rendimiento de CLIP puede ser casi aleatorio.
Desafíos en la comprensión de las imágenes que están fuera del conjunto de entrenamiento (distribución)
Si bien el CLIP de disparo cero se generaliza bien en muchas distribuciones de imágenes naturales según lo investigado, los investigadores observaron que el CLIP de disparo cero todavía se generaliza mal a los datos que realmente están fuera de distribución para él.
Por ejemplo, CLIP aprende una representación OCR semántica de alta calidad que funciona bien en texto renderizado digitalmente, lo cual es común en su conjunto de datos previo al entrenamiento, como lo demuestra el rendimiento en Rendered SST2.
Sin embargo, CLIP solo logra un 88 % de precisión en los dígitos escritos a mano de MNIST. vergonzosamente la línea de base simple de la regresión logística en píxeles sin procesar supera al CLIP de tiro cero. Tanto la recuperación semántica como casi duplicada del vecino más cercano verifica que casi no hay imágenes que se parezcan a los dígitos MNIST en nuestro conjunto de datos previo al entrenamiento.
Esto sugiere que CLIP hace poco para abordar el problema subyacente de la generalización frágil de los modelos de aprendizaje profundo. En cambio, CLIP trata de eludir el problema y espera que al entrenar en un conjunto de datos tan grande y variado, todos los datos se distribuyan de manera efectiva. Esta es una suposición ingenua que, como demuestra el MNIST, es fácil de violar.
No se pueden generar subtítulos
Aunque CLIP puede generar clasificadores de disparo cero de manera flexible para una amplia variedad de tareas y conjuntos de datos, CLIP todavía está limitado a elegir solo entre esos conceptos en un clasificador de disparo cero dado. Esta es una restricción significativa en comparación con un enfoque verdaderamente flexible como el subtitulado de imágenes que podría generar resultados novedosos.
CLIP no aborda la baja eficiencia de datos del aprendizaje profundo
CLIP tampoco aborda la baja eficiencia de datos del aprendizaje profundo. En su lugar, CLIP compensa utilizando una fuente de supervisión que se puede escalar a cientos de millones de ejemplos de capacitación. Si cada imagen vista durante el entrenamiento de un modelo CLIP se presentara a una velocidad de una por segundo, se necesitarían 405 años para iterar a través de las 12 800 millones de imágenes vistas durante 32 épocas de entrenamiento. La combinación de CLIP con métodos de autosupervisión y autoformación es una dirección prometedora dada su capacidad demostrada para mejorar la eficiencia de los datos sobre el aprendizaje supervisado estándar.
Aplicaciones en tiempo real
Algunas de las áreas en las que se ha utilizado CLIP para resolver casos de uso en tiempo real son:
Hay un sitio web llamado “paint.wtf” donde podemos jugar al Pictionary. Los jugadores aquí serán juzgados por el CLIP.
CLIP se puede utilizar para implementar filtros como "NSFW (No seguro para el trabajo)".
"DALL-E", un algoritmo de Open AI, utiliza CLIP como modelo auxiliar, como comentamos anteriormente.
CLIP se utiliza para indexar fotos en sitios web como .
CLIP se puede usar para encontrar imágenes apropiadas para lenguajes complejos como poesía, acertijos, rimas, novelas, etc.
CLIP también se puede utilizar para seleccionar imágenes corruptas o distorsionadas. Un nuevo trabajo de investigación titulado " " demuestra cómo se usó un método de inversión supervisada para obtener representaciones efectivas de imágenes corruptas.
Lanzado en 2021, un modelo generativo llamado CLIP+VQGAN o Vector Quantized Generative Adversarial Network se usa dentro del paradigma de texto a imagen para generar imágenes de tamaños variables, dado un conjunto de indicaciones de texto. Sin embargo, a diferencia de VQGAN, CLIP no es un modelo generativo y simplemente está entrenado para representar imágenes y texto de manera efectiva.
Conclusión
Es un hecho innegable en la industria del aprendizaje profundo que CLIP ha allanado el camino para el desarrollo de algoritmos avanzados para resolver casos de uso complejos relacionados con el procesamiento de imágenes y el NLP.
CLIP puede considerarse un acueducto innovador entre la visión artificial y la PNL. Además, dado que no requiere datos de capacitación específicos de la tarea, es posible alimentar grandes cantidades de datos de texto y mejoraría poco a poco en más tareas no relacionadas.
Juntos podemos esperar ansiosamente los avances revolucionarios que CLIP brindará en el futuro. Espero que tenga una introducción básica al concepto detrás del algoritmo CLIP de una manera lúcida.
He agregado los enlaces al trabajo de investigación en la sección de referencia que puede usar en caso de que necesite consultar la implementación en profundidad.
Referencias
Documentación CLIP de
- Alec Radford, Jong Wook Kim, Chris Hallacy, Aditya Ramesh, Gabriel Goh, Sandhini Agarwal, Girish Sastry, Amanda Askell, Pamela Mishkin, Jack Clark, Gretchen Krueger, Ilya Sutskever
- Sriram Ravula*, Georgios Smyrnis*, Matt Jordan, Alexandros G. Dimakis, The University of Texas at Austin, NeurIPS 2021
Katherine Crowson, Stella Biderman, Daniel Kornis, Dashiell Stander, Eric Hallahan, Louis Castricato y Edward Raff
Radford, Alec; Narasimhan, Karthik; Salimans, Tim; Sutskever, Ilya (11 de junio de 2018). (PDF) . . pag. 12. (PDF) desde el original el 26 de enero de 2021. Consultado el 23 de enero de 2021.
Johnson, Khari (5 de enero de 2021). . Venture Beat. desde el original el 5 de enero de 2021. Consultado el 5 de enero de 2021.
Ramesh, Aditya; Dhariwal, Prafulla; Nichol, Alex; Chu, Casey; Chen, Mark (12 de abril de 2022). . : .