Nota: He revisado la conversación porque había quedado demasiado larga intentando que no se pierda nada fundamental en el proceso.

En este artículo continuamos el experimento de contar un concepto complejo con cinco niveles distintos en función del nivel de madurez intelectual y conocimientos del interlocutor. En esta ocasión abordamos el nivel 3, o de jóvenes universitarios técnicos o científicos. Se trata, asimismo, del nivel que considero adecuado para un experto generalista que no es especialista en inteligencia artificial, aquél que le permite conocer los principios básicos de un dominio o de un concepto sin tener que conocer todos los detalles de su implementación. Si no sabes lo que es un experto generalista, quizás te interese ver este artículo.

(Sandra, tiene 20 años y estudia 3º de ingeniería informática) [el personaje es ficticio]

¿Has oído hablar del término Inteligencia Artificial (IA)?

Sí claro, es un término que sale de vez en cuando en las clases de la universidad y por supuesto en redes sociales y en las noticias. Pero todavía no he tenido clases específicas de esto, están en el último curso. Se trata de programas que son capaces de reproducir en mayor o menor medida características y comportamientos de los seres humanos, con independencia del substrato en el que se produzca esta computación, quiero decir, si es un medio físico como un robot o si se trata de un programa sin ningún tipo de encarnación física.

Photo by Michael Dziedzic on Unsplash

Muy bien, Sandra, efectivamente ya tienes una buena idea de lo que es la Inteligencia Artificial. La mejor definición que conozco es la de que “la IA es el arte de programar máquinas para que hagan tareas que cuando la realizan seres humanos requieren inteligencia”.

En primer lugar, porque esta definición señala que esto es aún más arte y experimentación, que una ciencia. Aquí la ingeniería va por delante de la ciencia en cuanto que no disponemos de leyes que nos permitan predecir el comportamiento de un programa inteligente o el nivel de inteligencia que podemos conseguir mediante la combinación de varios módulos. Sólo sabemos que unas cosas funcionan y otras no, pero no sabemos muy bien por qué.

¿Tienes alguna idea de cuáles son esas características que nos hacen ser inteligentes?

Bueno -reflexiona Sandra

Algunas sí las tengo claras: la capacidad de cálculo, el razonamiento lógico y el aprendizaje, por ejemplo. Las dos primeras, diría que son exclusivas de los seres humanos, pero la última, creo que es general a muchos otros animales.

Muy bien Sandra. Hay algunas características más que definen la inteligencia, pero creo que es suficiente con hablar un poco sobre las que has nombrado. La más fácil de visualizar es la de la capacidad de cálculo. En esta faceta y a pesar de la existencia de algunas personas que son “calculadoras humanas”, hace muchas décadas que son mejores que nosotros, primero en forma de máquinas específicamente diseñadas para realizar sólo funciones de cálculo y después en los ordenadores capaces de realizar operaciones de propósito general, entre otras, calcular.

Sí, si, esa está clara -afirma con la cabeza Sandra.

En cuanto a razonar, tú ya habrás estudiado un sistema lógico, el que usan los ordenadores para poder soportar operaciones en el sistema binario de numeración, el álgebra de Boole, ¿no?

¡Uf, Boole! -resopla Sandra- Al principio es un poco duro, sobre todo pensar en base 2, pero luego cuando le pillas el aire no están complicado. Al final se puede computar cualquier función usando combinaciones de puertas lógicas...

¡Para un momento!, quédate con esa idea que me acabas de decir, que luego volveré a ella.

Volviendo a la lógica. Igual que hay una lógica para la computación, hay una lógica para el razonamiento y la representación de la realidad, que, por cierto, es otra característica de la inteligencia íntimamente relacionada con el razonamiento, porque sin ésta no es posible aquélla, por eso la he añadido yo a tu lista. La idea aquí es que las IA puedan tomar decisiones racionales, que es un ideal al que aspiramos los seres humanos desde hace miles de años, desde los griegos clásicos. Ser racional para una IA es tomar la decisión que maximiza su función objetivo o su función de utilidad (que no son exactamente lo mismo, ya que cuando tienes más de un objetivo y pueden entrar en contradicción necesitas una función de utilidad para mantener un compromiso entre objetivos opuestos).  ¿Hasta aquí lo tienes claro?

