Cómo aprende una IA a pintar como Leonardo da Vinci
Explicamos la estrategia competitiva clave que permite a una Inteligencia Artificial aprender a pintar como un gran maestro. Redes neuronales, falsificaciones, originalidad, y casos de uso.
La película Atrápame si puedes cuenta el duelo entre un joven falsificador de cheques de viaje, Leonardo DiCaprio, y un agente del FBI, Tom Hanks, obsesionado con atraparle.
El personaje de DiCaprio comienza haciendo falsificaciones a pequeña escala, pero poco a poco va mejorando sus habilidades, lo que le lleva a aumentar su tren de vida viajando por todo el mundo. Por su lado, Hanks tiene que esforzarse cada vez más por detectar los cheques de viaje falsos para conseguir atraparlo.
Quizás sorprenda a algunos, pero este juego entre el gato y el ratón es precisamente el mecanismo que utilizan las inteligencias artificiales para aprender a crear imágenes, ya sean dibujos, pinturas o fotografías.
El falsificador y el detective
El dúo falsificador y detective está en el centro de uno de los papers claves para el desarrollo de la generación de imágenes por inteligencia artificial: Generative Adversarial Networks.
In the proposed adversarial nets framework, the generative model is pitted against an adversary: a discriminative model that learns to determine whether a sample is from the model distribution or the data distribution. The generative model can be thought of as analogous to a team of counterfeiters, trying to produce fake currency and use it without detection, while the discriminative model is analogous to the police, trying to detect the counterfeit currency. Competition in this game drives both teams to improve their methods until the counterfeits are indistiguishable from the genuine articles.
El paper describe un proceso basado en el enfrentamiento de dos redes neuronales:
Una que actúa de Generador, configurada para crear falsificaciones
Una que actúa de Discriminador, configurada para detectar si lo que le entrega el Generador es real o es una falsificación
A grandes rasgos, el proceso de aprendizaje funcionaría así:
1.- Preparación
En primer lugar creamos dos redes neuronales definiendo parámetros como el número de neuronas y capas que querríamos.
Una red neuronal es un tipo de programa informático que intenta imitar el funcionamiento del cerebro humano. Está compuesta de neuronas artificiales, que actúan a su vez como pequeños programas, conectadas entre sí y organizadas por capas.
De inicio, una red neuronal es un lienzo en blanco a la que podemos entrenar para realizar distintas tareas, como por ejemplo, crear falsificaciones y detectarlas.
También preparamos un conjunto de imágenes reales que utilizaremos en la fase de entrenamiento.
2.- Entrenamiento
Una vez creadas las redes neuronales, comenzamos su entrenamiento:
El Generador comienza creando una serie de falsificaciones al azar
El Discriminador recibe el conjunto de falsificaciones mezcladas con imágenes reales del conjunto de datos preparado con anterioridad
Por cada imagen, predice si es real o falsa. La red compara entonces su pronóstico contra la realidad:
Si acierta, refuerza los caminos neuronales que han participado en esa decisión
Si falla, los debilita
Finalmente el Discriminador devuelve su evaluación sobre cada falsificación al Generador
El Generador recibe la información, y del mismo modo, se reconfigura a sí mismo:
Refuerza los caminos que han producido imágenes más realistas
Debilita aquellos que han producido falsificaciones que el detective ha identificado fácilmente
Este intercambio se repite hasta que el Generador es capaz de producir falsificaciones tan realistas que el Discriminador es incapaz de distinguirlas de la realidad.
3.- Resultado
El resultado del proceso de entrenamiento son dos modelos especializados en realizar sus respectivas tareas, y que podremos utilizar tanto como para generar imágenes realistas como para identificar falsificaciones.
Las claves del sistema de aprendizaje
Es importante destacar que en este modelo las dos redes mejoran a cada pasada. El Discriminador no es estático, sino que con cada iteración, su sistema de detección mejora. Como resultado, no obtenemos tan sólo un Generador de falsificaciones de alta calidad, sino también, un excelente Discriminador de falsificaciones.
También es interesante apuntar que una vez entramos en la fase de entrenamiento, todo el sistema aprende sin intervención humana. No hay un programador definiendo un algoritmo que decida qué observar en una imagen para detectar si es real o es una falsificación. Las propias redes se reconfiguran a sí mismas en cada pasada a base de comparar sus resultados con la realidad.
Una última derivada de cómo una IA aprende a crear imágenes es que, con los suficientes datos y potencia de cálculo, estos sistemas serán inevitablemente capaces de producir falsificaciones indistinguibles de la realidad. Como muestra, podemos ver la evolución de Midjourney, la herramienta de generación de imágenes de referencia entre su primera (2022) y su quinta versión (2023).
¿Puede una IA crear contenido original?
He utilizado mucho el término falsificación a lo largo de todo el artículo. De hecho, como hemos visto, hasta aparece en el paper fundacional. Lo que me lleva a la siguiente pregunta: ¿Son todo copias? ¿Es la IA capaz de crear algo original?
Como todo, depende de lo que entendamos por original y copia. Para empezar, una red neuronal no puede crear nada de la nada. Por su propia naturaleza sólo puede crear imágenes a partir de los datos con los que ha sido entrenada. Así, por ejemplo, una red neuronal entrenada únicamente con fotos de gatos, difícilmente podrá generar imágenes de delfines.
Por otra parte, una IA sí es capaz de producir originales, en el sentido de que crea imágenes que no estaban en el conjunto de datos de entrenamiento, sino que derivan de lo que la IA ha aprendido de él.
Por ejemplo, si entrenamos a una IA con material de Leonardo da Vinci, la red neuronal es capaz de extraer las claves de la técnica de las pinturas del autor y aplicarlas cuando le pedimos crear una imagen nueva:
La composición: cómo los personajes y los objetos aparecen en sus cuadros
El uso del pincel: la forma específica en que Leonardo utilizaba su pincel
La paleta de colores: los tonos de colores habituales en sus obras
El uso de la luz: cómo usa la luz y las sombras para crear profundidad
¿Copiar el estilo es un plagio? No lo sé, la verdad. La situación se complica cuando vemos copiar a artistas vivos, como por ejemplo, el estilo tan característico de las obras de Hayao Miyazaki y Studio Ghibli.
La decisión sobre la originalidad de las obras generadas por una IA se la dejaré a los grandes ganadores de la revolución de la IA generativa: los abogados especializados en temas de propiedad intelectual.
Conclusiones
A lo largo de esta entrada hemos explicado cómo una IA aprende a pintar como un gran maestro mediante un sistema competitivo entre dos redes neuronales.
Al igual que en un duelo entre un falsificador y un detective, el Generador y el Discriminador se desafían mutuamente, impulsando a ambos a perfeccionarse en cada iteración.
Este mecanismo permite que las IA no solo copien, sino que también desarrollen la capacidad de crear imágenes y contenidos capturando la esencia de la técnica del artista y que son prácticamente indistinguibles de la realidad.
Nos hemos centrado en obras de arte, pero este sistema aplica a cualquier tipo de contenido como fotografías, dibujos o imágenes 3D, e incluso a otros dominios como el audio o el vídeo. Sus posibilidades son enormes, y por nombrar tan sólo algunos casos de uso, nos permitiría:
Generación de Imágenes: Crear nuevas imágenes realistas similares a un conjunto de datos de entrenamiento.
Transposición de imágenes: Convertir imágenes de un dominio a otro (por ejemplo, pasar de un boceto a una fotografía hiperrealista).
Upscaling: Mejorar la resolución y la calidad de imágenes de baja resolución.
Inpainting: Rellenar partes faltantes o corruptas de una imagen.
Transferencia de estilo: Aplicar el estilo artístico de una imagen al contenido de otra.
Generación de datos sintéticos: Crear imágenes sintéticas para ampliar y diversificar conjuntos de datos de entrenamiento.
Generación de objetos 3D: Crear modelos tridimensionales a partir de imágenes bidimensionales.
Generación de música y audio: Sintetizar nuevas pistas musicales o señales de audio.
Detección de anomalías: Identificar patrones inusuales o valores atípicos en los datos.
Y otros muchos más, pero hay que ir cerrando la entrada. Como siempre, espero que la hayáis disfrutado. Un abrazo, y ¡hasta el próximo domingo!
Excelente nota. O sea, hay salvación para el Ecce Homo de Borja.