15
15/10/2010 1 Programación Lógica en Inteligencia Artificial Programación Exploratoria – Año 2010 Ing. Ingrid Christensen ISISTAN – Facultad de Ciencias Exactas UNCPBA Agenda Inteligencia Artificial Conceptos, enfoques y definiciones Inteligencia Artificial aplicada Agentes Inteligentes Definición y ejemplos Sistemas de Recomendación ¿Qué son los SR? Dominio de aplicación y entradas Programación de agentes: JavaLog 2 Inteligencia Artificial ¿Qué es para ustedes la Inteligencia artificial? 3

Inteligencia artificial aplicada a sistemas de recomendación · Programación Lógica en Inteligencia Artificial Programación Exploratoria – Año 2010 Ing. Ingrid Christensen

  • Upload
    others

  • View
    8

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Inteligencia artificial aplicada a sistemas de recomendación · Programación Lógica en Inteligencia Artificial Programación Exploratoria – Año 2010 Ing. Ingrid Christensen

15/10/2010

1

Programación Lógica en Inteligencia Artificial

Programación Exploratoria – Año 2010

Ing. Ingrid Christensen

ISISTAN – Facultad de Ciencias Exactas

UNCPBA

Agenda

Inteligencia Artificial

◦ Conceptos, enfoques y definiciones

◦ Inteligencia Artificial aplicada

Agentes Inteligentes

◦ Definición y ejemplos

◦ Sistemas de Recomendación

¿Qué son los SR?

Dominio de aplicación y entradas

Programación de agentes: JavaLog

2

Inteligencia Artificial

¿Qué es para ustedes la Inteligencia artificial?

3

Page 2: Inteligencia artificial aplicada a sistemas de recomendación · Programación Lógica en Inteligencia Artificial Programación Exploratoria – Año 2010 Ing. Ingrid Christensen

15/10/2010

2

Concepto de IA (1)

1. La Inteligencia Artificial (IA) es el estudio de cómo lograr que las computadoras realicen tareas que, por el momento, los humanos hacen mejor.

2. Inteligencia Artificial se define como la inteligencia exhibida por una entidad artificial

4

Concepto de IA (2)

Inteligencia: capacidad mental para razonar, planear, resolver problemas, pensar de manera abstracta

Artificial: no natural, hecha por el hombre. Generalmente se supone una computadora.

5

Concepto de IA (3)

La inteligencia artificial intenta comprender las

entidades inteligentes (humanos), con el propósito

de (a diferencia de la psicología y la filosofía)

construir entidades inteligentes además de

entenderlas.

6

Page 3: Inteligencia artificial aplicada a sistemas de recomendación · Programación Lógica en Inteligencia Artificial Programación Exploratoria – Año 2010 Ing. Ingrid Christensen

15/10/2010

3

IA: Enfoques y definiciones

Existen diferentes enfoques de la IA que varían a lo largo de dos dimensiones

7

Sistemas que piensan

como humanos

Sistemas que piensan

racionalmente

Sistemas que actúan

como humanos

Sistemas que actúan

racionalmente

Actuar como humanos (1)

El test de Turing

◦ Propuesto por Alan Turing en 1950

◦ Una persona interroga a una computadora y la computadora pasa el test si el interrogador no puede decir si del otro lado hay un humano o una computadora

8

Actuar como humanos (2)

Capacidades que debería tener la computadora:

◦ Procesamiento de lenguaje natural

◦ Representación de conocimiento

◦ Razonamiento automático

◦ Aprendizaje automático

9

Page 4: Inteligencia artificial aplicada a sistemas de recomendación · Programación Lógica en Inteligencia Artificial Programación Exploratoria – Año 2010 Ing. Ingrid Christensen

15/10/2010

4

Pensar como humanos

Estudio interdisciplinario de cómo la información es representada y transformada en la mente/cerebro.

Combinación de IA y psicología para la construcción de teorías estables y precisas de cómo trabaja la mente

humana.

10

Pensar racionalmente

Pensar Correctamente

Procesos de razonamiento irrefutables

Obtener conclusiones correctas dadas las premisas correctas.

◦ Ejemplo: Juan es un hombre;