-dice Sandra decidida, a pesar de que la explicación no era trivial en absoluto.

Los primeros sistemas de IA en los años 50 a 70 del siglo pasado funcionaban así, mediante las leyes de la lógica eran capaces de demostrar teoremas matemáticos o lógicos. Es lo que se llama en la actualidad GOFAI (o IA “de toda la vida”).

Los sistemas basados en la lógica fueron los primeros, pero sus capacidades son muy limitadas aunque son potentes a la hora de establecer la verdad o falsedad de frases muy complejas de eventos. A pesar de ello, no pueden tratar la incertidumbre pero sí permiten establecer generalizaciones de hechos, objetos o relaciones, que es justo lo que buscamos, de ahí su importancia.

Photo by Possessed Photography on Unsplash

Con estos sistemas se construyeron los llamados sistemas expertos, pero estaban reducidos a ámbitos de conocimiento limitados, donde el número de estados posible fuera relativamente reducido y no hubiera incertidumbre, porque de otra manera el número de estados posibles a considerar, lo que se llama el espacio de búsqueda de las posibles relaciones entre los elementos, crecía exponencialmente excediendo rápidamente la capacidad de cálculo de la época. Y en los sistemas modernos si quieres capturar la complejidad de la realidad necesitas centenares o miles de relaciones entre objetos, lo cual produce lo que se llama “explosión combinatoria” y el número de posibles combinaciones crece casi hasta el infinito y por muy potentes que sean los ordenadores sólo pueden explorar una pequeñísima parte de ese vastísimo espacio de búsqueda, lo que nos devuelve a la casilla de salida.

Como los sistemas lógicos no pueden tratar con la incertidumbre y la realidad está llena de ella, aparecieron en los años 80 del S.XX los sistemas de segunda generación, basados en la teoría de la probabilidad que, si bien sólo sabe de hechos como la lógica de primer orden, nuestra creencia sobre estos hechos puede tener cualquier valor entre 0 y 1, siendo 0 que el falso y 1 que es verdadero. Esta es la característica que usa la IA para hacer sus razonamientos bajo incertidumbre, o bien para hacer una predicción. Para ello hacen uso del Teorema de Bayes como pilar fundamental. ¿Conoces el Teorema de Bayes?

Sí lo hemos visto en estadística, dentro de las probabilidades condicionales. Lo veo potente conceptualmente, pero me cuesta acabar de entender bien sus ramificaciones, ¿cómo lo usan las IA?

Bueno, te resulta difícil de entender porque el Teorema de Bayes nos permite calcular la probabilidad de una causa dado el hecho de que se ha producido un efecto. Es una deducción que hace en la dirección anticausal, por eso en tiempo de Bayes, en el siglo XVIII, se le llamaba “probabilidad inversa”. Ocurre que en esa dirección nuestro cerebro no trabaja bien y nuestra intuición falla porque la evolución darwiniana nos ha dotado de un cerebro causal, si pasa esta cosa (la causa) se produce este efecto (la consecuencia), que es la que nos asegura la supervivencia, al menos a corto plazo.

Suponte que tenemos una IA en un equipo de diagnóstico portátil que evalúa el riesgo de que tengas la covid-19. Antes de empezar a usar el equipo la probabilidad “a priori” de que una persona cualquier esté infectada es la incidencia de esa enfermedad entre la población.

¿Qué entiendes por incidencia de una enfermedad? -pregunta rápidamente Sandra

Es el número de casos detectado de una enfermedad en un periodo concreto de población que está infectada en un momento dado. Si una persona no se encuentra bien y presenta una serie de síntomas compatibles con el coronavirus -las consecuencias-, entonces la probabilidad de que esa persona esté infectada con el coronavirus -la causa-, aumenta en una cantidad fija (que es la que calcula la regla de Bayes), que no depende de la probabilidad a priori, que es la incidencia acumulada en 14 días en este caso.

Photo by Owen Beard on Unsplash

Esta cantidad fija, mide como de más verosímil es tener los síntomas de la enfermedad si se está infectado, respecto de la población en general (a esto se le llama relación de verosimilitud).

A continuación, dado que la probabilidad de estar infectado se ha incrementado respecto a la información inicial (incidencia acumulada en la población en general), tiene sentido usar el equipo de diagnóstico portátil y realizamos, por ejemplo, una prueba de antígenos.

Si saliera negativa, no quiere decir que estemos libres de coronavirus, simplemente este nuevo hecho disminuiría la probabilidad en una cantidad fija, que está relacionada con la verosimilitud de que la prueba salga negativa teniendo síntomas y un conviviente confirmado con covid. Probablemente el sistema de toma de decisiones de la IA nos recomendaría realizarnos otra prueba a las 24h, manteniendo confinamiento por si acaso.

Pero si saliera positiva, se habría actualizado al alza gracias a Bayes la probabilidad de estar infectado, porque la relación de verosimilitud sería distinta, ya que las evidencias acumuladas empezarías a ser del tipo de: “si parece un pato, grazna como un pato, vuela como un pato y nada como un pato, es que probablemente es un pato”.

¿Entiendes mejor ahora lo que hace Bayes, Sandra?

Si, creo que sí, pero es denso -dice Sandra tras reflexionar unos segundos.

Efectivamente Sandra así es. Pues bien, esta idea de Bayes en los años 80 del S.XX, la extendió el informático Judea Pearl, a cualquier número de variables relacionadas entre sí estadísticamente, formando las llamadas redes bayesianas, en la que es posible preguntarse sobre causas ocultas no visibles a partir de sucesos que sí son observables, relacionando variables no mediante causa-efecto sino en sentido probabilístico, lo que se llaman correlaciones en estadística, por ejemplo cuando tienes el coche que no arranca  estadísticamente hay elementos que tampoco suelen funcionar como que la batería esté descargada o que no haya aceite en el coche, pero no necesariamente unos han de ser causa de los otros. ¿Has estudiado la correlación en estadística?

-responde con decisión Sandra- Es una relación estadística entre dos variables. Lo primero que aprendes es que correlación no es causalidad. Por ejemplo, hay una correlación entre el canto de un gallo y que salga el sol, pero no es una relación causal. Es decir, que, si no canta el gallo al amanecer, ¡no hemos de esperar que sea el fin del mundo porque no vaya a salir el sol! -sonríe pícaramente Sandra.

Exacto, ¡está muy bien ese ejemplo!, me lo anoto. Las IA actuales funcionan a través de correlaciones, no de causalidad lo cual es un problema para que se hagan verdaderamente inteligentes. Todavía estamos aprendiendo a construir IA que sepan cuando una correlación es además causal, lo que les proporcionará el “sentido común” o conocimiento de cómo funciona el mundo, pero se trata de un reto formidable, que hasta ahora a pesar de la existencia de iniciativas muy fuertes por codificarlo, han fracasado.

Volviendo a las redes bayesianas, hay varias variables que están relacionadas con el hecho observable de que el coche no arrancara y estas a su vez se relacionan con otras posibles observaciones de otros elementos del coche, como el medidor de aceite o con estos internos del coche no observables directamente como que la batería del coche no cargue. Gracias a las redes bayesianas podemos razonar bajo la incertidumbre, especificando, observando y calculando las probabilidades condicionales de muchas variables sin tener que calcular todas las combinaciones posibles. Por ejemplo, si hubiera sólo 16 variables serían 216=65.536 distribuciones de probabilidad a calcular, pero gracias a las redes bayesianas sólo hemos de calcular unas pocas.

