HomeTecnologíasLa tecnología detrás de los deepfakes

La tecnología detrás de los deepfakes

deepfake

Por Alejandro Pérez Blanco, artista de VFX. En el año 2018 comenzó a experimentar la aplicación de Inteligencia Artificial en el entorno profesional. Desde entonces ha participado en unos 30 proyectos en cine, TV, internet, publicidad y corporativos, realizando todo tipo de deepfakes.

 

Una breve iniciación
Pongamos que un médico se propone crear un diccionario de síntomas para diagnosticar cualquier enfermedad. Recopila miles de cuadros clínicos y empieza a escribir:
“si tiene fiebre, pérdida de apetito y granos rojos –> varicela”

Y así con todas.

Tras dedicarle algún esfuerzo, descubre que puede facilitar su trabajo si crea un gráfico de puntos conectados, ahorrando mucho tiempo y espacio (Figura 1).

 

deepfake

Figura 1

 

Pero llega un matemático, ve su gráfico y le dice “esto podría hacerlo un ordenador. Si convertimos los diagnósticos en números, la máquina puede aprender mediante ensayo y error.” La esencia de este sistema es que vaya probando conexiones al azar, y al acertar, esas conexiones se refuercen, y al equivocarse, se debiliten hasta desaparecer.

Esta es la base del Machine Learning. Los matemáticos empezaron a pensar en ello cuando Santiago Ramón y Cajal vio, por primera vez en la historia, las neuronas a través del microscopio. Se pasó de ver el cerebro como una misteriosa máquina de pensar a entenderlo como una . red de neuronas que, interconectadas, son de algún modo capaces de pensar, reconocer el mundo que les rodea, llegar a conclusiones y emprender acciones. El cómo seguía siendo un misterio pero ver esa red abrió un sinfín de puertas al progreso. Física, química, medicina… y los matemáticos llevan desde entonces intentando traducir a números todo lo que vamos conociendo de las neuronas. El Machine Learning crea algoritmos como los que podría inventar un matemático o un informático, pero en lugar de programarlos él mismo, lo que hace es diseñar una simulación digital de un cerebro en blanco para ver cómo se llena de contenido. Porque un cerebro es un ordenador que no se programa, se entrena (Figura 2).

 

Deepfake

Figura 2. Una máquina puede aprender a conectar valores dándole distintos grados de importancia a cada uno. Es la base de la Inteligencia Artificial y creemos que las neuronas humanas funcionan de manera parecida.

 

En nuestro ejemplo, cuando el matemático termina su sistema para entrenar su modelo, parece dar resultados prometedores, pero incompletos. El médico los examina, hace unas pruebas y se da cuenta de un problema: “falta correlación entre síntomas”, le dice. “Si pesas 90 kg. no es lo mismo que midas dos metros que un metro cincuenta, pero este esquema no lo entiende.” El matemático le da vueltas y encuentra la manera de crear una serie de puntos en medio y que el aprendizaje de ensayo y error vaya goteando hasta la capa intermedia. “Esta columna de puntos servirá para crear combinaciones nuevas de síntomas”, le contesta.

Pero también le advierte “Esta fila central es muy difícil de descifrar. Puede acertar, puede equivocarse… puede pasar cualquier cosa. Puede acertar por los motivos equivocados y puede descubrir cosas nuevas que tú no sabías. En el momento en que metes una capa de neuronas en medio, este cerebro electrónico se convierte en una caja negra.”

Esas capas de neuronas oscuras, profundas, difíciles de entender a simple vista, son lo conocemos como Deep Learning. Y el Deep Learning es lo que más se parece al cerebro humano que hemos conseguido crear hasta ahora, y eso sin entender bien de verdad cómo se conectan dos neuronas humanas entre sí… pero el hecho de que podamos sacar resultados de ellas indica que quizá vayamos por el buen camino (Figura 3).

 

deepkafe

Figura 3. El Deep Learning consiste en colocar capas intermedias que no podemos comprender a simple vista. La máquina aprende mediante ensayo y error y comienza a sacar conclusiones por su cuenta.

 

Tras muchos años de pruebas y reveses, ahora la Inteligencia Artificial vive una explosión sin precedentes. Se debe al desarrollo paulatino de las matemáticas detrás de esas redes neuronales, al Big Data (cómo aprovechar las grandes colecciones de datos que tienen distintas instituciones y empresas) y a los caminos que ha emprendido la tecnología para procesamiento en paralelo (3d, videojuegos, minar bitcoins).

 

Modelos de Deep Learning

La ciencia se ha comportado en el terreno de la IA de manera bastante ejemplar. Algunos de los principales agentes interesados en el terreno, como Google, Facebook o NVidia, desarrollaron tecnologías propias y las liberaron para que las usara gratuitamente todo el mundo. Y el mundo respondió: universidades, centros de investigación, empresas e individuos comenzaron a publicar nuevas maneras de conectar neuronas digitales entre sí, y conectarlas a imágenes y sonido, al lenguaje, a la meteorología, diagnósticos médicos, resistencia de puentes o estructura de proteínas.

Luego, quien encuentra una utilidad para estos hallazgos, los recopila y desarrolla programas propios. En esencia, la tecnología que ha analizado la composición del coronavirus es la misma que la que detecta si subes un desnudo a Instagram.

Veamos algunos ejemplos muy simplificados de modelos de Inteligencia Artificial aplicados al mundo de la imagen (Figura 4).

 

deepfake

Figura 4

 

El primer gran éxito de la IA actual fue un detector/clasificador. Si conectamos los píxeles de una imagen a una red neuronal, le añadimos varias capas profundas y acabamos con un par de opciones de salida, podemos crear un clasificador de imágenes. ¿Perro o gato? ¿Porno o no porno? ¿Tumor benigno o maligno? Y no tienen por qué ser dos, se han creado detectores con cientos o miles de salidas, capaces de detectar todo tipo de categorías distintas. A través de una estructura que analiza las diferencias entre píxeles adyacentes (redes neuronales convolucionales, en inglés CNN), cada nueva capa supone un grado mayor de abstracción, de modo que las primeras capas pueden detectar si hay líneas y esquinas, luego formas redondeadas, luego círculos y luego se confirma si por ejemplo éstos corresponden a pupilas, pelotas, ruedas… Unas capas más y la máquina consigue crear categorías. Y siempre con ese ensayo y error, si acierta, se mantiene la estructura. Si falla, se le fuerza a cambiar las conexiones.

En sentido inverso, si partimos de unos pocos números y le damos como misión producir imágenes con ellos podemos crear un generador de imágenes, basadas en valores iniciales que indicamos en las primeras neuronas (Figura 5).

 

deepfake

Figura 5

 

 

¿Pero cómo se puede entrenar a base de ensayo y error un modelo como éste? Aquí es donde entran los apasionantes avances de los últimos años. Para juzgar si acierta o falla, se le añade al final un detector como el que acabamos de ver. Al detector se le alimenta con imágenes reales y con imágenes del generador aleatoriamente, convirtiendo el cerebro virtual en un juego del gato y el ratón. Si el detector caza una falsificación, el generador debe aprender. Si el falsificador engaña al detector, es el detector el que modifica su estructura. Paulatinamente, a través de millones de intentos, se llegan a crear imágenes totalmente nuevas cuya calidad depende de la calidad que hayan alcanzado generador y detector (Figura 6).

 

deepfake

Figura 6. Caras generadas por la web thispersondoesnotexist.com, mediante un complejo sistema de generador y detector, llamado redes generativas adversarias, en inglés, GAN. La versión más potente que existe de este modelo fue creada por NVidia. Pese al enorme avance de los últimos años, aún pueden detectarse algunos defectos en pupilas y dientes.

 

Autoencoder: Si combinamos al revés las idea de un detector y un generador, nos sale una estructura con un cuello de botella. Se parte de una imagen, pasamos la información por neuronas hasta crear un centro con pocas y luego forzamos a la máquina a reconstruirla. El detector en este caso no atiende a criterios que le hayamos dicho nosotros (categoría perro o categoría gato) sino que crea los suyos propios de manera automática. El nombre procede de esta idea de crear codificaciones de datos por sí solo. La primera parte suele llamarse codificador y la segunda decodificador. Y poco a poco el decodificador aprende a reconstruir las imágenes que se le piden y además a crear imágenes nuevas, si se alteran los números que están justo en el cuello de botella (Figura 7).

 

