miércoles, 31 de marzo de 2021

Deep learning y explicabilidad para el diseño de medicamentos

Algunas de las aplicaciones del deep learning son bien conocidas y están ampliamente documentadas, como todo lo que tiene que ver con clasificadores, con visión artificial o con procesamiento de lenguaje natural.

Sin embargo, las posibilidades son más amplias y algunas incluso algo sorprendentes.


Diseño de medicamentos


Avanzada ya la lectura del libro 'Explainable AI: Interpreting, Explaining and Visualizing Deep Learning' editado por Wojciech Samek, Grégoire Montavon, Andrea Vedaldi, Lars Kai Hansen y Klaus-Robert Müller, me encuentro, por ejemplo, con una aplicación, el diseño de medicamentos que, si bien ha ganado cierta visibilidad debido a la búsqueda acelerada de una vacuna contra el COVID-19, no está sin embargo entre las más presentes en la literatura técnica.

En esta fuente nos dice, de forma muy directa que, el diseño de medicamentos consiste en:


identify molecules that act beneficially on the human (or animal) system e.g. that have certain therapeutic effect against particular diseases.


Es decir, lo que buscamos son moléculas con capacidad terapéutica, unas moléculas que, sin embargo, y según se nos explica, no sabemos muy bien cómo deben ser. Es decir, no existe una guía o unas normas claras de qué estructura química deben tener. En cierto sentido, parece ser un proceso de ensayo y error (aunque asumo que guiado en alguna medida por el conocimiento y experiencia de los científicos).

Robot en HTS. Foto: Maggie Bartlett
Como parte de ese diseño es necesario realizar un largo proceso de evaluación ('screening') de moléculas candidatas y en diferentes concentraciones hasta encontrar la adecuada. 

Se trata de un proceso de experimentación esencialmente biológico y. aunque este proceso ya se encuentra muy automatizado y robotizado, mediante lo que se denomina High-Throughput Screening (HTS) de todas formas es un proceso largo y caro.


Screening virtual. Deep learning en diseño de medicamentos


Y para salvar esas dificultades surge el denominado screening virtual, que consiste en el uso de modelos computacionales para predecir esos efectos biológicos de moléculas, evitando la prueba biológica propiamente dicha. 

Y aquí es donde entra en juego el deep learning, porque usando esta tecnología se han conseguido buenos modelos capaces de predecir la actividad biológica con base en estructuras moleculares e, incluso, en un paso algo más allá, con deep learning se ha conseguido la generación automatizada de moléculas.

En el libro se nos explica que existen hoy en día dos tipos de modelos de deep learning que se emplean en estas labores de screening virtual, a saber, 'descriptor-based feed-forward neural networks' y 'graph convolutional neural networks'. 




En el caso de 'descriptor-based feed forward neural networks' una red de capas densas actúa sobre una entrada inicial consistente en ciertas características (descriptores) de la molécula. En el caso de las redes gráficas de convolución, sin embargo, la entrada a una red de naturaleza convolucional es un grafo que describe la estructura de la molécula.


Explicabilidad de los modelos e impacto en investigación


Ambos métodos han arrojado buenos resultados. Sin embargo, todavía queda una barrera: lo cierto es que los modelos consiguen esa predicción de la actividad biológica de moléculas...pero nos resulta difícil comprender el 'razonamiento que siguen', Se interpreta que, por ejemplo, en el caso de las redes basadas en descriptores, las neuronas internas de la red, de alguna forma, son detectores de características de las moléculas...pero no sabemos bien qué están detectando, cuáles son esas características relevantes.

Conocerlo, explicar el comportamiento interno de la red neuronal, implicaría entender mejor los propios procesos químicos y biológicos subyacentes y por ello se trabaja en la explicabilidad de este tipo de modelos de deep learning. En el libro citado, de hecho, hace una propuesta para ambos casos.

Se trata de una especie de curioso y muy valioso viaje de ida y vuelta. Comenzamos con un proceso químico / biológico, lo modelamos y, si conseguimos explicar su comportamiento, habremos aprendido más sobre el propio proceso biológico.

Alucinante.


lunes, 29 de marzo de 2021

Interpretabilidad vs explicabilidad en Inteligencia Artificial

Cuando nos referimos, de manera general, a la explicabilidad de la inteligencia artificial, de manera intuitiva sabemos que lo que queremos es entender cómo razonan los algoritmos, cómo toman de alguna forma sus decisiones o llegan a sus conclusiones.

A la hora de referirse a esa capacidad, y aunque quizá el término más conocido sea el de explicabilidad, también se utiliza con cierta frecuencia el término interpretabilidad y normalmente se tienden a emplear como sinónimos.

Quizá, 'para andar por casa' lo podamos hacer así. Sin embargo, en el libro 'Explainable AI: Interpreting, Explaining and Visualizing Deep Learning' editado por Wojciech Samek, Grégoire Montavon, Andrea Vedaldi, Lars Kai Hansen y Klaus-Robert Müller nos mencionan un matiz, una distinción que puede ser relevante, al menos para entender mejor de qué hablamos.

