Representación del Conocimiento Otros formalismos · Otros formalismos Introducción a la ......

65
Representación del Conocimiento Otros formalismos Introducción a la Inteligencia Artificial. Licenciatura en Ciencias de la Computación.

Transcript of Representación del Conocimiento Otros formalismos · Otros formalismos Introducción a la ......

Representación del Conocimiento Otros formalismos

Introducción a la Inteligencia Artificial.

Licenciatura en Ciencias de la Computación.

Conocimiento – Definición

El conocimiento es una mezcla de experiencia, información y “saber hacer” que actúa como marco para la incorporación de nuevas experiencias y guia la acción.

Se utiliza para alcanzar una meta

Genera nuevo conocimiento

Resulta en gran medida dependiente de la tarea y del dominio de aplicación.

PREMISA FUNDAMENTAL DE IA:

Para que un sistema informático demuestre un comportamiento “inteligente” en la solución de problemas, debe poseer :

•gran cantidad de conocimientos

•un potente mecanismo de razonamiento.

IMPORTANCIA DE UNA ADECUADA REPRESENTACION DEL CONOCIMIENTO

Niveles de representación:

• La representación elegida influye directamente en la

eficacia y eficiencia de la solución lograda

�Nivel del conocimiento

�Nivel simbólico

Hechos, comportamiento y objetivos de los agentes.

Símbolos manipulables por un sistema

Debe existircorrespondencia

Adecuación representacional

Adecuación inferencial

Representación:Modelado de un sistemaAdquisición del conocimiento

Conceptos y relaciones

Métodos deresolución

Modelo Conceptual

Modelo Formal

No computable

Semicomputable

�Representa simbólicamente y organiza el conocimiento.

�Determina el mecanismo de inferencia adecuado.

Representación: Modelado de un sistema

Modelo Computable

Operacional

� Bases de Conocimiento� Mecanismos de inferencia� Mecanismos de control

Las tareas de adquisición y modelado son difíciles y costosas.

Existen esquemas de representación útiles en dominios variados.

Los Sistemas Basados en Conocimiento los combinan.

ELEMENTOS BASICOS QUE INTERVIENEN EN EL DISEÑO DE UN SISTEMA BASADO EN EL CONOCIMIENTO (KBS)� Lenguaje formal para expresar conocimiento� Forma de efectuar razonamientos

COMPONENTE MEDULAR DE UN KBS (Agente)

BASE DE CONOCIMIENTOS (KB)

Es un conjunto de representaciones de hechos

acerca del mundo

Conjunto de sentencias del lenguaje para la

representación del conocimiento

DISTINTOS FORMALISMOS

�FORMALISMOS LOGICOS�SISTEMAS DE PRODUCCION�FORMALISMOS

ESTRUCTURADOS:• REDES SEMANTICAS

• FRAMES

• OBJETOS

OTROS FORMALISMOS Sistemas de producción

�Utilizan elementos de la lógica

�Salen del marco estrictamente formal�más flexibles�más eficientes

�Pierden propiedades fundamentales como la consistencia y completitud.

Newell & Simon - 1973

Sistemas de producción�Los procesos del dominio se representan como acciones

independientes que son integradas por el mecanismo de

inferencias para resolver una tarea más general.

Motor deInferencias

BASE DE CONOCIMIENTO

Base deHechos

Base deReglas

ARQUITECTURA

Sistemas de producción�Se utilizan Reglas de Producción para

representar el conocimiento�IF <premisa> THEN <conclusión y/o acción>

�Son los elementos de deducción básicos

�El proceso de inferencia se basa fundamentalmente en la Regla de Inferencia de la lógica denominada MP �A →B, A / ∴B

Reglas de producción�Es el modelo formal para representar un

elemento mínimo de conocimientoIF <premisa> THEN <conclusión y/o acción>

ConclusiónPuede especificar Acción

Estrategia�La premisa puede tener conectivos lógicos<premisa> = <cláusula1 AND/OR...AND/OR

cláusulak>

Reglas de producción- Ejemplos

� Si un animal come carne entonces es carnívoro.

� Si un animal tiene dientes agudos y garras entonces es carnívoro.

� Si un animal es carnívoro y es de color marrón-claro y tiene el pelaje franjas negras, entonces es un tigre.

Reglas de producción- Ejemplos

Sintaxis Reglas en KAPPA-PC

MakeRule( Rtigre, [],animal:grupo #= carnívoro Andanimal:color #= leonado And

animal:pelaje #= franjas_negras,animal:especie = tigre );

Sistemas de producción

�Cada regla es independiente del resto de las reglas en la BC.

�Las reglas no tienen porque estar ordenadas en la BC.

�Las reglas se pueden agrupar por nociones semánticas en “módulos” o “grupos”.

�El metaconocimiento puede ser expresadomediante reglas: metareglas

Sistemas de producción Como razonamos???

� Utilizando un

MECANISMO DE INFERENCIA

(MOTOR DE INFERENCIA)

El cual determina de que forma utilizar las reglas para alcanzar el objetivo planteado

Sistemas de producción Motor de Inferencia

Direcciones de búsqueda:

� Hacia delante, Forward Chaining o guiada por los hechos.

� Hacia atrás, Backward Chaining o guiada por los objetivos.

Implementa alguna estrategia de búsqueda dónde los operadores a aplicar son las reglas de producción.

Para seleccionar las reglas candidatas en cada estado utiliza elEMPAREJAMIENTO, FILTRADO o MATCHING.

Sistemas de producción Motor de Inferencia

Qué dirección de encadenamiento utilizar ???

Cantidad de estados iniciales vs. objetivos

Factor de ramificación

Necesidad de justificar el razonamientoDirección

natural para el

problema

A veces es conveniente encarar partes del problema con cada una

El menor

�Factores a tener en cuenta

Sistemas de producción

� Flexibles.

� Sencillos de modificar y extender.

� A los expertos les resulta simple “pensar en reglas”.

� Completitud y consistencia.

� El conocimiento se separa en pequeños “gránulos”.

VENTAJAS

PROBLEMAS Es común que se los combine con otros

formalismos.

Sistemas estructurados

� ESTRUCTURAS DE RANURA Y RELLENO (slot and filler) �REDES SEMANTICAS (Quillan 67/68)

� FRAMES (Minsky, 75)

� OBJETOS ( Década 80)

Redes semánticas� Idea: el significado de un concepto

depende del modo en que se encuentre conectado a otros conceptos

� Representación: mediante un grafo dirigido donde

� los nodos representan objetos y � los arcos relaciones entre los conceptos

REX PERRO MAMIFERO

INSTANCIA ES-UN

Redes semánticas - Ejemplo

ES- UN

ES- UNES- UN

TIENEEstudiante - FCEIA

Estudiante - UNR

Estudiante - LCC Estudiante - IEca

Juan PerezPedro García Legajo P- 1233/5

Legajo

Prom1 Prom2

Promedio

TIENE

INSTANCIA

INSTANCIAINSTANCIA

TIENETIENE

INSTANCIAINSTANCIA

Redes semánticas - Arcos

Etiquetas de los arcos

� “es-un” relación subclase-clase�“instancia” relación objeto-clase� “parte-de” relación componente-objeto

� definidas por el usuario

Dominio de aplicación

Generalización

Instanciación

Agregación

Descripción

Sistemas basados en Redes semánticas

Base de conocimiento

� En esta representación una BC es una colección de estos grafos

� Las modificaciones se refieren a inserción o eliminación de nodos y sus relaciones.

Redes semánticas Como razonamos???

�Búsqueda de intersecciónEncontrando relaciones entre objetos

�Cual es la conexión entre Rex y mamífero?

�Es Juan Pérez un estudiante de la UNR?

�Cuál es el promedio de Pedro García?

� Utiliza fundamentalmente la estructura jerárquica

Marcos (frames)�Una red semántica representa conexiones entre

entidadesProblemas más complejos

�Asignar más estructura a los nodos y a las conexiones

Marcos �No existe una distinción clara entre una Red

semántica y un sistema de Marcos

Marcos (frames)

� Idea: Estructura para atender la representación del conocimiento asociado a situaciones estereotipadas (Minsky)

� Representación: Es una colección de atributos (ranuras - slots) con valores asociados (y posibles restricciones entre valores, llamados facetas)

Marcos - Estructura

NOMBRE

ENCABEZADO ES-UN

INSTANCIA

ATRIBUTO1 VALOR1

ATRIBUTOn VALORn

•valores pordefecto•procedimientos•relación con otros marcos

(slots)

Marcos - EjemploEstudiante FCEIA

ES-UN Estudiante UNR

TIENE Legajo (letra/numerodigito)

TIENE Promedio (procedimiento)

Estudiante Ing.Eca.

ES-UN ESTUDIANTE FCEIA

Juan Perez

INSTANCIA Estudiante Ing.Eca.

TIENE Promedio = 6,80

DIRECCION ...... (Defecto Rosario)

TEL .....

TRABAJA NO (Defecto No)

Sistemas de MarcosMC ActoresInterpreta: Si(*)Nombre: Conj Caracteres(*)Peliculas: (0..100)(*)Fecha1aPelicula:

MC Fecha(*)Dia: (1..31)(*)Mes: (0..12)(*)Año: 1900..2006

MC ActorSexo: H(*)ParejaMiticaCon:

MC ActrizSexo: M(*)ParejaMiticaCon:

MI - 7543Nombre: H.BogartFecha1aPelicula:ParejaMiticaCon:

MI - 8832Nombre:L.BacallPeliculas: 42ParejaMiticaCon:

MI - 2232Dia: 27Mes: 3Año: 1944

Instancia

Instancia

Instancia

InstanciaInstancia

Sistemas de Marcos

Marcos Clase

Marcos Instancia

Representan conceptos, o situaciones genéricas

descriptos por propiedades comunes

Elementos específicos. Sus propiedades se

asocian con información de cada individuo

Propiedades

De Clase: Atributos genéricos de un concepto,

con valores comunes a todas sus ocurrencias.

De Instancia: Atributos con valores particulares

para cada ocurrencia del concepto (*).

Slots definidos enlos marcos Clase

Sistemas de MarcosConsideraciones al definir los Slots:

Evitar redundancias aprovechando la herencia.

Poseer información suficiente para identificar el marco clase.

En un marco clase se puede definir un slot de instancia en base a otro marco clase.

Los slots de instancia pueden tener uno o varios valores.

En los marcos clase se pueden redefinir slots heredados para representar excepciones a la herencia.

Sistemas de Marcos

Facetas Modelan características de slots y relaciones

Algunas facetas declarativas usuales:

Tipo de Slot: Tipo de datos de los valores, puede apuntar a otro marco.

Cardinalidad: Cantidad de valores posibles.

Valores permitidos: tipo de datos, rango o puntero a otro marco.

Valores por defecto: Para slots de instancia si quedan sin definir.

Marcos – Facetas/Métodos

Hay facetas ligadas a métodos de uso frecuente, asociados a cambios o utilización de los valores de las ranuras:

� When_needed: Formas de conseguir el valor cuando se lo necesita y no está disponible.

� Before_changed: Restricciones propias del dominio.

� After_changed: Acciones pertinentes asociadas a los cambios de valor de la ranura.

� When_accessed: Acciones pertinentes cuando la ranura es accedida de alguna forma.

Sistemas de Marcos

BASE de marcos relacionados mediante los valores de los slots (atributos)

INFERENCIA

�Utilizar la estructura jerárquica para heredar propiedades (valores de slots).

�Tener procedimientos (reglas) para hallar valores de los slots.

Sistemas de Marcos

Tienen mucha tradicion en IA y son antecesores de los objetos

Los sistemas de marcos agregan expresividad a las redes semánticas y permiten representar conocimiento declarativo y procedimental.

Marcos se utilizan para estructurar el conocimiento en Kappa-PC

Redes SemánticasSistemas de Marcos

Lógica de predicados

PODER EXPRESIVO

MAS CLAROS (GRAFICA)UTILIZAN HERENCIA

PRUEBAS DE COMPLETITUD YCONSISTENCIA

Expresividad Sistemas de Marcos - Redes

Objetos

Los vemos más como una forma de representar el mundo que como un paradigma de programación

IIA

Los encontramos en muchas herramientas dentrodel área.

Tienen ciertas características en común con los agentes.

Objetos

Pensados como gran aporte para el Reuso

BALA DE PLATA

Década del 80

Actualmente se apunta a relaciones arquitecturales entre clases para

lograr Evolución y Mantenibilidad

Patrones de diseño

Fantasías

Objetos OBJETO: Es una entidad que tiene un comportamiento.

ESTADO INTERNO MENSAJES que es capaz de responder.

INTERFAZ

Un PROGRAMA OO es una red de objetos cooperantes, que interactúan entre sí, enviándose mensajes.

ENCAPSULAMIENTO

Permite la utilización de clases con implementaciones intercambiables.

Objetos Una CLASE es la abstracción de objetos con atributos, acciones y relaciones con otros objetos y semántica común.

Define la estructura y comportamiento de cada objeto de la clase.

Es la definición de un nuevo tipo de dato.

Un OBJETO es la instancia de una clase.

Cada objeto tiene una identidad única, aún si su estado es igual al de otro objeto.

Objetos

Características de la POO

Abstracción

Encapsulamiento

Modularidad

Jerarquía

Polimorfismo

Tipos ( Tipificación)

Concurrencia

Persistencia

Objetos

ABSTRACCIÓN Una Abstracción denota las características

esenciales de un objeto que lo distinguen de todos los demás tipo de objetos y

proporciona así fronteras conceptuales

nítidamente definidas respecto a la perspectiva del observador.

Objetos ENCAPSULAMIENTO El encapsulamiento es el proceso de

almacenar en un mismo compartimiento los elementos de una

abstracción que constituyen su estructura y su comportamiento; sirve

para separar la interfaz de una abstracción y su implementación.

Objetos MODULARIDAD La Modularidad consiste en dividir un

programa en módulos que pueden compilarse separadamente, pero que

tienen conexiones con otros módulos.

Objetos JERARQUÍA

La jerarquía es una

clasificación u ordenación de abstracciones.

Las dos jerarquías más

importantes en un sistema

complejo son su estructura de clases (la jerarquía "de

clases") y su estructura de objetos (la jerarquía "de

partes").

Objetos TIPOS (TIPIFICACIÓN)

Los tipos son la puesta en vigor de la

clase de los objetos, de modo que los objetos de tipos distintos no pueden

intercambiarse o, como mucho, pueden intercambiarse sólo de formas

muy restringidas.

Objetos CONCURRENCIA La concurrencia es la propiedad que

distingue un objeto activo de uno que no está activo

Objetos PERSISTENCIA La persistencia es la propiedad de un objeto

por la que su existencia trasciende el tiempo (el objeto continua existiendo después de que

su creador deja de existir) y/o el espacio (la posición del objeto varía con respecto al

espacio de direcciones en el que fue creado).

Objetos

Las CLASES se organizan en jerarquías modelando el dominio

De Estructura: Más estática.

De Comportamiento: Ocurre en ejecución. HERENCIA

Esquema de colaboración entre objetos

(explícito en el código)

Cuando un objeto recibe un mensaje, busca el código en su clase, y si no lo encuentra comienza a buscar en las clases superiores según la jerarquía definida.

Objetos

POLIMORFISMO� Clases diferentes (polimórficas) implementan métodos con el mismo nombre.

Esto permite reducir el espacio de nombres y que el código sea más genérico, conciso y comprensible.

Es aconsejable maximizarlo

Objetos

DISEÑO

Se crean clases

Se trabaja sobre abstracciones

EJECUCIÓNRed de objetos que se envían mensajes

El significado y la implementación delos mensajes está a nivel de las clases

Jerarquía de clases: Un ejemplo CuentaBancaria

número

titular

saldo

depositar

CajaAhorro

cantExtracciones

extraer

CuentaCorriente

rojoPermitido

extraer

Objetos

Una jerarquía de clases es “sana” cuando cada vez que en una expresión un objeto de la clase más genérica recibe un mensaje, ese mensaje se puede reemplazar en las clases más específicas y la expresión sigue teniendo sentido.

Aún en los problemas más simples, cuando se sale del dominio del problema y se entra en el dominio de la solución, aparecen jerarquías más complejas y que no tienen contrapartida en el mundo real.

Ontologías•El objeto de estudio de la ciencia de la Ontología es el estudio de las categorías que existen en un dominio

•El resultado de este estudio es lo que denominamos una ontología

• Una ontología es un catálogo de los tipos de cosas que asumimos que existen en un dominio D desde la

perspectiva de alguien que usa un lenguaje L con el propósito de hablar de D

• Los elementos de una ontología representan predicados, constantes, conceptos y relaciones pertenecientes a un lenguaje L cuando se usa para

comunicar información sobre D

• Una ontología es un vocabulario

Ontologías•La capacidad de obtener deducciones a partir de la información que representa la ontología viene dada por el uso de una lógica

•La lógica por si misma no habla sobre nada, es neutra

respecto al significado, es su combinación con una ontología lo que le da a un formalismo lógico la capacidad de expresar significados, por ejemplo:

Este razonamiento no habla sobre nada en concreto salvo que asignemos significados a los átomos (P =

llueve, Q = me mojo)

Ontologías

•El desarrollo de las ontologías entronca directamente con

la Filosofía.

•Aristóteles acuñó el término Categoría como la palabra

para describir las diferentes clases en las que se dividían

las cosas del mundo

•El término ontología es relativamente moderno (s. XIX),

proviene del griego Ontos (Ser) y Logos (Palabra)

•Este se empezó a utilizar para distinguir el estudio de la

categorización del ser de la categorización que se hacía en

biología. De hecho el trabajo de categorización surge en

muchas áreas de la ciencia (filosofía, biología, medicina,

lingüística, ...)

ANTECEDENTES

Ontologías

¿Cuales son los puntos interesantes que motivan el uso de

las ontologías?

•Permiten compartir la interpretación de la estructura de la

información entre personas/agentes

•El establecer una ontología sobre un dominio permite que

dos agentes puedan entenderse sin ambigüedad y sepan a

que se refieren

•Hacer una descripción de un dominio permite que esta

pueda ser usada por otras aplicaciones que necesiten tratar

con ese conocimiento

MOTIVACIÓN

Ontologías

• Hacen que nuestras suposiciones sobre el dominio se

hagan explícitas. Facilita replantearse las suposiciones

sobre el dominio y ayuda a que otros puedan entender su

descripción

•Separan el conocimiento del dominio del conocimiento

operacional

• Permiten analizar el conocimiento del dominio.

• Una vez que tenemos una especificación del

conocimiento podemos analizarlo utilizando métodos

formales (para comprobar si es correcto, completo, ...)

MOTIVACIÓN

Ontologías

•En nuestra área de trabajo (agentes), una ontología será

una descripción formal explícita de los conceptos de un

dominio (Clases)

•Estas clases se describirán a partir de propiedades que

representarán las características, atributos y relaciones de

las clases

•Adicionalmente estas características tendrán restricciones

(tipo, cardinalidad, ...)

•Finalmente tendremos instancias (elementos

identificables) que constituirán los individuos concretos que

representa la ontología

COMPONENTES

Ontologías

Desarrollar una ontología requerirá:

•Definir las clases que forman el dominio

•Organizar las clases en una jerarquía taxonómica

•Definir las propiedades de cada clase e indicar las

restricciones de sus valores

•Asignar valores a las propiedades para crear instancias

DESARROLLO

Ontologías

• No existe una metodología establecida sobre como

desarrollar ontologías, comenzaremos por una informal

y luego veremos metodologías mas formales

• Debemos tener en cuenta:

• No existe un modo correcto de modelar un dominio.

La mejor solución dependerá de la

aplicación/problema concreto

• Los objetos de la ontología deberían ser cercanos a

los objetos y relaciones que se usan para describir

el dominio (generalmente se corresponden a

nombres y verbos que aparecen en frases que

describen el dominio)

METODOLOGÏAS

Ontologías

•No incluir versiones singulares y plurales de un término (la

mejor política es usar solamente nombres en singular o

plural)

•Los nombres no son las clases, debemos distinguir la

clase del nombre que le damos, podemos tener sinónimos,

pero todos representan a la misma clase

•Asegurarnos de que la jerarquía está correctamente

construida

•Observar las relaciones de transitividad y comprobar si

son correctas

•Evitar ciclos en la jerarquía

CONSEJOS

Ontologías

•Todas las subclases de una clase deben estar al mismo nivel de generalidad

•No hay un criterio respecto al número de clases, la experiencia dice que un número entre dos y doce es habitual, mas indicaría que tenemos que estructurar las clases añadiendo mas niveles

• Suele ser incómodo navegar por jerarquías o muy planas o muy profundas, se debería elegir un punto intermedio, algunas indicaciones serían:

•La nuevas clases tienen propiedades adicionales que no tiene la superclase

•Tienen restricciones diferentes

•Participan en relaciones diferentes

CONSEJOS

Cómo elegir la mejor representación???

No hay receta establecida !!!

�Analizar las características del conocimiento involucrado.

�Recurrir a la combinación de formalismos.

Frente a cada problema a resolver: