Tema: Representación del Conocimiento. Sistemas Basados en

Anuncio
Sistemas Expertos e Inteligencia Artificial. Guía No. 6
1
Facultad: Ingeniería
Escuela: Computación
Asignatura: Sistemas Expertos e
Inteligencia Artificial
Tema: Representación del Conocimiento. Sistemas
Basados en Conocimiento.
Objetivos Específicos

Comprender la representación del conocimiento en la Inteligencia Artificial.

Comprender la importancia de la lógica clásica y la incertidumbre en la aplicación de la
Inteligencia Artificial.

Identificar los Sistemas Basados en Conocimiento.

Comprender la estructura de los Sistemas Basados en Conocimiento.

Implementar programas en C# que simulen Sistemas Basados en Conocimiento.
Materiales y Equipo
 Guía Número 6.
 Computadora con programa Microsoft Visual C#.
Introducción Teórica
Los métodos generales desarrollados para la resolución de problemas y técnicas de búsqueda al
inicio de la era de la Inteligencia Artificial demostraron no ser suficientes para resolver los
problemas orientados a las aplicaciones, ni fueron capaces de satisfacer los difíciles
requerimientos de la investigación.
A este conjunto de métodos, procedimientos y técnicas, se lo conoce como Inteligencia Artificial
débil. La principal conclusión que se derivó de este trabajo inicial fue que los problemas difíciles
sólo podrían ser resueltos con la ayuda del conocimiento específico acerca del dominio del
problema.
La aplicación de estas ideas dio lugar al desarrollo de los denominados Sistemas Basados en
Conocimiento (Knowledge Based Systems) y al aparecimiento de la Ingeniería Cognoscitiva,
como una rama de la Inteligencia Artificial, que estudia los sistemas basados en el conocimiento.
2
Sistemas Expertos e Inteligencia Artificial. Guía No. 6
Todo problema es más sencillo de resolver si disponemos de conocimiento específico sobre él.
Este conocimiento dependiente del dominio se combina con el conocimiento general sobre cómo
resolver problemas. Este conocimiento ha de permitir guiar a los mecanismos de Inteligencia
Artificial para obtener soluciones de manera más eficiente.
Pero para poder realizar esto, surgen ciertos problemas:

¿Cómo escoger el formalismo de representación que nos permita hacer una traducción
fácil del mundo real a la representación?

¿Cómo ha de ser esa representación para que pueda ser utilizada de forma eficiente?
Diferencias entre Información y Conocimiento.
Llamaremos información al conjunto de datos básicos, sin interpretar, que se obtienen como
entrada del sistema.
Por ejemplo: los datos numéricos que aparecen en un examen de sangre, los datos de los
sensores de una planta química.
Llamaremos conocimiento al conjunto de datos de primer orden, que modelan de forma
estructurada la experiencia que se tiene sobre un cierto dominio o que surgen de interpretar los
datos básicos. Incluye y requiere del uso de datos e información. Además combina relaciones,
dependencias y la noción del saber con datos e información.
Por ejemplo: la interpretación de los valores de un examen de sangre o de los sensores de la
planta química para decir si son normales, altos o bajos, preocupantes, peligrosos; el conjunto de
estructuras de datos y métodos para diagnosticar a pacientes a partir de la interpretación del
análisis de sangre, o para ayudar en la toma de decisiones de que hacer en la planta química.
Los sistemas de IA necesitan diferentes tipos de conocimiento que no suelen estar disponibles
en bases de datos y otras fuentes de información:
 Conocimiento sobre los objetos en un entorno y posibles relaciones entre ellos.
 Conocimiento sobre los procesos en los que interviene o que le son útiles.
 Conocimiento difícil de representar como datos básicos, como la intencionalidad, la
causalidad, los objetivos, información temporal, conocimiento que para los humanos es
“de sentido común”, etc.
Intuitivamente podemos decir:
Conocimiento = Información + Interpretación
Sistemas Expertos e Inteligencia Artificial. Guía No. 6
3
Para representar algo necesitamos saber:
 Su forma o estructura.
 Que uso le dan los seres inteligentes.
 Que uso le dará una inteligencia artificial.
 Como adquirir el conocimiento.
 Como almacenarlo y manipularlo.