En esta distinción, el concepto más básico es el de interpretabilidad que recoge la capacidad de comunicar la función de un algoritmo de machine learning a un usuario (función entendido, asumo, como el funcionamiento, la descripción de cómo es la transformación de entradas en salidas).

La explicabilidad necesita la interpretabilidad, es condición necesaria, pero esa interpretabilidad no es suficiente. Para que haya explicabilidad se debe añadir otro elemento que es la completitud ('completeness') que en este contexto quiere decir que la explicación que obtenemos sea suficientemente profunda como para poder ser auditada y, de alguna forma, 'que ésta defender' sus acciones y proporcionar respuestas a preguntas.

Según esta forma de razonar, la explicabilidad viene a ser la unión o la suma de la interpretabilidad y la completitud.

Quizá, esta distinción conceptual sea 'hilar muy fino'. Quizá, en el fondo, en un campo tan especializado como es el de la explicabilidad de la inteligencia artificial, sus practicantes no abriguen demasiadas dudas ni lagunas conceptuales sobre lo que realmente están intentando conseguir, pero, por si acaso, y por si añade algo útil, ahí queda la distinción.


miércoles, 24 de marzo de 2021

Dos métodos de explicabilidad del deep learning y un comentario

En el artículo anterior de este blog, titulado 'Algunas estrategias genéricas para la explicabilidad de la inteligencia artificial' vimos en concreto cuatro formas más o menos genéricas de enfocar la obtención de explicaciones comprensibles acerca de la forma de razonar de los algoritmos de inteligencia artificial, y más en concreto de algoritmos de deep learning con base en lo aportado en uno de los primeros capítulos del libro 'Explainable AI: Interpreting, Explaining and Visualizing Deep Learning' editado por Wojciech Samek, Grégoire Montavon, Andrea Vedaldi, Lars Kai Hansen y Klaus-Robert Müller. 

No se trataba de un censo completamente exhaustivo ni mucho menos detallado, pero la idea era estructurar de forma preliminar un poco las posibilidades de explicabilidad en que se trabaja.

Con la misma idea quisiera en este artículo ahondar un poco más (tampoco mucho) en dos familias de algoritmos para la explicabilidad que aparecen en abundancia en la citada fuente: las explicaciones basadas en gradiente ('gradient-based explanations') y la propagación en capas de la relevancia ('layer-wise relevance propagation', LRP)

Me apoyo para ello en la misma fuente bibliográfica, aunque en un capítulo diferente y, teniendo en cuenta que el libro citado es un libro coral, con diferentes autores por capítulos, la fuente última es en realidad ligeramente diferente. Advierto también que las denominaciones en castellano de estos métodos son una improvisación propia ya que hasta ahora sólo he tenido acceso a ellos en literatura en inglés, con lo que ignoro si existe una traducción al castellano más o menos ampliamente adoptada.

Y decir finalmente que he querido poner el foco en estas dos familias de algoritmos, únicamente porque en la lectura sobre la materia aparecen con mucha frecuencia por lo que, dada su aparente representatividad, parece interesante dedicarles un poco más de atención. Vamos allá.


Gradient based-explanations


Cuando hablamos de explicabilidad de la inteligencia artificial, y en concreto del deep learning, lo que estamos es intentando encontrar formas de explicar, de una manera comprensible por los humanos, la forma de 'razonar', llamémosla así, de unos algoritmos que vemos como una suerte de "caja negra", en el sentido de que vemos sus entradas y sus salidas pero no entendemos bien su funcionamiento interno.

Sobre lo de no entender bien ya he expresado en algún momento mis catelas: el desarrollador, o al menos el inventor del algoritmo, sabe perfectamente cómo funciona, sabe perfectamente lo que ha programado si se quiere ver así, pero esto no guarda una relación directa con el razonamiento en términos humanos. Es en ese último sentido en que es una caja negra.

Pues bien, de alguna forma, los algoritmos basados en gradiente, asumen esa idea de caja negra, asumen que no conocemos el funcionamiento interno y no aspiramos en el fondo a desentrañarlo. Consideran a todo el algoritmo, toda la red neuronal como una función con sus entradas y sus salidas y lo que buscan es ver cómo reacciona ante cambios locales. 

Dicho de una forma más matemática, calculan el gradiente  de esa función ante cambios en, por ejemplo, el valor de uno de los parámetros de entrada. En la variante concreta que se explica en el capítulo 13 del libro citado (Gradient x Input), lo que se calcula, lo que se denomina relevancia es, en este caso, el producto de la derivada parcial de la función con respecto a la variable de entrada (lo que vendría a ser el gradiente) y eso se multiplica por el propio valor de entrada.

Con esto obtenemos, para cada caso concreto de decisión que queremos explicar, una suerte de mapa de cuánto han pesado los valores de entrada en la decisión final


Layer-wise relevance propagation


Este método no ve la red neuronal como una caja del todo negra, sino que asume un cierto conocimiento de su arquitectura, al menos sus capas. 

