Agentes Inteligentes. Tipos y Tareas.
1. Definición de Agente Inteligente.
Dentro del lenguaje propio de los agentes inteligentes, describiremos
algunas de sus terminologías tendentes al entendimiento de sus
funcionalidad y aplicaciones, bien por separado, o en conjunto:
Como concepto tenemos: Un agente inteligente es toda aquella entidad
de software capaz de percibir (proceso de percepción por medio de
sensores), adquirir, procesar y dar salida a una operación específica
para la cual fue diseñado. Se entiende que, los agentes inteligentes
tienen sólo existencia como programas informáticos que corren en
computadores.
Agente: un sistema informático autónomo, reactivo y proactivo,
generalmente con un locus de control central, que al menos puede
comunicarse con otros agentes a través de algún tipo de lenguaje de
comunicación. Otra visión común de un agente es la de un objeto activo
o un proceso delimitado con la capacidad de percibir, razonar y actuar.
Se discuten varios atributos en el contexto de los sistemas basados en
agentes: por ejemplo, autonomía, benevolencia, introspección, movilidad,
proactivo, racional, reactivo, situacionalidad, habilidad social, veracidad.
Arquitectura de agentes: consiste en una metodología particular para
construcción de agentes. De manera más general, el término se usa para
denotar una disposición particular de estructuras de datos, algoritmos y
flujos de control, que un agente usa para decidir qué hacer. Las
arquitecturas de agentes se pueden caracterizar por la naturaleza de su
toma de decisiones. Los tipos de arquitectura de agente de ejemplo
incluyen arquitecturas basadas en lógica (en las que la toma de
decisiones se logra mediante deducción lógica), arquitecturas reactivas
(en las que la toma de decisiones se logra mediante un simple mapeo
de la percepción a la acción), arquitecturas de creencia-deseo-
intención la toma de decisiones se ve como un razonamiento práctico
del tipo que realizamos todos los días para lograr nuestros objetivos), y
arquitecturas en capas (en las que la toma de decisiones se realiza a
través de la interacción de una serie de capas de realización de tareas).
Programación orientada a agentes: consiste en un enfoque para
construir agentes, que propone programarlos en términos de nociones
mentalistas como creencias, deseos e intenciones. Esta programación
obedece a directrices de la metodología Comportamentista de la
Inteligencia Computacional, el empleo de la Programación Evolutiva y
la Programación Genética son de uso muy común.
Arquitectura BDI (Belief, Desire and Intention): un tipo de arquitectura
de agente que contiene representaciones explícitas de creencias, deseos
e intenciones. Las creencias son la información que un agente tiene
sobre su entorno, que puede ser falsa; los deseos son aquellas cosas que
al agente le gustaría que se cumplieran, y las intenciones son aquellas
cosas que el agente está comprometido a hacer (con la intención de
hacerlo) o comprometido con lograrlo (con la intención de hacerlo). La
arquitectura aborda cómo se representan, actualizan y procesan las
creencias, deseos e intenciones de los agentes para determinar las
acciones del agente. En las arquitecturas BDI, la toma de decisiones
refleja el razonamiento práctico que cada uno de nosotros llevamos a
cabo todos los días en pos de nuestros objetivos.
Una creencia es un concepto que describe los estados del mundo entre
los que el agente no puede discriminar. Y los deseos son los estados de
cosas hacia los que el agente tiene una disposición positiva. Las
Intenciones por su lado, son las metas en las que el agente está
trabajando actualmente, es decir, aquellas que conducen a las acciones
del agente.
Se denomina Formación de Coaliciones: al proceso en el que los agentes
forman coaliciones que trabajan juntas para resolver un problema
conjunto mediante la coordinación de sus acciones dentro de cada
coalición. Cada agente pertenece exactamente a una coalición. La
formación de coaliciones incluye tres actividades:
1. La generación de estructura de coalición,
2. La optimización dentro de cada coalición y;
3. La división de pagos entre agentes.
Formar una coalición tiene mucho que ver con encontrar una estructura
organizativa apropiada.
2. Descripción de los Agentes Inteligentes
Bien sabemos que la IA se trata de razonamiento práctico: razonar para
hacer algo. Un acoplamiento de percepción, razonamiento y actuación
comprende un agente. Un agente actúa en un ambiente. El entorno de un
agente bien puede incluir otros agentes. Un agente junto con su entorno
se llama Mundo.
Un agente podría ser, por ejemplo, un acoplamiento de un motor
computacional con sensores y actuadores físicos, llamados robot, donde
el entorno es un entorno físico. Podría ser el acoplamiento de una
computadora de asesoramiento: un sistema experto con un humano que
proporciona información perceptiva y lleva fuera la tarea. Un agente
podría ser un programa que actúa de forma puramente computacional
dentro entorno, comúnmente llamado Agente de Software.
Los software antivirus como Panda, Kaspersky, Norton, Avast a cualquier
otro. Son agentes de software diseñados para tareas específicas. La
siguiente figura muestra las entradas y salidas de un agente. En
cualquier momento, el agente podrá depender de:
• Un Conocimiento A Priori (A Priori Knowledge). Sobre sí mismo y su
ambiente.
• Un historial de interacciones con su ambiente. El cuál está
compuesto de:
• Observaciones del ambiente actual y;
• Experiencias Pasadas (Past Experiences) de acciones y
observaciones previas, o de algún otro tipo de data de la cual
pueda aprender.
• Metas (Goals) que debe tratar de alcanzar, o preferencias sobre
los estados de su mundo;
• Habilidades (abilities), las cuales serán las acciones primitivas que
este será capaz de ejecutar.
Para dos agentes deterministas con el mismo conocimiento previo,
historia y habilidades, los objetivos deberían hacer lo mismo. Cambiar
cualquiera de estos puede resultar en diferentes comportamientos. Cada
agente tiene un estado interno que puede codificar creencias sobre su
entorno y sí mismo. Puede tener metas que lograr, formas de actuar en el
ambiente para lograr esos objetivos, y varios medios para modificar sus
creencias mediante el razonamiento, percepción y aprendizaje. Esta es
una visión que lo abarca todo de los agentes inteligentes. Variando en
complejidad desde un simple termostato, a un equipo de robots móviles,
a un sistema de asesoramiento diagnóstico cuyas percepciones y
acciones están mediadas por seres humanos, a la sociedad misma.
Formas de Representación de Conocimientos de un Agente:
Típicamente, un problema a resolver, o una tarea a realizar, es lo que
constituye una solución. Y esta solo se da de manera informal, como
"entregar paquetes con prontitud” o, “arreglar cualquier problema con el
sistema eléctrico de la casa”. El conocimiento es la información sobre un
dominio que se puede utilizar para resolver problemas en ese dominio.
Resolver muchos problemas requiere mucho conocimiento, y este
conocimiento debe estar representado en la computadora como parte
del diseño con la forma de un programa para resolver problemas,
debemos definir entonces, cómo se representará el conocimiento.
Un esquema de representación de conocimientos es la forma del
conocimiento que se utiliza en un agente. Una representación de algún
conocimiento es la representación interna del conocimiento. Una base
de conocimiento es la representación de todo el conocimiento que es
almacenado por un agente. Uno de los agentes inteligentes más
conocidos a nivel mundial ha sido el famoso videojuegos Pacman. Cuyo
nombre proviene de la onomatopeya japonesa paku, que significa abrir y
cerrar la boca.
Pac-Man es una bola redonda que se caracteriza (sobre todo en los
primeros juegos) a comer todo lo que está a su paso. Su esposa es Ms.
Pac-Man, que junto con ella tienen un hijo llamado Pac-Man Jr. Sus
principales enemigos son Blinky, Pinky, Inky y Clyde. Pacman presenta
varias características interesantes. Su creador, el japonés Toru Iwatani, lo
diseñó para un público femenino. Es decir, se diseñó alejado de la
violencia de los juegos masculinos. No obstante, es un juego que no tiene
fin, por lo que se le considera dentro de la categoría de juegos adictivos.
Pacman y sus amigos son realmente agentes. Cada uno maneja sus
propias estrategias y se circunscriben a un único mundo. Su ambiente se
desarrolla dentro de lo que los humanos conocemos como laberinto, en
el cual los agentes y sus enemigos se enfrentan. Cada fantasma
persigue a Pacman a su manera. Es decir, existen estrategias
independientes y el agente (Pacman) debe aprender a sortear los
obstáculos de cada enemigo por separado. Debe aprender de cada uno
de ellos. Cada enemigo tiene un color, personalidades y
comportamientos distintos. A medida que el juego avanza en niveles, se
dice que el agente va aumentando su conocimiento sobre su entorno,
por ende, sobre su mundo.
Si lo visualizamos de manera individual, Pacman tiene dos enemigos, los
fantasmas y el tiempo. En ellos subyacen las estrategias para su
supervivencia. El juego, aunque parezca realmente un juego, no es más
que un Simulador de Toma de Decisiones. Donde la racionalidad y la
estrategia prevalecen. Cada vez que Pacman sale, representa una
batalla. Y cada batalla representa a un conjunto de estrategias.
Estrategia es sinónimo de Supervivencia. Pacman se desarrolla en un
entorno de cambios constantes y donde cada cambio representa un
riesgo latente. Pacman ha enseñado a sus usuarios a pensar
estratégicamente durante sus 40 años de historia.
Definiendo ¿Qué es una Solución?
Dada una descripción informal de un problema, incluso antes de
considerar una computadora, un diseñador de base de conocimientos
debería determinarse qué constituiría una solución. Esta pregunta surge
no solo en la IA, sino en cualquier diseño de software. Gran parte de la
ingeniería de software implica refinar la especificación del problema.
Normalmente, los problemas no están bien especificados. No solo suele
haber mucho sin especificar, sino que las partes no especificadas
tampoco se pueden rellenar arbitrariamente. Por ejemplo, si le pide a un
agente comercial que averigüe toda la información sobre complejos
turísticos que puedan tener problemas de económicos, no se desea que
el agente devuelva la información sobre todos los complejos turísticos,
aunque toda la información solicitada esté en el resultado. Sin embargo,
si el agente comercial no tiene un conocimiento completo sobre los
resorts, devolver toda la información puede ser la única forma para
garantizar que toda la información solicitada esté allí.
Del mismo modo, usted no quiere que un robot, cuando se le pida que
lleve toda la basura a la basura, que primero vaya a la basura y recoja
toda la basura, usted la vea, y luego proceda a llevar toda la basura a la
basura. Eso es redundante y no se constituye en ninguna forma de
razonamiento por sentido común. Aunque esta puede ser la única forma
de garantizar que se ha llevado toda la basura a la basura. Mucho
trabajo en IA está motivado por razonamiento de sentido común;
queremos que la computadora pueda hacer conclusiones de sentido
común sobre los supuestos no declarados, y eso ha sido un constante
problema en el diseño de agentes inteligentes.
Soluciones Óptimas:
Una solución óptima a un problema es aquella que es la mejor solución
según alguna medida de calidad. Esta medida es típicamente
especificada como ordinal, donde solo importa el orden. Sin embargo, en
algunas situaciones, como cuando se combinan varios criterios, o
cuando se razona bajo incertidumbre, necesita una medida cardinal,
donde las magnitudes relativas también importan. Un ejemplo de una
medida ordinal es que el robot saque tanta basura como sea posible;
cuanta más basura pueda sacar, mejor. Como ejemplo de una medida
cardinal, es posible que desee que el robot tome gran parte de la basura
y la lleve hasta el bote de basura, minimizando la distancia viajada, y
especificar explícitamente una compensación entre el esfuerzo requerido
y la proporción de basura que se saca. Puede que sea mejor perder algo
de basura que perder demasiado tiempo o energía.
Soluciones Satisfactorias:
A menudo, un agente no necesita la mejor solución a un problema, sino
que solo necesita una solución. Una solución satisfactoria es aquella que
es buena y suficiente de acuerdo con alguna descripción de qué
soluciones son adecuadas. Por ejemplo, una persona puede decirle a un
robot que debe sacar toda la basura, o decirle para sacar tres bultos de
basura.
Soluciones Aproximadamente Óptimas:
Una de las ventajas de una medida cardinal es que permite
aproximaciones. Una solución Aproximadamente Óptima es aquella cuya
medida de calidad está cerca de la mejor que teóricamente podría
haberse obtenido. Normalmente, los agentes no necesitan soluciones
óptimas a los problemas; solo deben acercarse lo suficiente.
Por ejemplo, es posible que el robot no necesite recorrer la distancia
óptima para sacar la basura, pero es posible que solo sea necesario
dentro de, digamos, el 10% de la distancia óptima. Para algunos
problemas, es mucho más fácil computacionalmente obtener una
solución aproximadamente óptima que obtener una solución óptima
pura. Sin embargo, para otros problemas, es (asintóticamente) igual de
difícil garantizar la búsqueda una solución aproximadamente óptima,
que garantizar la búsqueda de una solución óptima pura. Algunos
algoritmos de aproximación garantizan que una solución esté dentro de
algún rango de óptimo, pero para algunos otros algoritmos no hay
garantías disponibles.
Soluciones Probables:
Una solución probable es aquella que, aunque en realidad no sea una
solución al problema, es probable que sea una solución. Este es una
manera de aproximar, de manera precisa, una solución satisfactoria. Por
ejemplo, en el caso de que el robot de entrega pueda dejar caer la
basura o no recogerla cuando lo intente, es posible que necesite que el
robot esté 80% seguro de que ha recogido al menos tres artículos de
basura. A menudo es deseable distinguir la tasa de error de falso positivo
(la proporción de las respuestas dadas por la computadora que no son
correctas), de la tasa de error de falso negativo (que es la proporción de
aquellas respuestas no dadas por la computadora, pero que son de
hecho correctas). Algunas aplicaciones son mucho más tolerantes con
uno de estos errores que con los otro. No obstante, una de las mejores
metodologías para la búsqueda de soluciones, es la que hoy día
conocemos como Computación Blanda, o Softcomputing:
El Softcomputing o Computación Blanda:
La computación blanda abarca un conjunto de técnicas y algoritmos
computacionales que se utilizan para tratar con sistemas complejos. La
informática blanda explota la tolerancia dada para la imprecisión, la
verdad parcial y la incertidumbre para un problema en particular. Es un
término aplicado a un campo dentro de la informática que se
caracteriza por el uso de soluciones inexactas para tareas
computacionalmente difíciles que deben ejecutar ciertos tipos de
agentes inteligentes.
La computación blanda consiste en el uso de cálculos aproximados para
proporcionar soluciones imprecisas pero utilizables a problemas
computacionales complejos. El enfoque permite soluciones para
problemas que pueden ser insolubles, o que requieren demasiado
tiempo para resolverlos con el hardware actual. La informática blanda a
veces se denomina inteligencia computacional.
La informática blanda proporciona un enfoque para la resolución de
problemas utilizando medios distintos a las computadoras. Con la mente
humana como modelo a seguir, la informática blanda es tolerante con
las verdades parciales, la incertidumbre, la imprecisión y la
aproximación, a diferencia de los modelos informáticos tradicionales. La
tolerancia de la informática blanda permite a los investigadores abordar
algunos problemas que la informática tradicional no puede procesar.
La informática blanda utiliza campos de estudio de componentes
en: Lógica difusa; Aprendizaje automático; Razonamiento
probabilístico; Computación evolutiva; Perceptrón; Algoritmos
genéticos; Algoritmos diferenciales; Máquinas de vectores de
soporte; Metaheurísticas; Inteligencia de enjambres; Optimización por
algoritmos de colonias de hormigas; Optimización por algoritmos de
enjambres de partículas; Redes bayesianas; Redes neuronales artificiales
y Sistemas expertos, entre otros.
El Soft Computing, y en particular la tecnología difusa, pueden
desempeñar un papel importante en el diseño de agentes
inteligentes. Los beneficios prometedores se derivan de enfoques bien
fundamentados orientados a la informática blanda para gestionar mejor
los modelos de comportamiento de los agentes, especialmente cuando
las interacciones ocurren en un entorno caracterizado por la imprecisión,
la incertidumbre y la verdad parcial.
Los agentes o sistemas de agentes múltiples esbozan comportamientos
inteligentes al describir y gestionar actividades computacionales
compartidas entre comunidades de entidades de gran tamaño. Aunque
un agente posea un conocimiento parcial y una capacidad deductiva
reducida; puede adquirir competencias más amplias gracias a los ricos
esquemas de interacción-cooperación. Está claro que la tecnología de
agentes se adapta mejor a los aspectos de todos esos problemas que
pueden describirse en términos de esfuerzos cooperativos. Aunque un
agente posea un conocimiento parcial y una capacidad deductiva
reducida; puede adquirir competencias más amplias gracias a los ricos
esquemas de interacción-cooperación.
3. Trabajo Cooperativo entre Agentes.
El Trabajo Cooperativo Asistido por Computadora, Computer Supported
Cooperative Works (CSCW): es un área de investigación que estudia el
uso de tecnologías de la computación y las comunicaciones para
apoyar las actividades de grupo. Esta área concierne tanto al desarrollo
de software como a los factores sociales en el trabajo en grupo. Por
ejemplo, las herramientas de la G Suite de Google y el Microsoft Team.
El METATEM concurrente: es un lenguaje de programación de agentes
basado en lógica, en el que los agentes se programan dándoles una
especificación lógica temporal del comportamiento que se pretende que
exhiban; los agentes ejecutan directamente su especificación para
generar su comportamiento. Los agentes programados podrán o no,
manejarse dentro de entornos deterministas. Un entorno en el que no hay
incertidumbre sobre el efecto que tendrá una acción. Pocos entornos del
mundo real son deterministas.
La Inteligencia artificial distribuida (DAI): interpretado de manera más
amplia, consiste en el estudio y la construcción de sistemas compuestos
por entidades inteligentes que interactúan. DAI está muy preocupado por
los agentes y su coordinación. Los agentes también pueden estar
restringidos dentro de un ambiente episódico. Un Entorno episódico es
un entorno en el que las tareas de un agente se dividen en una serie de
episodios discretos, y la actuación del agente en un episodio no tiene
ningún efecto en otros episodios, aunque se les puede modelar
estadísticamente. Los entornos episódicos simplifican el proceso de
toma de decisiones de un agente, ya que alivian al agente de la
necesidad de razonar sobre la interacción entre el comportamiento
actual y futuro.
Otro tipo de agentes son los denominados Agentes de Información. Los
agentes de información son aquellos que tienen acceso a fuentes de
información múltiples, potencialmente heterogéneas y distribuidas
geográficamente. Los agentes de información tienen que hacer frente a
la creciente complejidad de los entornos de información modernos, que
van desde sistemas de información internos relativamente simples,
pasando por sistemas de bases de datos múltiples a gran escala, hasta
la visionaria Info esfera en Internet. Una de las principales tareas de los
agentes es la búsqueda activa de información relevante en dominios no
locales por parte de sus usuarios u otros agentes. Esto incluye recuperar,
analizar, manipular e integrar información disponible de diferentes
fuentes de información.
Para la ejecución de cualquier acción los agentes necesitan interactuar.
Denominaremos Interacción a todo lo que ocurre ''entre 'agentes
(interacción agente-agente) y' 'entre' agentes y su entorno (interacción
agente-entorno). Los agentes pueden interactuar directamente a través
de la comunicación verbal (mediante el intercambio de información), e
indirectamente a través de su entorno (observándose pasivamente unos
a otros o llevando a cabo activamente acciones que modifiquen el
estado ambiental). Los softwares antivirus trabajan con la denominada
Inteligencia Colectiva gracias a esta interacción permanente.
La interacción puede resultar en cambios en el estado interno y el curso
futuro de actividad de un agente. Una Interacción se puede caracterizar
de acuerdo con su frecuencia, persistencia, patrón, propósito, etc. Una
distinción común es la que existe entre la interacción deliberativa y la
reactiva. Gran parte del trabajo en DAI se ocupa de la interacción entre
agentes. Formas de interacción que juegan un papel importante en DAI
son la cooperación y la competencia. Un tipo de interacción que juega
un papel importante en los contextos humanos, pero no en los sistemas
técnicos, es para - y comunicación no verbal (por ejemplo, por
entonación y gesto).
4. Los Agentes y sus Interfaces
Un Agente de interfaz es un agente, generalmente un agente de
software, que ayuda a sus usuarios a realizar determinadas tareas. Por
ejemplo, un agente de interfaz puede ocultar la complejidad de una
tarea difícil, capacitar y enseñar a un usuario humano y realizar
subtareas en nombre de un usuario. Los términos asistentes de software
y asistente personal se utilizan a menudo en este sentido. Los agentes de
interfaz también juegan un papel importante en trabajo cooperativo
asistido por computadora.
La mayoría de las arquitecturas complejas del diseño de agentes
posee Arquitectura en Capas: una arquitectura de agente que está
estructurada en varias capas, cada una de las cuales típicamente
representa un mayor nivel de abstracción de la capa debajo de ella. Se
pueden distinguir dos tipos de arquitecturas en capas: en capas
horizontales (es decir, cada capa está conectada directamente a la
entrada sensorial y la salida de acción) y en capas verticales (es decir, la
entrada sensorial y la salida de acción se tratan como máximo con una
capa cada una).
Cuando se usa la metodología Comportamentista, un agente puede
adquirir Actitudes mentales. Una Actitud mental es una propiedad
atribuida a un agente que describe su estado interno. Por lo general, se
distingue entre información o estados cognitivos (por ejemplo, creencia y
conocimiento), estados deliberativos o conativos (por ejemplo, intención
y compromiso) y estados motivacionales o afectivos (por ejemplo,
deseo, elección, preferencia y meta).
La Eficiencia de un agente puede ser evaluada por la
denominada Eficiencia de Pareto: un criterio para evaluar los resultados.
Una solución es Pareto eficiente (óptimo de Pareto) si no existe otra
solución en la que ningún agente esté en peor situación y algún agente
en mejor situación.
Varios tipos de comportamientos pueden ser ajustados a un agente. Un
comportamiento Racional: comportarse de una manera adecuada o
incluso óptima para el logro de la meta. Un comportamiento Reactivo:
(del comportamiento del agente) Capaz de mantener una interacción
continua con el entorno y de responder de manera oportuna a los
cambios que ocurren en él. (De arquitecturas de agentes).
Introducción a los Sistemas Expertos
1. Definición y Origen de los Sistemas Expertos
Entenderemos a un Sistema Experto, como a toda aquella entidad de
software, o agente inteligente, que auxilia en la solución de problemas
complejos ayudando a diseñar nuevos métodos y/o dispositivos,
utilizando técnicas basadas en programación, incertidumbre y
razonamientos aproximados. Se constituyen como modelos
computacionales de inteligencia simulada capaces de generar
conocimiento que pareciese devenirse de una inteligencia real, y,
mediante su representación, alcanzan a razonar tal cual lo haría un ser
humano en su área profesional. Quiere decir, son sistemas basados en
procedimientos de deducción e inferencia, o cualquier otro modelo de
razonamiento, y su reacción o salida, se manifiesta en un diagnóstico
automatizado experto del problema tratado. Los sistemas expertos
pertenecen a la metodología simbólica de la Inteligencia Artificial.
Se le atribuye a Edward Feigenbaum, pionero especialista en sistemas
de inteligencia artificial y fundador del Knowledge Systems Laboratory de
la Universidad de Stanford, el haber dado origen a los fundamentos que
rigen los aprendizajes e inferencias emitidas por razonadores
cibernéticos y modelos artificiales de la cognición altamente complejos.
Fue en 1971, cuando Feigenbaum apeló a técnicas de exploración
inteligente junto a la experimentación recursiva, segmentaria y
clasificatoria para dar vida a máquinas que pareciesen realmente
razonar por sí mismas, haciendo que la ciencia prestase un mayor
interés por la incipiente para la fecha, ingeniería del conocimiento. La
ingeniería del conocimiento alcanzó su cúspide de éxitos gracias al
auxilio de LISP y Prolog pocos años después.
(Rabunal & Dorado, 2006) aseguran que un sistema experto consiste en
una rama de la IA que utiliza un complejo entramado de jerarquías de
reglas para ejecutar tareas que simulan inteligencia. Por su lado, y según
informa (Henderson, 2009), un sistema experto, es un programa de
computadora que codifica conocimientos y reglas de razonamiento para
deducir conclusiones y resolver problemas. El razonamiento, opuesto a
cualquier mecanismo de cálculo, debe asemejarse a lo que
denominamos comportamiento inteligente.
(Liebowitz, S/F), afirma que, los sistemas expertos son sistemas capaces
de ofrecer soluciones a problemas específicos en un dominio dado. Se
les diseña para responder a consultas de la misma forma, y a un nivel
comparable, como lo haría un experto humano en su área. En atención a
(Sumathi & Surekha, 2010, pág. 44 y ss.), los sistemas expertos son una
extensión de la computación tradicional, y, comúnmente, se ha dicho
que pertenecen a la denominada Computación de Quinta Generación.
La Primera Generación Computacional estuvo basada en válvulas
termoiónicas, suiches y cables. La Segunda Generación
Computacional se coló a la par de la evolución del transistor. La Tercera
Generación Computacional, involucró tecnología de estado sólido. La
Cuarta Generación Computacional, ya era capaz de procesar
inteligencia y se basó en herramientas para usuarios finales. Pero, la
Quinta Generación Computacional, introdujo Inteligencia Artificial, siendo
capaz de procesar lenguaje natural, reconocer imágenes, y probar
teoremas matemáticos.
Las Redes Neuronales por su lado, y que estudiaremos en otras lecciones
de este curso, emergen de la quinta generación. Éstas, son capaces de
organizar algoritmos que aprenden por sí mismos, algo que un sistema
experto no puede hacer. Se les considera de la Sexta Generación
Computacional, dado que resuelven problemas sin intervención de
expertos, pero tienen aplicaciones diferentes, además, son capaces de
evolucionar.
La ingeniería de sistemas expertos se conforma entonces, como una
rama de la IA encargada de diseñar programas computacionales con
habilidades para la emulación de inteligencia, tal como la que manejaría
una persona con muchos años de experiencia en su área. Los programas
que la IA diseña, con la finalidad de darle solución a ciertos tipos de
problemas, y que, además, logran la capacidad experta de solucionarlos
aplicándolos a las tareas específicas del conocimiento en determinado
campo o dominio de la tarea, se llaman Sistemas Basado en
Conocimiento o Sistemas Expertos.
Variados componentes forman parte de los denominados sistemas
expertos. Por ejemplo: el área del conocimiento intelectual humano que
pretende ser capturado para su emulación, se llama el dominio de la
tarea, muy similar a la descrita en el apartado de la Ingeniería del
Conocimiento. La tarea se refiere a una cierta meta orientada, cuya
sistematización se dirige sobre la actividad de solucionar el problema.
Por ejemplo: la programación de un torno de control numérico, y/o, el
reconocimiento de imágenes por patrones de similitud, son tareas
comunes de un sistema experto.
Pero, la persona, o grupo de personas, encargadas de desarrollarlos, son
denominados ingenieros del conocimiento. La construcción de un
sistema experto para ser aplicado a un área específica del conocimiento,
es tarea de los ingenieros del conocimiento. De acuerdo a (Zimmermann,
2001), un sistema experto inviste los siguientes atributos:
o Posee diferentes dominios para cada tipo de conocimiento
específico. Además, operacionaliza diferentes metodologías
para la resolución de problemas que incluyen a los
conceptos del conocimiento base y su propio motor de
inferencias.
o El sistema experto debe pensar exactamente como un
humano experto lo hace.
o Su conocimiento base dinámico debe ser expandible y
modificable. Además de facilitar su acoplamiento con otros
diferentes módulos de conocimiento.
o El sistema experto debe estar en condiciones de razonar
bajo circunstancias de incertidumbre e información
insuficiente. Y a su vez, debe ser capaz de operar la lógica
del razonamiento probabilístico.
o El sistema experto debe ser capaz de aprender por
experiencia.
Ahora bien, según (Liebowitz, S/F), una de las más resaltantes
características de un sistema experto, es su capacidad de explicar al
usuario, la línea de razonamiento que guio al sistema hasta la solución.
En su desarrollo, siempre es recomendable reunir grupos de expertos en
vez de confiar en solo uno, o, unos pocos. Esto ofrece las siguientes
ventajas:
o Se asegura que la base de conocimientos pueda ser
completada;
o Se mejora la probabilidad de obtener conocimiento
especializado en subdominios del problema;
o Se incrementa la calidad del resultado final. Por ejemplo,
cuando se logra alcanzar confiabilidad y consenso entre
expertos para el conocimiento adquirido;
o Lo anterior asegura que los hechos, incluidos en la base de
conocimientos, sean los más importantes;
o Se mejora el entendimiento del dominio del conocimiento a
través de las discusiones, debates, e intercambio de
hipótesis entre miembros del equipo;
o El conjunto de características previas alimenta las
interacciones entre expertos, y crea, hacia lo interno del
proceso, una sinergia tal que, el conocimiento adquirido por
el grupo entero, logra ser mayor que la suma de los
conocimientos individuales;
o Entonces, si se involucra a múltiples expertos en el equipo de
desarrollo, las sesiones de adquisición de conocimiento
hacen más flexible el producto final.
Un Sistema Experto también presenta las siguientes características:
o Proporciona un rendimiento de alta calidad que resuelve
problemas difíciles en un dominio, de una forma tan buena
como el mejor de los expertos humanos.
o Es capaz de procesar una vasta cantidad de diferentes tipos
de dominios específicos. Procesando cada conocimiento
con minucioso detalle.
o Aplica heurística para guiar los razonamientos que amplían
los conocimientos. Donde, además, esta heurística le ayuda
a reducir el área de búsqueda dentro del especio de
soluciones.
o La característica más resaltante de un sistema experto se la
proporciona su Módulo de Explicaciones. Este le permite
revisar su propia lógica e informarle al usuario que ruta
siguieron sus trenes de razonamiento y porqué.
o Un Sistema Experto pertenece a la Metodología Simbólica de
la Inteligencia Artificial, a la quinta generación
computacional, por ende, emplea razonamiento simbólico
en la resolución de problemas. Utiliza símbolos para
representar hechos, hipótesis, inferencias, conceptos,
condiciones y reglas.
o Un Sistema Experto puede advertir, modificar, actualizar,
expandir y manejar incertidumbres presentes en data
irrelevante.
Las funciones del Módulo de Explicaciones, o aquel subsistema que
explica las acciones del sistema. Son facilitar la comprensión del
diagnóstico automatizado ejecutado. Las explicaciones pueden variar
desde cómo desde el final se llegaron a soluciones intermedias para
justificar la necesidad de obtener datos adicionales. Hasta indicarles a
los usuarios el tipo de razonamiento utilizado para alcanzar las
soluciones.
Muchos libros acerca de Sistemas Expertos tienden a resumir las Fases
de Diseño en sólo 5 etapas:
Etapa 1: La Identificación del Problema y la Delimitación del Espacio de
Soluciones:
• En esta etapa, el experto y el ingeniero del conocimiento
interactúan para identificar el problema y las ubicaciones de las
soluciones. Aquí se estudian las características del problema, sus
alcances y se reflexiona sobre las técnicas apropiadas que
conduzcan a estas soluciones. Se determina la cantidad de
recursos humanos, económicos e informáticos necesarios. Se
realiza el análisis de retorno de la inversión. Las áreas del problema
que pueden dar muchas dificultades se identifican, y una solución
conceptual para estas se presentan, además de las
especificaciones generales para el problema en su totalidad.
Etapa 2: Determinación del Método de Desarrollo:
• Una vez superada la etapa 1, identificadas las características y tipo
de problema, además del tipo de solución que amerita. El siguiente
paso entonces es proceder al diseño del sistema. Mientras el
experto proporciona la información relevante, el ingeniero del
conocimiento transforma estas ideas en símbolos usando
lenguajes de programación como LISP o Prolog. En esta etapa,
varios Shell y herramientas adicionales se adecúan para con ellas
alcanzar penetrar el espacio de soluciones en función de su
idoneidad.
Etapa 3: Desarrollo del Primer Prototipo:
Esta etapa requiere de ciertas actividades primarias:
1. Decidir primeramente qué conceptos serán necesarios para
alcanzar penetrar el espacio de soluciones. Es decir, con qué
cantidad de conocimiento se dispone.
2. Posterior a lo anterior, la construcción de conocimientos da inicio.
Aquí se produce una interacción fuerte entre el ingeniero y el
experto, donde, el ingeniero necesitará extraer la mayor cantidad
de detalles posibles del experto para trasladarlos a un lenguaje
simbólico ya elegido.
3. Edificado ya el conocimiento, el ingeniero procede a decidir sus
formatos de representación.
4. Luego del paso previo, ya el prototipo puede ser construido.
Etapa 4: Planificación de un Diseño del Sistema (Prototipo) a Gran
Escala:
Para este caso, entendamos que varias pruebas sobre un prototipo
llevan al diseño de un modelo. Se asume a un modelo como algo que ya
funciona medianamente estable. Pero que puede ser mejorado con
experimentaciones posteriores.
Etapa 5: Puesta a punto Final, Mantenimiento y Planificación del
Escalamiento.
En esta etapa ya los prototipos han pasado sus pruebas y se alcanza
implementar el primer modelo del sistema experto. Prestaciones,
funcionalidad, velocidad, eficiencia, ajuste, tasa de errores, consumo de
recursos y energía, todas como variables del diseño, ya se han
identificado. El ciclo de vida, el mantenimiento y sus posibilidades de
escalamiento, tanto en dimensiones como en complejidad. Así como,
tanto en grados de dificultad en la evaluación de las tareas, como para
establecer un eficiente flujo de trabajo para los procesos ya han sido
definidos. Ya nuestro sistema experto buscado, está listo para operar.
Por otro lado, tres elementos primordiales conforman a un sistema
experto, una base de conocimientos, una base de hechos y un motor de
inferencias. En la siguiente página estudiaremos cada una de ellas y sus
funciones.
Ejemplos: hay muchos ejemplos de sistema experto. Algunos de ellos se
dan a continuación:
MYCIN: Uno de los primeros sistemas expertos basado en el
encadenamiento hacia atrás. Puede identificar varias bacterias que
pueden causar infecciones graves y también puede recomendar
medicamentos según el peso de la persona.
DENDRAL: Era un sistema experto basado en inteligencia artificial utilizado
para análisis químicos. Utilizaba los datos espectrográficos de una
sustancia para predecir su estructura molecular.
R1 / XCON: Podría seleccionar software específico para generar un
sistema informático deseado por el usuario.
PXDES: podría determinar fácilmente el tipo y el grado de cáncer de
pulmón en un paciente basándose en los datos.
CaDet: Es un sistema de apoyo clínico que podría identificar el cáncer en
sus primeras etapas en los pacientes.
DXplain: También era un sistema de apoyo clínico que podría sugerir una
variedad de enfermedades según los hallazgos del médico.
Fundamentos de un Sistema Experto
En el año 1950, Alan Turing publicó un trabajo titulado "Machinery and
Intelligence” con el fin de indagar hasta qué punto las computadoras
tienen inteligencia. Más tarde en 1965, se empezaron a utilizar técnicas
para la resolución de problemas que se caracterizaban por la búsqueda
heurística como modelo para la resolución de problemas, y con ellas,
comenzó la investigación y desarrollo de los sistemas expertos. Los
Sistemas Expertos son programas que aplican los conceptos de la
inteligencia artificial. Es la pieza comercial y la que más aplicación se le
ha dado en Inteligencia artificial.
Podríamos decir que, un sistema experto es un sistema informático que
intenta modelar el conocimiento del dominio en un experto humano.
Estos sistemas se pueden utilizar en lugar de, o para ayudar, a los
expertos humanos a tomar decisiones. Los sistemas expertos hoy día son
considerados parte de la Computación Cognitiva.
Se observó que los expertos humanos tienen un restringido dominio de
experiencias y se comenzó el desarrollo de sistemas que presentasen
comportamientos inteligentes en dominios muy limitados; como
consecuencia de esta tendencia, se produjo un notable desarrollo de
Sistemas Expertos en diversos campos del saber humano: química,
medicina, geología, derecho, etc. La proliferación de sistemas expertos
motivó que comenzase la investigación acerca de cómo hacer que estos
sistemas que mostraban inteligencia en su comportamiento fuesen,
además, capaces de aprender utilizando la retroalimentación.
Por último, los avances tecnológicos en Informática y los avances
conseguidos en el conocimiento del cerebro han provocado que resurjan
con fuerza las redes neuronales en los laboratorios de investigación
sobre la I.A. en todo el mundo. El trabajo sobre redes neuronales, junto
con el trabajo en temas de vida artificial, ha ayudado a focalizar la
investigación actual en IA sobre los problemas relacionados con la
conexión entre procesos simbólicos, los sensores y efectores de los
robots inmersos en un entorno físico.
La idea básica de estos programas es capturar en un ordenador la
experiencia de una persona experta en un área determinada del
conocimiento, de tal modo que una persona no experta pueda
aprovechar esta información. Es por ello que se crearon sistemas
expertos que basándose en algunas reglas de acción (silogismos), y el
análisis de probabilidades, nos den una ayuda muy útil en todas las
ramas de la acción humana. De este modo se crearon sistemas
expertos para tareas genéricas. Es decir, para la monitorización y el
diagnóstico, además de los trabajos de simulación de la realidad.
Las posibilidades de estos programas, aunque tiene sus limitaciones
propias (al ser un especialista en tan sólo un área pero un complet
o idiota en casi todas las otras ramas del pensamiento humano y
al ser sistemas basados en reglas fijas, donde se pierden
algunas veces la creatividad y el sentido común) son inmensas; y se
les está usando en
gran medida para la monitorización y diagnóstico: como en plantas
de energía, grandes industrias, cohetes, control del tráfico aéreo,
búsqueda de yacimientos petrolíferos y hasta hospitales.
Otra de las ventajas de los Sistemas Expertos, es que estos pueden en
cierto punto manipular las reglas que se le han dado y sacar
conclusiones a partir de ellas. En otras palabras, puede descubrir nuevas
posibilidades y guardarlas en su base de datos. Los mecanismos de
manipulación y deducción son, hasta cierto punto, independientes de la
base de datos. Una interrogante que surge al construir Sistemas Expertos
es ¿Cómo sabremos cuando tengamos éxito al construir un programa
inteligente?
La respuesta es, se sabrá cuando la combinación de Software y
Hardware nos dé como resultado el que personas normales en nuestra
sociedad no puedan determinar si quien ha estado respondiendo a sus
preguntas es un ser humano o una computadora, entonces podremos
decir que hemos logrado el objetivo de construir un programa inteligente
bajo la misma lógica de Turing.
2. Base de Conocimientos, Base de Hechos y Motores de
Inferencia
La Base de Conocimientos: en escritos de (Henderson, 2009), se afirma
que una base de conocimientos consiste en un conjunto de aserciones
(hechos), o reglas expresadas bajo la forma [If -->Then] sentencias
tales que especifican una condición o serie de ellas. Si es/son
verdaderas, o, si es/son falsas, construyen una particular inferencia
manejada como respuesta a una consulta. Estas bases, sólo contienen
información de un dominio de tarea específico, y sólo sirven a problemas
particulares de ese dominio de tarea. Una base de conocimientos se
configura entonces, como un componente esencial totalmente
independiente del motor de inferencias. A su vez, posee varias
características o propiedades:
• La propiedad de Granularidad o Criterio de Modularidad de Fodor,
mediante el cual se maneja la premisa de que el conocimiento es
modular, quiere decir, que los elementos que lo constituyen son
independientes unos de otros. Debido a ello, a las bases de
conocimiento se les puede agregar módulos por separado.
• Ningún conocimiento modular posee un orden jerárquico con
respecto a otro, ninguno es más importante.
• Las unidades de conocimiento cumplen con la propiedad
conmutativa, donde el orden de introducción de éstas en el
sistema no tiene ningún efecto sobre los resultados.
• Tienen la capacidad de crecer y expandirse, según el conocimiento
que adquieren, manejan y procesan, también lo hace. Alcanzando
características dinámicas.
Un Knowledge Base System (KBS) o Sistema Basado en Conocimientos,
es una forma de inteligencia artificial (IA) que tiene como objetivo captar
el conocimiento de los expertos humanos para apoyar la toma de
decisiones. La base del conocimiento contiene a su vez varios
subcomponentes de procesamiento, el denominado conocimiento
declarativo o conocimiento efectivo. Entendámoslo como a aquel que
puede encontrarse en los libros de texto clásicos, además, se aprende en
las aulas de clase. Y, el conocimiento adquirido por heurística. Este último,
es un tipo de conocimiento derivado desde la combinación experimento
- experiencia. Comienza penetrando y buscando en el denominado
espacio del problema, o área donde el problema está localizado y se
desenvuelve. Allí recoge pistas desde indicadores que provean
información relevante en la dirección de interés. Si el espacio del
problema es científico, este debe estar restringido a no ser mayor al
espacio dimensional, pero tampoco tan pequeño como para no alcanzar
capturar todas sus unidades de variación.
En concordancia con Rijckaert et al. en (Zimmermann, 2001, pág. 189), el
conocimiento declarativo parte de la base de conocimientos y se
encarga de describir que objetos (hechos, términos o conceptos) han de
ser usados por el experto y el sistema experto. Por su lado, el
conocimiento procedimental también parte de la base de
conocimientos y contiene información acerca del cómo estos objetos
serán usados en función de inferir nuevas conclusiones y llegar a una
solución. Pero este último, debe ser expresado bajo la forma de reglas
heurística.
Comúnmente, la heurística provee mecanismos o estrategias que
admiten la descomposición del problema en componentes más simples,
y con los cuales es posible alcanzar una mejor solución. Casi todos los
métodos heurísticos estiman y comparan el costo de una solución
óptima, cuando el algoritmo se ejecuta nuevamente, este comienza en el
estado anterior al nodo cuando se opera con árboles de decisión, y
desde allí, traza un camino solución según el costo hasta un nuevo punto
óptimo. Las bases de conocimiento se constituyen como parte
fundamental de los Sistemas para toma de Decisiones. Estos son
sistemas de IA que eligen una entre muchas variantes como una
solución a un problema particular.
Es importante enfatizar a los estudiantes que los sistemas expertos
ayudan a los tomadores de decisiones, a los ingenieros de decisiones,
pero no los sustituyen. Los sistemas expertos no tienen capacidades
humanas dado que estos sistemas pertenecen a una generación
computacional donde el aprendizaje máquina no se había desarrollado
todavía. Utilizan una base de conocimientos de un dominio particular y
aportan ese conocimiento a los hechos de la situación particular en
cuestión. La base de conocimientos de un SE también contiene
conocimientos heurísticos: reglas prácticas que utilizan los expertos
humanos que trabajan en el dominio.
La base de conocimientos contiene los conocimientos necesarios para
comprender, formular y resolver problemas. Es un almacén del
conocimiento específico del dominio capturado del experto humano a
través del Módulo de Adquisición de Conocimiento. Para representar la
producción de conocimiento se utilizan reglas, marcos, lógica, red
semántica, etc. La base de conocimientos del sistema experto contiene
conocimientos tanto fácticos como heurísticos. El conocimiento fáctico
es el conocimiento del dominio de la tarea que se comparte
ampliamente, que generalmente se encuentra en libros de texto o
revistas. El conocimiento heurístico es el conocimiento menos riguroso,
más experimental y más crítico del desempeño, rara vez se discute y es
en gran parte individualista. Es el conocimiento de buenas prácticas,
buen juicio y razonamiento plausible en el campo.
El Módulo de Adquisición de conocimientos se encarga de la
acumulación, transferencia y transformación de métodos de resolución
de problemas por experiencia de expertos, y / o fuentes de conocimiento
documentadas para un programa de computadora. Se utiliza para
construir o expandir la base de conocimientos. Para la adquisición de
conocimientos, se utilizan técnicas como análisis de protocolos o
secuencias de resolución de problemas basadas en experiencias
pasadas, entrevistas y observaciones.
3. Sistemas Basados en Reglas
Los Sistemas Expertos Basados en Reglas operan a través de la
aplicación de reglas de la lógica, se centran en la comparación de
resultados y aplicación de las nuevas reglas fundadas en la situación
modificada para el espacio del problema en su estado anterior.
Asimismo, pueden trabajar por inferencia lógica dirigida, deducción,
inducción, abducción o heurística. También, empezando con una
evidencia inicial en determinada situación, y, dirigiéndose hacia la
obtención de una solución, o bien, con hipótesis sobre las posibles
soluciones, y, volviendo hacia atrás para encontrar una evidencia
existente (o una deducción de una evidencia existente) que apoya una
hipótesis en particular.
Los sistemas basados en reglas son la forma más simple de inteligencia
artificial y se circunscriben a la metodología simbólica de la IA. Un
sistema basado en reglas usa reglas para la representación del
conocimiento codificado en el sistema. Las definiciones de sistema
basado en reglas dependen casi por completo de los sistemas expertos,
que son sistemas que imitan el razonamiento del experto humano en la
resolución de un problema intensivo en conocimiento. En lugar de
representar el conocimiento de una manera declarativa y estática como
un conjunto de cosas que son verdaderas, el sistema basado en reglas
representa el conocimiento en términos de un conjunto de reglas que
dice qué hacer o qué concluir en diferentes situaciones.
Un clásico ejemplo de una regla para un sistema de este tipo, parte del
dominio específico del sistema experto que utiliza reglas para hacer
deducciones o elecciones. Por ejemplo, un sistema experto podría ayudar
a un médico a elegir el diagnóstico correcto en función de un conjunto
de síntomas correlativos, o ayudar a un jugador a seleccionar
movimientos tácticos para jugar un juego.
En atención a (Negnevitsky, 2005), cualquier regla lógica de los sistemas
basados en reglas sigue los pasos de los silogismos, y se constituye en
dos partes: la primera llamada antecedente, premisa o condición. Y la
siguiente denominada consecuente (conclusión o acción a tomar). De
manera que su sintaxis básica será:
IF…………. <antecedente>
THEN…….. <Consecuente>
En general, una regla podrá estar compuesta por múltiples
antecedentes unidos por la palabra clave AND, que significa conjunción.
OR (disyunción) o una combinación de ambas.
IF………. <antecedente 1>
AND…… <antecedente 2>
AND…… <antecedente n>
THEN…. <consecuente>
IF………. <antecedente 1>
OR……... <antecedente 2>
OR………. <antecedente n>
THEN…… <consecuente>
Afirma el autor que, el antecedente de una regla incorpora dos partes,
un objeto (objeto lingüístico) y su valor. Por ejemplo, si el objeto
lingüístico fuese un semáforo, este podría tomar los valores “verde” o
“rojo”. Donde, el objeto y su valor son unidos por los denominados
operadores, éstos identifican a los objetos y les asignan sus valores.
Operadores como: “es”, “son”, “no es” o “no son”, son comúnmente
utilizados y sirven para ampliar el campo de decisión.
No obstante, los sistemas expertos disponen de operadores matemáticos
para definir objetos como si fuesen objetos numéricos, y a su vez,
asignarles su correspondiente valor. Por ejemplo, el caso de un menor en
el banco:
IF……… ‘la edad del cliente es’ < 18
AND…... ‘el efectivo a retirar es’ > 1000
THEN… ‘solicitar firma de los padres’
Por otro lado, similar a las reglas del antecedente, una consecuente
combina a un objeto y su valor por medio de un operador. Aquí el
operador también asigna el valor al objeto lingüístico. Si tomamos como
ejemplo, una esquina con un semáforo, “si el valor del semáforo es verde”
la primera acción para el conjunto de reglas aplicadas al objeto
lingüístico será “avanzar”. Aquí un objeto numérico, y una simple
expresión numérica, también pueden ser usadas como consecuente.
4. Sistemas Basados en Reglas Bayesianas
Los Sistemas Basados en Redes Bayesianas, como concepto teórico de
aplicación computacional, se dan a partir de los años 70´s como
modelos computacionales de procesamiento distribuido. Poseen la
capacidad de combinar inferencias bidireccionales, y se usan
principalmente, para representar conocimiento incierto. Básicamente, un
ingeniero del conocimiento necesita del apoyo de un sistema basado en
redes bayesianas cuando, su modelo de conocimiento se rige por las
leyes de las causas y los efectos. Además, le interesa predecir ciertos
estados, dadas ciertas condiciones como antecedentes o condiciones
de Bayes.
Desde el punto de vista matemático, las redes bayesianas consisten en
una teóricamente bien fundamentada forma de representar
distribuciones de probabilidades comprensiblemente y de manera
gráfica, (Witten & Frank, 2005). Uno de los tantos usos que se les conocen
a los sistemas basados en redes bayesianas es su capacidad de
representar modelos causales. Aquí, se inicia con un conjunto de
variables que representan a las propiedades, y una distribución de
probabilidad sobre estas variables.
De acuerdo a (Sarkar & Pfeifer, 2006), esta distribución de probabilidad,
parcialmente interpretada como conocimiento causal primario o con
prioridad, es admitida con el fin de reflejar o construir una estructura
causal. Dadas entonces ciertas condiciones, entre las probabilidades y la
estructura causal, técnicas algorítmicas son empleadas para generar un
conjunto contentivo de todas las estructuras causales consistentes con
las probabilidades, y con el conocimiento causal primario. Estas
estrategias son muy útiles en los procedimientos de prueba de hipótesis
y predicción de efectos bajo observación, e intervención.
5. Razonamiento Bajo Incertidumbre y Entropía
En sistemas de IA, denominaremos incertidumbre a todo aquello que
debilita, e imposibilita, una relación fuerte y determinista entre los datos,
la información que con ellos se forma, el conocimiento que con ambos se
construye, y, las decisiones que en base a esta triada previa deben ser
tomadas. Sólo con un buen manejo de las incertidumbres se construyen
sistemas altamente eficaces. Los inconvenientes con las incertidumbres
tienen variadas fuentes, la aleatoriedad y las vaguedades, algunas de
ellas. La probabilidad trata problemas con aleatoriedad, mientras que los
sistemas de lógica difusa tratan con las vaguedades. Donde, y como
máxima general, las incertidumbres deben ser modeladas por cualquier
medio.
A una decisión tomada con la teoría de la probabilidad, la
denominaremos creencia. Las vaguedades por su lado, se usan para
describir a cierto tipo de incertidumbre. Max Black (1937) en (Siddique &
Adeli, 2013), propone como ejemplo la siguiente proposición: Jhon es
joven, tal proposición claramente, es vaga. Ello, en relación a dos ideas.
La primera, la naturaleza y observabilidad de la vaguedad. Y la otra, la
relevancia de la vaguedad para la lógica clásica. Black propuso que, los
conjuntos vagos fuesen definidos por las denominadas curvas de
membresía. Este fue el primer intento por desarrollar un modelo
matemático para tratar las vaguedades.
Posteriormente, Lotfi Zadeh (1965), se encargaría de continuar el trabajo
para denominarlo finalmente como teoría de conjuntos difusos. Así fue
el nacimiento de la lógica difusa. Los sistemas difusos son en esencia,
modelos de abstracciones matemáticas totalmente aplicables al mundo
real. Estas aplicaciones, generalmente sobre problemas complejos que
ameritan modelaje y solución, poseen varias características particulares,
la practicidad, la credibilidad en los resultados, y, el nivel de
incertidumbre en el cual se sostienen las estructuras matemáticas que
los soportan. Las incertidumbres aparecen cuando la determinación está
ausente. Pueden derivarse también, desde el mecanismo de
razonamiento aplicado, quiere decir, razonamiento deductivo, abductivo,
inductivo o heurístico. Aunque no son los únicos, se conforman como los
más comunes en el devenir de los humanos.
Pero, para iniciar, haré alusión hacia dos tipos diferentes de
razonamiento en sistemas de inteligencia artificial, el práctico y el
teórico. El primero, consiste en qué hacer o el cómo proceder, cuando se
está ante una situación donde una decisión debe ser tomada. El
segundo, refiere a las formas en cómo las evidencias son manejadas con
el fin de obtener una conclusión. Donde, ambos tipos de razonamiento,
sirven y enmarcan toda capacidad de identificar y actuar en
concordancia con las razones. Cuando al menos dos ideas son
permutadas y/o combinadas en el pensamiento, y estas se tornan a
favor de una acción mediante un juicio, se dice que se ha ejecutado un
acto de razonamiento.
La verdad nunca es comprometida cuando no es posible alcanzar una
demostración absoluta, o cuando se manifiesta nuestra inhabilidad para
conseguirla. Si no, cuando lo que la soporta es débil, su evidencia, y, por
ende, queda expuesta ante mecanismos que puedan falsarla. Por esta
razón, en cualquier sistema donde una verdad absoluta no pueda
lograrse, ésta quedará supeditada a una magnitud de probabilidad
donde, a medida que crece la evidencia, decrecen también sus
posibilidades de refutación.
Este espacio o área dimensional, al cual ni la verdad ni la evidencia
pueden acceder, lo denominaremos espacio de incertidumbre, es decir,
un espacio o área de conocimiento donde nada es cierto, ni nada es
falso, sólo que se hace imposible de determinar su naturaleza. Entonces,
el razonamiento bajo incertidumbre se ejecuta en un espacio del
problema donde existen las evidencias, pero también se presenta la
imposibilidad de creer cabalmente en ellas. El razonamiento automático
bajo incertidumbre es propio de los sistemas de machine Learning, en
data Mining y los sistemas de control.
Como un ingeniero del conocimiento es una persona excelentemente
formada en su campo, bien sabe que debe operar en entornos bajo
incertidumbre. Por ello mismo, esta adiestrado en la utilización
de Métodos Suaves donde las Funciones de Creencia o
de Probabilidades Imprecisas, han de ser operacionalizadas. De
acuerdo a (Everit & Skrondal, 2010), en las funciones de creencia la
incertidumbre es representada por conjuntos convexos y cerrados de
distribuciones de probabilidad, y la probabilidad de un evento se
especifica como un intervalo de posibles valores, en vez de solo precisar
alguno, como es costumbre. La cantidad de imprecisión entonces,
consistirá en las diferencias entre las probabilidades más altas, menos
las probabilidades más bajas, definidas en el intervalo.
Los métodos suaves por su lado, herramienta por excelencia de un
ingeniero del conocimiento, son métodos estadísticos comúnmente
necesarios para derivar juicios cualitativos y subjetivos, que no pueden
ser fácilmente trasladados a valores precisos. Los Soft Methods, o
métodos suaves, incluyen un amplio rango de poderosas técnicas
desarrolladas por la inteligencia artificial, y de las cuales, el ingeniero del
conocimiento se vale.
Pero, ¿Por qué un ingeniero del conocimiento debe lidiar con
razonamiento incierto, funciones de creencia, o cualquier otro esquema
de razonamiento bajo condiciones de incertidumbre? Básicamente,
porque existen problemas que no pueden ser formulados
algorítmicamente, pues, dependen de muchos factores (problemas
intratables). Un problema que no pueda ser formulado algorítmicamente
es una situación no computable. Una situación no computable es
aquella para la cual no existen operaciones algebraicas, matemáticas,
simbólicas, recursivas o de manipulación formal de cálculo, con las
cuales se pueda alcanzar la solución a un problema. Por ejemplo: ¿Cómo
predecir y clasificar los diferentes gustos de las personas?, es evidente
que la respuesta a esta pregunta involucra en primer término,
determinar para luego configurar u ordenar, un desorden manifiesto
entre sus unidades de información. Y, podríamos afirmar que, no hay
operación de cálculo alguna que pueda ofrecernos una solución
plausible, ni algoritmo computacional conocido, capaz de realizarla.
La incertidumbre, de por sí, ya es un inconveniente, pero nunca viene
sola. En ocasiones, es necesario un conocimiento a priori o de ciertas
evidencias para alcanzar inferencias aceptables. Entonces, el ingeniero
del conocimiento opta por seguir las prescripciones de la estadística
bayesiana o el manejo de variables por métodos estocásticos. Si la
incertidumbre apareciese en cada uno de los eslabones de las cadenas
causales en el tiempo, y, por ende, la sucedencia de un evento
dependiese únicamente del evento inmediatamente precedente.
Entonces, acudirá a los mecanismos que ofrece el razonamiento
estocástico y probabilista en el tiempo, con sus Cadenas de Markov.
No obstante, en los Procesos Markovianos no todo es color de rosa. El
ingeniero del conocimiento sabe que en Markov la distribución de
probabilidad permanece constante en el tiempo, pero no se garantiza
equilibrio estadístico. En otras palabras, no siempre es posible obtener un
estado estacionario de la distribución. Por ende, el comportamiento de
los objetos dentro del espacio, puede levemente variar por diversas
razones, debido a ello, el ingeniero intentará operar con la cadena, pero
sólo hasta su primer orden. Una Cadena de Markov de Primer Orden, es
un proceso estocástico donde la memoria de la cadena solo alcanza
una longitud L=1. Quiere decir, el condicional de probabilidad para un
valor futuro, depende únicamente del valor precedente, pero de ninguno
de sus anteriores. Entonces, el ingeniero lo observa así: para cada
situación un caso y para cada caso una estrategia.
Suponiendo ahora que, el sistema bajo estudio presente una secuencia
de estados para diferentes épocas de decisión, entonces acudirá a los
modelos estocásticos basados en Procesos de Poisson. Es de resaltar, en
todo proceso donde el azar entre en juego es un proceso estocástico. Allí,
otras opciones también son plausibles, los Procesos de Martingale y los
Procesos Estacionarios, o Procesos de Incrementos Independientes, son
opciones válidas. Todo esto se da mi estimado lector, debido a que la
información que se maneja muestra incertidumbre, y ésta, de una u otra
forma, debe ser modelada.
La incertidumbre se presenta en sistemas donde la determinación
absoluta está ausente, es inalcanzable, o se hace imposible. Por ende,
ésta limita nuestro conocimiento impidiendo que la ciencia avance. Y, un
estancamiento científico no es opción a seguir para el ingeniero del
conocimiento, para él, las parálisis intelectuales y las petrificaciones
procedimentales son cosas del pasado. En atención a (Negnevitsky, 2005,
pág. 84), la incertidumbre consiste en la carencia de conocimiento
exacto que pueda guiarnos a alcanzar una conclusión perfectible y
confiable. Las principales fuentes de incertidumbre en sistemas expertos
son: las implicaciones débiles[1]; el lenguaje impreciso; los datos
perdidos y la combinación de puntos de vista de diferentes expertos. En
efecto, como lo habíamos afirmado en párrafos anteriores, la
incertidumbre nunca viene sola, acompañémosla ahora de la
denominada entropía.
Para la teoría general de sistemas, la entropía en un sistema es una
medida de su desorden manifiesto. En teoría de la información, la
entropía consiste en la medida de la cantidad de información recibida o
enviada por cualquier sistema, usualmente medida en bits para estos
casos. Para la estadística por su lado, la entropía de una distribución de
probabilidad es una medida de la incertidumbre de la misma
distribución. Para la física, más específicamente, la termodinámica en su
segunda ley, un cambio de estado en la entropía o función de entropía, la
cual es otro estado más como la temperatura y la energía, se usa para
describir los cambios de estados que siempre acompañan a los
sistemas termodinámicos.
En la mecánica estadística por su lado y según (Serway, 1997), se
interpreta a la entropía de la siguiente forma: el comportamiento de una
sustancia se describe en función del comportamiento estadístico de los
átomos y moléculas contenidas en la sustancia. Y uno de los principales
resultados de este tratamiento es que: los sistemas aislados tienden al
desorden, y la entropía es una medida de dicho desorden, (p. 629). Dado
lo anterior, en inteligencia artificial la entropía tiene diversos usos. En
lógica difusa, por ejemplo y según (Ross, 2010), la entropía de la
información es empleada para identificar conjuntos difusos dañados. Y,
los métodos de reconocimiento de patrones difusos son usados para
especificar el nivel, ligero o severo, de tales daños en la estructura.
Cuando se desarrollan funciones de membresía y se emplea el
razonamiento inductivo, allí se estila partir desde una observación
particular hasta lograr su generalización, y esto trae sus consecuencias.
Por medio de este tipo de razonamiento, se asignan los objetos
científicos al conjunto. Pero para que la asignación sea válida, se debe
acudir al principio de minimización de la entropía. Cuyos clústeres
óptimamente asignan los parámetros correspondientes a las salidas de
las clases.
En algoritmos evolutivos, se describen complejidades basadas en
evolución de aptitudes donde se utiliza el principio de máxima entropía
como auxiliar en la experimentación con árboles de decisión evolutivos
usando programación genética. Allí, un sujeto que presenta alta entropía
será descartado por simple lógica de las estrategias de evolución, tal
nivel de entropía, lo hace no apto para su selección. De acuerdo a
(Haykin, 2009), supóngase determinado sistema estocástico con un
conjunto de estados conocidos, pero de probabilidades desconocidas, y
tal que, de algún modo, hemos aprendido algunas restricciones de la
distribución de probabilidad del estado, pero que también debe ser
seleccionado un modelo adecuado. Las restricciones pueden ser
realmente un promedio de valores o un límite a esos valores. El problema
subyace en seleccionar el modelo de probabilidad que, en algún sentido,
sea óptimo dado este conocimiento a priori sobre el modelo.
Usualmente, podríamos encontrar un infinito número de modelos
posibles a seleccionar y que satisfagan las restricciones… pero ¿cuál? La
respuesta a esta pregunta fundamental, recae ahora sobre el
denominado Principio de Máxima Entropía.
Según (Jaynes, 1957, 2003): en (Haykin, 2009, pág. 481) Óp. Cit, Cuando
una inferencia es hecha sobre las bases de información incompleta,
esta debe ser modelada en forma de distribución de probabilidad que
maximiza la entropía sujeta a las restricciones en la distribución. Afirma
el autor, en efecto, la noción de entropía define a un tipo de medida
sobre el espacio de distribución de probabilidad tal que, aquellas
distribuciones de entropía alta, sean favorecidas sobre otras.
En otras palabras, el principio de máxima entropía se utiliza cuando
existen problemas de optimización y estos están restringidos a ciertos
valores de la distribución de probabilidad. A ello es posible agregar que,
un objeto científico sobre el cual recae la inferencia y que presente un
estado de entropía bajo, parecerá más ordenado. Mientras que este
mismo objeto, dado el caso de exhibir un estado de entropía alta,
contrariamente, parecerá más desordenado.
En conclusión, dado que la incertidumbre se presenta en sistemas donde
la determinación absoluta está ausente o inalcanzable, el ingeniero del
conocimiento debe saber razonar según cada situación, todo en función
de quitar cualquier obstáculo que pueda poner límites a nuestro
conocimiento.
6. Inferencias Progresivas por Encadenamientos hacia
Adelante y hacia Atrás
Una de las más fundamentales funciones de un motor de inferencias en
un sistema experto es la ejecución de una secuencia de acciones de
representación continua de conocimiento mediante las cuales se
transfieren verdades entre nodos. Incluso, propagándose a través de
innumerables restricciones. Este movimiento continuo de datos de un
nodo a otro, incrementa y transforma el estado del conocimiento, y lo
denominaremos inferencias progresivas o por encadenamientos. En este
aparte del curso, estudiaremos los tipos de estos encadenamientos y el
cómo se ejecutan, incluyendo sus propiedades diferenciales.
En párrafos de secciones previas definimos al Motor de Inferencias como
un componente constituido por varios sub-bloques lógicos para el
procesamiento de algoritmos que manejan y dan forma al conocimiento
que se desea representar. Es en éstos sub-bloques, donde los
razonamientos son construidos. Cada elemento de la base de
conocimientos es hecho converger con otros por medio de negaciones,
conjunciones, disyunciones, implicaciones o co-implicaciones en un
primer momento. Es decir, por lógica proposicional, y liados luego como
eslabones en una cadena, haciendo aparecer a lo que hemos
acostumbrado llamar inferencia. Definamos al término Inferencia antes
de continuar con las explicaciones acerca del cómo se producen la
progresividad y el encadenamiento que las hacen aparecer.
De acuerdo a (Valbuena, 2018, pág. 170); se entiende
por Inferencia (extraer una cosa de otra):
… al proceso mental, basado en sicología cognitiva, mediante el cual, una
posibilidad provisional o agente con significado cognitivo (premisa
aceptada), es movida intencionalmente hacia otra proposición
condicional (también aceptada). Allí, el significado cognitivo individual
de las premisas es entonces conectado, reproduciendo de esta manera,
una derivación de razonamiento, pero esquematizado como concepto
con significado lingüístico.
Entenderemos ahora por su lado, a una inferencia automática, como a
una secuencia algorítmica donde una premisa aceptada, o condición de
consulta, es trasladada de nodo a nodo en la base de conocimientos,
satisfaciendo tanto condiciones de la lógica proposicional, como
restricciones impuestas por el experto. En el proceso final, se sucede el
linkado de ambas premisas quedando sólo una, denominada conclusión.
Y se le presenta bajo la forma de diagnóstico a una solicitud de consulta.
Existen variados tipos de inferencias según el tipo de razonamiento y el
cómo el encadenamiento sea procesado. Inferencias inductivas,
deductivas, abductivas y por heurística. Aunque todo proceso de
inferencia marca una acción mental que designa a algún tipo de
progresividad, no importando la dirección de ésta, para casos
específicos de sistemas totalmente automatizados, una inferencia será
progresiva cuando las unidades de razón que la componen, y extraídas
desde los datos presentes en la base de conocimientos, presentan un
gradiente incremental con respecto al estado del conocimiento que
aporta a la salida del sistema experto.
Son los usuarios los que inicializan las búsquedas cuando están ante un
problema que necesita ser subsanado mediante consultas. Pero, son los
motores de inferencia los que operacionalizan el conocimiento hasta que
el sistema experto logre alcanzar una solución. Lo hace por medio de la
conexión de reglas impuestas a los datos en la base de conocimientos,
contra los eventos reales alojados en la base de hechos. No obstante,
esta progresividad dependerá del punto de inicio en la cadena de
razonamiento.
Definiremos a un encadenamiento hacia adelante, como a un proceso
inferencial progresivo e incremental con respecto al gradiente del
conocimiento, basado en implicaciones lógicas, donde un algoritmo
intentará determinar si es posible unir sentencias bajo condicionales de
implicación de la forma [If … Then], [Si…Entonces], y que éstas deriven en
otra sentencia denominada conclusión, que converja tanto con el
conocimiento del experto, como con las expectativas de respuesta
solicitadas en la consulta. Es de acotar que un encadenamiento hacia
adelante, es básicamente un razonamiento deductivo donde partiendo
desde un universal, se finaliza en un particular.
En los encadenamientos hacia adelante, son las condiciones de
satisfacibilidad las que originarán las reglas restrictivas que,
eslabonadas, darán forma a la referida cadena de razonamiento.
Entonces, cuando el razonamiento se origina desde un conocimiento a
priori, o partiendo de un hecho, hasta finalizar en una conclusión, lo
llamaremos Inferencia Progresiva por Encadenamiento Deductivo o
Encadenamiento hacia Adelante.
Una inferencia progresiva por encadenamiento deductivo, funciona
como una forma de resolución dinámica de problemas que pueden ser
subsanados con la intermediación de la lógica. Donde, dada una
situación cambiante y un conjunto de sentencias como axiomas, éstas
son unidas como una colección de expresiones que dan tanto apariencia
de progresividad, como aspectos de movimientos en secuencia. Ahora
bien, una progresividad inductiva o retrógrada, hará aparecer un
encadenamiento hacia atrás, obedecerá a un razonamiento inductivo y
lo trataremos en lo adelante.
En atención a (Ross, 2010), un razonamiento automatizado e inductivo,
consiste en descubrir leyes que tengan validez y aplicación universal.
Desde un particular dado, la inducción concluye en lo general, de una
forma totalmente opuesta al razonamiento deductivo. Para ello, los
programadores acuden a la denominada lógica de programación
inductiva, donde los motores de inferencia combinan complejidad y
racionalidad, con inteligencia. De acuerdo al autor, tres reglas rigen al
razonamiento inductivo en sistemas automatizados soportados en lógica
difusa, y, por ende, a los encadenamientos hacia atrás en los referidos
procesos (p. 200):
Dadas un conjunto de respuestas irreductibles a un experimento, las
probabilidades inducidas serán aquellas probabilidades consistentes
con toda la información disponible que maximice la entropía del
conjunto.
La probabilidad inducida de un conjunto de observaciones
independientes es proporcional a la densidad de probabilidad de la
probabilidad inducida de una observación simple. [se usa para calcular
la probabilidad media para cada paso de separación o particionamiento
de elementos para la asignación de funciones de membresía en
conjuntos difusos].
La regla inducida es aquella regla consistente con toda la información
disponible para la cual la entropía es mínima. [Se usa para clasificación].
El análisis de minimización de entropía, que las reglas aluden, se emplea
para determinar la cantidad real de información contenida en un
conjunto dado. Muy necesaria en procesos inductivos puesto que, se
parte desde lo más simple, hasta alcanzar generalizaciones. La teoría de
la toma de decisiones, estructura fundamental que rige a las reglas
lógicas de razonamientos progresivos, son en sí mismos constructos que
combinan una particular acción con un razonamiento lógico.
Pero, para ello, han de haberse definido metas, quiere decir, parten desde
el planteamiento de un problema que ya ha sido anticipado por los
programadores, y enmarcado dentro de parámetros resolubles por
sistemas de razonamiento de propósitos generales, siempre acotados
por el dominio de la tarea en el área de especialización.
Según (Negnevitsky, 2005), en el encadenamiento hacia atrás el sistema
experto, tiene bien delimitada la meta (o solución hipotética), entonces,
el motor de inferencias intentará encontrar evidencias para probarla.
Iniciará con la búsqueda de reglas en la base de conocimientos. Solo
que, en estos casos, el problema subyace en que los ciclos de decisión
pueden repetirse casi infinitamente, pero, las reglas almacenadas son
finitas, pudiendo entrar en ciclos de regresión donde se podría alcanzar
la última regla y detenerse sin haber logrado solución alguna. De allí que,
el encadenamiento hacia atrás es apropiado cuando la meta es inferir
varios hechos, pero, si lo que se pretende es inferir solo uno, es mejor
optar por el encadenamiento hacia adelante.
Ahora bien, los sistemas expertos también pueden dar respuestas a
consultas bajo condicionamientos basados en el cotejo de
precondiciones, o formas de razonamiento abductivo. De acuerdo a
(Valbuena, 2018), Abducir significa determinar algo basado en una
condición previa. Allí, se asume como regla, que todo el conjunto o set de
proposiciones adoptadas como precondiciones en la base de
conocimientos del sistema experto, pueden explicar las conclusiones
obtenidas u observadas. Una sentencia del tipo ¡Está Mojado! … entonces
¡ha llovido!, o una del tipo ¡Hay presencia de cenizas… entonces ha
habido fuego! Son ambas abducciones. Un conjunto de inferencias
basadas en el descubrimiento y contentivas de evidencias. Según la
lógica, a la abducción se le estima contraria a la deducción. Sin
embargo, se diferencia de la inducción, que parte hacia una meta sin
evidencias, ya que esta última genera hipótesis basadas en
observaciones evidenciales.
7. Algunos Modelos de Sistemas Expertos
La inteligencia artificial, como amplio campo de aplicación de la
ingeniería y las investigaciones científicas, ha alcanzado desarrollar en
tiempos recientes, innumerables instrumentales de los cuales ingenieros
y científicos se sirven. Ello, en función de sustituir viejos enfoques de
computación habituales y caducos. Estas herramientas vienen
embebidas en sistemas de procesamiento distribuido complejos
soportados en metodologías robustas, y que coheren en la consecución
de metas comunes, tales como, y quizás la más esencial de todas las
metas, esquematizar, sintetizar, comprender y explicar el cómo funciona
la cognición humana.
Los sistemas expertos desde sus inicios, fueron concebidos como
sistemas de computación inteligente con capacidades autónomas de
resolución de problemas donde sólo un experto podría intervenir. Los
primeros prototipos de éxito, aparecieron a finales de la década de los
60´s. No obstante, fue en la siguiente década cuando surgieron modelos
que marcaron hitos. Tal fue el caso de MYCIN, desarrollado en la
Universidad de Stanford (1972), como sistema experto basado en reglas.
Se utilizó para el diagnóstico en medicina interna, y para el tratamiento
de variados tipos de infecciones sanguíneas. Las más importantes, la
meningitis y la septicemia bacteriana. Este sistema fue el pionero de los
sistemas expertos y contaba con alrededor de una 500 reglas solamente
Según (Negnevitsky, 2005), MYCIN podía ejecutar diagnósticos
equivalentes a un médico experto, y superaba ampliamente, los
diagnósticos efectuados por médicos recién graduados. Aunque MYCIN
marcó hito en los modelos computacionales para sistemas expertos,
también trajo consigo ciertos inconvenientes. Sus desarrolladores
encontraron que los médicos expertos consultados, expresaban la
fortaleza de sus creencias en términos, tanto carentes de lógica, como
de consistencia matemática. Además, no existían bases de datos de sus
experiencias a las cuales aplicarles procedimientos estadísticos. Debido
a ello, MYCIN nunca utilizó probabilidades.
Dados estos inconvenientes, el equipo de desarrollo decidió analizar
el razonamiento evidencial de los médicos a través de la teoría de los
factores de certeza. Asignando un coeficiente de certeza (Cf) a sus
análisis para poder matematizar y asignar lógica a sus inferencias.
Un coeficiente de certeza es un modelo teórico que permitiría asignar
números para restringir los valores de creencia de los expertos, dadas la
cantidad de respuestas inexactas que recibía el sistema. En función de
ello, (Russell & Norvig, 2004, pág. 605), afirman: Los conjuntos difusos los
desarrolló Lotfi Zadeh (1965) en respuesta a la dificultad detectada para
suministrar entradas exactas a los sistemas inteligentes.
El rango del coeficiente de certeza oscilaba entre [+1: -1]. Un valor (+1),
definitivamente verdadero, indicaba una creencia alta. Por el contrario,
un valor (-1), definitivamente falso, apuntaba hacia un grado negativo de
creencia.
Posterior a MYNCIN, surgió INTERNIST/CADUCEUS, desarrollado por H.E.
Pople y J.D. Myers en la Universidad de Pittsburg. Consistía en la unión
entre Internist-1 y Caduceus. Este sistema, no solo era capaz de ejecutar
diagnósticos con bastante exactitud, sino que, poseía capacidades de
combinar diferentes sintomatologías clínicas que pueden ser causadas
por diferentes patologías presentes en el paciente todas a la vez, (Lucas
& Van der Gaag, 1991).
Tanto MYNCIN como INTERNIST/CADUCEUS, se ubicaron dentro de los
sistemas expertos direccionados al diagnóstico. Sin embargo, otras áreas
de la ingeniería y las ciencias también tienen sus historias que
contar. PROSPECTOR, por ejemplo, fue un sistema experto de amplio uso
y dirigido a la predicción. Utilizado comúnmente, como sistema
predictivo para la evaluación de emplazamientos geológicos. Con él,
compañías petroleras afirman haber dado positivo en yacimientos
petrolíferos de importancia. Otras, por ejemplo, informaron haber
encontrado depósitos de molibdeno cerca de las montañas Tolman, en
el estado de Washington, yacimiento calculado en más de 100 millones
de dólares, Véase Negnevitsky (p. 11). También, fue utilizado tanto en la
predicción del flujo de habitantes (fenómeno de la migración), como en
la predicción meteorológica. De estos dos últimos, la migración se
modela con ecuaciones bio-matemáticas, y la meteorología, con series
de tiempo en estadística multivariable.
Prospector combinó estructuras que incorporaron por primera vez, tanto
un conjunto de reglas mejor organizadas en la base de conocimientos,
como redes semánticas. (Negnevitsky, 2005) afirma que, en la
exploración geológica se solicitaba al usuario ingresar las características
de un depósito sospechoso. Entre ellas, la configuración geológica y sus
estructuras. Así como, el tipo de rocas y sus minerales. Luego, el sistema
ejecutaba comparaciones con todos los modelos conocidos (detección
de patrones) y disponibles en la base de conocimientos. De ser
necesario, solicitaba información adicional. Finalmente, el sistema emitía
aseveraciones acerca del mineral sospechoso. Prospector,
también incorporó reglas de Bayes sobre evidencias para propagar la
incertidumbre a través del sistema (p. 11).
Otro sistema había surgido un poco antes de MYNCIN, pero, para
aplicaciones diferentes y también en la Universidad de Stanford (1965),
fue HEURISTIC DENDRAL. Esto, como resultado de las investigaciones de J.
Lederberg, especialista en química orgánica y ganador del premio Nobel
de Química compartido con E.A. Feigenbaum y B.G. Buchanan. Ambos,
ampliamente reconocidos investigadores en ciencias de la Inteligencia
Artificial. Este sistema, ofrecía asistencia en el campo de la química
orgánica en atención a determinar la fórmula estructural de algún
compuesto químico que haya sido aislado desde una muestra
dada. Heuristic Dendral, fue otro sistema experto aplicado a la
predicción. Sólo que ahora, incluía subrutinas heurísticas. El algoritmo
original fue desarrollado por Lederberg, con el fin de generar todas las
posibles configuraciones de aislamientos de un compuesto
químico, (Lucas & Van der Gaag, 1991, pág. 4).
Ya en los años 70´s, una de las principales herramientas para el
desarrollo de sistemas expertos fue, y en la actualidad, siglo XXI, continúa
siéndolo, el lenguaje de programación PROLOG. Se le entiende, como un
relativamente no procedimental lenguaje de programación donde es
posible inicializar con la misma notación simbólica que utilizan los
matemáticos. Dentro del campo de los lenguajes de
programación, prolog es el más conocido. Con él, una cadena de pasos
lógicos es construida tal que, el programa pueda atravesarla y salvar
todo tipo de restricciones, hasta alcanzar la solución al problema. Es uno
de los lenguajes que más se aproxima a la lógica natural de
razonamiento humano.
Informa (Henderson, 2009), desde los años 50´s, a gran cantidad de
investigadores les ha intrigado el cómo automatizar el razonamiento y
comportamiento humano, para presentarlo bajo la forma de inferencias
lógicas. Hasta la época, numerosos demostradores de teoremas habían
sido codificados partiendo desde axiomas, pero nada concluyente. Fue a
partir de 1972 cuando, los investigadores Alain Colmerauer y Robert
Kowalski, ambos de la universidad de Edimburgo, introdujeron
Prolog. Permitiéndoles crear programas que razonaran sobre información
almacenada en la base de conocimientos.
Cada área de la ingeniería posee sus propias aplicaciones y casos
particulares. Hoy día, (2021) ya los software no son de uso extendido, sino
privativos. Quiere decir, adquiridos bajo licencias particulares y cada uno
difiere de los otros. En la industria de la Energía Eléctrica, por ejemplo, y
según informan (Taylor, Smith, McIntyre, & Tait, S/F), una de las primeras
áreas donde se utilizaron los sistemas expertos en la pasada década de
los años 80`s, fue en el diagnostico complejo para maquinarias.
Proveyendo información diagnóstica acerca de las causas de las fallas
observadas en generadores de turbinas. También, se han ampliado sus
usos, hoy día, hacia todo el proceso de generación.
En telecomunicaciones, otro campo industrial extremadamente complejo
de tratar. A partir de los años 80´s también, se comenzaron las
aplicaciones de la inteligencia artificial sobre redes de
telecomunicaciones. Por ejemplo, en la etapa de mantenimiento, un tipo
de software es usado para monitoreo constante.
Los sistemas expertos han logrado avances en el filtrado de alarmas;
monitoreo y correlación, además de admisión y control de llamadas y
usuarios. Han sido exitosos en los ámbitos de aislamiento de fallas y
diagnósticos, reparación y mantenimiento, monitoreo del desempeño de
un segmento de la red. Así como, la configuración, mantenimiento y
dinámica de asignación de canales. Véase, Tan, Ming.
Telecommunications. Cap. 24, en (Liebowitz, S/F).
8. Guía para la Construcción de un Sistema Experto
Los sistemas expertos actuales requieren de equipos de trabajo cerca de
20 personas, sus proyectos oscilan desde los 4 meses hasta varios años.
Por ejemplo, la principal área de desempeño de éstos se ha direccionado
en época reciente sobre el diagnóstico médico. No obstante, debido a su
alta eficiencia y capacidad de resolución de problemas, las industrias se
han dado a la tarea de desarrollar sus propios sistemas para la
determinación de fallas en equipos, puesto que facilita las
planificaciones de mantenimientos, aumentando con ello, tanto el
desempeño de los equipos, como la eficiencia con la cual el trabajo es
ejecutado. Y, por ende, maximizando las ganancias.
Cuando se emplean sistemas expertos para la predicción, clasificación y
clustering, normalmente es necesario la creación de un modelo híbrido
entre éste y las Redes Neuronales Neurodifusas. Entonces, la herramienta
recibirá el nombre de Red Híbrida Experta Neuro Difusa. En el área
financiera, más específicamente, en los sistemas de gestión de
hipotecas, detección de operaciones fraudulentas, amortizaciones a
préstamos o evaluación y gestión de riesgos financieros. Normalmente
se opta por los denominados Sistemas Difusos para Soporte a
Decisiones como un módulo más del sistema experto.
Si la naturaleza del problema requiere optimización, es decir, encontrar la
mejor solución a un problema, o una solución de mejor calidad, dado
que ya existen otras soluciones. Entonces, el ingeniero del conocimiento
podrá optar por elegir a los Algoritmos Genéticos como una opción.
Generalmente, los sistemas expertos son flexibles, y pueden agregárseles
nuevos módulos de conocimiento a los que ya el sistema posee. Ello, bajo
la premisa de que el conocimiento, y la experiencia, son sujetos de
cambios continuos y evolución permanente. De acuerdo a (Lucas & Van
der Gaag, 1991), la siguiente ecuación ha sido considerada como el
paradigma de los sistemas expertos:
Sistema Experto = Conocimiento + Inferencia
(Siler & Buckley, 2005), son de opinión de que, para el desarrollo de un
sistema experto basado en reglas, se requiere que el conocimiento del
experto sea correctamente decodificado con el fin de identificar sus
patrones. No obstante, uno de los principales inconvenientes que pueden
presentase, es la dificultad para adaptarse a diferentes lenguajes de
programación. De allí, la cantidad de integrantes del equipo. Luego,
vienen problemas relacionados a la escritura del código, su depuración,
calibración y posterior validación por el experto.
9. Ejemplo de la Construcción de un Sistema Experto en
Medicina Cardiovascular
Utilicemos el ejemplo de una paciente de nombre ANN, quien al parecer
padece de una enfermedad cardiovascular, ¿Cuál?, es lo que
pretendemos averiguar con este sistema experto.
Este SE utilizará el lenguaje de programación LISP (Procesamiento de
Listas), donde cada una de las condiciones debe ser declarada, cada
variable debe ser delimitada y cada fórmula bien clarificada. Para ello se
formalizan las listas traduciéndolas a códigos máquina. Considere que el
ingeniero del conocimiento ha iniciado la formalización parcial del
dominio de la enfermedad cardiovascular que presentamos. Para
empezar, las fórmulas dadas deben ser traducido a la forma clausal de
la lógica. Las cláusulas resultantes deben traducirse a la representación
LISP de las cláusulas Horn. La resultante La lista de cláusulas se asigna a
la variable * conjunto-cláusula *. El siguiente conocimiento se obtiene la
base:
En estas primeras líneas se ingresa la data para un paciente de nombre
Jhon, de 60 años, masculino, y algunas de sus sintomatologías
asociadas. Posteriormente se ingresan los datos de Ann, niña de 12 años
y sus sintomatologías. Obsérvese que Ann presenta señales de DIASTOLIC
MURMUR = SOPLO DIASTÓTICO, un soplo cardíaco se puede describir
como sistólico o diastólico. (Sístole es cuando el corazón está
bombeando la sangre hacia afuera y diástole es cuando se llena con
sangre). Ann presenta una presión sistólica de 150 y una diastólica de 60,
además de un cuadro febril. Para el caso de Jhon sus presiones sistólicas
y diastólicas son normales para su edad, aunque presenta una masa
pulsante y un soplo abdominal.
Posterior a almacenamiento de los datos de ambos pacientes
procedemos a cotejar con las bases de conocimientos disponibles para
tales padecimientos en busca de concordancias sintomatológicas.
Ahora podemos consultar la base de conocimiento, usando para
averiguar si Ann sufre o no de alguna enfermedad, y si lo hace, cuál es la
naturaleza de su enfermedad, podemos ingresar a la siguiente consulta:
El resultado nos dice que Ann sufre de insuficiencia aórtica, ya que la
variable "x" en el nivel 0 está ligada a la regurgitación aórtica constante.
Esto parece ser un problema cardiovascular ya que la variable "y" en el
nivel 0 está ligada a la constante cardiovascular. Este es un ejemplo del
cómo usando LISP como lenguaje de programación podemos escribir
variables, cláusulas, generar fórmulas y hacer que un sistema
automatizado nos oriente sobre algún diagnostico médico.