Taxonomía de las redes neuronales II: las arquitecturas

19/7/2023
AUTOR
Colegio de matemáticas Bourbaki

En una de las ediciones anteriores de nuestro boletín publicamos una taxonomía de las redes neuronales y nos concentramos en las distintas capas que se pueden utilizar. Este artículo es el segundo en esa serie de cuatro y ahora nos concentraremos en las distintas arquitecturas que existen para resolver problemas por medio de deep learning.

Sabemos que la distinción entre capas y arquitecturas podría ser un poco confusa para quienes se están acercando a estos modelos por primera vez, también es posible que no exista un consenso sobre la clasificación que les presentamos, sin embargo desde un punto de vista pedagógico creemos que es lo correcto.

No alt text provided for this image

En esta taxonomía de las arquitecturas hablaremos de las arquitecturas supervisadas, auto-supervisadas, generativa adversaria, transformer y de difusión.

Una red neuronal es una función matemática que se alimenta de un conjunto de variables explicativas para procesar una respuesta objetivo. Para diseñar una red neuronal existen cuatro operaciones que podemos utilizar de manera modular:

  1. Diseñar una arquitectura.
  2. Agregar una capa.
  3. Definir una función de error.
  4. Cambiar una función de activación.

¿Qué es una arquitectura?

No alt text provided for this image
Arquitecturas de redes neuronales

Las arquitecturas a su vez están compuestas por lo siguiente:

  • Las instrucciones que seguirá la información de X (variables explicativas) hasta llegar a Y (variables objetivo).
  • La elección de los registros que formarán al conjunto de entrenamiento, el cual denotaremos por S, en este conjunto también habrán dos variables que denotaremos por A y B.

Sobre el primer punto, algunos ejemplos de instrucciones podrían ser: ¿cuántas capas incluiremos? ¿cuáles funciones de activación utilizamos? ¿cuáles capas se agregarán?

A partir de ahora nos concentraremos en la segunda componente de las arquitecturas, para facilitar la lectura presentaremos un ejemplo de cada una de ellas.

Arquitecturas supervisadas

No alt text provided for this image

Esta es la arquitectura más común, en este caso la base de datos S con la que entrenaremos a la red neuronal está compuesta por la pareja (X,Y) de nuestras variables explicativas y objetivo, es decir X=A e Y=B.

... por ejemplo predecir impago.

Pensemos en un banco que tiene información demográfica sobre sus clientes, esta información son nuestras X. La variable default representa si cada uno de estos clientes dejará o no de pagar un préstamo, es decir la Y. En la arquitectura supervisada es necesario que el banco cuente con el histórico de algunos clientes que hayan caído en impago y otros que no lo hayan hecho, esto para construir a S.

Arquitecturas auto-supervisadas

No alt text provided for this image

A diferencia de las arquitecturas supervisadas, en este caso no se agregará a la base de datos S la información de la variable Y esto es por razones muy pragmáticas pues podría no ser viable tener una supervisión de nuestros registros. En lugar de la Y añadiremos a S información de nuestras mismas X=A.

... por ejemplo ChatGPT.

La mayoría de los Large Language Models incluyen una componente auto-supervisada, pensemos que X son todos los artículos de Wikipedia que existen, Y será un vector que codifique a los textos utilizando pocas coordenadas y nos permita comparar fácilmente cuando dos textos son similares.

La base de datos S no puede ser supervisada y en su lugar a todos los textos de Wikipedia se les esconderán algunas palabras, esto será nuestra A, las palabras que escondimos serán nuestras B. A las variables latentes de estas arquitecturas se les conocen como el encoder de la variable X.

Arquitectura generativa adversaria

No alt text provided for this image
GAN

Esta arquitectura es muy interesante y en inglés se conoce como Generative Adversarial Network. Nuestra variable X será constante y representará un tema, las variables Y serán ejemplos generados por una Inteligencia Artificial sobre el tema X. Para construir a A utilizaremos tanto un muestreo aleatorio como una base de datos con registros reales del tema X, en este caso las B señalarán cuáles son aleatorias y cuáles reales.

... por ejemplo generar obras de arte.

Hace algunos años la compañía Obvious vendió en Christie's una pintura generada por IA en 500,000 USD. En este caso nuestra variable X podríamos fijarla como el cubismo. Nuestras variables objetivo Y serán pinturas cubistas generadas por una IA. Para construir al conjunto S utilizamos una base de datos con dos tipos de registros, algunos de pinturas aleatorias generadas por una red (pensemos en ruido) y otras que sean pinturas cubistas, todas juntas serán nuestras variables A, a estas variables las etiquetaremos por B con un 1 si son pinturas reales y un 0 si son aleatorias.

Arquitecturas probabilistas de difusión

No alt text provided for this image
Difusión probabilista

Algunos ejemplos de estas arquitecturas son DALL·E 2, Midjourney o Stable Diffusion. En este caso la variable X será un texto escrito en lenguaje natural mientras que la Y será una imagen sobre este texto.

Para construir a S es necesario utilizar una base de datos de imágenes junto con textos que estén relacionados, el enfoque ingenuo de utilizar a los textos como variable A y a las imágenes como variable B no tiene ninguna esperanza de funcionar por un problema de ovefitting. En su lugar es necesario construir una base de datos en la que nuestra variable A es efectivamente el texto pero la variable B es el ruido que obtenemos al añadir colores aleatorios a nuestras imágenes.

Arquitecturas transformer

No alt text provided for this image
Transformer

Nuevamente ChatGPT es el ejemplo perfecto para este tipo de arquitectura, en este caso claramente nuestra variable X será el prompt mientras que la Y sería la respuesta del modelo, al igual que en la arquitectura anterior el modelo sobre ajustaría rápidamente si definimos ingenuamente a la base de datos S.

La arquitectura de un transformer es muy parecida a la de una auto-supervisada sin embargo se incorporan otras fuentes de información que en las variables A y B como la posición para mejorar el entrenamiento.

Oferta académica