Todos los hombres son mortales;

entonces, Juan es mortal.

11

Actuar racionalmente

Actuar racionalmente implica actuar para lograr nuestros

objetivos a partir de nuestras creencias.

Comportamiento racional: realizar lo que se considera

correcto

No implica necesariamente el pensamiento (ej. actos

reflejos)

12

Page 5: Inteligencia artificial aplicada a sistemas de recomendación · Programación Lógica en Inteligencia Artificial Programación Exploratoria – Año 2010 Ing. Ingrid Christensen

15/10/2010

5

Inteligencia Artificial aplicada

13

Agentes

Un agente es cualquier cosa que perciba su entorno a través de sensores y actúe en consecuencia al entorno a través de accionadores.

Agentes humanos: ojos, orejas y otros órganos como sensores; manos, piernas, boca y otras partes del cuerpo como accionadores.

Agentes robóticos: cámaras como sensores; motores como accionadores

14

Agentes Inteligentes (1)

Un agente de software es un programa que actúa en nombre del usuario o de otro programa. El hecho de actuar “en nombre de”, implica la autoridad de decidir si es apropiado actuar o no, y cuando hacerlo.

Un agente inteligente exhibe además algún aspecto de inteligencia artificial, tal como razonamiento o aprendizaje.

15

Page 6: Inteligencia artificial aplicada a sistemas de recomendación · Programación Lógica en Inteligencia Artificial Programación Exploratoria – Año 2010 Ing. Ingrid Christensen

15/10/2010

6

Agentes Inteligentes (2)

16

Interactúa con

Interactúa con

Colabora

Observa e imita

Agente

Usuario

Ejemplos de Agentes

17

NewsAgent: generador de diarios digitales personalizados

PersonalSearcher: buscador inteligente de páginas Web

Ejemplos de Agentes

18

QueryGuesser: asistente para consultas en BD

Administración Personalizada de

Citas

Page 7: Inteligencia artificial aplicada a sistemas de recomendación · Programación Lógica en Inteligencia Artificial Programación Exploratoria – Año 2010 Ing. Ingrid Christensen

15/10/2010

7

Sistemas de Recomendación (1)

A menudo es necesario seleccionar una entre varias

alternativas sin tener un conocimiento exacto de cada

una de ellas. En estas situaciones, la decisión final

puede depender de las recomendaciones de otras

personas

19

Sistemas de Recomendación (2)

Objetivo: Asistir a los usuarios en sus procesos de

búsqueda de información, ayudando a filtrar los ítems

de información recuperados, usando recomendaciones

propuestas sobre esos ítems.

20

SR: Dominio de aplicación

La implementación de técnicas para el desarrollo de los SR está íntimamente relacionada con el tipo de información que se vaya a utilizar.

21

Película

•Título

•Género

•Director

•Actores

•Etc.

Libro

•Título

•Año

•Autor

•Editorial

•Etc.

Page 8: Inteligencia artificial aplicada a sistemas de recomendación · Programación Lógica en Inteligencia Artificial Programación Exploratoria – Año 2010 Ing. Ingrid Christensen

15/10/2010

8

Entradas de los SR

Los SR para generar recomendaciones, usan las entradas del usuario activo (perfil), pero también

información sobre los ítems o información del resto de usuarios del sistema, que actúan como colaboradores.

22

Generación de recomendaciones

SR no colaborativos:

◦ Entrada: perfil de usuario activo y atributos de ítems

◦ Similitud entre ítems.

SR colaborativos

◦ Entrada: perfil de usuario activo, atributos de ítems y perfiles de la comunidad de usuarios.

◦ Similitud entre usuarios

◦ Métodos basados en vecindad.

23

Amazon

Amazon.com: Librería online

Fue una de las primeras grandes compañías en vender bienes a través de Internet.

Permite calificar libros comprados o leídos por el usuario.

Sugiere libros a partir del

perfil del usuario (compras

previas, historial de

navegación, similitud de

atributos, etc.)

24

Page 9: Inteligencia artificial aplicada a sistemas de recomendación · Programación Lógica en Inteligencia Artificial Programación Exploratoria – Año 2010 Ing. Ingrid Christensen