Por desgracia no hay respuestas completas para todas estas preguntas desde el punto de vista
biológico o neurofisiológico. Construiremos modelos que simulen la adquisición, estructuración y
manipulación del conocimiento y que nos permitan crear sistemas artificiales inteligentes.
Características del conocimiento que deben ser examinadas:
Es voluminosa: tiene varios aspectos, características y detalles. Cada momento se genera
nuevo conocimiento.
Difícil de caracterizar: no se puede explicar con formalismo cómo, cuándo y cómo fue
adquirido el conocimiento, es difícil de explicar.
En
constante
cambio:
se
mejora
sistemáticamente,
creciendo
y
cambiando
constantemente.
Es individual y único: cada individuo desempeña su conocimiento de forma única.
Para que un sistema computacional pueda utilizar aspectos del conocimiento hay una necesidad
de construir lo que va a ser utilizado por el sistema. Esta estructura es conocida con el nombre
de Representación del Conocimiento.
Representación del Conocimiento.
Es la manera de facilitar la inferencia (sacar conclusiones) a partir de dicho conocimiento. Analiza
cómo pensar formalmente, cómo usar un sistema de símbolos para representar un dominio del
discurso (aquello de lo que se puede hablar), junto con funciones que permitan inferir (realizar un
razonamiento formal) sobre los objetos.
Generalmente, se usa algún tipo de lógica para proveer una semántica formal de como las
funciones de razonamiento se aplican a los símbolos del dominio del discurso, además de proveer
operadores como cuantificadores, operadores modales, etc. Esto, junto a una teoría de
interpretación, da significado a las frases en la lógica.
4
Sistemas Expertos e Inteligencia Artificial. Guía No. 6
Un ejemplo de una representación del conocimiento poco expresiva es la lógica proposicional.
Un ejemplo de una representación del conocimiento muy expresiva es la lógica autoepistémica.
Las representaciones del conocimiento poco expresivas pueden ser tanto completas como
consistentes (formalmente menos expresivas que la teoría de conjuntos). Las representaciones
del conocimiento más expresivas pueden ser ni completas ni consistentes.
La representación del conocimiento debe ser capaz de:
 Captar generalizaciones.
 Ser comprensible.
 Fácilmente modificable, incrementable.
 Ser usado en diversas situaciones y propósitos.
 Permitir diversos grados de detalle.
 Captar la incertidumbre, imprecisión.
 Representar distinciones importantes.
 Focalizar el conocimiento relevante.
Un esquema de representación es un instrumento para codificar la realidad en un computador.
Desde un punto de vista informático un esquema de representación puede ser descrito como una
combinación de las estructuras de datos, que son la parte estática (o almacenada) del
conocimiento disponible sobre objetos y/o eventos, y los procedimientos que caracterizan la
componente dinámica del mismo: procesos que manipulan e interpretan información con el fin de
transformarla en conocimiento, junto con los mecanismos de control sobre el uso de la
información contenida en las estructuras de datos, y la capacidad del sistema para asimilar nueva
información.
Además, es posible identificar otros elementos que forman parte de la estructura definida.
Sistemas Expertos e Inteligencia Artificial. Guía No. 6
5
Las operaciones son procedimientos que pueden crear, modificar o destruir representaciones o
sus elementos.
Los predicados son procedimientos que se emplean para acceder a los campos de la
representación y obtener así la información contenida (si está disponible).
Las operaciones y los predicados son características internas del esquema de representación y
tienen sentido independientemente de la realidad que ayudan a representar. Pero una
representación no es útil en ella misma, sino que tiene que estar referenciada por algo.
Así, el tercer elemento distinguible es la designación de lo que la estructura representa para,
finalmente, poder identificar la correspondencia entre los elementos de la representación y la
realidad que se pretende representar.
Por ello, es importante distinguir entre:

El mundo real (lo que queremos representar)  Dominio

Su representación  uno o más esquemas de representación
Desde un punto de vista informático un esquema de representación puede ser descrito como una
combinación de:

Estructuras de datos que codifican el problema en curso con el que se enfrenta el agente
 Parte estática.

Estructuras de datos que almacenan conocimiento referente al entorno en el que se
desarrolla el problema y procedimientos que manipulan las estructuras de forma
consistente con una interpretación plausible de las mismas  Parte dinámica.
La parte estática está formada por:

Estructura de datos que codifica el problema.

Operaciones que permiten crear, modificar y destruir elementos en la estructura.

Predicados que dan un mecanismo para consultar esta estructura de datos.

Semántica de la estructura: se necesita definir la relación entre la realidad y la
representación escogida
R (Elemento_estructura, Mundo Real)
La parte dinámica está formada por:

Estructuras de datos que almacenan conocimiento referente al entorno/dominio en el que
se desarrolla el problema.
6
Sistemas Expertos e Inteligencia Artificial. Guía No. 6

Procedimientos que permiten:
o
Interpretar los datos del problema (de la parte estática) a partir del conocimiento
del dominio (de la parte dinámica).
o
Controlar el uso de los datos: estrategias de control.
o
Adquirir nuevo conocimiento.
Una representación del conocimiento en IA es una combinación de estructuras de datos (que nos
permiten representar mediante un formalismo determinado las “verdades” relevantes en algún
dominio) asociadas con mecanismos interpretativos que nos permiten manipular el conocimiento
representado a fin de crear soluciones a problemas nuevos.
Cuando se habla de la representación del conocimiento, se trata de dos tipos diferentes de
entidades:
 Hechos: Verdades en cualquier mundo material. Estas son las cosas que queremos
representar.
 Representación de los hechos: con un poco de formalismo elegido. Estas son las cosas
que vamos a ser capaces de manejar con eficacia.
Estas entidades que se pueden clasificar en:
 El nivel del conocimiento, donde se describen los hechos (comportamiento y objetivos de
cada agente)
 El nivel simbólico, donde se describen los objetos del nivel del conocimiento en términos
de símbolos manipulables por programas.
Motivaciones de la representación del conocimiento.
Se debe definir:
Espacio de estados

Representación de los conocimientos a priori del agente:
estado inicial: símbolo (S0)
estados sucesores: función expandir (S7 → {S8, S10, S12})
estados meta: ¿función meta? (S12 → true)
coste de operador: función c ((S7, S12) → 5)
heurística: función h* (S7 → 235)
Sistemas Expertos e Inteligencia Artificial. Guía No. 6

7
Se abstrae completamente de las características de los estados:
En el estado S3 se cumple que

o
¿bloque A encima de bloque B?
o
¿el agente se encuentra en Madrid?
o
¿Jarra dos está vacía?
Problema:
Complejidad de la representación del conocimiento (ejemplo: expandir).
Mantener (estructura y datos) del conocimiento.
Conocimiento a priori:

Conocimiento sobre el estado S0: libre (a, S0) ∧ libre(b, S0)

Conocimiento sobre acciones:
∀S ∀X ∀Y [ libre(X,S) ∧ libre(Y,S) ∧ X≠Y → encima ( X,Y, hacer (apilar (X,Y),S) ) ]
Inferencia modus ponens

Conocimiento sobre el estado
Hacer (apilar (a, b), S0): encima (a, b, hacer (apilar (a, b), S0))
En el siguiente diagrama, observamos el proceso de representación del conocimiento, que hemos
explicado anteriormente:
8
Sistemas Expertos e Inteligencia Artificial. Guía No. 6
Observemos que para la representación del conocimiento se requiere:
 Hechos
 Representación de hechos
 Relación entre hechos y representaciones
Podemos identificar los siguientes tipos de conocimiento:
 Elementos básicos u objetos del mundo real.
 Aserciones y definiciones sobre los elementos básicos.
 Conceptos, agrupaciones o generalizaciones de elementos básicos.
 Relaciones, propiedades de los elementos y conceptos.
 Teoremas y reglas de reescritura. Reglas de producción.
 Algoritmos de resolución.
 Estrategias y heurísticas.
 Meta conocimiento.
Para representar el conocimiento necesitamos un lenguaje de representación del conocimiento
(LRC), el cual está formado por:
 Sentencias: describir características relevantes del entorno.
 Inferencia: sacar conclusiones a partir de estas características.
 Semántica: relaciona las sentencias del LRC con los hechos del entorno.