Para cada nodo de la red que ha contribuido a la activación de un cierto nodo de la salida de la red (el hablar de activación nos hace ver que implícitamente estamos pensando en problemas de clasificación) se le asigna una relevancia a nivel de capa, es decir, todos los nodos de una cierta capa que han contribuido a la activación del nodo de salida reciben la misma relevancia. 

La forma de calcular esa relevancia es partiendo del nodo de salida y aplicando una retropropagación que recorre todas las capas desde la salida hasta la entrada. Existen diversas formas de calcular la relevancia y propagarla, pero todas siguen esa misma idea general.

De nuevo, al final, y aunque de diferente forma, acabamos teniendo la relevancia, el peso si se quiere, que una cierta entrada tiene en la clasificación final.


Comentario final: ¿Es esto lo que buscamos?


Como sucede con casi todos los algoritmos de inteligencia artificial, y desde luego en el caso del deep learning, una comprensión profunda del algoritmo, en este caso de la forma de calcular relevancias, implica un despliegue matemático de un cierta complejidad en el que no vamos a entrar, al menos aquí y en este momento. Nos quedamos más con su filosofía. Pero creo que, a pesar de no entrar apenas en las matemáticas, sí que nos quedamos con una idea razonablemente aproximada de cómo funcionan estos dos métodos.

Comentaría que, en ambos casos y como hemos visto, lo que estos métodos nos proporcionan es de alguna forma el peso que las entradas tienen en las salidas de un algoritmo de deep learning.

¿Es esto lo que buscamos realmente en la explicabilidad?

Bueno, si y no. Más bien no.

Diría que es un primer paso, y un paso de mérito sin duda, pero no es la aspiración final. Y creo que no lo es porque, en el fondo, el significado de esas entradas y salidas no siempre son tan claros como para que supongan una explicación en términos humanos. Y no lo es tampoco porque, por más que sea muy interesante conocer qué pesa en la salida, no es estrictamente hablando una explicación de la forma de razonar, sino solo una aproximación.

Estos algoritmos se han aplicado, quizá sea su principal área de aplicación, en redes que trabajan como clasificadores en el ámbito de la visión artificial, es decir, en redes que de alguna forma reconocen o categorizan una imagen de entrada en una serie de categorías de salida. En esas redes, típicamente, una entrada se corresponde con la intensidad o color de un pixel. Conocer cuánto pesa un pixel en la clasificación final no parece por sí mismo una explicación. Cierto es que, normalmente, al contemplar el conjunto, más que píxels veremos regiones de la imagen que influyen en su clasificación. Un repaso de esos mapas de calor de las entradas, examinadas por un humano, en muchos casos pueden conducir a un entendimiento cierto, o casi cierto, de cómo está funcionando la red neuronal y en qué basa sus decisiones, pero nótese que no siempre será así y que, sobre todo, la explicación final la aporta un humano viendo los mapas de calor que produce el algoritmo de explicabilidad.

No quiero que esta valoración final se entienda en un sentido negativo. Nada de eso. Me parece que en muchos problemas reales es un resultado muy valioso y me parece, sobre todo, que el hecho de que seamos capaces de encontrar mecanismos algorítmicos o semi-algorítmicos para explicar, siquiera básicamente, cómo razona una red neuronal, es toda una demostración de ciencia e ingenio.

Lo que en realidad quiero decir es que, de cara a la aspiración final de la explicabilidad, todavía queda camino por recorrer, mucho, y en ello creo que los primeros que estarían de acuerdo, serían los propios científicos e ingenieros que trabajan en conseguir esa explicabilidad de la inteligencia artificial.

lunes, 22 de marzo de 2021

Algunas estrategias genéricas para la explicabilidad de la inteligencia artificial

Conseguir proporcionar unas explicaciones comprensibles por humanos a cómo ciertos algoritmos de la inteligencia artificial llegan a sus conclusiones es el objetivo de la explicabilidad de la inteligencia artificial o de la inteligencia artificial explicable.

Ese objetivo de la explicabilidad es, a la vez, particularmente difícil y particularmente interesante en el caso de los algoritmos implementados como redes neuronales, como deep learning.

Es especialmente relevante porque ese tipo de redes son las 'responsables' de muchos de los éxitos recientes en inteligencia artificial y es particularmente difícil porque la estructura interna de una red neuronal y los datos que maneja están muy lejos de las estructuras simbólicas del lenguaje y forma de razonar consciente, o al menos de entender, de los humanos que nos gustaría obtener como resultado de esa explicabilidad.

Sin embargo, el ingenio humano no parece tener límite y, para una tarea que, en primera impresión, parece acercarse a la imposibilidad, ya existen enfoques capaces de obtener unos ciertos resultados. Y se trata, por cierto, de unos enfoques tan algorítmicos como los mismos algoritmos a los que intentan dar una explicación.

Se trata de un campo en investigación y exploración donde puede haber muchas ideas, muchos pilotos y muchas técnicas y probablemente vayan inicialmente creciendo y diversificando en técnicas y algoritmos para luego ir consolidando en lo que obtienen mejores resultados. Pero como una aproximación, quisiera recoger en este post cuatro grandes líneas de trabajo que se explican en el libro 'Explainable AI: Interpreting, Explaining and Visualizing Deep Learning' editado por Wojciech Samek, Grégoire Montavon, Andrea Vedaldi, Lars Kai Hansen y Klaus-Robert Müller. Los propios autores reconocen que no se trata de un censo exhaustivo, pero aún así, creo que resulta interesante. Estos son los cuatro enfoques:


  • Explicación mediante sustitutos ('surrogates'): Se aplica en el caso de modelos complejos y consiste en aproximar el modelo de manera local mediante una función sustituta simple y èrfectamente interpretable. Un caso conocido de este enfoque es LIME (Local Interpretable Model-agnostic Explanations). En este método, se muestrea en la red en la vecindad de una entrada de interés obteniendo los valores en esos puntos y con eso intenta encajar la función sustituto que mejor se aproxima. Tiene la ventaja de ser un método agnóstico al modelo subyacente (el que se quiere explicar) y como contrapartida sufre de un alto coste computacional.

  • Explicación mediante perturbaciones locales: En este caso se analiza la respuesta del mode a cambios locales. A su vez, se subdivide en métodos que se basan en el gradiente de la función de interés, como es el caso del análisis de sensibilidad ('sensitivity analysis') y otros que se basan en perturbaciones, como el Prediction Difference Analysis (PDA)

  • Enfoques basados en propagación: Si los métodos anteriores eran agnósticos al modelo que explicaban, los modelos de propagación se apoyan en la estructura interna para el que intentan proporcionar explicabilidad. Un framework importante en estae tipo es LRP (Layer-wise Relevance Propagation) que es aplicable a diferentes arquitecturas de redes, incluyendo las redes recurrentes LSTM (Long Sohrt-Term Memory). LRP explica decisiones individuales mediante una propagación inversa desde la predicción en la salida hasta las entradas usando unas reglas de redistribución locales. Lo que intenta hallar LRP es, ante una decisión dada, cuánto contribuyó una característica de entrada a que se adoptase esa decisión. Otros casos de este tipo de técnicas son Deconvolution y Guided Backpropagation. En estos dos casos, lo que se intenta es identificar patrones en el espacio de entrada que se relacionan con la salida de la red. Y aún hay más opciones dentro de este enfoque.

  • Meta-explicaciones: Va más allá de la explicaciones individuales hacia una una 'meta-explicación' del comportamiento de todo el modelo para encontrar patrones del comportamiento de un clasificador. Un método dentro de este ámbito es SpRAy (Spectral Relevance Analysis) que busca ese modelo general mediante el 'clustering' de mapas de calor, pero existen otros enfoques,

Cada uno de los enfoques mencionados puede incluir varios métodos y cada método se merece, o precisa, una detallada y compleja explicación para conocerlos perfectamente. No obstante, el propósito de este post, es sólo dar una primera estructuración y apuntar algunos nombres de métodos reconocidos, como soporte para un más amplio trabajo posterior.


jueves, 18 de marzo de 2021

Llegó el día: Hoy sale a la venta mi nuevo libro "Robots en la sombra"

Ha llegado el día: hoy se pone a la venta mi nuevo libro, el segundo, titulado 'Robots en la sombra'.

Y, a diferencia del anterior, en esta ocasión, y gracias a haberlo publicado con una de las grandes editoriales de este país, Anaya Multimedia, mi libro podrá encontrarse en papel en las principales librerías, aparte de, por supuesto, en las habituales tiendas online. incluyendo, ni que decir, tiene, Amazon.

Espero que ese hecho contribuya a darle una distribución y llegada lo más amplia posible porque, aparte de mi innegable interés personal, creo que 'Robots en la sombre' llena un enorme hueco en la literatura técnica: la ausencia de bibliografía sobre RPA de suficiente amplitud y calidad. A lo cual se añade el hecho de que 'Robots en la sombra' es , con casi total seguridad, el primer libro sobre RPA en Castellano.

El tema del libro: los robots software


Hablo de que 'Robots en la sombra' es un libro sobre RPA (Automatización Robótica de Procesos) pero en realidad la temática es más amplia, abordando el campo de los robots software que también incluye, y como grandes protagonistas, los robots conversacionales (chatbots, voicebots, asistentes virtuales y altavoces inteligentes) junto con alguna otra 'especie robótica' de menor relevancia.


Micrositio


Para centralizar la información sobre el libro, he creado un micrositio dedicado al libro, aunque incrustado en mi página oficial, y al que puedes acceder mediante la dirección: robotsenlasombra.es.


Vídeo de lanzamiento


Y para celebrar el acontecimiento y de paso, por qué no decirlo, para intentar contribuir a su promoción, he elaborado este vídeo que, de una manera breve, en poco más de dos minutos, resume las principales ideas de la obra.





Índice