Son tan importantes que prácticamente se usan en todos los campos: medicina, finanzas, robótica, buscadores Web, aprendizaje automático, etc.

¿Y esta incertidumbre de donde viene? -pregunta Sandra interesada

Bueno, a veces es pura aleatoriedad del entorno por ejemplo una partida de cartas donde se barajan previamente las cartas que se reparten, pero las más de las ocasiones es que no tenemos información completa de lo que pasa y hay otras variables ocultas que no vemos. Otras razones son las limitaciones de nuestros sensores, la acción de nuestros adversarios si se trata de un juego, por ejemplo, y a veces nuestra propia pereza para hacer los cálculos necesarios. Nunca desprecies el factor humano, Sandra.

Después de las redes bayesianas se desarrollaron una serie de métodos para tomar decisiones y planificar bajo incertidumbre. Estos métodos simplificando mucho se reducen a dos: los modelos de Markov y los modelos de Markov ocultos que permiten tomar decisiones sobre variables que cambian con el tiempo, tratándolas como si fueran aleatorias (y lo son a efectos prácticos por cualquiera de los motivos que te he enumerado antes). En el primer caso se trata de variables que son directamente observables y, en el segundo, sobre variables que no podemos observar directamente. La única suposición que hacen estos métodos es una simplificación de la realidad que dice que lo que sucede en un instante sólo depende de lo que ha sucedido el instante anterior, pero de ninguno más. Lo cierto es que funcionan sorprendentemente bien incluso en situaciones donde esto no es cierto.

¿Podrías ponerme un ejemplo de modelos de Markov y modelos de Markov ocultos? –pregunta inquisitivamente Sandra.

Claro, así lo verás más fácilmente. Un caso de un proceso de decisión de Markov, es el de un robot que hace de guía turístico, en particular para tratar el problema de planificación de la ruta a seguir de una zona a la siguiente. Resulta que en este caso el entorno de esta tarea es estocástico (aleatorio), ya que cuando un robot quiere ir de una zona a la siguiente no siempre va exactamente donde quiere, sus ruedas tienen una tolerancia y no lo llevan exactamente por el mismo sitio, o bien hay una irregularidad en el piso que le desvía, o hay una persona en su camino por lo que tiene que cambiar de itinerario.

En cuanto a los procesos de Markov ocultos, son incluso más importantes. Se utilizan para el análisis y predicción de cualquier serie temporal de datos. Pero, por seguir con el ejemplo del robot turístico, hay un problema que se llama localización, que trata de saber exactamente donde está el robot dentro del museo para contar la historia correcta en cada sitio. La diferencia con el problema anterior es que, a pesar de disponer de un plano del museo, no tiene un sensor que le diga exactamente su posición (el GPS non funciona en interiores), que es el estado que nos interesa conocer, sino que tiene unos sensores que se llaman buscadores de rango (o distancia), que son una secuencia de medidas que contienen un error y de las cuales se debe inferir mediante triangulación dónde se ubica el robot, que es el estado que nos interesa conocer.

Otro ejemplo sería el de la mayoría de los problemas de medicina, que se tratan como procesos de Markov ocultos porque la enfermedad no es observable directamente, sino sólo los síntomas que tiene una persona o los valores medidos por las pruebas diagnósticas. La única excepción aquí sería aquí la prueba de la PCR, porque se trata de una prueba que directamente mide la infección a través del ARN y por ser la causa misma y no un efecto, en este caso no aplica el teorema de Bayes y el resultado de la prueba sólo está limitado por su precisión diagnóstica.

Vale, vale -dice Sandra-, creo que lo he entendido, ¿qué me puedes decir del aprendizaje?