15/10/2010

9

GroupLens

http://www.grouplens.org/

MovieLens : Sistema de filtrado colaborativo

◦ Recolecta las preferencias de los usuarios

◦ Grupo de usuarios (de la comunidad) con gustos

similares

◦ Predicciones en base a las calificaciones dadas por el

grupo.

25

jMusicGR (1)

26

jMusicGR (2)

Reproductor y Recomendador de Música ◦ Recomendación individual (SR Colaborativo)

◦ Recomendación a grupos de usuarios

◦ Perfiles: Especificación explícita e implícita

◦ Similitud entre ítems a través de sus atributos

◦ Generación de recomendaciones en base a 6 algoritmos de los diferentes enfoques.

27

Page 10: Inteligencia artificial aplicada a sistemas de recomendación · Programación Lógica en Inteligencia Artificial Programación Exploratoria – Año 2010 Ing. Ingrid Christensen

15/10/2010

10

Otros ejemplos de agentes de recomendación

28

Recomendación de películas

Recomendación de paquetes turísticos

Programación de agentes: JavaLog

La programación de agentes involucra tanto el encapsulamiento de sus comportamientos como el de

su estado mental

29

Interactúa con

Interactúa con

Colabora

Observa e

imita

Agente

Usuario

Comportamiento

Estado

mental

Agente Asistente Personal

Organiza actividades considerando preferencias

◦ Horarios

007 habitualmente toma un Martini después de las 19

◦ Lugares

Las reuniones del proyecto siempre se realizan en la sala 2

◦ Contactos

La agente 99 tiene máxima prioridad

◦ Actividades

007 practica deportes de alto riesgo

30

Page 11: Inteligencia artificial aplicada a sistemas de recomendación · Programación Lógica en Inteligencia Artificial Programación Exploratoria – Año 2010 Ing. Ingrid Christensen

15/10/2010

11

Programación de agentes: POO

31

unAsistente

agendarActividad()

agenda

aceptarActividad()

sugerirActividad()

analizarActividad()

preferencias

Comportamiento Estados mentales

Agente

Asistente Buscador

Programación de agentes: POO

32

Problemas de POO

◦ Representación de estados mentales„

Objetivos: lo que un agente tiene que hacer

Creencias: observaciones y suposiciones

Intenciones: lo que desea llevar a cabo en un momento en particular

Manipulación y administración de estados mentales complejos„

Mejor alternativa: ProLog

Programación de agentes: ProLog

33

unAsistente

analizarEvento(…):-…

sugerirEvento(…):-…

aceptarEvento(…):-…

agendarEvento(…):-…

reunion(…):-…

preferencias(…):-…

Comportamiento +

Estados mentales

Problemas de la programación lógica ◦ No provee encapsulamiento

◦ No permite modularizar

◦ Junta código y datos

Page 12: Inteligencia artificial aplicada a sistemas de recomendación · Programación Lógica en Inteligencia Artificial Programación Exploratoria – Año 2010 Ing. Ingrid Christensen

15/10/2010

12

JavaLog: Lo mejor de ambos mundos

34

JavaLog= Programación Orientada a Objetos (Java) + Programación Lógica (ProLog)

Programar un agente como un objeto Java:

◦ Funcionalidad es implementada como métodos Java

◦ Módulos lógicos: secuencia de clausulas lógicas ProLog

◦ Objeto-Agente: Objeto capaz de representar y manipular estados mentales

JavaLog: Lo mejor de ambos mundos

35

unAsistente

Clausulas Lógicas

Métodos Java

JavaLog brain

◦ Cada Objeto-Agente tiene asociado un objeto Brain para la manipulación de clausulas lógicas

Módulos Lógicos

36

Secuencia de clausulas lógicas

JavaLog permite definir módulos lógicos en variables y en métodos

Clausulas representando

estados mentales

Clausulas manipulando

estados mentales Asistente

unAsistente

Java ProLog

variable

método

Page 13: Inteligencia artificial aplicada a sistemas de recomendación · Programación Lógica en Inteligencia Artificial Programación Exploratoria – Año 2010 Ing. Ingrid Christensen