Ontología.
Es un método de representación basado en Lógica. La lógica en sí no es más que sintaxis,
semántica y teoría de la demostración. No nos dice en lo más mínimo qué es aquello que deberá
expresarse ni tampoco qué vocabulario emplear para ello. Es decir:
LÓGICA = SINTAXIS + SEMÁNTICA
Sistemas Expertos e Inteligencia Artificial. Guía No. 6
9
La Ontología es un conjunto de símbolos básicos con los que se compone el conocimiento, junto
a las restricciones de consistencia que controlan la composición del mismo. Representación del
vocabulario, habitualmente centrado en el dominio o propósito del problema. Es la representación
concreta del conocimiento compartido referente a conceptos en un dominio de interés.
Ejemplo.: Un bloque no puede estar sobre sí mismo.
Vocabulario para representar un dominio (lista informal de los conceptos de un dominio - Russell):
Serie de términos que representan los conceptos y relaciones que interesan del dominio.
Ejemplo: Conceptos: Bloque, Suelo
Relaciones: sobre
Está compuesto de:
 Definiciones: a asocian los nombres de las entidades en el universo de discurso con texto
legible que describe lo que significan los nombres.
 Axiomas Formales: restringen la interpretación y el uso de esos términos.
Una ontología es algo análogo a un esquema de base de datos, no al contenido de la base de
datos. Existen diversos lenguajes para poder representar una ontología. La definición de una
ontología como forma de representar los conceptos de interés de un determinado dominio,
permite el entendimiento entre distintos programas. Ejemplo: Compras electrónicas por la red.
Para definir una ontología, tenemos que considerar las entidades.
Las entidades pueden ser:
 Conceptos: predicados unarios en la Lógica de Primer Orden.
 Relaciones: predicados de aridad mayor en la Lógica de Primer Orden.
Por ejemplo en el problema del “Mundo de Bloques”:
o
Bloque: Bloque (x)
10
Sistemas Expertos e Inteligencia Artificial. Guía No. 6
o
Suelo: Suelo (x)
o
Sobre: Sobre (x, y)
Sistemas Basados en Conocimiento.
La definición de un Sistema Basado en Conocimiento (SBC) es la siguiente:
“Es un sistema computarizado capaz de resolver problemas en el dominio en el cual posee
conocimiento específico”.
La solución es esencialmente la misma que hubiera dado un ser humano confrontado con idéntico
problema, aunque no necesariamente el proceso seguido por ambos puede ser igual.
Los Sistemas Basados en Conocimiento representan un paso adelante de los sistemas de
información convencionales al pretender representar funciones cognitivas del ser humano como
el aprendizaje y el razonamiento.
Esta clase de aplicaciones descansan en las contribuciones de la Inteligencia Artificial en lo
general y en la Ingeniería del Conocimiento en lo particular.
Su orientación es la automatización del análisis de problemas, la búsqueda de soluciones, la toma
de decisiones y el empleo de conocimiento especializado en un campo específico de aplicación.
El simple concepto dado, puede causar confusión ya que muchos sistemas basados en
programas convencionales podrían ser incorrectamente categorizados como Sistemas Basados
en Conocimiento.
Esta inconsistencia puede ser aclarada, sobre la base de tres conceptos fundamentales que
distinguen a los Sistemas Basados en Conocimiento de los programas algorítmicos
convencionales y de los programas generales basados en búsqueda:
 Primero, la separación del conocimiento y el modo en que es usado.
 Segundo, la naturaleza del conocimiento empleado (heurística antes que algorítmica).
 Tercero, el uso de conocimiento específico de un determinado dominio.
Los principales problemas asociados a este método son:
 Las soluciones no siempre son las mejores o correctas.
 Conocimiento limitado frente al dominio de un experto.
 Carecen del sentido común o criterio que puede tener un experto.
 Es difícil extraer todo el conocimiento que maneja un experto.