(Me quedo impresionado con la capacidad de comprensión de Sandra, ¡ni ha pestañeado después de la explicación anterior! A mi me costó bastante más entender todo esto).

Photo by Agence Olloweb on Unsplash

Pues el aprendizaje es una de las capacidades más distintivas de las personas, que como tú bien has dicho compartimos con muchos animales, lo que nos diferencia es la intensidad y la eficiencia con que se produce en nuestro caso. De forma simple, el aprendizaje es la capacidad de incorporar nueva información basándose en el entrenamiento, en la experiencia, o bien en la observación, lo cual da lugar a los tres tipos de aprendizaje que básicamente existen en IA.

En el aprendizaje supervisado, vamos enseñando progresivamente a la IA a aprender una función que es la que produce un error más bajo entre el conjunto de entradas y la salida o salidas correctas que han de ser etiquetadas por seres humanos. Este aprendizaje se produce separando las muestras etiquetadas en un conjunto de entrenamiento y un conjunto de validación que se mantiene aparte, en una proporción (70-90% / 30-10%) según el método de aprendizaje automático utilizado y sobre todo el tamaño del conjunto original etiquetado. Si tienes muchas etiquetas, incluso un 10% pueden ser suficientes para probar si la IA una vez entrenada, ha aprendido a generalizar, es decir a clasificar, o predecir, un número correcto o una etiqueta, sobre muestras que nunca ha visto.

Así pues, vas mostrando a la IA, uno tras otro los ejemplos etiquetados del conjunto de entrenamiento de manera que la IA haga la predicción y se compare con la etiqueta. Después unos algoritmos matemáticos tratan de que el error de clasificación o de predicción obtenido, se vaya reduciendo progresivamente. Una vez hecho el trabajo inicial (pesado) de clasificación, este proceso puede ser automatizado para avanzar mucho más rápido. Esto se puede implementar usando diversos algoritmos y es el campo principal del llamado aprendizaje automático (machine learning). ¿Estás familiarizada con el concepto de algoritmo, ¿no?

Sí, es una secuencia ordenada de pasos que dicen exactamente lo que hay que hacer utilizando para ello un lenguaje de descripción -dice Sandra muy segura.

(Nuevamente me deja sorprendido Sandra, por lo bien que es capaz de definir un concepto complejo. Me quedo mirándola pensando: «si yo hubiera sido la mitad de inteligente que ella»).

Bien definido. En el aprendizaje automático hacemos algunas suposiciones sobre la forma en que puede tener la función que aprende a conectar las entradas, nuestras variables, con las salidas, que pueden ser una categoría como “pieza ok” o “pieza defectuosa” o bien una cantidad, como el precio a pagar por una casa. El primer caso se llama clasificación y el segundo, regresión. Existen decenas de algoritmos que son capaces de esto, al tiempo que minimizan el error cometido según van recorriendo el conjunto de entrenamiento. Después viene la fase de validación donde utilizamos el conjunto de validación que no ha visto la IA en su entrenamiento para saber si ha aprendido a generalizar, que es la base del aprendizaje o si, por el contrario, está memorizando sólo el conjunto de entrenamiento y sólo parece muy bueno porque repite como un loro lo que ha aprendido.

Pero hay problemas en que no sabemos como escribir explícitamente un programa que aprenda esa función que previsiblemente puede ser muy compleja, ni tampoco intuir el tipo de funciones que sirven de base para hacer esa representación, por ejemplo, para distinguir perros de gatos. Para estas ocasiones tenemos las llamadas redes neuronales artificiales, que simulan de manera muy simplificada el comportamiento digital (se activa o no se activa) de las neuronas biológicas, por eso tienen una función matemática de activación, no lineal en cada nodos de la red, que es la que les permite hacer cosas interesantes, pero que, al mismo tiempo, hace difícil de explicar lo que hacen. Esto puede producir problemas de confianza en sus decisiones porque no entendemos cómo han llegado a una conclusión determinada que puede afectar a nuestras vidas, como por ejemplo por qué nos han denegado la posibilidad de hacernos un seguro o en recomendar al juez que fije o no una fianza.

