viernes, 7 de mayo de 2021

Modelos generativos, autocodificadores variacionales y el ingenio humano

En el post anterior daba algunas ideas básicas de los modelos generativos de deep learning, unos modelos que permiten, por ejemplo, la creación de fotografías realistas de personas...que nunca han existido.

A pesar de que ya la inteligencia artificial nos había sorprendido con sus enormes capacidades en materia, por ejemplo, de tratamiento del lenguaje humano expresado por voz, la creación, aparentemente desde la nada, de una imagen, o un vídeo, o música, o texto, parece caer de lleno en la creatividad y la, digamos, 'verdadera inteligencia'. Y, a bote pronto, parece muy difícil imaginar cómo puede ser un algoritmo capaz de hacer eso.

Y, sin embargo, es posible, es lógico y, casi, casi, simple. Simple, por supuesto, en su idea base, que no en el desarrollo detallado de los algoritmos.

Alguna idea había ya en el artículo anterior pero en este post quiero ampliarlo y clarificarlo un poco más con el caso de los autocodificadores variacionales ('variational autoencoders') que encuentro muy bien descritos en el libro 'Generative Deep Learning: Teaching Machines to Paint, Write, Compose and Play' de David Foster.

Los autocodificadores variacionales son un tipo de redes neuronales compuestas de dos partes, casi dos redes neuronales por si mismas:

  • La red codificador: que toma un dato de entrada, típicamente una fotografía, es decir, un vector de muy alta dimensionalidad, y da como resultado un vector de mucha más baja dimensión que contiene, de alguna manera, ciertas características (bordes, ángulos, formas) que resumen y definen la imagen original. Un codificador que, en el caso de imágenes se suele basar en redes de convolución.

  • La red decodificador: que toma como entrada un vector de baja dimensionalidad, con las características que definen, según el ejemplo anterior, una fotografía. Y como salida, debe producir esa misma fotografía. Y un decodificador que, en el caso de imágenes, se suele basar en redes de convolución traspuestas.



Durante el entrenamiento, se busca que la diferencia (cuantificada mediante una función de pérdida) entre la fotografía de entrada y la fotografía de salida, sea lo menor posible. Si lo conseguimos, y lo cierto es que se consigue, tendremos un codificador capaz de captar las características esenciales de la fotografía y un decodificador capaz de construir una fotografía con base a esas características esenciales, una fotografía que, además, de alguna forma tiene el mismo estilo, la misma naturaleza que la original. Ese mismo estilo, esa misma naturaleza, expresado de forma matemática quiere decir que ambas fotografías, la de entrada y la de salida, responden a una misma distribución de probabilidad subyacente.

Vale, pero ¿y cómo se construye ahora una fotografía completamente nueva correspondiente a una persona, animal u objeto que no existe realmente y que la red no ha visto jamás?

Pues es casi sencillo: una vez que ya la red está entrenada, nos olvidamos del codificador y nos centramos en el decodificador. No tenemos más que ponerle como entrada a ese decodificador un vector de características, un vector que, ahora, podemos haber generado de manera absolutamente aleatoria.

Y... ¡voilá! el decodificador dará como resultado una fotografía realista, del mismos estilo y naturaleza (misma distribución de probabilidad subyacente) que las usadas en el entrenamiento... pero con un contenido completamente nuevo. 

¿No es ingenioso? ¿No es, si se me permite expresarlo así, 'una pasada'?

A mi, descubrir el mecanismo interno de los modelos generativos, me supone satisfacer una curiosidad intelectual y me ofrece un innegable interés técnico. Pero aparte de eso, me lleva a otro tipo de reflexión. 

Cuando vemos en funcionamiento los algoritmos de inteligencia artificial más sofisticados, más avanzados, nos quedamos con la sensación de estar ante una realidad casi autónoma y muy inteligente, pero lo cierto es que lo realmente inteligente no son esos algoritmos, sino lo que hay por detrás, la inteligencia humana de quien ideó y diseñó el algoritmo tan ingenioso como el comentado.

La inteligencia artificial, en ese sentido, si algo hace, es resaltar y enaltecer el propia inteligencia e ingenio humanos.


No hay comentarios:

Publicar un comentario