deepfake

Figura 7

 

Llegan los deepfakes

El autoencoder se ideó para intentar comprimir información, pero luego se vio que no era más eficaz que formatos como el jpeg. El problema era que no funcionaba bien como herramienta general, pero sí daba resultados aceptables trabajando con categorías de imágenes específicas, como nubes, coches o caras. Hace diez años ese modelo se usaba como ejemplo en cursos de Inteligencia Artificial porque era muy sencillo de entender, pero en la práctica no se le encontraba utilidad. Hasta que alguien dio con la manera de alterarlo para que aprendiera dos caras distintas y nacieron los deepfakes. De hecho, ese desconocido era un usuario anónimo de Reddit cuyo nombre era, precisamente,“deepfakes”.

La Figura 8 muestra la estructura que proponía.

 

deepfake

Figura 8

 

 

El codificador aprende a leer dos caras. Pero en el cuello de botella la información se bifurca en dos decodificadores, de modo que si se le da la cara A, sólo se entrena el decodificador A para reconstruirla. La teoría es que, si se entrena lo suficiente, en el cuello van a concentrarse datos como la dirección de la mirada, el giro de la cabeza, la altura de mandíbula… y esos datos valdrán tanto para una cara como para otra, el decodificador A llega a conclusiones distintas “sobre dónde colocar ese lunar de la mejilla si la cara sonríe” que el decodificador B, de modo que uno y otro se vuelven intercambiables. Ésa era la teoría. Y funcionó.

El primer sitio donde se aplicó masivamente fue la pornografía. Surgió rápida e inesperadamente un mercado enorme de gente dispuesta a pagar por obtener vídeos acorde con sus intereses y muchos programadores dispuestos a probar suerte. Poco a poco se empezaron a aplicar investigaciones publicadas por laboratorios de IA de universidades tecnológicas. En la actualidad, las mejores innovaciones de acceso público están recogidas por Ivan Perov en DeepFaceLab, un programa que utiliza la tecnología de Google, y disponible en Github y algunos estudios han (hemos) empezado a desarrollar soluciones privadas para agilizar el flujo de trabajo ante las dificultades que se descubren con la experiencia.

 

Los problemas de cambiar una cara

El objetivo de las grandes tecnológicas es crear y vender servicios automatizados con un solo clic. Por el momento su labor se está centrando en servicios para un usuario casual, que juega con su teléfono móvil, como los filtros de Instagram, el detector de caras o huellas, la optimización de la cámara, el etiquetado de fotos… La metodología de Facebook, Google, o Apple consiste en crear modelos complejísimos que requieren edificios enteros de ordenadores para entrenar durante semanas, y luego aspiran a que funcionen de manera universal para todos los usuarios con una calidad que encaje en la pantalla de sus móviles.

 

Por su parte, la última versión de Photoshop tiene herramientas experimentales de mayor calidad que ejecutan modelos de IA desde la nube para modificar la edad o la gestualidad en fotografías. Pero hoy, con la tecnología existente, no se puede crear un deepfake convincente con calidad broadcast pulsando un botón. Hay que entrenar un modelo propio y ese entrenamiento, para conseguir buenos resultados, requiere alta potencia tecnológica.

Las tarjetas gráficas de NVidia miden su capacidad al respecto en dos elementos principales: la memoria VRAM y los núcleos CUDA. La memoria que se necesita para trabajar con Inteligencia Artificial depende de la resolución de la imagen y del número de neuronas que queremos que tenga el modelo (por lo general, cuantas más, mejor). Por su parte, los núcleos CUDA se encargan de los cálculos matemáticos simultáneos de cada neurona y cuantos más haya más rápido irá el entrenamiento.

Ése es uno de los mayores problemas a los que se enfrenta la tecnología: el resultado mejora con modelos más grandes y con más resolución, pero la rapidez que requiere la televisión y la definición 4K que precisa el cine todavía están al límite tecnológico. Una tarjeta muy potente podrá trabajar con modelos pequeños muy rápido o con modelos grandes muy despacio.

 

deepfake