Finalmente, adjunto el índice, para que puedas hacer más idea del contenido pero, casi mejor: ¿Por qué no te animas a leerlo?

  • PRÓLOGO
  • INTRODUCCIÓN: Leer un libro y cerrar un círculo
  • PREFACIO: Una noche en la oficina
  • PARTE I: ENTENDIENDO LOS ROBOTS SOFTWARE
    • Capítulo 1: Las habitantes de las sombras. ¿Qué es un robot software?
    • Capítulo 2: Robots en la oficina. La Automatización Robótica de Procesos
    • Capítulo 3: Robots parlanchines: chatbots, voicebots y asistentes virtuales
    • Capítulo 4: Otras especies robóticas
  • PARTE II: LA TECNOLOGÍA QUE ANIMA A LOS ROBOTS
    • Capítulo 5: Aplicaciones en la chistera. Screen Scraping, teclado y ratón.
    • Capítulo 6: Papeleo robótico: Interacción con documentos y ficheros
    • Capítulo 7: Hasta las nubes y más allá: computación en la nube e integración.
    • Capítulo 8: En el cerebro del robot: Inteligencia artificial y machine learning
    • Capítulo 9: ¿Cómo ven los robots? Visión artificial y OCR.
    • Capítulo 10: ¿Cómo hablan, escuchan y leen los robots? Lenguaje natural y tratamiento de la voz.
    • Capítulo 11: A lo grande: escalabilidad y seguridad
  • PARTE III: ROBOTS, NEGOCIO Y SOCIEDAD
    • Capítulo 12: Los robots software en el contexto de la automatización
    • Capítulo 13: Criterios de aplicación de robots software
    • Capítulo 14: En marcha: Gestión de iniciativas de robotización
    • Capítulo 15: Modelos de negocio robóticos
    • Capítulo 16: Robots y sociedad.
  • POSFACIO: Amanecer


viernes, 12 de marzo de 2021

Cinco características deseables de una explicación de Inteligencia Artificial

La capacidad de los algoritmos de inteligencia artificial para proporcionar unas explicaciones que permitan de una manera comprensible por los humanos entender los motivos de una decisión algorítmica es el objetivo de la inteligencia artificial explicable o la explicabilidad de la inteligencia artificial, un objetivo que se demuestra, eso sí, complejo y no siempre suficientemente claro.

En un post anterior, comentábamos algunos tipos diferentes de explicaciones que podemos esperar de un algoritmo y ahora buscamos las características que debe tener una explicación o un algoritmo explicativo. En la misma fuente utilizada en el artículo anterior, el libro 'Explainable AI: Interpreting, Explaining and Visualizing Deep Learning' editado por Wojciech Samek, Grégoire Montavon, Andrea Vedaldi, Lars Kai Hansen y Klaus-Robert Müller se mencionan las cinco características deseables en las explicaciones de la inteligencia artificial, a saber:


  • Fidelidad: La explicación debe ser una representación razonable de lo que el sistema realmente hace.

  • Inteligibilidad: Es decir, que sea comprensible, lo cual incluye elementos como el nivel de abstracción empleado o la interactividad.

  • Suficiencia: Debe explicar tanto la función como la terminología y ser suficientemente detallado como para justificar una decisión.

  • Bajo coste: El coste de obtener la explicación no debería ser dominante en el total de costes del desarrollo del elemento de inteligencia artificial

  • Eficiencia: La capacidad de explicarse no debería ralentizar de manera significativa al ejecución del algoritmo.


Si se rebusca en la fuente, se ve que, en realidad, estas cinco características son un enunciado ya antiguo, realizado en 1993 por Swartout y Moore y que se refería a sistemas expertos, una forma de inteligencia artificial hoy día en desuso. Sin embargo, parece un marco adecuado todavía hoy día y perfectamente aplicable al deep learning. 

Se trata, además, de unas características que unen no solo la aspiración propiamente explicativa sino también consideraciones prácticas relevantes como el coste o la eficiencia computacional, quizá más importantes todavía en la actualidad que cuando fueron enunciadas.

Las conservamos pues como marco aspiracional en los siguientes pasos en materia de explicabilidad.


miércoles, 10 de marzo de 2021

Explicabilidad de la Inteligencia Artificial: ¿Qué es lo que queremos explicar?

Una de las áreas de trabajo en Inteligencia Artificial, un área, además, relacionada con los aspectos éticos e incluso legales de la Inteligencia Artificial, es el de la explicabilidad de la inteligencia artificial o la inteligencia artificial explicable ('explainable AI').

¿En qué consiste el problema?


El problema de la explicabilidad de la inteligencia artificial


Pues en que algunos de los algoritmos de inteligencia artificial más notorios, en concreto, por ejemplo, todos los que tienen que ver con deep learning, realizan sus cálculos o, si queremos llamarlo así, 'sus razonamientos', siguiendo unas técnicas de cálculo que nada tienen que ver con el razonamiento simbólico que usamos los humanos.

Eso quiere decir que, si mediante un algoritmo de ese tipo, decidimos por qué concedemos o no un crédito a una persona o por qué seleccionamos a una persona para un puesto, o por qué condenamos o absolvemos a un acusado, no sabríamos explicar en términos humanos por qué lo hemos hecho. Y por lo tanto, tampoco habría lugar a contra-argumentar o recurrir esa decisión, al menos no en términos de razonamiento humano.

Hace ya un tiempo escribí un artículo en este blog, afirmando, y lo mantengo, que, al contrario de lo que se suele decir, los algoritmos de inteligencia artificial sí que se explican, se explican perfectamente. Lo que pasa es que se explican en unos términos lógico-matemáticos que no siguen el esquema simbólico-lingüístico que usamos en el razonamiento consciente los humanos y que, por tanto, se explican en unos términos que no entendemos los humanos. A modo de paralelismo, es como si quisiésemos explicar nuestros mecanismos de decisión aportando como información qué áreas de nuestro cerebro se activan durante esa decisión y cómo están conectadas nuestras neuronas. Es decir, aunque los algoritmos de inteligencia artificial se explican, a efectos prácticos es lo mismo que si no se explicasen.


Tipos de explicaciones 


Pero, yendo un poco más allá ¿Qué querríamos que un algoritmo de inteligencia artificial nos explicase exactamente?

En el libro 'Explainable AI: Interpreting, Explaining and Visualizing Deep Learning' editado por Wojciech Samek, Grégoire Montavon, Andrea Vedaldi, Lars Kai Hansen y Klaus-Robert Müller se mencionan cuatro tipos de explicaciones  que podríamos desear, dependiendo del receptor de esa explicación y su intención al buscar una explicación. Estos son los tipos de explicaciones que proponen:


  • Representaciones aprendidas: Se trata de entender cómo se representa internamente en un modelo de deep learning lo aprendido por la red neuronal

  • Predicciones individuales: En este caso se trata de saber, para un caso concreto, qué es lo que ha conducido a un algoritmo a su conclusión. Por ejemplo, en el caso de una clasificador de imágenes, qué píxeles de la imagen original han pesado más en la decisión final.

  • Comportamiento del modelo: Se trata ahora de un entendimiento más general que las explicaciones a casos particulares, intentando comprender, de alguna manera, las estrategias que utiliza el algoritmo para llegar a sus conclusiones.

  • Ejemplos representativos Intentan entender un algoritmo, un modelo, mediante ejemplos representativos en los datos de entrenamiento lo que permite hacerse una idea de cómo los ejemplos de entrenamiento influyen en el modelo final.

La perspectiva que aportan estos autores en todo el libro y también, claro está, en esta tipología, es claramente técnica y cada uno de esos tipos de explicaciones  conlleva por detrás, trabajo a nivel de estrategias matemáticas y algoritmos para la explicabilidad. Es decir, en cierto sentido, explicamos algoritmos mediante otros algoritmos.

No se trata de un camino fácil, pero hay mucho interés en él y seguro que muy buenas cabezas trabajando en ello. Confiemos en que tengan éxito.


lunes, 8 de marzo de 2021

Mi nuevo libro: "Robots en la sombra"

Pues si, está a punto de ver la luz mi segundo libro, titulado 'Robots en la sombra'. En concreto, sale a la venta el próximo 18 de Marzo.

Cuando hace ya casi tres años me despedí de la que hasta entonces había sido 'mi casa profesional' durante 25 años, Telefónica, la contestación a la previsible y repetida pregunta de qué iba a hacer a continuación, incluía que me iba a dedicar, además de a otras cosas, a escribir y publicar. Las personas estamos dotadas de una gran facultad para detectar señales no explícitas, el llamado lenguaje no verbal, en nuestros interlocutores. Y mi percepción inequívoca fue de que la mayoría de la gente, quizá toda la gente, no se creía mucho esa parte de mi propuesta de futuro, que pensaban que se trataba de la típica originalidad o sueño que se dice en ese momento y luego se olvida.

No sabían que mi resolución era firme, y la respuesta a una profunda llamada vocacional. Y no sabían tampoco que, cuando eso les decía, ya tenía bastante avanzado el texto de lo que sería mi primer libro, 'La Carrera Digital'. 

Ese mi primer libro, 'La Carrera Digital' vio la luz en Mayo de 2019. Una gran experiencia. Un paso adelante. Un sueño cumplido. 

Pero la vocación y el sueño no se agotan, no al menos en mi caso, en una única publicación. Desde el mismo momento en que finalicé 'La Carrera Digital' y fiel a lo que en el posfacio de esa obra se dice, ya tenía unas nuevas metas, más de una idea para siguientes libros.

Y una de esas ideas es la que ahora ve la luz con mi nuevo título: 'Robots en la sombra'.

En 'La Carrera Digital' hablo de transformación digital y, entre otras cosas, hago un recorrido de perspectiva amplia de las tecnologías digitales más relevantes. Ahora, en 'Robots en la sombra' me centro en una parte específica de esa tecnología: los robots software. En concreto, pongo el foco fundamentalmente en la Automatización Robótica de Procesos (RPA) y los robots conversacionales (chatbots, voicebots, asistentes virtuales y altavoces inteligentes). un tipo de soluciones a las que he dedicado una parte importante mis actividades de docencia y asesoría de los últimos dos años. De hecho, a los alumnos de algunos de los programas o asignaturas que he impartido, les resultarán familiares algún discurso y algún diagrama.

