SEarquitectura2007.pdf

Anuncio
Sistemas Expertos
Introducción
Arquitectura - Motor de Inferencias
Ingeniería Electrónica
Ingeniería del Conocimiento
Inicio de los Sistemas Expertos
60´s
70´s
Se buscaban soluciones generales
Los sistemas son más eficientes en dominios
acotados
La calidad y cantidad de conocimiento son
esenciales para una buena performance
Es importante independizar el conocimiento
del dominio, del mecanismo de inferencia.
Sistemas basados en conocimiento (SBC-KBS)
Definiciones.
Sistemas que resuelven problemas aplicando una
representación simbólica de la experiencia humana.
Jackson.
Sistemas que representan el conocimiento sobre el
dominio en forma explícita y separada del resto del
sistema.
Waterman.
Sistemas basados en conocimiento (SBC-KBS)
Definiciones.
Sistemas de software capaz de soportar la
representación explícita del conocimiento de un
dominio específico y de explotarlo a través de
mecanismos apropiados de razonamiento para
proporcionar un comportamiento de alto nivel en la
resolución de problemas.
Guida y Taso
Sistemas Expertos: Definición.
Es un sistema de cómputo capaz de simular la conducta
inteligente de un experto humano en un dominio
específico y especializado, con el objeto de resolver
problemas.
Sistema de computación
Hardware + software
Simulación
Conducta inteligente
Experto
Dominio limitado
Fuente de pericia humana en el dominio
Específico y especializado
Experiencia humana vs. SE.
PERICIA ARTIFICIAL
Permanente
Siempre accesible
Fácil de documentar
Estable, confiable
Costo manejable
Fragilidad de las máquinas
Sin inspiración
Conocimiento técnico
Estática - Dinámica
Dominios estrechos
PERICIA HUMANA
Perecedera
No siempre accesible
No documentable
Variable, flexible Costosa
Fragilidad humana
Creativa Sentido común Dinámica (aprendizaje) Dominios más extensos
Los humanos son aún imprescindibles.
SE/SBC: Tareas
Síntesis: Clasificación, diagnóstico
Tareas abordadas
Análisis: Planificación, diseño o modelado
Las áreas de aplicación son muy variadas !!!
Los SBC abordan problemas complejos en dominios específicos
en los que el peso de las heurísticas para acotar el espacio de
búsqueda es importante.
Primeros Sistemas Expertos
MYCIN
PROSPECTOR
INTERNIST
CASNET
R1
MOLGEN
Stanford (Buchanan - Shortliffe 1976):
Diagnóstico y tratamiento de enfermedades
infecciosas (aprox. 500 reglas). Introduce
factores de certeza.
Stanford-US Geological Survey (Duda-GashningHart, 1979): Evaluación de yacimientos minerales
y petrolíferos. (aprox 1600 reglas). Probabilidades
condicionales y Teorema de Bayes.
Pittsburg (Pople-Myers, 1977): Diagnóstico
en Medicina interna. CADUCEUS: Analiza
relaciones causales.
Rutgens (Kulikowsky-Weiss-Safir, 1977):
Oftalmología. Aplica un modelo causal para el
diagnóstico de glaucoma.
Carnegie Mellon (Mc Dermott): Configuración de
ordenadores VAX (aprox 500 reglas). Descompone
el diseño en distintos niveles de abstracción.
Stanford (Stefik): Diseño de experimentos
genéticos. Utiliza abstracción.
Conocimiento
inexacto
Razonamiento experto
Modelos causales
Reducción espacio
de búsqueda
Habilidades que se esperan de un SE
Manipular con fluidez descripciones simbólicas.
Buena perfomance, comparable al menos a la de los especialistas.
Interfaz amigable, adecuada a las necesidades de la aplicación.
Habilidad para manipular conocimiento incompleto e impreciso.
Capacidad de explicar sus decisiones a los usuarios.
Posibilidad de justificar sus conclusiones.
Estructura básica de un SE.
Ingeniero del
conocimiento
Experto del
dominio
K
A
T
Base de
Conocimientos
Motor de
Inferencias
I
n
t
e
r
f
a
c
e
U
s
u
a
r
i
o
Estructura básica de un Sistema Experto
Base de
Conocimientos
Su estructura de datos queda definida en
términos del esquema de representación
elegido para incorporar el conocimiento
del dominio de trabajo.
Separados entre sí
Motor de
Inferencias
Es la estructura de control de un SE,
contiene el programa que gestiona la BC y
otros mecanismos necesarios para
administrar un sistema de naturaleza
interactiva.
Periodo industrial de la IA
Década de
los 80
Importante apoyo económico a los esfuerzos de I+D.
Gran cantidad de SE en distintos dominios.
Problemas con la metodología de desarrollo
Limitaciones propias del tipo de sistema.
Comparable a la Crisis
de los SI pero posterior
CRISIS
Ingeniería del Conocimiento (IC)
Crisis SI
Crisis SBC
Desarrollo de la Ingeniería del Software
Desarrollo de la Ingeniería del Conocimiento
La Ingeniería del Software consiste en la aplicación de una
aproximación sistemática, disciplinada y cuantificable al desarrollo,
funcionamiento y mantenimiento del software. (IEEE, 1999)
La IC tiene los mismos objetivos respecto de los SBC
SBC: Ventajas
El conocimiento no se pierde.
Reducción del espacio de búsqueda con heurísticas para que
el problema sea tratable en un tiempo razonable.
Manejo de conocimiento incierto e incompleto.
Posibilidad de justificar el razonamiento seguido.
Hacer el conocimiento disponible en ambientes hostiles o con
carencia de especialistas.
Aumento de fiabilidad, evitando que prevalezcan las últimas
experiencias.
Modificación sencilla de la BC por su característica modular.
SBC: Inconvenientes
La adquisición del conocimiento es difícil y cara.
La reutilización del conocimiento en contextos diferentes
no es simple.
Falta de creatividad y sentido común.
Obstáculos para el aprendizaje y la adaptación.
Quedan inmersos en el campo de los Sistemas Inteligentes.
Se trabaja sobre metodología de desarrollo
Se los combina con otras tecnologías
SE basados en reglas de producción
Sistemas de
producción
BC
(Reglas)
Newell y Simon (1972): Al resolver problemas, las
personas utilizan su memoria a largo plazo (permanente)
que aplican a situaciones actuales contenidas en su
memoria a corto plazo (transitoria). Esto puede generar
modificaciones en la última.
Memoria de
trabajo (Hechos)
Motor de Inferencias
Mundo Exterior
SE basados en reglas de producción
Reglas de
producción
< CONDICION >
< ACCION>
Son “gránulos” de conocimiento.
Reúnen información relativa a las condiciones de
disparo y a los efectos resultantes del disparo.
Son estructuras bidireccionales.
SI ?X ES MAMIFERO Y ?X COME CARNE
ENTONCES ?X ES CARNIVORO.
SE basados en reglas de producción
Ventajas:
Naturaleza modular: El conocimiento es fácil de
encapsular y expandir.
Explicaciones sencillas: El registro de reglas disparadas
permite presentar la cadena de razonamiento asociada.
Semejanza con el proceso cognitivo humano: modelo
natural del razonamiento humano.
Dificultades:
Completitud y consistencia como responsabilidad del desarrollador.
Se necesitan otras estructuras para lograr una visión global del
conocimiento del dominio.
Se las combina con otros formalismos
de representación.
SE basados en reglas de producción
MOTOR DE
INFERENCIAS
Dos formas de funcionamiento.
Inductivo: A partir de un objetivo intenta
verificar los hechos que los sostienen
Deductivo: A partir de los hechos disponibles
infiere todas las conclusiones posibles
BACKWARD
CHAINING
FORWARD
CHAINING
SE basados en reglas de producción
Encadenamiento hacia atrás - Backward Chaining.
BH := CONOCIMIENTO INICIAL (HECHOS).
HASTA OBJETIVO O SIN REGLAS PARA
DISPARAR.
Hechos iniciales
REPITA
(1) ENCONTRAR K CONJUNTO DE REGLAS,
CUYAS
CONCLUSIONES
PUEDEN
UNIFICARSE CON LA HIPÓTESIS (CONJUNTO
DE CONFLICTO).
(2) ELEGIR R DE K SEGÚN ESTRATEGIA DE
SOLUCIÓN DE CONFLICTOS (POSIBLE
BACKTRACKING).
(3) SI LA PREMISA DE R NO ESTÁ EN BH,
TOMARLA COMO SUBOBJETIVO.
Objetivo
SE basados en reglas de producción
Backward Chaining: Ciclo base de un motor inductivo.
DETECCIÓN:
SI EL OBJETIVO ES CONOCIDO ÉXITO.
SINO, TOMAR LAS REGLAS QUE LO CONCLUYEN (CC).
ELECCIÓN:
DECIDIR QUE REGLA APLICAR (RC)
APLICACIÓN:
REEMPLAZAR EL OBJETIVO POR LA CONJUNCIÓN DE
LAS CONDICIONES DE LA PREMISA ELEGIDA.
SE basados en reglas de producción
Ejemplo Backward Chaining: Primer paso
BASE DE REGLAS
R1: p ∧ q → s
R2: r → t
R3: s ∧ t → u
R4: s ∧ r → v
BH: p q r
OBJETIVO: v
v ∈ BH ?
v ∉ BH
SIGUE
SE basados en reglas de producción
Ejemplo Backward Chaining: Segundo paso
BASE DE REGLAS
MATCHING CON v
R1: p ∧ q → s
CC = { R4 }
R2: r → t
s ∈ BH?
R3: s ∧ t → u
s ∉ BH
R4: s ∧ r → v
s SUBOBJETIVO
SIGUE
BH: p q r
SE basados en reglas de producción
Ejemplo Backward Chaining: Tercer paso
BASE DE REGLAS
R1: p ∧ q → s
MATCHING CON s
R2: r → t
CC = { R1 }
R3: s ∧ t → u
p ∈ BH? SI.
R4: s ∧ r → v
q ∈ BH? SI.
DISPARA R1.
BH: p q r
BH ← s
SE basados en reglas de producción
Ejemplo Backward Chaining: 4º paso
BASE DE REGLAS
R1: p ∧ q → s
CC = { R4 }
R2: r → t
r ∈ BH? SI.
R3: s ∧ t → u
DISPARA R4.
R4: s ∧ r → v
BH ← v
BH: p q r s
SE basados en reglas de producción
Ejemplo Backward Chaining: 5º paso
BASE DE REGLAS
R1: p ∧ q → s
R2: r → t
R3: s ∧ t → u
R4: s ∧ r → v
BH: p q r s v
OBJETIVO OK.
FIN
SE basados en reglas de producción
Encadenamiento hacia adelante - Forward Chaining.
BH := CONOCIMIENTO INICIAL (HECHOS).
HASTA OBJETIVO
DISPARAR.
O
SIN
REGLAS
PARA
Hechos iniciales
REPITA:
(1) ENCONTRAR K CONJUNTO DE REGLAS
CUYAS PREMISAS CUMPLEN CON BH
(CONJUNTO DE CONFLICTO-CC).
(2) ELEGIR R DE K SEGÚN ESTRATEGIA DE
SOLUCIÓN DE CONFLICTOS (RC).
(3) DISPARAR R
(RECORDAR R).
Y
ACTUALIZAR BH.
Objetivo
SE basados en reglas de producción
Forward Chaining: Ciclo base de un motor deductivo.
DETECCIÓN:
DETERMINAR EL CONJUNTO DE REGLAS APLICABLES
ELECCIÓN:
DECIDIR QUE REGLA APLICAR (RC)
APLICACIÓN
DISPARAR LA REGLA ELEGIDA Y ACTUALIZAR BH.
SE basados en reglas de producción
Ejemplo Forward Chaining: Primer paso
BASE DE REGLAS
R1: p ∧ q → s
R2: r → t
R3: s ∧ t → u
R4: s ∧ r → v
BH: p q r
CC = { R1, R2 }
R1 ← RC
DISPARA R1
BH ← s
R1 APLICADA
SE basados en reglas de producción
Ejemplo Forward Chaining: 2º paso
BASE DE REGLAS
R1: p ∧ q → s
R2: r → t
R3: s ∧ t → u
R4: s ∧ r → v
BH: p q r s
CC = { R2, R4 }
R2 ← RC
DISPARA R2
BH ← t
R2 APLICADA
SE basados en reglas de producción
Ejemplo Forward Chaining: 3er paso
BASE DE REGLAS
R1: (p ∧ q → s)
R2: (r → t)
R3: s ∧ t → u
R4: s ∧ r → v
BH: p q r s t
CC = { R3, R4 }
R3 ← RC
DISPARA R3
BH ← u
R3 APLICADA
SE basados en reglas de producción
Ejemplo Forward Chaining: 4º paso
BASE DE REGLAS
(R1: p ∧ q → s)
(R2: r → t)
(R3: s ∧ t → u)
R4: s ∧ r → v
BH: p q r s t u
CC = {R4 }
R4 ← RC
DISPARA R4
BH ← v
R4 APLICADA
SE basados en reglas de producción
Ejemplo Forward Chaining: 5º paso
BASE DE REGLAS
(R1: p ∧ q → s)
(R2: r → t)
(R3: s ∧ t → u)
(R4: s ∧ r → v)
BH: p q r s t u v
CC = { }
FIN
Sistemas expertos: Metaconocimiento
Es el conocimiento estratégico vinculado a la utilización del conocimiento del
dominio del Sistema Experto.
Es conocimiento que predica sobre el conocimiento involucrado en el sistema.
Métodos de implementación:
Meta-reglas
Funciones
Activación o no de grupos de reglas específicas.
Ordenación de las reglas dentro de los grupos.
Definición de la búsqueda o no de conceptos asociados.
PC-PLUS → FINDOUT - NOFINDOUT
Orden de las reglas
Posibilidad de asignarles “pesos” numéricos.
PC-PLUS → UTILITY.
KAPPA-PC → PRIORITY
Sistemas expertos: Metaconocimiento
Enriquece y aporta a la perfomance de un Sistema Experto y por sus
características incluye:
Elementos en el Motor de Inferencias: Demonios.
Elementos en la Base de Conocimientos: Metareglas, PRIORITY, etc.
Ejemplos de Metareglas en SEXP
- 1
IF Litología_Principal = Arenisca THEN Tratar sólo el grupo de reglas
asociadas.
IF Litología_Principal = Roca_Ignea THEN
NoAsk (Lista de valores)
Motor de Inferencias: Estructuras de control
Funcionamiento
sistemático
Tipo de búsqueda implementada
Ruptura
Demonios
Son procedimientos especiales
Elementos de metaconocimiento
Se invocan a partir de cierto conocimiento deducido durante la ejecución de la aplicación.
Estructuras de control: Demonios
El demonio es una estructura de control que
vigila constantemente el comportamiento del
SE y se activa cuando encuentra
determinadas condiciones en la BC.
Disparador
BC
Procedimiento
Difieren de los procedimientos tradicionales, en que estos últimos responden a un
llamado específico que los identifica y pone en acción.
Personal Consultant-xx
Kappa-PC
Forward Chaining es un demonio, manejado mediante
la propiedad ANTECEDENT de las reglas.
Monitores: Demonios que se activan a partir de cómo
maneja el sistema los objetos con los que se los asocia.
SE: Herramientas
Una herramienta para la construcción de sistemas
expertos (expert system building tools-shell) es un
software para el desarrollo de sistemas expertos,:
•
un motor de inferencias,
•
forma/s de representar el conocimiento (BC vacía) y
•
una interfaz para el usuario final,
permite construir sistemas expertos agregando el
conocimiento específico sobre el dominio particular
que se quiere resolver.
SE: Herramientas
• KAPPA-PC (C - Intellicorp, software liberado)
• CLIPS (C – NASA, software libre)
• JESS (Java - Lic. académica)
----------• M1
• Personal Consultant-Easy / PC-Pluss
• INSIGHT 2 +.
• VP-Expert
permiten construir sistemas expertos agregando el
conocimiento específico sobre el dominio particular
que se quiere resolver.
Herramientas: Kappa-PC
KAPPA-PC
Es un shell, cáscara o Sistema Experto vacío
Reglas y Objetos
Formalismos de representación
Funcionamiento del
Motor de Inferencias
El funcionamiento sistemático
está definido, pueden
personalizarse características
(Forward
- B
ackward)
Posee herramientas de trace y debug.
¿ Qué es Jess ?
• JESS (Java Expert System Shell).
• Diseñado para integrar fácilmente Clips y Java.
• Originalmente (1995) era un clon de Clips,
programado en Java.
• Hoy es mucho más. (versión actual: 7.1)
• Objetivo: Aplicaciones Java + razonamiento de
un sistema experto (reglas).
Características
• Utiliza el algoritmo de Rete para procesar
las reglas.
• Puede obtener mayor rapidez que CLIPS.
• Incluye encadenamiento hacia atrás (5.0)
• Permite manipulación directa de objetos
Java
•Incluye lógica difusa en la 5.0 (FuzzyJess):
http://ai.iit.nrc.ca/IR_public/fuzzyJToolKit.html
Interacción con Jess
• Jess es una librería para programadores.
• Posee 3 interfaces: mediante línea de
comandos, consola o applets.
• Permite ampliarlo con otras interfaces.
Para ello, provee un editor llamado JessDe
el cual se puede integrar con IDE’s como
Eclipse (www.eclipse.org)
Interacción con Jess (2)
• Jess tiene una interfaz de línea de
comandos a través de la clase “jess.Main”
c:\jdk> java jess.Main
jess> ...
• Si se usa “jess.Console” se tiene una interfaz
en modo gráfico (consola).
Clases de Jess
• Jess está programado en Java; sus clases
se usan como cualquier otra del lenguaje.
• La clase “jess.Rete” es el motor de inferencia
e implementa el algoritmo de rete.
• Existen clases para todo lo que se maneja
con un lenguaje de reglas:
Hechos, reglas, plantillas, clases, instancias,
átomos, strings, agendas, funciones, ....
• Además de otras clases interesantes
(heredadas de la POO):
Excepciones, routers, parser, estruct. de datos...
Extender Jess
• Se pueden añadir nuevas funciones a Jess
programadas en Java (Userfunction)
• También se puede añadir paquetes de
funciones (Userpackage)
Acceso a objetos Java
• Desde Jess se puede crear una instancia de
cualquier clase de Java y acceder a sus
métodos y atributos públicos:
(defglobal ?*str-buf* = (new java.lang.StringBuffer
100))
(call ?*str-buf* append "Some String Data To Append")
• El orden de los argumentos es el que realiza
el enlace entre la llamada y el método, y la
equivalencia de tipos es la contemplada en
la clase “jess.Value”.
Jess en la WWW
• El sitio oficial de Jess en Internet se encuentra en:
http://herzberg.ca.sandia.gov/jess/
([email protected])
• Se permite el uso libre en ámbitos educativos, sin
fines comerciales.
•Es la página con información relevante sobre Jess
Herramientas: JESS
Las reglas predican sobre hechos (facts) .
Ejemplo de Regla:
IF the animal is a duck
THEN
the sound made is quack
Syntaxis JESS
Jess> (clear)
TRUE
Jess> (assert (animal-is
duck))
<Fact-0>
Jess> (defrule duck-sound
(animal-is duck)
=>
(assert (sound-is quack)))
TRUE
Jess>
Herramientas: JESS
Syntaxis de reglas
(defrule rule-name
"optional comment"
(pattern-1) ;
(pattern-2) ;
(pattern-n)
=>
(action-1) ;
(action-2) ;
(action-m)
)
left-hand side (LHS) of the rule
consisting of elements before the "=>"
right-hand side (RHS) of the rule
consisting of elements after the "=>"
Descargar