Loading

Search

e.g. Template, Bootstrap, WordPress theme

Codificación e Inteligencia Artificial

Aplicación de la Inteligencia artificial en el proyecto

  • by Ola.Research
  • Jul 23, 2021
  • 8 min read

La primera fase del proyecto se centra en la recopilación de datos que serán utilizados en los algoritmos de inteligencia artificial. Los datos se recopilaron de diversos perfiles de la red social Instagram. Con los datos recopilados se ejecutaron cuatro algoritmos de Inteligencia Artificial (IA), siendo estos el Cyclegan, el Stylegan, el Resnet y el VQGAN + CLIP.

Cyclegan

El primer proceso que utilizó inteligencia artificial, usó el algoritmo del Cyclegan. En esta arquitectura de CycleGAN simplificada se parte de una imagen A y otra imagen B. La imagen inicial A tiene dos rutas posibles: La primera opción es ir al Discriminador A para ser evaluada. La segunda opción es ir al Generador A, creado en base a B, donde se traduce al dominio de la imagen B, y, por ende, es evaluada por el Discriminador B. Después de esta evaluación, el Generador B la traduce de nuevo al dominio A para ser reconstruida como era al principio. Así entra en un nuevo ciclo donde será evaluada de nuevo por el Discriminador A. El proceso se repite para la imagen de entrada B.

Fuente: Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks Jun-Yan Zhu, Taesung Park, Phillip Isola, Alexei A. Efros

Las imágenes resultantes del cycleGAN alimentado con las fotos públicas de Instagram se exponen en las siguientes infografías.

Las imágenes que se muestran a continuación exponen una muestra de los resultados obtenidos por un cycleGAN entrenado con dos conjuntos de imágenes extraídas de dos perfiles públicos de Instagram. El primer conjunto de imágenes contiene principalmente imágenes relacionadas con la representación gráfica de la arquitectura en forma de secciones arquitectónicos. El segundo conjunto de imágenes corresponde a un perfil dedicado a medicina y biología, que contiene en su mayoría imágenes de escáneres cerebrales e imágenes biológicas. Los resultados muestran como ambos conjuntos de imágenes se combinan para crear tanto imágenes biológicas que contienen características arquitectónicas, como dibujos arquitectónicos que imitan formas biológicas.

Resnet 50

El clustering es un método de análisis de información esencial. Se utiliza ampliamente en el campo del reconocimiento de patrones, extracción de características y cuantización vectorial (VQ), en la segmentación de imágenes, la aproximación de funciones y en el minado de datos. Este último permite explorar grandes bases de datos, de manera automática o semiautomática, con el objetivo de encontrar patrones repetitivos que expliquen el comportamiento de estos datos.

El clustering puede seguir un enfoque tanto supervisado como no supervisado, utilizando la información pre entrenada que ofrece Resnet 50. Como técnica de clasificación, el clustering permite identificar algunas estructuras inherentes presentes en un conjunto de objetos, basados en una medida similar. La utilización del algoritmo de clustering dentro de una red neuronal, permitió obtener una clasificación medida, de una muestra de cuentas públicas de instagram, basada en las características de las fotografías publicadas en esta red social. El resultado fue traducido en una nube de puntos 3D que representa la consistencia del contenido publicado y actúa como una huella digital del usuario.

StyleGan

El StyleGan es un modelo sin supervisión de Red Neuronal Generativa Adversaria (Generative adversarial networks) que puede producir imágenes de alta calidad. Utiliza un proceso similar a otros modelos GAN en los cuales un vector de ruido es codificado por un Neural Network que después es pasado al generador. El generador sintetiza en un proceso progresivo de baja resolución a alta resolución el estilo de las imágenes y sus características. Al final, este aprende a generar imágenes de alto nivel de detalle. Al haber entrenado este modelo, se puede atravesar el espacio de distribución que contiene la codificación de características de todas las imágenes mostradas anteriormente. A través de esta distribución espacial se puede obtener muestras que imitan las imágenes originales de la data. Finalmente, con todo lo obtenido se pueden realizar interpolaciones y a la vez generar nuevas imágenes.

VQGAN + CLIP

Dentro de la rama de inteligencia artificial, se encuentra el Deep Learning. Hasta el momento, en esta rama de IA, los métodos supervisados de clasificación de imágenes han demostrado su éxito con el entrenamiento de millones de imágenes en el cual miles de personas han dedicado horas para clasificar las imágenes de manera manual. Esta forma de generar data tiende a ser costosa y tiene limitaciones para escalar el proceso, lo cual significa que si deseas clasificar más imágenes necesitas contratar mano de obra para ello. Por ejemplo, si entrenas un RESNET para clasificar imágenes en una forma supervisada con 10 categorías, el modelo no va a generalizar y reconocer imágenes fuera del grupo que fue utilizado para entrenar.

Es en este momento, donde aparece el desarrollo de CLIP (Reentrenamiento de lenguaje e imagen contrastivo). Este modelo desarrollado por OpenAl trata de resolver el problema de generalización. Para hacerlo utiliza texto, como una descripción de la imagen, para crear un problema de contraste en el cual diferentes textos pueden describir la misma imagen. Ayudando y generando así a la representación robusta de clasificación de imágenes. En vez de depender de un texto y categoría singular, ahora varias palabras pueden ser utilizadas para determinar y describir una imagen. Al unir la descripción y la imagen, el modelo CLIP puede entender más conceptos generalizados y detalles que pueden ayudar a poder generalizar a imágenes fuera del dataset original.

¿Cómo funciona? CLIP junta las imágenes y el texto utilizando probabilidades. La imagen y texto que son más similares van a tener una alta probabilidad. Por otro lado, los que son más diferentes van a tener una probabilidad más baja. Por ende, se le llama un método contrastivo, ya que compara las probabilidades de cada representación para encontrar la mejor. Después de haber entrenado CLIP se puede utilizar para generar una descripción de una imagen.

¿Cómo se puede utilizar CLIP para generar nuevas imágenes? En primer lugar, los modelos generativos requieren una parte para aprender sobre la distribución de las imágenes. Este proceso comienza con una imagen de ruido y después esta imagen de ruido es comparada a una imagen real hasta que el proceso iterativo pueda cambiar la imagen generada a una imagen real. Para el método utilizado, se combinó un modelo generativo llamado VQGAN (vector quantized generative adversarial network) con CLIP para generar imágenes que son condicionadas por el texto que se les da.

Después de este proceso, se tiene todas las imágenes codificadas por el VQGAN y se pueden utilizar para ser pasadas por CLIP y generar una descripción de la imagen. Entonces, la siguiente pregunta sería: ¿Cómo se hace para generar una imagen basada en el texto que se le da? Primero, se brinda un texto que es codificado con CLIP mediante una representación. Luego, se trabaja con el VQGAN para que genere una imagen, la cual es procesada por CLIP y con lo cual, se consigue generar una descripción que puede ser comparada. Ahora que ya se posee el texto, que el proyecto buscaba que se genere, y el texto que CLIP ha generado de la imagen, se puede realizar un proceso iterativo de comparación hasta que las diferencias de los textos disminuyan notablemente. Con este método se está guiando la generación de la imagen con el texto.

¿Cómo funciona VQGAN?

VQGAN es un método que utiliza la combinación de Transformers y CNN(Convolutional Neural Network) para codificar imágenes y poder aprender a generarlas en una forma robusta y expresiva adaptable a varias condiciones. Para empezar, una imagen es codificada por un CNN que captura características locales. Después, estas características son cuantificadas, es decir convertidas en pequeños bloques que representan una parte de la imagen. Luego, estas partes son organizadas en cierto orden, logrando que se describa a la imagen como si fueran palabras en una oración. Aquí el modelo Transformer, que es utilizado para codificar texto y hacer predicciones de texto, es introducido para tomar las partes ordenadas de la imagen y generar la siguiente parte. De esta forma el Transformer codifica una representación de partes de la imagen que genera la posibilidad de predecir partes si se esconden las otras. Después de tener la representación predicha por el Transformer se organizan las partes de tal modo que el CNN las pueda reconstruir y luego este discriminador comunica que partes de la imagen son reales o falsas. En otras palabras, si las partes corresponden a la imagen que se quiere reconstruir. Finalmente, este proceso es iterativo hasta que las imágenes producidas sean más parecidas a las imágenes originales. Ahora, cuando se tienen todas estas imágenes codificadas por el VQGAN se pueden utilizar esas imágenes para pasarlas por CLIP y generar una descripción de la imagen.

¿Entonces cómo se hace para generar una imagen basada en el texto que se le da?

Primero se le da un texto que es codificado con CLIP en una representación y se genera con el VQGAN una imagen que también es procesada por CLIP para generar una descripción. Ahora que se tiene el texto que se requería que se genere, y el texto que CLIP ha generado de la imagen producida, se puede realizar un proceso iterativo de comparación hasta que las diferencias de los textos disminuyan. En resumen, en este método se está guiando la generación de la imagen con el texto, y sus resultantes se exponen en la parte del Futuro del proyecto.

Disfruta la experiencia inmersiva

El Poder de la Data
Arriba