En el libro, contemplo a los robots software desde una triple perspectiva:


  • En primer lugar, desde un punto de vista sobre todo funcional, es decir, explicando los conceptos, describiendo lo que son y, sobre todo, enumerando sus capacidades, lo que pueden hacer por nosotros y por nuestro negocio.

  • En un segundo paso, paso revista a las tecnologías subyacentes que se integran en los robots software, unas tecnologías algunas de las cuales son muy transversales como el cloud computing, las interfaces mediante APIs o la ciberseguridad, y otras son más específicas como el screen scraping. Y, sobre todo, pongo especial foco en la inteligencia artificial y su aplicación en procesamiento de lenguaje natural, reconocimiento y síntesis de voz, visión artificial y reconocimiento óptico de caracteres.

  • Y finalmente, adopto una visión más orientada al negocio y la gestión, con espacio dedicado a poner a los robots software en perspectiva con otras tecnologías de automatización de procesos, a proporcionar criterios y escenarios de aplicación, a detallar cómo gestionar iniciativas de robotización y a revisar el impacto en modelos de negocio. Además, remato esta parte con una visión final social y ética en que hablo de empleo, fiscalidad y ética con relación a los robots software.

'Robots en la sombra' es un libro que, cuando lo concebí, incluso cuando estaba comenzando su escritura, pensé que iba a ser una obra corta y fácil de escribir. No ha sido exactamente así. A medida que maduraba la idea me he ido dando cuenta de que tenía que ampliarlo algo más, especialmente la sección tecnológica, y el capítulo final con la visión social y ética. Al final ha quedado un libro de mediana extensión y creo que mucho más rico e interesante que como inicialmente lo había pensado.

Antes de finalizar este post, no puedo dejar de agradecer a Anaya Multimedia el que haya confiado en mi a la hora de publicar esta obra y a Richard Benjamins e Idoia Salazar, los autores del muy exitoso 'El mito del algoritmo', el que accediesen a prologar mi nuevo libro.

Ahora, evidentemente, lo que me importa es que 'Robots en la sombra' tenga lectores, cuantos más mejor, y que la lectura les sea provechosa.

'Robots en la sombra' sale a la venta en diez días, el 18 de Marzo, pero si algún lector es muy impaciente (me encantaría pensar que sí), ya se puede encontrar en preventa, por ejemplo, en Amazon.


miércoles, 3 de marzo de 2021

La paradoja del sentido común y la inteligencia artificial

A pesar de que la Inteligencia Artificial ha progresado mucho en los últimos años, a pesar de que no deja de asombrarnos con sus capacidades en materia, por ejemplo, de lingüística o de creación de imágenes y vídeos, lo cierto es que la Inteligencia Artificial actual aún está muy lejos de ser una inteligencia ni remotamente similar a la humana.

Y una de las barrera más importantes, uno de los obstáculos que actualmente parecen insalvables, es el dotar a la inteligencia artificial de sentido común, algo en apariencia tan sencillo como el sentido común.

¿Y cómo es que, con tanto avances, algoritmos y tecnología no logramos alcanzar ese sentido común?

Pues porque el sentido común es cualquier cosa menos simple. A los humanos nos parece simple porque, por decirlo de alguna manera, 'lo traemos de serie'. Todos (bueno, casi todos) los humanos estamos dotados de ese sentido común. Y eso nos lleva a, en cierto sentido, minusvalorar su dificultad, de la misma forma que minusvaloramos actividades que realizamos de forma casi automática como la misma percepción e interpretación de nuestro entorno o una coordinación tan compleja como la que supone bajar una escalera.

Creo que aplica en este caso la famosa paradoja de Moravec que ya comentábamos en un artículo anterior, según la cual, tareas que para los humanos son muy complejas, resultan sin embargo muy sencillas para las máquinas, como por ejemplo, el cálculo matemático y, por el contrario, tareas muy sencillas para las máquinas son tremendamente complicadas para las máquinas. 

En el caso del sentido común es que, además, en el fondo, no sabemos exactamente en qué consiste. Sabemos que, de alguna manera, implica conocimiento general y reglas básicas de su funcionamiento, sabemos que implica una cierta lógica en la forma de actuar, pero no sabemos definirlo, explicarlo, acotarlo, formalizarlo. Y por eso, es muy difícil conseguir que una máquina disponga de él.

Y esa es una gran paradoja que afecta al sentido común y que nos destacan Gary Marcus y Ernest Davies, en su libro 'Rebooting AI. Building Artificial Intelligence We Can Trust'  donde indican:


The great irony of common sense - and indeed AI itself - is that it is stuff that everybody knows, yet nobody seems to know what exactly it is or how to build machines that have it.


Es paradójico, si. 

Podríamos decir que las máquinas realizan muy bien, en general mejor que los humanos, tareas con reglas muy claras y que sabemos 'explicarles' vía programación de manera explícita y precisa. Pero tenemos serias dificultades cuando las reglas son ambiguas o, directamente, desconocidas.

Es cierto que el Machine Learning ha sido en parte capaz de superar esta barrera que supone que una máquina, un algoritmo, sea capaz de hacer algo para lo cual no somos capaces de proporcionarle unas reglas claras, sino que las tiene que aprender por sí mismo, con base en datos y experiencia. En parte ese es el truco de la inteligencia artificial basada en datos frente a la inteligencia artificial simbólica.