Sistemas Expertos e Inteligencia Artificial. Guía No. 6
11
Estructura de los Sistemas Basados en Conocimiento.
La arquitectura de un SBC de alguna manera refleja la estructura cognitiva y los procesos humanos.
En la figura siguiente observamos la estructura de un SBC:
La primera parte es la memoria de largo plazo, en la que guarda los hechos (Base de Hechos) y los
conocimientos (Base de Conocimientos) acerca del dominio en el que tiene experiencia.
La segunda parte es el sistema que realiza la función de razonamiento para resolver problemas
(Motor de Inferencia).
Finalmente, la tercera parte la conforman las unidades de entrada y salida que permiten la
comunicación entre el sistema y su entorno.
La representación del conocimiento determina el desarrollo de un sistema experto e influye en las
estrategias de control. Es muy versátil, hay muchas formas de hacerlo y es complicada la elección.
Generalmente la elección está basada en la intuición o en las especiales circunstancias del problema.
La primera fase es la adquisición del conocimiento desde un experto y depende de la cantidad y de
su adecuada representación. Se deben conocer los límites, pues sólo llegan hasta donde son capaces
de resolver un problema. Esto implica, que tiene que circunscribirse a un dominio homogéneo.
Alcances de los Sistemas de Información.
Los sistemas de información mecanizados son concebidos e implementados como instrumentos que
procesan información con el propósito de:
 Apoyar la toma de decisiones.
 Contener “conocimiento técnico”.
 Reducir a un grado mínimo el error humano.
12
Sistemas Expertos e Inteligencia Artificial. Guía No. 6
 Automatizar las operaciones repetitivas.
 Transmitir información dentro de la organización.
 Reducir el tiempo de realización de las operaciones.
 Bajar costos.
 Facilitar la tarea del usuario.
 Ofrecer información: completa, eficiente, veraz, oportuna.
 Manipular grandes volúmenes de información.
 Satisfacer las necesidades del usuario.
Extensión a los Sistemas Basados en Conocimiento.
Los Sistemas Basados en Conocimiento se consideran una extensión, “un paso tecnológico” de los
sistemas de información cuyos alcances y complejidad son mayores.
Entre sus propósitos destacan:
 Aprender.
 Evolucionar.
 Adaptar.
 Razonar.
 Tomar decisiones.
 Contener conocimiento empírico, mundano y del lenguaje.
 Analizar problemas.
 Generar alternativas de solución.
 Emular al experto humano.
 Generar conocimiento a partir del que ya se posee.
Entre las características más relevantes de los SBC están:
Procedimientos no algorítmicos.
Manejo de incertidumbre.
Cero, una o múltiples soluciones.
Conocimiento técnico y científico.
Busca generar la solución “óptima”.
Manipulación de conocimiento no monotónico.
Procesos interactivos.
Aprendizaje de los fracasos.
Empleo de métodos para la representación del conocimiento.
Sistemas Expertos e Inteligencia Artificial. Guía No. 6
13
Capacidad para explicar su propio razonamiento, cuestionamiento y emisión de conclusiones.
Uso de búsquedas heurísticas.
Representación de conocimiento especializado del campo de aplicación.
Pueden utilizar razonamiento con base en probabilidades, creencias, pertenencias y
suposiciones.
Procesamiento simbólico.
Utilizan sistema de mantenimiento de la verdad para afirmaciones y negaciones cambiantes.
Datos cualitativos más que cuantitativos.
La representación del conocimiento es esencial en inteligencia artificial y es la base de la construcción
de un sistema experto.
Fases en la adquisición del conocimiento:
Identificación del problema.
Estructuración del conocimiento.
La arquitectura del sistema y la maqueta.
El prototipo y terminación del sistema.
Tipos de aplicaciones de los Sistemas Basados en Conocimiento.
El ámbito de aplicación de los sistemas basados en conocimiento incluye:
 Lenguaje natural.
 Realidad virtual.
 Redes neuronales.
 Juegos.
 Sistemas expertos.
 Robótica.
 Sistemas de planeación.
 Reconocimiento de imágenes.
 Traductores.
 Solución de problemas.
 Sistemas evolutivos.
 CAM Manufactura. Llevado a máquinas de control numérico.
 Aprendizaje.
 Sistemas Tutoriales.