¿Te acuerdas de lo que dijiste de que puertas lógicas se puede implementar cualquier función?  – Sandra asiente.

Pues bien, las redes neuronales, hace décadas que se probó matemáticamente que trabajan como aproximadores generales de funciones, por eso son capaces de aprender relaciones tan complejas en el llamado aprendizaje profundo o Deep Learning, que podríamos decir es la tercera generación de IA. Aquí en vez de una única capa de nodos ocultos entre la entrada de la red neuronal artificial (las variables de decisión) y la capa de salida salida (los posibles resultados de la clasificación o la predicción), usan varias capas ocultas (a veces centenares), permitiendo no sólo hacer abstracciones, sino también aprender jerarquías, como: primera capa:  aprende líneas verticales, horizontales, oblicuas, etc.; segunda capa: partes de la cara; tercera capa,:miembros como cabeza, tronco o brazos, etc. Con estas redes el problema más normal es que memoricen el conjunto de entrenamiento, aunque sea muy grande y que no aprendan a generalizar.

La segunda forma de aprendizaje se llama aprendizaje por refuerzo (reinforcement learning), o en base a la experiencia de prueba y error. Este es el más parecido a como los seres humanos aprendemos.  Conceptualmente es muy parecido a un proceso de Markov oculto, en el que pasamos por una serie de estado-acción-nuevo estado, pero sin tener un plano del entorno, ni las transiciones de un estado a otro, ni sabemos donde están las recompensas y los castigos, pero en los que, eventualmente en alguno de estos estados o a veces al final, recibimos una recompensa o un castigo, por ejemplo, ganar la partida de ajedrez. Se trata de aprender una función, denominada política, que nos diga que acción tomar en cada estado.   Por este motivo siempre tiene que haber un equilibrio entre explotar el conocimiento adquirido y explorar nuevas posibilidades, aunque a veces nos equivoquemos, para encontrar mejores maneras de hacer una tarea.

Esta forma de aprender está especialmente adaptada a las tareas en las que es posible construir un entorno simulado, donde aprovechar la potencia computacional de los ordenadores, permitiendo que la IA juegue contra copias o versiones de sí misma. Pero a pesar de los grandes progresos, todavía su aprendizaje es mucho menos eficiente que los seres humanos y ha de simular miles y, a veces, millones de veces su comportamiento en estos entornos para ser realmente bueno, a veces sobrehumanamente, en esa tarea, pero sólo en una o, en las ultimas IA, unas pocas tareas de estructura similar.

Así que, la gran esperanza de aprendizaje automático es el Aprendizaje no supervisado (Unsupervised Learning), cuyo ideal sería darle un conjunto de datos y que esta establezca por si sola las relaciones entre variables y extraiga conclusiones de ello y sea capaz de tomar decisiones.

Hace unos años los algoritmos de este tipo sabían separar en agrupaciones de muestras con similitudes en cuanto a rangos o valores de las distintas variables utilizadas, , pero después se necesitaba de un ser humano, con sentido común que interpretara el posible significado de cada una de ellas. En los últimos sistemas eso está cambiando y se empieza a vislumbrar una intución y creatiivad artificiales.

Bueno, Sandra, ¿crees que tienes una idea más completa ahora de la que es la IA?

¡Ya te digo! – dice Sandra con una sonrisa- me parece apasionante, estoy deseando estudiarlo en clase. A ver si tengo suerte y me toca un profesor como tú -dice Sandra con un guiño.

Pues yo creo que al ritmo que tú aprendes Sandra, muchísimo mejor que el de una IA y, desde luego, mejor que el mío, en no mucho tiempo me estarás enseñando tú a mí -finalizo esbozando una amplia sonrisa.

Posted by santiago

Deja un comentario