53
Sistemas Basados en Conocimiento E. Morales/L.E. Sucar CCC, INAOE

Sistemas Basados en Conocimiento - ccc.inaoep.mxesucar/Clases-ia/Laminas... · Un sistema experto o sistema basado en conocimiento se puede definir como: 2. Metodología para solucionar

Embed Size (px)

Citation preview

Page 1: Sistemas Basados en Conocimiento - ccc.inaoep.mxesucar/Clases-ia/Laminas... · Un sistema experto o sistema basado en conocimiento se puede definir como: 2. Metodología para solucionar

Sistemas Basados en Conocimiento

E. Morales/L.E. Sucar CCC, INAOE

Page 2: Sistemas Basados en Conocimiento - ccc.inaoep.mxesucar/Clases-ia/Laminas... · Un sistema experto o sistema basado en conocimiento se puede definir como: 2. Metodología para solucionar

“...sistema que resuelve problemas utilizando una representación simbólica del conocimiento humano” [Jackson 86].

Definición

Un sistema experto o sistema basado en conocimiento se puede definir como:

Page 3: Sistemas Basados en Conocimiento - ccc.inaoep.mxesucar/Clases-ia/Laminas... · Un sistema experto o sistema basado en conocimiento se puede definir como: 2. Metodología para solucionar

2. Metodología para solucionar el problema - Máquina de Inferencia

Tienen una separación entre:

1. Conocimiento específico del problema - Base de Conocimiento

Page 4: Sistemas Basados en Conocimiento - ccc.inaoep.mxesucar/Clases-ia/Laminas... · Un sistema experto o sistema basado en conocimiento se puede definir como: 2. Metodología para solucionar

•  Representación explícita del conocimiento

•  Capacidad de razonamiento independiente de la aplicación específica

•  Capacidad de explicar sus conclusiones y el

proceso de razonamiento

Características importantes

Page 5: Sistemas Basados en Conocimiento - ccc.inaoep.mxesucar/Clases-ia/Laminas... · Un sistema experto o sistema basado en conocimiento se puede definir como: 2. Metodología para solucionar

•  Alto rendimiento en un dominio específico •  Uso de heurísticas vs. modelos matemáticos •  Uso de inferencia simbólica vs. algoritmo numérico

Características importantes

Page 6: Sistemas Basados en Conocimiento - ccc.inaoep.mxesucar/Clases-ia/Laminas... · Un sistema experto o sistema basado en conocimiento se puede definir como: 2. Metodología para solucionar

Basan su rendimiento en la cantidad y calidad del conocimiento de un dominio específico y no tanto en las técnicas de solución de problemas.

Importancia del Conocimiento

Page 7: Sistemas Basados en Conocimiento - ccc.inaoep.mxesucar/Clases-ia/Laminas... · Un sistema experto o sistema basado en conocimiento se puede definir como: 2. Metodología para solucionar

•  En matemáticas, teoría de control y computación, se intenta resolver el problema mediante su modelado (Modelo del problema).

Diferencia con otras técnicas:

•  En sistemas expertos se ataca el problema construyendo un modelo del “experto” o resolvedor de problemas (Modelo del experto).

Page 8: Sistemas Basados en Conocimiento - ccc.inaoep.mxesucar/Clases-ia/Laminas... · Un sistema experto o sistema basado en conocimiento se puede definir como: 2. Metodología para solucionar

Enfoque Tradicional

PROBLEMA

Modelo Matemático

ALGORITMO

Page 9: Sistemas Basados en Conocimiento - ccc.inaoep.mxesucar/Clases-ia/Laminas... · Un sistema experto o sistema basado en conocimiento se puede definir como: 2. Metodología para solucionar

Enfoque de Inteligencia Artificial

PROBLEMA

Modelo

Experto

SISTEMA EXPERTO

Page 10: Sistemas Basados en Conocimiento - ccc.inaoep.mxesucar/Clases-ia/Laminas... · Un sistema experto o sistema basado en conocimiento se puede definir como: 2. Metodología para solucionar

1. Análisis (interpretación)

Clasificación de Sistemas Basados en Conocimiento

•  Identificación •  Monitoreo •  Diagnóstico •  Predicción •  Control

Page 11: Sistemas Basados en Conocimiento - ccc.inaoep.mxesucar/Clases-ia/Laminas... · Un sistema experto o sistema basado en conocimiento se puede definir como: 2. Metodología para solucionar

2. Síntesis (construcción)