Pero, debe ser que, tareas como la visión y el tratamiento del lenguaje, a pesar de las apariencias, son relativamente sencillas, y por ello hemos dado con el truco para que un algoritmo aprenda a hacerlas.

Y, sin embargo, el sentido común, quizá la capacidad en apariencia más sencilla, sea, en el fondo, la más compleja de todas, la más polifacética, la más difícil de alcanzar.

Paradojas.


lunes, 1 de marzo de 2021

Nueve riesgos relacionados con la inteligencia artificial

Para bien y para mal, para ambas cosas, existe mucho eco mediático sobre las bondades y los riesgos que pesan sobre la inteligencia artificial y sobre las necesidades de carácter ético y regulatorio que se entienden necesarias para eliminar riesgos.

La inteligencia artificial es una tecnología (más bien una familia de tecnologías) avanzadas y apasionantes y, particularmente, me gusta más mirar su cara amable, sus éxitos a nivel funcional, su impacto en los negocios, su potencial para definir nuevas soluciones y su papel impulsor del desarrollo económico y el bienestar social.

A pesar de ello, no parece razonable ignorar los riesgos y problemáticas, y por ello, últimamente también me estoy ocupando de leer y entender posiciones críticas.

Así, por ejemplo, leyendo el libro 'Rebooting AI. Building Artificial Intelligence We Can Trust' de de Gary Marcus y Ernest Davies, me encuentro con un listado de riesgos que esos autores ven en la inteligencia artificial y que, sin ser los únicos, si son. sus palabras, los que más les preocupan. Se trata de estos nueve riesgos:


  • Exceso de atribución: un error por el que tendemos a asignar a las máquinas características humanas (ya nos hemos referido en este blog a algo parecido al hablar de antropomorfización) y eso nos conduce, entre cosas cosas, a atribuirles más capacidades y méritos de los que realmente tienen.

  • Falta de robustez: se argumenta que los sistemas de inteligencia artificial actual tienden a no ser robustos y no funcionar bien fuera de ciertos casos concretos.

  • Dependencia de los datos de entrenamiento: en muchos casos, los algoritmos de inteligencia artificial, y en particular de machine learning, dependen en mucha medida de los datos de que han dispuesto en su entrenamiento. Un algoritmo bien entrenado y con buenos resultados para aquella situación en que ha sido entrenado, puede comportarse de manera errónea en problemas algo diferentes al original

  • Sesgos: un filtrado poco cuidadoso en los datos de entrenamiento, puede dar lugar a que se perpetúen sesgos sociales existentes cuando a lo mejor querríamos otra orientación.

  • Efecto eco: se trata de un cierto efecto de amplificación o resonancia. . Así, debido a la enorme necesidad de datos de entrenamiento necesarios hoy en día, algunas estrategias de entrenamiento recurren a datos generados de forma artificial también por algoritmos. Es más, y quizá más importante, de manera progresiva, la información existente en la realidad será consecuencia de lo que se ha deducido o decidido por los algoritmos. Eso puede provocar una cierta realimentación o eco, en que los algoritmos se refuerzan a si mismos en sus conclusiones, quizá no correctas.

  • Manipulación: en la medida en que el entrenamiento de los algoritmos se realice con datos públicos, contenidos, por ejemplo, en internet y medios sociales, existe una cierta probabilidad de que esos datos puedan ser de alguna forma trucados o manipulados.

  • Amplificación de sesgos: el efecto eco, que mencionábamos más arriba, unido a unos ciertos sesgos de partida existentes realmente a nivel social, pueden resultar en una amplificación del sesgo.

  • Objetivos erróneos: Es muy fácil establecer objetivos erróneos para un algoritmo, no porque realmente haya ninguna mala intención o negligencia sino porque no advertimos que el objetivo es inexacto o erróneo y que una interpretación, digamos 'literal' por parte del algoritmo de lo que debe conseguir, lleva a éste a comportamientos absurdos.

  • Daño deliberado: La inteligencia artificial ya actualmente puede ser usada deliberadamente para causar un serio daño, desde su empleo en armas autónomas hasta todo tipo de ciberataques.

Veo que algunos riesgo se entrecruzan y mezclan un poco unos con otros pero, por lo demás, me parecen unos riesgos bastante ciertos, por más que, eso si, si sólo recurrimos a este listado de problemas, a esta especie de casa de los horrores de la inteligencia artificial, podemos llevarnos una visión negativa del estado y méritos reales de la inteligencia artificial. Una visión negativa que esa sí que no la comparto y que tampoco creo que sea fiel a la realidad.

De todas formas, lo importante cuando se identifican riesgos es establecer lo que se denominan, planes de mitigación (medidas para que esos riesgos no se traduzcan en problemas reales) y planes de contingencia (planes de acción en caso de que los problemas se materialicen).

En ese sentido, como punto de partida para trabajar en la mejora de la inteligencia artificial, es buena cosa disponer de identificaciones de riesgos como esta.