Qué tan difícil es saber cómo piensa una IA
De un tiempo a esta parte, pareciera que no quedara persona alguna en este mundo que no haya oído hablar de la Inteligencia Artificial (IA). Aplicaciones basadas en IA empapan nuestro día a día; de las finanzas a la salud, pasando por la logística o la atención al cliente, este tipo de sistemas van tomando un rol cada vez más activo en nuestra toma de decisiones. No obstante, igual de importante es tomar una decisión como comprender el razonamiento que ha llevado a la misma. Y aquí nos topamos en ocasiones con una gran impedimento: nuestra incapacidad para explicar en detalle los cálculos realizados en el interior de ciertos modelos de IA, en particular las redes neuronales profundas.
¿Hasta qué punto los algoritmos de IA son unas “cajas negras” ininterpretables? ¿Podemos confiar en sistemas informáticos que no pueden explicarnos por qué operan como lo hacen? ¿Cómo resolver este problema? ¡Lo explicamos en Catch.batches!
TFOD (Terminología Frecuentemente Obviada en Discursos) de IA
Como anticipábamos en anteriores artículos, la IA engloba muchos algoritmos. De hecho, la palabra hace referencia a un paragüas bajo el que agrupar muchas herramientas computacionales que simulan aspectos concretos de la inteligencia humana, así que tome nota: si toda la explicación que recibe de alguien acerca de su sistema es que utiliza IA, posiblemente no sepa o no quiera dar más detalles. En cualquier caso, nosotros vamos a ahondar un poco más. En la figura 1 puede observarse cómo el Deep Learning (o Aprendizaje Profundo en español), que en esencia consiste en redes neuronales artificiales pero que constituye la punta de lanza de la investigación actual en IA, puede entenderse como un pequeño subconjunto de algoritmos más generales de IA.
Figura 1: Diagrama de Venn mostrando la relación existente entre Inteligencia Artificial, Machine Learning (Aprendizaje Automático) y Deep Learning (Aprendizaje Profundo), términos muchas veces confundidos confundidos. Fuente: Elaboración propia.
Tanto es así que hecho el Deep Learning es a su vez un subconjunto muy específico dentro de lo que se conoce como Machine Learning (Aprendizaje de Máquina o Aprendizaje Automático). Sin embargo, se suele reservar el nombre de Machine Learning para hablar de modelos que, si bien son capaces de descubrir en los datos, de manera estadística, patrones difícilmente accesibles para un ser humano, terminan dando lugar a sistemas interpretables. Que un modelo sea interpretable significa que podemos entender y describir en lenguaje natural los motivos que dan lugar a una respuesta dada durante el proceso de toma de decisiones del mismo. Como veremos, esto no es posible dentro de una red neuronal, pero otros algoritmos de Machine Learning tradicional como los árboles de decisión sí que permiten tal análisis. En ellos, sólo hay deshacer el camino el camino de operaciones lógicas realizadas ante una nueva muestra para conocer todos los detalles.
Si tenemos grandes volúmenes de datos, y eso es cada vez más sencillo en el mundo en que vivimos, la tendencia es utilizar modelos basados en redes neuronales profundas. Estos modelos, aunque existentes desde los años veinte del siglo pasado, volvieron a la palestra a partir de 2011, cuando un modelo de red neuronal artificial llamado AlexNet mostró resultados inauditos al reconocer objetos en fotografías[1], uno de los problemas fundamentales aún activos en visión por computador. Aunque se convirtió en el referente a batir en ese momento, AlexNet, como cualquier red neuronal artificial, sufría de una carencia muy importante; si bien sus predicciones eran las más acertadas, sus desarrolladores no podían explicar la secuencia de pasos exacta que dirigía las respuestas.
¿Quién no distinguiría a un gato de un trasatlántico, siendo sus diferencias tan evidentes? Nuestro cerebro ha evolucionado para identificar rápidamente las cualidades más relevantes de aquello que vemos, y asignarle un significado lógico-semántico concreto que permita identificar a otros similares a la vez que distinguirlo de otros. Pero para un algoritmo de IA, algo tan sencillo en apariencia como reconocer qué elementos hay en una imagen significa entender qué representa cada uno de los píxeles (que no dejan de ser valores numéricos) y asociar las diferentes regiones de esa imagen entre sí.
Si una red de neuronas artificiales no obedece a la lógica ni al simbolismo con el que aparentemente trabajan nuestros cerebros, al menos parcialmente, ¿cómo es que son capaces estos sistemas de igualar las capacidades humanas en tantos dominios? Para responder a esa pregunta, entendamos primero algunas de las diferencias y semejanzas esenciales entre la unidad elemental de procesamiento de nuestro cerebro y las redes neuronales artificiales: la neurona.
Neuronas Artificiales contra Neuronas Biológicas, cara a cara
En muchas sesiones de introducción al tema, se suele indicar que las redes neuronales artificiales fueron desarrolladas inspirándose en la estructura descubierta por Ramón y Cajal, y que le valió el premio Nobel. Detengámonos un segundo en lo dicho: la estructura de las redes neuronales artificiales sí es cierto que imita a la de las neuronas biológicas, pero difiere en su funcionamiento, amén de carecer de muchas de las propiedades más relevantes de las neuronas biológicas. El lector puede hacerse una idea fundamental de los elementos principales de ambos tipos de neuronas en el esquema de la figura 2.
Figura 2. Representación de la estructura fundamental de una neurona biológica (arriba) frente a la propia de una neurona artificial (abajo), destacando sus elementos principales. Fuente: Elaboración propia.
En una neurona biológica, el axón propaga la información procedente de otras neuronas en una única dirección, siendo las dendritas fibras nerviosas que reciben el impulso eléctrico de otras neuronas y que a su vez lo propagan a otras. El espacio entre un axón y la dendrita de otra neurona se denomina sinapsis. En neurociencia se emplea el término “espiga” (spike en inglés) para referirse al impulso eléctrico producido por una neurona al activarse tras interactuar con el resto de su entorno, pudiendo en última instancia caracterizar la respuesta a un estímulo de un individuo por la secuencia de espigas liberadas por las neuronas de la región cerebral involucrada en el procesamiento del estímulo de entrada en cuestión[2].
Por contra, en una neurona artificial (en adelante, simplemente red neuronal) no existe esa suerte de secuencia de espigas. En su caso, la información procedente de otras neuronas (debidamente codificada en forma numérica) se suma. En su versión más simple, si el valor de dicha suma supera un cierto umbral, la neurona responde emitiendo un “1”, o un “0” en caso contrario. Con algo de imaginación, uno puede convencerse de la lejana similitud entre una neurona artificial y una biológica. Pero mucho me temo que la analogía concluye ahí[3]. En las redes artificiales el aspecto temporal se pierde por completo, y en lugar de producir una respuesta en cada dendrita de salida, independientemente del número de entradas, se genera un único valor de salida. El poder de estas redes consiste en que sabemos cómo apilar capa tras capa de estas neuronas, permitiendo a estos modelos realizar a cada paso operaciones muy sencillas, pero cuya combinación sincronizada da lugar a cálculos tremendamente complejos y especializados.
Pero, ¿y cómo aprenden las redes neuronales?
En esencia, estos modelos matemático-computacionales que son las redes neuronales artificiales aprenden de una manera análoga a nosotros: por ensayo y error. Para cada muestra que se presenta a la entrada de la red, debidamente codificada en un formato numérico, la red lleva a cabo el procedimiento explicado anteriormente, para cada una de las neuronas que la componen. A la salida, que normalmente se compone de una última capa de neuronas por lo demás idénticas a las anteriores, se coteja lo que la red ha predicho con la información verídica con la que contamos en la base de datos que conforma nuestro problema a resolver.
En ese momento que la magia ocurre. Midiendo cómo de diferentes son la respuesta predicha y la respuesta correcta (también denominada “etiqueta”), ajustamos los parámetros de la red (esto es, la importancia de la conexión entre pares de neuronas) de manera iterativa y automática, sin mediar intervención humana, para reducir ese margen de error. Repetimos este mismo proceso para todas y cada una de las muestras de que dispongamos en la base de datos. Al final de este proceso, denominado “entrenamiento”, nuestra red habrá codificado en sus parámetros conjuntos de patrones que relacionan los datos de entrada con las salidas correctas que se le han presentado, procurando cometer el menor error posible.
No es el cómo, es el qué
Por las particularidades de su estructura y por cómo se entrenan, una red neuronal es lo que se conoce como un modelo no identificable: dada una base de datos y un ordenamiento concreto de las neuronas de la red, pueden existir dos modelos con diferentes parámetros pero que arrojen las mismas predicciones, tal y como ilustra la figura 3.
Figura 3. El hecho de que pueda existir más de una red idéntica en forma pero con diferentes parámetros que devuelva los mismos resultados complica su análisis. Fuente: Elaboración propia.
Por eso cuando algún gigante tecnológico presenta algún modelo que asombra por su aparente capacidad de imitar al ser humano en un dominio, como puede ser el caso de AlphaFold al entender la estructura terciaria de las proteínas[4], o de GPT-3 al redactar textos escritos de manera automática[5], el lego puede, y en mi experiencia diría que suele, pensar que existe un único modelo así, infalible e inimitable. Sin embargo, lo importante no es el modelo en sí, sino la metodología y los datos de entrenamiento usados, así como la estructura de la red (normalmente llamada “arquitectura de la red”). Como los parámetros no son únicos para lograr una respuesta concreta, lo que otros desarrolladores necesitan no es tanto el modelo particular como el mecanismo de obtención de un modelo equivalente.
Si hacemos un pequeño ejercicio mental de recapitulación de todo lo dicho, podemos empezar a vislumbrar por qué se habla de las redes neuronales como de cajas negras no interpretables. A fin de cuentas, conocemos qué hay a la entrada y a la salida, pero no sólo existe una compleja red de conexiones entre pares de neuronas, sino que esa información sólo existe como parámetros codificados numéricamente y sin un significado directo para nosotros. Lo que queda entre la entrada y la salida es pues un misterio. Y por si fuera poco, acabamos de ver que de poco sirve dedicar nuestros esfuerzos a desentrañar esa madeja de conexiones, puesto que los valores exactos de los parámetros del modelo tampoco son exclusivos e irremplazables. Si a ello le sumamos además que hablamos de sistemas con miles de millones de parámetros, rápidamente comprendemos que cualquier tipo de análisis acerca de las predicciones de una red neuronal debe ser ad hoc, y específica para cada caso.
¿En qué se está trabajando para solucionarlo?
Existen todo un campo de investigación dedicado en exclusiva a desarrollar herramientas y protocolos para comprender cómo se almacena la información dentro de una red neuronal, pudiendo distinguir 3 paradigmas fundamentales.
En primer lugar, gran parte del análisis de muchas aplicaciones de redes neuronales se lleva a cabo visualizando una estimación acerca de cuáles han sido los elementos o regiones de la señal de entrada que han tenido un mayor efecto en la predicción final[6, 7]. La gran desventaja de estos enfoques es que sólo podemos realizar tal evaluación a posteriori de manera individualizada para una muestra, por lo que es difícil llegar a conclusiones generales. Eso no significa que no sea útil, todo lo contrario, estas ideas están el corazón de la mayoría de artículos publicados en fecha reciente.
Por otros derroteros completamente diferentes, últimamente ha surgido una línea de investigación especialmente prometedora, centrada en el desarrollo de modelos denominados Graph Neural Networks (en castellano, redes neuronales en grafo), que combinan la potencia de cálculo de las redes neuronales con la organización lógica típica de los grafos. Los grafos son una herramienta bien conocida en matemáticas y computación. En esencia, son telarañas donde un conjunto de nodos están interconectados entre sí. La diferencia esencial con una neurona artificial tradicional es que los nodos de un grafo tienen un significado específico, y por tanto pueden arrojar algo de luz adicional sobre las relaciones entre pares de elementos. Una lectura particularmente recomendada, aunque en inglés, de introducción al tema puede encontrarse aquí[8].
Por último, cabe destacar que son los motivos expuestos en esta introducción a las redes neuronales las que en última instancia terminan dando lugar a muchos de los sesgos que posteriormente observamos de cuando en cuando en diferentes usos de la IA. Hace bien la Unión Europea en preocuparse por ello, y en dedicar esfuerzos en promover usos y metodologías de desarrollo de IA que respeten la ética y valores del individuo, a la par que permitan entender las decisiones tomadas. Es un campo muy nuevo, y debido a la alta demanda de datos que requieren para ser entrenados, hasta ahora se le ha dado más importancia a cómo procesar más datos frente a cómo elegirlos, o a darles una interpretación. Es mi valoración personal que progresivamente veremos un mayor énfasis en la separación de datos en cohortes al modo en que se desarrollan ensayos clínicos en el sector salud, que permitan valorar de manera explícita el efecto que pueden tener las predicciones de un modelo sobre diferentes grupos de población, como ya han propuesto e implementado algunas organizaciones.
[1]: Alex Krizhevsky, Ilya Sutskever, and Geoffrey E. Hinton. 2012. ImageNet classification with deep convolutional neural networks. In Proceedings of the 25th International Conference on Neural Information Processing Systems – Volume 1 (NIPS’12). Curran Associates Inc., Red Hook, NY, USA, 1097–1105.
[2]: Peter Dayan and L. F. Abbott. 2005. Theoretical Neuroscience: Computational and Mathematical Modeling of Neural Systems. The MIT Press.
[3]: Richard O. Duda, Peter E. Hart, and David G. Stork. 2000. Pattern Classification (2nd Edition). Wiley-Interscience, USA.
[4]: Jumper, J et al. “Highly accurate protein structure prediction with AlphaFold”. Nature (2021).
[5]: Brown, Tom B. et al. “Language Models are Few-Shot Learners.” ArXiv abs/2005.14165 (2020)
[6]: Selvaraju, R. R. «Grad-CAM: Visual Explanations from Deep Networks via Gradient-Based Localization,» 2017 IEEE International Conference on Computer Vision (ICCV), 2017, pp. 618-626, doi: 10.1109/ICCV.2017.74.
[7]: Vaswani, A. et al. “Attention is all you need” In Proceedings of the 31st International Conference on Neural Information Processing Systems 2017(NIPS’17). Curran Associates Inc., Red Hook, NY, USA, 6000–6010.
[8]: Sanchez-Lengeling, et al., «A Gentle Introduction to Graph Neural Networks», Distill, 2021.