15/10/2010

13

Módulos Lógicos

37

Puede contener datos o código según corresponda

preferencia(E,10):- evento(E, negocios, P, Fecha, Hora, Lugar), member(X,P), jefe(P).

preferencias(E,9):- evento(E, golf,_,_,_,_,_).

preferencia(E,10):- evento(E, social, P, Fecha, _, _), noLaborable(Fecha), member(X,P),amigo(X).

mejor(E,P):-mejor(E,10,P).

mejor(E,X,X):-preferencia(E,X), !.

mejor(E,X,P):-X1 is X-1, mejor(E,X1,P).

?-mejor(E,X).

Preferencias del usuario

Evaluación de eventos

Módulos Lógicos

38

Un módulo lógico puede estar habilitado o inhabilitado:

modulo3

modulo2

modulo1

Módulo inhabilitado

Módulos habilitados

Estados mentales de un agente

Para resolver una consulta sólo se utilizan los módulos habilitados, ignorando el resto

preferencia(…):-… preferencia(…):-…

Composición de un agente

39

unAsistente

agendarActividad()

agenda

aceptarActividad()

sugerirActividad()

analizarActividad()

preferencias

Comportamiento Estados mentales

Interprete JavaLog

Java+Prolog

Page 14: Inteligencia artificial aplicada a sistemas de recomendación · Programación Lógica en Inteligencia Artificial Programación Exploratoria – Año 2010 Ing. Ingrid Christensen

15/10/2010

14

Composición de un agente

40

Comportamiento y estados mentales de una clase de agentes (en módulos lógicos)

Estados mentales privados (en módulos

lógicos ref. por variables)

Interprete JavaLog

agendarActividad()

agenda

aceptarActividad()

sugerirActividad()

analizarActividad()

preferencias

Asistente

brain

Métodos

Sentencias Java„ „ „ Sentencias Java

Evaluación de eventos

Clase Java

Método con código Java y ProLog

Módulos Lógicos en variables

41

La clase Asistente posee dos variables de instancia contexto1 y contexto2 referenciando cada una de ellas un módulo lógico con diversas preferencias sobre eventos sociales, de negocio, etc.

contexto1= {{ preferencia(A,10):- evento(A, negocios, P,

Fecha, Hora, Lugar), member(X,P), jefe(P).

preferencias(A,9):- evento(A,golf,_,_,_,_,_).}}

unAsistente

contexto2= {{ preferencia(A,10):- evento(A, social, P,

Fecha, _, _), noLaborable(Fecha),

member(X,P),amigo(X).}}

Módulos Lógicos en variables

42

contexto1= {{ preferencia(A,10):- evento(A, negocios, P,

Fecha, Hora, Lugar), member(X,P), jefe(P).

preferencias(A,9):- evento(A,golf,_,_,_,_,_).}}

unAsistente

contexto2= {{ preferencia(A,10):- evento(A, social, P,

Fecha, _, _), noLaborable(Fecha),

member(X,P),amigo(X).}}

Asistente

Brain brain

LogicModule preferencias1

LogicModule preferencias2

LogicModule preferencias3

Metodos…

preferencia1

preferencia2

brain

Page 15: Inteligencia artificial aplicada a sistemas de recomendación · Programación Lógica en Inteligencia Artificial Programación Exploratoria – Año 2010 Ing. Ingrid Christensen

15/10/2010

15

Módulos Lógicos en métodos

43

Un método puede utilizar módulos lógicos

◦ En variables locales/parámetros

◦ Como parte del método

LogicModule contexto1= {{ preferencia(A,10):- evento(A, negocios, P,

Fecha, Hora, Lugar), member(X,P), jefe(P).

preferencias(A,9):- evento(A,golf,_,_,_,_,_).}};

combinarpreferencias(contexto1);

//declaraciones de variables locales

for(…)…

{{mejor(E,P):-…

?-mejor(E,X).}};

Conclusiones

44

La integración de objetos y lógica permite aprovechar las ventajas de ambos paradigmas

JavaLog ha mostrado ser de gran utilidad para construir agentes y sistemas multi-agentes

Preguntas

45