Deepfake terminado del Papa creado para la sección Entrevistas por la cara de El Intermedio.

 

En la sección Entrevistas por la cara de El intermedio, entre la grabación y la emisión de un sketch suele tardarse una o dos semanas, según la dificultad, y esto implica una coordinación y previsión que incluye también a los equipos de Vestuario, Fotografía y Maquillaje para encadenarlo adecuadamente con la retransmisión en directo, amén tener que preparar un guión que no caduque en ese tiempo. Desde Realización se planifica cada sketch por separado, combinando la escenografía y los tiros de cámara para minimizar problemas como que puede producir, por ejemplo, que la nariz sustituta sea más chata que la original y haya que reconstruir el fondo si El Gran Wyoming se pone de perfil, y estas planificaciones siempre procuran estar a favor de darle a los intérpretes la máxima libertad durante su trabajo.

 

deepfake

© HBO Nordic AB El actor y cómico Julian Genisson prestó su imagen para quitarle años a Manolo Solo en 30 Monedas.

 

En la serie 30 Monedas, con una postproducción en 4K, se realizaron 250 planos de deepfakes para rejuvenecer a dos protagonistas durante un flashback. Actualmente no existe una solución universal para proyectos de este tamaño y hubo que diseñar técnicas distintas para cada uno. Se tardó unos 5 meses, con parte de ese tiempo solapado entre el entrenamiento de una cara y la postproducción de otra. El trabajo en ficción lleva a necesidades que no se dan en un programa de humor en HD, como devolver el grano y la textura con la calidad exacta de los planos originales y producir un resultado en 10 bits logarítmicos listos para etalonaje. El realismo, en humor, a veces puede sacrificarse a favor de la comedia. En ficción, eso es inaceptable.

Además, la selección de caras con que se alimente el modelo puede modificar notablemente el resultado. Si sólo existen caras que miran hacia la izquierda, no puede hacerse un deepfake mirando hacia la derecha. Si no existen caras disponibles en 4K, no se puede crear un deepfake en 4K. Una carencia similar ocurrió con la serie. Eduard Fernández y Manolo Solo nos cedieron una amplia colección de imágenes de su juventud, pero ninguno de los dos encajaba. Con Eduard, ante el extraordinario cambio físico que desarrolló para el personaje, no funcionaban sus imágenes de joven, así que se trabajó en un modelo que buscara un punto intermedio entre su juventud y su fisionomía dentro de la serie. En el caso de Manolo, al tener imágenes antiguas de peor calidad y casi siempre con gafas, hubo que hacer un deepfake con un doble de imagen, diseñando un modelo que mantuviese las proporciones y facciones de Manolo en lo posible, pero manteniendo los rasgos de juventud del doble.

Y aquí llega el otro gran problema de los deepfakes: No existe un solo resultado. No hay una sola forma de entrenar. Se puede hacer de muchas maneras distintas, ya sea cambiando algoritmos de aprendizaje o alterando la colección de imágenes con que se alimenta. Y los resultados pueden salir mejor o peor, incluso producir problemas de rechazo en el espectador.

El cerebro humano tiende a acostumbrarse a las imperfecciones a medida que trabaja con ellas. Esto, para el técnico de VFX, crea un compromiso muy complejo, porque por un lado debe fiarse de su criterio y por otro desconfiar de él a medida que bucea en el mar de imágenes al que se enfrenta. Para proyectos de esta envergadura, es preciso diseñar un flujo de trabajo con incidencia en la supervisión, de modo que compañeros del proyecto poco acostumbrados a estas imágenes puedan aportar su criterio antes de presentarlo al director, que, al tener la visión original de la obra pero dividiendo su atención entre todos los departamentos de postproducción, se convierte en el juez perfecto.

Entrenar la IA esconde un oficio en sí mismo, casi artesano, de aprender a pedir a la máquina lo que queremos de ella. Es vital dedicarle tiempo a investigar las redes neuronales y adquirir experiencia, porque nuestros cerebros naturales también deben entrenarse a base de ensayos, pruebas y muchas equivocaciones para poder desarrollar una intuición sobre qué esperar de los cerebros artificiales.

ETIQUETAS:
MOOV y Brainstorm vi
La radio sudafricana