¿Cómo funciona un Sistema Experto?

¿Cómo funciona un sistema experto?

¿Cómo funciona a grandes rasgos un sistema experto bayesiano?

Cuando se implementaron los primeros Sistemas Expertos se pensó que en breve le seguirían impresionantes avances en Inteligencia Artificial. Los japoneses hicieron inversiones millonarias con escaso éxito en los años setenta.

Actualmente los reconocedores de voz son capaces de reconocer palabras con algunas limitaciones pero su uso por ejemplo en sistemas automáticos de atención al cliente son la prueba palmaria del invento de la estupidez artificial, para desesperación de los usuarios obligados a usarlos.

Akinator, el genio de La Red.

Akinator, el genio de La Red.

Pese a todo ello, el error más común suele ser el de subestimar lo que un Sistema Experto puede hacer. La Inteligencia Artificial tiene un duro trabajo por delante en lo relativo a la comprensión del lenguaje hablado, y en visión artificial, pero en otras áreas, puede llegar a superar en habilidad a los expertos humanos.

No pretendo exponer la aburrida teoría matemática, sino ofrecer un enfoque más lúdico y entretenido y por ello os propongo un juego.

Un ejemplo fascinante Akinator:

Voy a comentar el funcionamiento de esta curiosa web. En ella te proponen que pienses en un personaje y Akinator el genio de la red lo adivinará. Generalmente acierta casi siempre, pero ¿Cómo trabaja Akinator?

Lo primero que hay que decir sobre Akinator es que su base de datos interna es impresionante de grande, y está en contínuo crecimiento gracias a la retroalimentación originada por su uso en Internet.

Se trata de un programa de Inteligencia Artificial. Por lo que he podido comprobar,  funciona basándose en una Red Bayesiana. Los fitros anti Spam usan un sistema muy parecido, y algunos sistemas expertos para el diagnóstico en medicina también usan este principio que explicaremos a muy grandes rasgos.

Se basan en un principio matemático. El Teorema de Bayes permite relacionar las probabilidades combinadas de dos o más sucesos, lo cual es imprescindible para poder implementar un sistema experto basado en análisis de probabilidades.

¿Cómo funciona un Sistema Experto Bayesiano?

Vamos a hacer un planteamiento similar al que usa Akinator. Para ello se manejarán únicamente 5 valores de probabilidad.

  • 1 = Sí
  • 0.75 = Me parece que sí.
  • 0.5= No sé
  • 0.25= Me parece que no.
  • 0 = No

Vamos a proponer un mini-sistema experto que sea capaz de distinguir una serie de animales. Para ello podríamos implementar una Red Bayesiana basada en los siguientes datos.

TIENE

Co-

nejo

Ra-

tón

Ra-

na

La-

gar-

to

Tor-

tuga

Ser-

pien-

te

Palo-

ma

Aves

truz

Tru-

cha

4 patas 1 1 1 1 1 0 0 0 0
2 patas 0 0 0 0 0 0 1 1 0
Sin patas 0 0 0 0 0 1 0 0 1
Largas orejas 1 0 0 0 0 0 0 0 0
Plumas 0 0 0 0 0 0 1 1 0
Pelo 1 1 0 0 0 0 0 0 0
Uñas 1 1 0 1 1 0 1 1 0
Escamas 0 0.25 0 1 1 1 0.75 0.75 1
Puede volar 0 0 0 0 0 0 1 0 0
Pico 0 0 0 0 1 0 1 1 0
Puede nadar 0.25 0.25 1 0.25 0 0.5 0 0 1
Sangre caliente 1 1 0 0 0 0 1 1 0

Si yo te digo que he elegido un animal que nada y que es de sangre caliente; eliminarás a los que no nadan y a los que no tienen sangre caliente, y te quedarás con en conejo y con el ratón y ambos serán igualmente probables.

Si elijo otro y te digo que tiene escamas y nada; lo más probable es que sea un pez, aunque con menor probabilidad podría ser también una serpiente, y con menor probabilidad sería un lagarto, o con aún menos probabilidad podría tratarse de un ratón. (El ratón tiene escamas en la cola, pero hemos tenido en cuenta que no todo el mundo lo sabe).

El dibujo de cabecera de este artículo no es demasiado real. Está demasiado simplificado. Los límites de los conjuntos que nosotros hemos dibujado deberían estar más difuminados (no son meros valores sí/no).

Un modelo más sofisticado sería incluir algunas reglas, por ejemplo; Tener 4 patas, tener 2 patas, y no tener patas, son atributos relacionados porque son mutuamente excluyentes y eso se podría implementar incluyendo una regla para ellos.  Otra regla podría ser; si un animal tiene pelo, no tiene plumas y viceversa. Otra más sería que si tiene plumas ha de tener pico. Lo contrario no tiene por qué ser cierto.

Las reglas sirven para evitar hacer preguntas cuya respuesta puede deducirse de las respuestas anteriores permitiendo llegar a la solución más rápidamente. (No estoy seguro de que Akinator tenga reglas, algunas preguntas parecen indicar que es un sistema bayesiano ingenuo. Si dices que un personaje es calvo podría preguntarte más tarde si tiene pelo negro, y cosas así, pero pese a todo es bastante bueno.

Si ya has usado Akinator comprobarás que inicialmente hace una serie de preguntas muy genéricas que determinan una reducción importante de los candidatos.  El sistema intentará hacer a cada intento alguna pregunta que permita descartar de la búsqueda a un mayor número de personajes. Los descartes se van haciendo en la forma que acabamos de explicar.

Por lo tanto, inicialmente es lógico que pregunte por cosas muy generales tales como: el sexo del personaje, si vive, si es real, si es famoso, etc. Son preguntas que representan atributos independientes cuyas respuestas siempre sirven para ir descartando a cada respuesta casi a la mitad de los personajes que aún quedan por explotar. En realidad, tal y como ya hemos explicado unos quedan descartados y otros quedarán con una cierta probabilidad calculada por el Teorema de Bayes

Caso de que el sistema no encuentre a un personaje, permitirá que lo señalemos de entre una lista, o en su caso que lo demos de alta. De esa manera va aprendiendo a distinguirlos cada vez mejor y así va asimilando nuevos personajes.

Para los más curiosos, diferentes tipos de Redes Bayesianas :

  • Naive Bayes = bayes “ingenuo” (sin reglas).
  • DBNs = Redes Bayesianas Dinámicas:  (Cambian con el tiempo)+1
  • Redes Gaussianas = distribución gaussiana (se usa para nodos con variables continuas)
  • Cadenas de Markov

Para finalizar:

Si ya has leído alguna de mis obras, de la serie Éxodo permíteme que te haga una pregunta quizás absurda: ¿Crees que Akinator es capaz de encontrar a Xegor el protagonista de mi novela? Si por una de esas casualidades dieras con él, mándame un comentario.


Share

Esta entrada fue publicada en Ciencia y tecnología, Todos los artículos y etiquetada , , . Guarda el enlace permanente.

3 respuestas a ¿Cómo funciona un Sistema Experto?

  1. Alejandro dijo:

    Hola Antonio,

    Me pareció muy bueno tu análisis sobre la implementación de este sistema.
    Me gustaría saber si conoces alguna base, proyecto open source o algo en lo cual basarse para hacer algo similar.

    Muchas gracias!

  2. Antonio Castro dijo:

    No conozco ninguno pero tiene que haber bastantes proyectos de ese tipo.

  3. Pingback: DIA 52 – INTELIGENCIA ARTIFICIAL | 365 días de innovación!

Deja un comentario

Tu dirección de correo electrónico no será publicada.


*

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>