14
Sistemas Expertos e Inteligencia Artificial. Guía No. 6
Procedimiento
Ejemplo 1. En esta sesión de laboratorio simularemos el funcionamiento de un agente basado
en el conocimiento.
La arquitectura de este tipo de agente se muestra a continuación:
Simularemos un robot constructor de torres con bloques. El funcionamiento de este robot es
sencillo: Busca bloques en una superficie plana y los coloca uno sobre otro hasta formar una
torre.
Este es un ejemplo típico de planificación, que puede resolverse utilizando IA, específicamente,
aplicando la técnica de representación del conocimiento.
Descripción del Problema.
Se dispone de un conjunto de bloques situados encima de una mesa con la posibilidad de que
haya bloques sobre otros. Partiendo de una situación inicial, es decir, determinados bloques
situados de una forma específica (por ejemplo: bloque A sobre el B), se quiere llegar a la situación
final en la que los bloques estén dispuestos de otra forma.
Por ejemplo, se podría tener el siguiente planteamiento:
Sistemas Expertos e Inteligencia Artificial. Guía No. 6
15
Se utilizará un agente basado en el conocimiento para resolverlo.
Para ello se dispone de los siguientes operadores:
Operadores:
Acción: DESAPILAR (x, y)
Precondiciones: libre (x)  encima (x, y)
Añadidos: encima (x, mesa)  libre (y)
Eliminados: encima(x, y)
El bloque “x” que está situado encima del “y”, se va a colocar encima de la mesa.
Acción: APILAR (x, y)
Precondiciones: encima (x, mesa)  libre (x)  libre (y)
Añadidos: encima (x, y)
Eliminados: libre (y)  encima (x, mesa)
El bloque “x”, situado encima de la mesa, se va a colocar encima del “y”.
Acción: MOVER-BLOQUE-SOBRE-BLOQUE (x, y, z)
Precondiciones: encima (x, y)  libre (x)  libre (y)
Añadidos: encima (x, z)  libre (y)
Eliminados: encima (x, y)  libre (z)
El bloque “x”, situado encima del “y”, se va a colocar encima del “z”.
libre (x) indica que el bloque “x” no tiene ningún bloque encima suyo.
encima (x, y) indica que el bloque “x” está sobre el bloque “y”. Si “y” es la mesa, el bloque “x”
estaría situado encima de la mesa.
Ejemplos de situaciones iniciales y metas:
a. Situación inicial: libre (A)  encima (A, B)  encima (B, mesa)  libre (C)  encima (C,
D)  encima(D, mesa)
Situación final: encima (A, C)  encima (B, D)
16
Sistemas Expertos e Inteligencia Artificial. Guía No. 6
b. Situación inicial: libre (C)  encima (C, A)  encima (A, mesa)  libre (B)  encima (B,
mesa)
Situación final: libre (A)  encima (A, B)  encima (B, C)  encima (C, mesa)
Análisis de resultados
Tomando como referencia la información presentada en el ejemplo No.1, implementar un
simulador (en entorno de Windows Forms) para el agente basado en el conocimiento que
resuelva el problema planteado.
Considerar la siguiente funcionalidad para el simulador:
A. Permitir que el usuario decida la situación inicial del problema.
B. Permitir que el usuario decida la situación final del problema.
C. El problema debe ser resuelto utilizando un método de representación del conocimiento.
Se sugiere utilizar un sistema basado en reglas, pues es un método idóneo para este
tipo de problemas.
D. Cuando el algoritmo encuentre la solución, el simulador debe mostrar los movimientos
necesarios para llegar de la “situación inicial” a la “situación objetivo” (simulación), así
como una descripción de todos los pasos realizados.
Investigación Complementaria
Para la siguiente semana:
Investigar sobre STRIPS (Stanford Research Institute Problem Solver), el cual es un generador de
planes automatizado en Inteligencia Artificial.
17
Sistemas Expertos e Inteligencia Artificial. Guía No. 6
Guía
6:
Conocimiento.
Conocimiento.
Representación
Sistemas
Basados
Alumno:
del
en
Hoja de cotejo:
6
Máquina No:
GL:
Docente:
Fecha:
EVALUACIÓN
%
CONOCIMIENTO
Del 20
al 30%
APLICACIÓN
DEL
CONOCIMIENTO
Del 40%
al 60%
ACTITUD
Del 15%
al 30%
TOTAL
100%
1-4
5-7
8-10
Conocimiento
deficiente
de los
fundamentos
teóricos
Conocimiento
y explicación
incompleta de
los
fundamentos
teóricos
Conocimiento
completo y
explicación
clara de los
fundamentos
teóricos
No tiene
actitud
proactiva.
Actitud
propositiva y
con
propuestas no
aplicables al
contenido de
la guía.
Tiene actitud
proactiva y
sus propuestas
son concretas.
Nota
Descargar