Constituyen el motor de prácticamente todas las aplicaciones modernas de redes neuronales. No obstante, hay algunas variantes interesantes y potentes que han dado lugar a grandes avances en el aprendizaje profundo en numerosos ámbitos.
Un ámbito en el que el aprendizaje profundo ha alcanzado un éxito espectacular es el del procesamiento de imágenes. El clasificador simple que estudiamos en profundidad en la sección anterior tiene muchas limitaciones, pues, como pudiste observar, ni siquiera permitía clasificar correctamente todas las caras sonrientes. En principio, añadir más capas a la red y utilizar la retropropagación para aprender los pesos resuelve el problema, aunque surge otro: el número de pesos se vuelve excesivamente grande, y, en consecuencia, para alcanzar un grado de precisión satisfactorio, puede hacer falta una cantidad de datos de entrenamiento tan grande que no sería realista.
Por suerte, hay una solución muy elegante para el problema del exceso de pesos: un tipo especial de red neuronal, o, más bien, un tipo especial de capa que puede incluirse en una red neuronal profunda. Este tipo especial de capa se denomina capa convolucional. Las redes que integran capas convolucionales se denominan redes neuronales convolucionales (RNC). La propiedad fundamental de estas capas es que pueden detectar características de las imágenes como puntos claros u oscuros (o de un color específico), bordes en diversas orientaciones, patrones, etc., y con ello es posible detectar características más abstractas como las orejas de un gato, el hocico de un perro, el ojo de una persona o la forma octogonal de una señal de stop. Por regla general, sería complicado entrenar una red neuronal para que detectara tales características a partir de los píxeles de la imagen de entrada, puesto que las características pueden aparecer en distintas posiciones, orientaciones y tamaños dentro de la imagen. En efecto, el desplazamiento del objeto o del ángulo de la cámara modificaría drásticamente los valores de los píxeles, a pesar de que para nosotros el objeto siguiera viéndose igual. Para aprender a detectar una señal de stop con todas estas variaciones se requerirían cantidades ingentes de datos de entrenamiento, ya que la red solo detectaría la señal si se dieran las mismas condiciones que en los datos de entrenamiento. Así, por ejemplo, solo se detectaría una señal de stop en la esquina superior derecha de la imagen si los datos de entrenamiento incluyeran una imagen con la señal de stop en la esquina superior derecha. Las RNC son capaces de reconocer el objeto en cualquier punto de la imagen, independientemente de que se haya observado o no en las imágenes de entrenamiento.
Nota
Las RNC utilizan un astuto truco a fin de reducir la cantidad necesaria de datos de entrenamiento para detectar objetos con condiciones diferentes. El truco consiste básicamente en utilizar los mismos pesos de entrada para varias neuronas —de forma que todas ellas se activan mediante el mismo patrón—, pero con píxeles de entrada diferentes. Podemos, por ejemplo, tener un conjunto de neuronas que se activan con la oreja puntiaguda de un gato. Cuando la entrada es la fotografía de un gato, se activan dos neuronas, una para la oreja izquierda y otra para la derecha. Asimismo, podemos hacer que los píxeles de entrada de la neurona se obtengan de una superficie mayor o menor, de forma que se activen neuronas distintas según las distintas escalas (tamaños) en que aparezca la oreja, gracias a lo cual es posible detectar las orejas de un gato pequeño aunque los datos de entrenamiento solo incluyan imágenes de gatos grandes.
Normalmente, las neuronas convolucionales están situadas en las capas inferiores de la red, que procesan los píxeles de entrada brutos. Las neuronas básicas (como la neurona perceptrón de la que hablamos antes) están situadas en las capas superiores, que procesan la salida de las capas inferiores. A menudo, las capas inferiores se pueden entrenar utilizando aprendizaje no supervisado, sin una tarea de predicción concreta en mente. Sus pesos se ajustarán para detectar características que aparezcan con frecuencia en los datos de entrada. Así pues, en el caso de las fotografías de animales, las características típicas serían las orejas y los hocicos, mientras que en las imágenes de edificios estas características serían componentes arquitectónicos, como paredes, tejados, ventanas, etc. Si se utiliza una combinación de diversos objetos y escenas como datos de entrada, las características aprendidas por las capas inferiores serán más o menos genéricas. Esto quiere decir que las capas convolucionales entrenadas previamente pueden reutilizarse en muchas tareas distintas de procesamiento de imágenes. Este punto es de gran importancia, ya que es fácil obtener cantidades prácticamente ilimitadas de datos de entrenamiento sin etiquetar —imágenes sin etiquetas— que se pueden utilizar para entrenar las capas inferiores. Las capas superiores siempre se entrenan mediante técnicas de aprendizaje automático supervisado, como la retropropagación.
Habiendo entrenado una red neuronal con datos, podemos usarla para realizar predicciones. Puesto que las capas superiores de la red han sido entrenadas de forma supervisada para llevar a cabo una tarea específica de clasificación o predicción, son verdaderamente útiles solo para esa tarea. Una red entrenada para detectar señales de stop no sirve para detectar dígitos manuscritos o gatos.
Se consigue un resultado fascinante tomando las capas inferiores entrenadas previamente y estudiando qué aspecto tienen las características que han aprendido. Para ello, hay que generar imágenes que activen un conjunto determinado de neuronas en las capas inferiores. Al observar las imágenes generadas, podemos comprobar cuál es el aspecto que la red neuronal «piensa» que tiene una característica concreta, o el aspecto que tendría una imagen con un conjunto seleccionado de características. A algunos incluso les gusta hablar de las imágenes que se derivan de los «sueños» o «alucinaciones» de las redes (véase el sistema DeepDream de Google).
Nota
Una vez más, no obstante, nos gustaría recalcar el problema que plantean metáforas como la de «soñar» cuando de lo que se trata es de una simple optimización de la imagen de entrada (recuerda las «palabras maleta» que estudiamos en el capítulo 1). La red neuronal no sueña de verdad ni tiene un concepto de gato que entienda de forma equiparable a como lo entendemos los humanos. Simplemente está entrenada para reconocer objetos y puede generar imágenes similares a los datos de entrada con los que se ha entrenado.
Para generar gatos, rostros humanos u otros objetos que realmente parezcan auténticos (obtendrás lo que hayas utilizado como datos de entrenamiento), Ian Goodfellow, investigador de Google Brain en ese momento, propuso una hábil combinación de dos redes neuronales. La idea es dejar que las dos redes compitan entre sí. Una de las redes, denominada red generativa, es entrenada para generar imágenes como las existentes en los datos de entrenamiento. La tarea de la otra red, denominada red antagónica, es distinguir entre las imágenes generadas por la primera red y las imágenes reales de los datos de entrenamiento. La combinación de estas dos redes constituye lo que se conoce como red generativa antagónica (GAN, del inglés Generative Adversarial Network).
Este sistema entrena a los dos modelos en paralelo. Al principio del entrenamiento, el modelo discriminador tiene la sencilla tarea de distinguir las imágenes reales procedentes de los datos de entrenamiento de los torpes intentos del modelo generativo. Sin embargo, a medida que la red generativa va mejorando, el modelo discriminador se ve obligado a mejorar también, y el ciclo continúa hasta que, al final, es prácticamente imposible distinguir las imágenes generadas de las reales. La RGA no intenta solamente reproducir las imágenes de los datos de entrenamiento: sería una estrategia demasiado simple para derrotar a la red discriminadora. Más bien, el sistema se entrena para ser capaz de generar imágenes nuevas de aspecto real.
Las imágenes de arriba fueron generadas mediante una RGA desarrollada por NVIDIA en un proyecto dirigido por el profesor Jaakko Lehtinen (véanse más información en este artículo).
¿Habrías sabido que son falsas?
Como ya se ha mencionado, las redes neuronales convolucionales (RNC o CNN del inglés Convolutional Neural Network) reducen el número de pesos ajustables en una red neuronal para que la cantidad de datos necesarios para el entrenamiento no crezca de manera astronómica a medida que construimos redes cada vez más grandes. Otra innovación arquitectónica, además de la idea de las CCN, y que actualmente impulsa muchos modelos de aprendizaje profundo de última generación, es el denominado mecanismo de atención.
Los mecanismos de atención, que se introdujeron originalmente para la traducción automática, permiten centrar selectivamente la atención del modelo en determinadas palabras del texto de entrada cuando se genera una palabra concreta en la salida. De este modo, el modelo no tiene que prestar atención a todo el texto de entrada simultáneamente, lo que simplifica enormemente la tarea de aprendizaje. Además, pronto se descubrió que los mecanismos de atención serían extremadamente útiles, no solo en el ámbito de la traducción automática.
En 2017, un equipo que trabajaba en Google publicó el exitoso artículo "Attention is All You Need" (“Atención es todo lo que necesitas”), que presentaba la llamada arquitectura de transformers (Se podría traducir al español por “transformador”. Sin embargo, dado que esta palabra es de reciente aparición en el contexto de la inteligencia artificial, preferimos mantener su grafía en inglés para no crear ambigüedad con otros significados del término en español.) para redes neuronales profundas. A menos que hayas estado viviendo en una isla desierta o hayas estado desconectado de los medios, lo más probable es que ya hayas oído hablar de transformers (los modelos de redes neuronales, no la franquicia de juguetes) o, en su defecto, del acrónimo que lo incluye en su definición: GPT (Generative Pretrained Transformer). Como sugiere el título del artículo del equipo de Google, los transformers explotan intensivamente los mecanismos de atención para sacar el máximo partido de los datos de entrenamiento y los recursos computacionales disponibles.
Las aplicaciones más importantes de transformers se encuentran en los denominados grandes modelos de lenguaje (LLM, del inglés Large Language Model). Las más conocidas son la serie GPT de OpenAI, incluyendo GPT-1, lanzada en junio de 2018, y GPT-4, anunciada en marzo de 2023, pero ningún gigante tecnológico ha querido perder su oportunidad: Google escogió nombres de modelos de Barrio Sésamo y liberó BERT (Bidirectional Encoder Representations from Transformers) en octubre de 2018, mientras que Meta se unió a la fiesta un poco más tarde, en febrero de 2023, escogiendo un nombre inspirado en el mundo animal, LLaMA (Large Language Model Meta AI). Y no son solo los grandes gigantes tecnológicos los que impulsan el desarrollo: universidades y otras organizaciones de investigación aportan modelos de código abierto con el objetivo de democratizar la tecnología.
Nota
Los LLMs son modelos que, dado un fragmento de texto como, por ejemplo, "La capital de Finlandia es", predicen de forma probabilística cómo podría continuar el texto. En este caso, "Helsinki" o "una metrópolis de bolsillo" serían posibles continuaciones del fragmento de entrada. Los LLMs se entrenan con grandes cantidades de texto, usando, por ejemplo, todo el contenido de la Wikipedia o el conjunto de datos CommonCrawl que, en el momento de escribir esto, contiene la friolera de 260.000 millones de páginas web.
En principio, se podría considerar que los LLMs no son más que potentes técnicas de texto predictivo. Sin embargo, si se piensa un poco más, resulta evidente que ser capaz de predecir la continuación de cualquier texto de manera indistinguible a como lo haría un humano es (o sería) toda una hazaña y abarca muchos aspectos de la inteligencia. El ejemplo anterior, basado en la asociación entre las palabras "capital de Finlandia" y "Helsinki", muestra cómo un modelo puede aprender un hecho sobre el mundo. Si fuéramos capaces de construir modelos que asociaran las respuestas comúnmente aceptadas a una amplia gama de preguntas, podría decirse que ese modelo ha aprendido una gran parte del llamado "conocimiento del mundo". Especialmente intrigantes son los casos en los que el modelo parece exhibir algún nivel de razonamiento más allá de la memorización y la co-ocurrencia estadística: actualmente, los LLMs son capaces de hacer esto en un sentido limitado y pueden fácilmente cometer errores triviales porque se basan "solo" en aprendizaje automático estadístico. Se están realizando intensos esfuerzos de investigación y desarrollo para construir modelos de aprendizaje profundo con algoritmos de razonamiento más robustos y con bases de datos de hechos verificados.
Nota
El 30 de noviembre de 2022 se produjo un gran terremoto en San Francisco. Fue tan intenso que apenas hubo una persona en el planeta que no se viera afectada y, sin embargo, ningún sismómetro lo detectó. Este "terremoto" metafórico fue el lanzamiento de ChatGPT por OpenAI. La noticia del servicio de chatbot en línea, que cualquiera podía utilizar gratuitamente, se extendió rápidamente por todo el mundo. En apenas cinco días, contaba con más de un millón de usuarios registrados (compárese con los cinco años que tardó el curso “Elementos de la IA” en alcanzar la misma cifra) y, en dos meses, el número de inscripciones ascendía a 100 millones. Ningún otro servicio de IA, ni probablemente ningún otro servicio, se ha convertido tan rápidamente en un nombre tan familiar.
La primera versión de ChatGPT se basó en un modelo GPT-3.5, ajustado mediante aprendizaje supervisado y aprendizaje por refuerzo (reinforcement learning) a partir de un gran número de respuestas verificadas por humanos. El objetivo del proceso de ajuste fue alejar el modelo de las respuestas tóxicas e incorrectas generadas a partir de los datos iniciales de entrenamiento y orientarlo hacia respuestas completas y útiles.
No es fácil decir qué causó el frenesí mediático masivo y el interés sin precedentes hacia ChatGPT por parte de casi todo el mundo, incluso de aquellos que hasta ahora no habían prestado mucha atención a la IA. Probablemente, parte de este éxito se explique por la calidad algo mejor de los resultados, el ajuste del modelo y la facilidad de uso de la interfaz de chat, que permite al usuario no solo obtener respuestas puntuales a preguntas aisladas, como cualquiera de los anteriores LLMs, sino también mantener un diálogo coherente en un contexto específico. En la misma línea, la interfaz de chat permite hacer peticiones del tipo "explícaselo a un niño de cinco años" o "escribe tu respuesta como una canción al estilo de Nick Cave" (Al Sr. Cave, sin embargo, no le impresionó [BBC]). En cualquier caso, ChatGPT consiguió disparar el interés por la IA a niveles completamente nuevos.
Queda por ver cuáles son las verdaderas "aplicaciones estrella" de ChatGPT y otras soluciones basadas en LLMs. Creemos que las aplicaciones candidatas más probables son aquellas en las que el contenido factual procede del usuario o de otro sistema, y el modelo de lenguaje se utiliza para generar una respuesta estructurada que incluye y relaciona de manera “creativa” todos los hechos proporcionados en la entrada. Dicha respuesta, dependiendo del tipo de entrada proporcionada, se puede expresar en lenguaje natural o posiblemente en un lenguaje formal como, por ejemplo, el código de un programa. Volveremos sobre el impacto previsto de ChatGPT y otras aplicaciones basadas en LLM en el último capítulo.