•  Especificación •  Diseño •  Configuración •  Planeación •  Ensamble •  Modificación

Clasificación de Sistemas Basados en Conocimiento

Page 12: Sistemas Basados en Conocimiento - ccc.inaoep.mxesucar/Clases-ia/Laminas... · Un sistema experto o sistema basado en conocimiento se puede definir como: 2. Metodología para solucionar

Identificación ⇒ Predicción ⇒ Control

Clasificación de Sistemas Basados en Conocimiento

Análisis :

Especificación ⇒ Diseño ⇒ Ensamble

Síntesis :

Page 13: Sistemas Basados en Conocimiento - ccc.inaoep.mxesucar/Clases-ia/Laminas... · Un sistema experto o sistema basado en conocimiento se puede definir como: 2. Metodología para solucionar

1. Base de Conocimiento (BdeC) 2. Máquina de Inferencia 3. Memoria de Trabajo 4. Interfaz de Usuario 5. Interfaz de Adquisición

Componentes básicos

Page 14: Sistemas Basados en Conocimiento - ccc.inaoep.mxesucar/Clases-ia/Laminas... · Un sistema experto o sistema basado en conocimiento se puede definir como: 2. Metodología para solucionar

Arquitectura

adquisi- ción

usuario

Base de Conocimiento

Máquina de Inferencia

Memoria de Trabajo

Page 15: Sistemas Basados en Conocimiento - ccc.inaoep.mxesucar/Clases-ia/Laminas... · Un sistema experto o sistema basado en conocimiento se puede definir como: 2. Metodología para solucionar

Sistema de diagnóstico de automóviles

Ejemplo

Page 16: Sistemas Basados en Conocimiento - ccc.inaoep.mxesucar/Clases-ia/Laminas... · Un sistema experto o sistema basado en conocimiento se puede definir como: 2. Metodología para solucionar

PROBLEMA Falla (carro no arranca)

EXPERTO mecánico

CONOCIMIENTO SI tiene gas & batería, OK

ENTONCES falla marcha

SOLUCIÓN Diagnóstico (marcha)

Page 17: Sistemas Basados en Conocimiento - ccc.inaoep.mxesucar/Clases-ia/Laminas... · Un sistema experto o sistema basado en conocimiento se puede definir como: 2. Metodología para solucionar

1. Resolver problemas para los que no existe un modelo matemático adecuado o su solución es muy compleja, como en:

Ventajas de Sistemas Basados en Conocimiento

•  Medicina •  Ingeniería •  Exploración •  Diseño •  Análisis

Page 18: Sistemas Basados en Conocimiento - ccc.inaoep.mxesucar/Clases-ia/Laminas... · Un sistema experto o sistema basado en conocimiento se puede definir como: 2. Metodología para solucionar

2. Preservar el conocimiento de expertos y hacerlo accesible a más personas.

3. Capacidad de explicar al usuario el proceso de razonamiento.

Ventajas de Sistemas Basados en Conocimiento

Page 19: Sistemas Basados en Conocimiento - ccc.inaoep.mxesucar/Clases-ia/Laminas... · Un sistema experto o sistema basado en conocimiento se puede definir como: 2. Metodología para solucionar

Representación de Conocimiento

Page 20: Sistemas Basados en Conocimiento - ccc.inaoep.mxesucar/Clases-ia/Laminas... · Un sistema experto o sistema basado en conocimiento se puede definir como: 2. Metodología para solucionar

Representación = “... un conjunto de convenciones sintácticas y semánticas que hacen posible el describir cosas ” [Winston 74].

Definición

Page 21: Sistemas Basados en Conocimiento - ccc.inaoep.mxesucar/Clases-ia/Laminas... · Un sistema experto o sistema basado en conocimiento se puede definir como: 2. Metodología para solucionar

Representación de conocimiento = Escribir en un lenguaje descripciones del mundo. Sintaxis: símbolos y conjunto de reglas para combinarlos. Semántica: significado de las expresiones construidas.

Definición

Page 22: Sistemas Basados en Conocimiento - ccc.inaoep.mxesucar/Clases-ia/Laminas... · Un sistema experto o sistema basado en conocimiento se puede definir como: 2. Metodología para solucionar

•  un lenguaje de representación, •  capacidad de inferencias, •  conocimiento del dominio.

Ingredientes básicos:

