Saturday, September 26, 2015

Sistemas expertos: tecnología obsoleta



En Inteligencia Artificial (IA) se trabaja en muchos frentes. Pueden ser redes neuronales, o quizás programas que hacen búsquedas exhaustivas sobre un árbol de posibilidades. También pueden usarse los sistemas expertos, que pretenden lidiar con las incertidumbres asociadas con la información en prácticamente todo el ámbito humano. Así, por ejemplo, podemos pensar en las heurísticas, una manera de manejar un problema para el cual no siempre hay una solución exacta. Una heurística es una regla general, que funciona la mayoría de las veces o en la mayoría de los casos, pero bien podría no trabajar correctamente en un caso particular.

Los sistemas expertos sonn una rama de la IA que pretende describir un problema con base en reglas del tipo IF-THEN, es decir, SI ocurre un fenómeno en particular ENTONCES tomaremos la siguiente acción. Por ejemplo, si pensamos en un sistema de diagnóstico médico, podríamos tener este tipo de reglas:

SI el paciente presenta fiebre, estornuda, cuerpo cortado ENTONCES tiene gripa.

Esta regla es muy evidente por sí misma pero muchas veces en el mundo real las cosas son menos sencillas. Por ejemplo, podríamos decir:

SI el cielo está nublado ENTONCES llevaré mi paraguas.

Aunque la regla podría funcionar considerando que al estar el cielo nublado, entonces podría llover, pues no parece ser mala idea llevar consigo el paraguas. La pregunta que surge, sin embargo, es: ¿Cuál es la probabilidad de que vaya a llover? Si dicha probabilidad es 10% o menos que eso, a lo mejor no tiene sentido cargar con el paraguas aunque sí, podría eventualmente caer una lluvia.

Este tipo de criterios hacen que los sistemas expertos se conformen de muchas reglas CAUSA-EFECTO y que estas se encadenen para llegar a una conclusión. Existen dos tipos de encadenamiento, hacia atrás (backward chaining) y hacia adelante (forward chaining). El primero es más o menos lo que hace un médico que nos ve por primera vez. Nos preguntará en cómo nos puede ayudar y le diremos, por ejemplo, que nos sentimos mal. Entonces el médico preguntará por los posibles síntomas: ¿le duele la cabeza? ¿le duele alguna otra parte del cuerpo? Y entonces el médico buscará encadenar de alguna manera los síntomas que presenta el enfermo para así llegar a un diagnóstico.

En el caso de forward chaining, el médico cuando ve al paciente piensa para sí en un posible diagnóstico, por ejemplo, observa al paciente y decide que éste se ve agripado. Entonces, las preguntas ya están orientadas sobre qué puede tener. Empieza el interrogatorio con una posible hipótesis de la enfermedad del paciente. Si acaso éste le contesta no a un síntoma que debiese ser sí, el galeno entonces buscará una nueva hipótesis. ¿Cuál es la mejor manera de encadenar la información en un sistema experto? No sé, depende del problema que se planteé.

Otro punto a considerar es la incertidumbre en la información. Muchas veces, cuando vamos al médico, éste nos pregunta: ¿qué tanto le duele la cabeza? ¿Mucho? ¿Poco? Defínalo de 1 al 10, donde 1 es que le duele muy poco. Y esto en un sistema experto debe ser validado. ¿Qué pasa si hay diversas incertidumbres asociadas a diferentes preguntas? Las matemáticas tienen la solución, usar el teorema de Bayes, el cual permite combinar adecuadamente las probabilidades asociadas a eventos para saber la probabilidad final deque un evento pueda ocurrir.

Cabe decir que los sistemas expertos contienen tres elementos básicos:


  1. La interfaz con el usuario
  2. La base de reglas causa-efecto
  3. El motor de inferencias


El primer punto permite tener una manera de comunicación entre el usuario y el sistema. La base de reglas, en cambio, debe armarse de acuerdo a consultas que harán los programadores del sistema experto. Finalmente, el motor de inferencias es el que nos dice si haremos encadenamiento hacia adelante o hacia atrás.

Todo esto está muy bien, pero los sistemas expertos parecen ser ya una tecnología obsoleta, por decir lo menos. Definir todo en términos de predicados causa-efecto no parece ser siempre una buena idea e incluso, con el manejo de las incertidumbres, el resultado final parece acartonado. Tal vez -para colmo- los programas de IA que lidian con este tema de los sistemas expertos, decidan cambiar el enfoque a una búsqueda por demás exhaustiva. Y entonces las heurísticas pasan a un segundo plano porque ya se puede tener una solución clara y más precisa.

Un ejemplo de ello es el propio ajedrez por computadora. Los programas tienen una función de evaluación que informan qué posición es mejor y por qué. Un sistema experto con reglas para jugar bien parece resultar por una parte, difícil de generar y por otra, de aplicar en la gran cantidad de posiciones que pueden darse. Es claro que los sistemas expertos no sirven por ejemplo, en el dominio del ajedrez.

Los sistemas expertos tuvieron un inicio interesante e incluso hubo sistemas que permitían vender equipos de cómputo y organizar cómo se pondrían en la empresa del cliente. este tipo de sistemas estaba hecho con una centena de reglas pero incluso, tenía un sistema experto (con más reglas), que buscaba que éstas no tuviesen contradicciones evidentes. Sin embargo, sus limitaciones fueron saliendo a la luz.

Hoy en día no hay quien decida armar un sistema experto, en el tema que sea, porque probablemente quedará siempre limitado. Pienso pues que esta tecnología es obsoleta y habrá que considerarla como un interesante esfuerzo que no prosperó. Así pasa contínuamente en la ciencia. Tampoco es algo que haya que alarmarnos.

1 comment: