Cuando hablamos de redes GANs (Generative Adversarial Network) a todos nos viene a la cabeza las plataformas de generación de rostros como Thispersondoesnotexist.com, que han tenido una importante difusión en la red como ejercicio de estilo de lo que una IA basada en este tipo de redes neuronales es capaz de hacer.

De manera recurrente, han ido apareciendo modelos capaces de generar rostros, combinar características o, incluso, generar escenas creíbles sin intervención humana y con una gran profusión de detalles que las hacen prácticamente indistinguibles de imágenes reales. Por normal general se trata de modelos con un funcionamiento de “caja negra” en los que la posibilidad de intervención sobre las diferentes características a nivel de los nodos de la red neuronal es muy limitado. 

Abundando en el uso de generación sintética de imágenes, podemos encontrar proyectos que van un poco más allá y consiguen modificar las dimensiones en distintos nodos de la red, asignando distintos pesos a determinadas características en la formación de la imagen. En el siguiente vídeo se pueden ver cómo, interviniendo en estas dimensiones, podemos cambiar dinámicamente el resultado de la imagen sintética en base a unas características determinadas:

Para la obtención de estos resultados se utiliza una TL-GAN (transparent latent-space GAN) disponible en GitHub donde se encuentra el proyecto documentado. Esta posibilidad de modificación, unida a las propias características inherentes a las redes GAN, hace que su uso, más allá del ejercicio de estilo de la generación de rostros, resulte muy interesante para su aplicación en diversas áreas.

Pero veamos cómo funcionan.

De manera somera, podríamos decir que las redes GANs funciona con dos redes neuronales:

  • Una red generativa que ordena pixeles, es decir, genera “manchas”
  • Una red de validación que aprueba o rechaza dichas manchas en base al parecido que tengan con las imágenes con que ha sido entrenada.

Es decir, la GAN sólo arrojará un resultado válido de aquellas imágenes generadas que se parezcan a las utilizadas en el set de datos de entrenamiento de la red de validación.

En la siguiente figura se explica de manera esquemática este funcionamiento:

Ejemplo de redes GANs

Cabe señalar que, además, el proceso iterativo de la validación de imágenes permite que la red de validación pueda seguir aprendiendo mediante refuerzo, optimizando los resultados y acercándose cada vez más a imágenes precisas.

Ahora bien, ¿qué uso le podemos dar a estas redes?

Este modo de funcionamiento nos permite influir en los resultados en varios aspectos. Por una parte, cuando hablamos de entrenamiento de redes neuronales se suele poner mucho foco en la importancia de la eliminación de sesgos en los sets de entrenamiento. En este caso, la introducción “a propósito” de ciertos sesgos se convierte en una ventaja: si entrenamos la red con imágenes que tengan características comunes y presentes en todas las imágenes, la red de validación sólo dará como buenas imágenes que la contengan. 

Veamos un ejemplo.

Imaginemos que pretendemos generar imágenes sintéticas de calzado deportivo (por alejarnos de la generación de rostros). En este caso podemos utilizar imágenes de calzado deportivo en el entrenamiento que contengan elementos comunes tales como el logotipo de la marca, el número de costuras, la longitud de la lengüeta o zapatillas que siempre tengan cordones. De este modo, las imágenes validadas siempre contendrán estos elementos. La introducción de estos sesgos permitiría a la red aprender estilos concretos ciñéndose a la generación de nuevos modelos de calzado deportivo con la presencia de estas dimensiones que hemos introducido en el entrenamiento de la red de validación. No resulta difícil imaginar que este aprendizaje de estilos se puede aplicar para la generación de todo tipo de diseños (arquitectónicos, industriales, paisajísticos, etc.)

Esta cualidad, por sí misma, permitiría una aplicación directa en cualquier tipo de proceso de diseño. Si, además, modificamos la red para poder variar las dimensiones (logo de marca de distinto tamaño, más o menos costuras, número de cordones, etc.) obtendríamos una herramienta de generación de bocetos que, siendo fiel a un estilo, facilita la generación de dichos diseños acortando notablemente los tiempos de ideación de los mismos.

Además de la aplicación directa de las redes GANs en procesos de diseño, la posibilidad que nos ofrece la generación de imágenes sintéticas en procesos más complejos, concretamente en aquellos en que la necesidad de grandes volúmenes de imágenes suponen un problema, les aporta una grandísima utilidad.

Como siempre, estos detalles se entienden mejor con un ejemplo: En numerosos proyectos de reconocimiento de objetos, características o entidades a través de la imagen se necesitan grandes cantidades de estas para que la red tenga una precisión adecuada y, en ocasiones, este gran volumen supone un problema importante sobre todo cuando la obtención de imágenes reales es difícil o requieres de preparaciones complejas. Pensemos en un sistema de conteo de microorganismos (bacterias, virus, hongos, etc.) en un cultivo.

La obtención de imágenes dependería de los tiempos del cultivo, la disponibilidad de equipamiento adecuado (microscopios, macros, etc.) haciendo que la dificultad o los plazos de obtención de un set de imágenes en el rango de miles de fotos pudiera poner en peligro la viabilidad del proyecto. Las redes GANs nos permitirían, a partir de un número finito de imágenes, la generación de un gran volumen de imágenes que contengan las características necesarias para el entrenamiento o test de redes de reconocimiento, conteo, o extracción de características de una manera muchísimo más rápida.

Por supuesto, en ambas aplicaciones habría que poner especial atención al overfitting derivado de la introducción específica de sesgos y la supervisión de los positivos (imagenes validadas). Sin embargo, suponen una ayuda importante en términos de ahorro de tiempo y viabilidad de los proyectos optimizando recursos y aportando un importante valor añadido, tanto en su aplicación directa (procesos de diseño), como en su uso para la preparación de sets de datos sintéticos.

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.

ACEPTAR
Aviso de cookies
Share This