Page 23: Sistemas Basados en Conocimiento - ccc.inaoep.mxesucar/Clases-ia/Laminas... · Un sistema experto o sistema basado en conocimiento se puede definir como: 2. Metodología para solucionar

•  explicación de comportamiento, •  construir sistemas inteligentes, •  poder representar “sentido común”.

El poder está en el conocimiento

Ingredientes básicos:

Page 24: Sistemas Basados en Conocimiento - ccc.inaoep.mxesucar/Clases-ia/Laminas... · Un sistema experto o sistema basado en conocimiento se puede definir como: 2. Metodología para solucionar

•  Capacidad Lógica: Que sea capaz de expresar el conocimiento que deseamos expresar. •  Poderío Heurístico: Capacidad para resolver problemas. •  Conveniencia de la Notación: Simplicidad para accesar el conocimiento y facilidad de entendimiento.

Criterios

Page 25: Sistemas Basados en Conocimiento - ccc.inaoep.mxesucar/Clases-ia/Laminas... · Un sistema experto o sistema basado en conocimiento se puede definir como: 2. Metodología para solucionar

La representación determina la facilidad con la que podemos resolver ciertos problemas y utilizar el conocimiento [Marr 82].

Ejemplos: 1.  representación de números romanos vs

arábigos. 2.  Cuadro mágico (ejercicio en clase)

Criterios

Page 26: Sistemas Basados en Conocimiento - ccc.inaoep.mxesucar/Clases-ia/Laminas... · Un sistema experto o sistema basado en conocimiento se puede definir como: 2. Metodología para solucionar

•  primitivas (p.ej. segundos vs. años)

•  meta-representaciones (p.ej. meta-reglas)

Características

A nivel epistemológico:

Page 27: Sistemas Basados en Conocimiento - ccc.inaoep.mxesucar/Clases-ia/Laminas... · Un sistema experto o sistema basado en conocimiento se puede definir como: 2. Metodología para solucionar

•  definiciones vs hechos •  universales vs defaults •  razonamiento no-deductivo •  razonamiento no-monotónico

Representaciones no cubiertas por lógica:

Características

Page 28: Sistemas Basados en Conocimiento - ccc.inaoep.mxesucar/Clases-ia/Laminas... · Un sistema experto o sistema basado en conocimiento se puede definir como: 2. Metodología para solucionar

•  procedurales (se necesita declarativo) •  analógicas •  probabilísticas

Representaciones alternas:

Características

Page 29: Sistemas Basados en Conocimiento - ccc.inaoep.mxesucar/Clases-ia/Laminas... · Un sistema experto o sistema basado en conocimiento se puede definir como: 2. Metodología para solucionar

•  substancias (v.g., litro de leche), •  causalidad y tiempo, •  creencias, deseos, intenciones, etc.

Problemas de representación:

Page 30: Sistemas Basados en Conocimiento - ccc.inaoep.mxesucar/Clases-ia/Laminas... · Un sistema experto o sistema basado en conocimiento se puede definir como: 2. Metodología para solucionar

•  Hacer explícito lo que se considere importante •  Exhibir las restricciones inherentes al problema •  Completo y preciso •  Entendible •  Fácil de usar •  Computacionalmente factible

Consideraciones:

Page 31: Sistemas Basados en Conocimiento - ccc.inaoep.mxesucar/Clases-ia/Laminas... · Un sistema experto o sistema basado en conocimiento se puede definir como: 2. Metodología para solucionar

Espacio de Representaciones Estados Epistemológicos (incertidumbre)

Modelo del Mundo (expresividad)

categórico

probabi- lístico

estados proposicional 1er orden

“lógica proposicional”

HMM RB

“lógica 1er orden”

Lógica+Prob. RB+objetos

Page 32: Sistemas Basados en Conocimiento - ccc.inaoep.mxesucar/Clases-ia/Laminas... · Un sistema experto o sistema basado en conocimiento se puede definir como: 2. Metodología para solucionar

El proceso de construir una base de conocimiento se llama ingeniería de conocimiento Un lenguaje de representación tiene que ser expresivo, conciso, no ambiguo y efectivo.

Ingeniería de Conocimiento

Page 33: Sistemas Basados en Conocimiento - ccc.inaoep.mxesucar/Clases-ia/Laminas... · Un sistema experto o sistema basado en conocimiento se puede definir como: 2. Metodología para solucionar

A veces se tiene que sacrificar el que sea correcto para ganar claridad y ser más conciso Idealmente se separa la base de conocimiento de los procedimientos de inferencia

Ingeniería de Conocimiento

Page 34: Sistemas Basados en Conocimiento - ccc.inaoep.mxesucar/Clases-ia/Laminas... · Un sistema experto o sistema basado en conocimiento se puede definir como: 2. Metodología para solucionar

Una base de conocimiento tiene 2 consumidores potenciales:

•  Humanos

•  Procesos de inferencia

Page 35: Sistemas Basados en Conocimiento - ccc.inaoep.mxesucar/Clases-ia/Laminas... · Un sistema experto o sistema basado en conocimiento se puede definir como: 2. Metodología para solucionar

Un error común es seleccionar nombres que por tener sentido para el hombre se cree que van a tener sentido para el proceso de inferencia

(v.g., PolíticoDeUñasLargas(Espinosa)).

Lo que expresemos en una situación debe poder usarse en otra

Page 36: Sistemas Basados en Conocimiento - ccc.inaoep.mxesucar/Clases-ia/Laminas... · Un sistema experto o sistema basado en conocimiento se puede definir como: 2. Metodología para solucionar

∀a Animal(a) => ObjetoFisico(a)

Mejor representar a un nivel más general:

Político(Espinosa)

∀o Político(o) => Animal(o)

...

Page 37: Sistemas Basados en Conocimiento - ccc.inaoep.mxesucar/Clases-ia/Laminas... · Un sistema experto o sistema basado en conocimiento se puede definir como: 2. Metodología para solucionar

•  Decidir de qué hablar: saber qué objetos y hechos se tienen que tener y cuáles ignorar

Consideraciones:

•  Decidir en el vocabulario de predicados, funciones y constantes

El resultado es una ontología

Page 38: Sistemas Basados en Conocimiento - ccc.inaoep.mxesucar/Clases-ia/Laminas... · Un sistema experto o sistema basado en conocimiento se puede definir como: 2. Metodología para solucionar

•  Codificar conocimiento genérico del dominio

•  Codificar una descripción de una instancia del problema específico

•  Hacer preguntas al procedimiento de inferencia y obtener respuestas

Consideraciones:

Page 39: Sistemas Basados en Conocimiento - ccc.inaoep.mxesucar/Clases-ia/Laminas... · Un sistema experto o sistema basado en conocimiento se puede definir como: 2. Metodología para solucionar

Ontología •  Conceptos seleccionados para describir

un dominio •  Vocabulario de predicados, funciones y

constantes •  Seleccionar alternativas: nombres,

predicados o funciones o constantes, ... •  Determinar las “cosas” que existen •  Ontología general y específicas

Page 40: Sistemas Basados en Conocimiento - ccc.inaoep.mxesucar/Clases-ia/Laminas... · Un sistema experto o sistema basado en conocimiento se puede definir como: 2. Metodología para solucionar

Ejemplo: Ontología de Plantas Eléctricas

Page 41: Sistemas Basados en Conocimiento - ccc.inaoep.mxesucar/Clases-ia/Laminas... · Un sistema experto o sistema basado en conocimiento se puede definir como: 2. Metodología para solucionar

Elementos de una Ontología General

•  Categorías: incluyen objetos con propiedades comunes arregladas en taxonomías jerárquicas.

Se puede inferir la categoría de un objeto, con base en sus propiedades y luego hacer predicciones del objeto.

Page 42: Sistemas Basados en Conocimiento - ccc.inaoep.mxesucar/Clases-ia/Laminas... · Un sistema experto o sistema basado en conocimiento se puede definir como: 2. Metodología para solucionar

Las categorías permiten organizar y simplificar el conocimiento por medio de herencia.

Una categoría se puede “reificar” (reification), que significa cambiar un predicado o función en un objeto del lenguaje.

Elementos de una Ontología General

Page 43: Sistemas Basados en Conocimiento - ccc.inaoep.mxesucar/Clases-ia/Laminas... · Un sistema experto o sistema basado en conocimiento se puede definir como: 2. Metodología para solucionar

Medidas: Relaciona objetos a cantidades de tipos particulares (v.g., masa, edad, precios, etc). Las medidas cuantitativas son en general fácil de representar. Otras medidas no tienen una escala de valores única (problemas, sabor, belleza, etc).

Elementos de una Ontología General

Page 44: Sistemas Basados en Conocimiento - ccc.inaoep.mxesucar/Clases-ia/Laminas... · Un sistema experto o sistema basado en conocimiento se puede definir como: 2. Metodología para solucionar

Objetos Compuestos: Objetos que pertenecen a categorías por su estructura constitutiva. Se pueden tener jerarquías de tipo partes-de (parts-of). Se pueden tener objetos compuestos sin estructura.

Elementos de una Ontología General

Page 45: Sistemas Basados en Conocimiento - ccc.inaoep.mxesucar/Clases-ia/Laminas... · Un sistema experto o sistema basado en conocimiento se puede definir como: 2. Metodología para solucionar

Elementos de una Ontología General

•  Tiempo, Espacio y Cambio: Para permitir acciones y eventos con diferentes duraciones y que puedan ocurrir simultaneamente.

La noción general es que el universo es continuo tanto en tiempo como en espacio.

Page 46: Sistemas Basados en Conocimiento - ccc.inaoep.mxesucar/Clases-ia/Laminas... · Un sistema experto o sistema basado en conocimiento se puede definir como: 2. Metodología para solucionar

•  Eventos y Procesos: Eventos individuales ocurren en un tiempo y lugar particular. Los procesos son eventos continuos y homogéneos por naturaleza.

Elementos de una Ontología General

Page 47: Sistemas Basados en Conocimiento - ccc.inaoep.mxesucar/Clases-ia/Laminas... · Un sistema experto o sistema basado en conocimiento se puede definir como: 2. Metodología para solucionar

•  Objetos Físicos: Al extender las cosas en tiempo y espacio, los objetos físicos tienen mucho en común con los eventos. A veces les llaman “fluentes” (fluents).

Elementos de una Ontología General

Page 48: Sistemas Basados en Conocimiento - ccc.inaoep.mxesucar/Clases-ia/Laminas... · Un sistema experto o sistema basado en conocimiento se puede definir como: 2. Metodología para solucionar

•  Substancias: Temporales y espaciales (v.g., mantequilla). Existen propiedades intrínsecas que son de la substancia del objeto más que del objeto mismo (color, temperatura en que se derrite, etc.), y propiedades extrínsecas (peso, forma, etc).

Elementos de una Ontología General

Page 49: Sistemas Basados en Conocimiento - ccc.inaoep.mxesucar/Clases-ia/Laminas... · Un sistema experto o sistema basado en conocimiento se puede definir como: 2. Metodología para solucionar

•  Objetos Mentales y Creencias: Se tiene que razonar acerca de creencias del mundo.

Elementos de una Ontología General

Page 50: Sistemas Basados en Conocimiento - ccc.inaoep.mxesucar/Clases-ia/Laminas... · Un sistema experto o sistema basado en conocimiento se puede definir como: 2. Metodología para solucionar

Algo

Objetos abstractos Eventos

Conjuntos Números Representación

Categorías Oraciones Medidas

Tiempo Peso

Intervalos Lugares Objetos físicos

Procesos

Momentos Cosas Sustancias

Animales Agentes

Humanos

Sólido Líquido Gas

Figura 2.6 Ontología “general” del mundo (Basada en [Russell,95]

Cenital

Page 51: Sistemas Basados en Conocimiento - ccc.inaoep.mxesucar/Clases-ia/Laminas... · Un sistema experto o sistema basado en conocimiento se puede definir como: 2. Metodología para solucionar

Tarea

Selecciona un problema o dominio para el cual vas a desarrollar diferentes representaciones durante el curso. Para este problema especifica una ontología.

Page 52: Sistemas Basados en Conocimiento - ccc.inaoep.mxesucar/Clases-ia/Laminas... · Un sistema experto o sistema basado en conocimiento se puede definir como: 2. Metodología para solucionar

•  Que sea un campo sobre el que tu conozcas o tengas acceso a un experto amigo.

•  Que sea un problema suficientemente complejo para que amerite utilizar técnicas de IA.

•  Que no sea un problema que se resuelva directamente con técnicas tradicionales de computación como una base de datos o cálculos

Page 53: Sistemas Basados en Conocimiento - ccc.inaoep.mxesucar/Clases-ia/Laminas... · Un sistema experto o sistema basado en conocimiento se puede definir como: 2. Metodología para solucionar

Dominio Describir el dominio seleccionado"Aplicación Especificar el tipo de aplicación (diagnóstico, diseño, etc.)"Conceptos Listar y describir los principales "conceptos" en el dominio"Relaciones Indicar las relaciones entre los conceptos desde diferentes puntos de vista (partes de, es un, funcional, ...), de preferencia en forma gráfica """"