24
CIÊNCIA DA COMPUTAÇÃO - FCG Sistemas de Informação Inteligentes Aula 07: Raciocínio baseado em casos Prof.º Msc. Sidney Roberto de Sousa

Raciocínio Baseado em Casos

Embed Size (px)

DESCRIPTION

Sétima aula da disciplina Sistemas de Informação Inteligentes, lecionada no curso de Ciência da Computação da Faculdade Campo Grande. Esta aula aborda de forma simples e clara o raciocínio baseado em casos, utilizando exemplos de fácil compreensão.

Citation preview

Page 1: Raciocínio Baseado em Casos

CIÊNCIA DA COMPUTAÇÃO - FCG

Sistemas de Informação Inteligentes

Aula 07: Raciocínio baseado em casos

Prof.º Msc. Sidney Roberto de Sousa

Page 2: Raciocínio Baseado em Casos

Ciência da Computação - FCG 2

O que é?

Utilização de experiências passadas para entender e resolver problemas novos

Um ”raciocinador” se recorda de uma situação passada similar a atual e usa esta experiência para resolver o problema atual

Page 3: Raciocínio Baseado em Casos

Ciência da Computação - FCG 4

Exemplo

”Uma anfitriã está planejando um jantar para um conjunto de pessoas que inclui, entre outras, várias pessoas que não comem carne vermelha ou aves - onde um destes também é alérgico a derivados de leite, vários homens que adoram carne vermelha e batatas e, por fim, sua amiga Ana.

É época de tomates, logo ela quer utilizá-los como ingrediente principal no jantar. Como ela é a única responsável pela organização do jantar, ela se recorda dos seguintes fatos:

Houve uma vez, no verão, em que eu servi uma torta de tomates - feita com muçarela, tomates, mostarda, manjericão e pimenta – como prato principal. Nesta ocasião, os meus convidados eram vegetarianos. Esta torta foi muito prática de fazer! E deliciosa! Porém, eu não posso servir esta torta para a Eliana, pois ela é intolerante à lactose.

A Eliana me ensinou a adaptar algumas receitas que tinham queijo como ingrediente, substituindo-o por tofú. Apesar disso, eu não sei se a torta de tomates ainda seria deliciosa com esta substituição de ingredientes...”

Page 4: Raciocínio Baseado em Casos

Ciência da Computação - FCG 5

Exemplo

”A anfitriã decide não servir a torta de tomates e continua a planejar o seu jantar. Como é verão, ela opta por servir peixe grelhado, julgando que este prato seria uma boa pedida para a ocasião. Porém, agora ela se lembra de mais um fato:

Na última vez em que eu tentei servir peixe para a Ana, ela não quis comê-lo. Eu tive que preparar uns cachorros-quentes de última hora...

A princípio, isto a sugere a não servir o peixe grelhado, mas mesmo assim ela ainda insiste a servir este prato. Assim, ela pensa se existe ou não uma forma de servir peixe a Ana, de uma forma que ela aprecie comê-lo:

Eu me lembro de ter visto ela comer peixe em um restaurante. Que tipo de peixe eu devo servir a ela? O peixe que eu a servi da última vez foi preparado com a cabeça e tudo... O peixe que ela comeu no restaurante parecia mais com um bife do que um peixe. Eu preciso servir a ela um peixe com sabor e aparência mais próximos aos de carne vermelha ou de aves do que a de peixe. Talvez peixe-espada dê certo. Será que a Ana vai comer peixe-espada? Peixe-espada é mais parecido com frango e eu sei que ela gosta de frango.”

Page 5: Raciocínio Baseado em Casos

Ciência da Computação - FCG 6

Exemplo

Neste exemplo, anfitriã estava prestes a escolher a torta de tomates como prato principal, pois este prato era um forte candidato à boa apreciação culinária de seus convidados

Porém, sua amiga Ana – com o seu gosto mais exigente – acaba atrapalhando indiretamente os planos da anfitriã

Esta, por sua vez, utiliza exemplos e contra-exemplos de uma premissa (”Ana não come peixe”) para tentar derivar uma interpretação da premissa que resiste ao escrutínio

Page 6: Raciocínio Baseado em Casos

Ciência da Computação - FCG 7

Raciocínio Baseado em Casos (CBR)

A anfitriã hipotética emprega CBR a fim de planejar um jantar

No CBR, o ”raciocinador” se recorda de situações anteriores similares à atual e as utiliza para ajudar a resolver novos problemas

No exemplo anterior, os casos relembrados são utilizados para sugerir meios de se resolver um novo problema

Page 7: Raciocínio Baseado em Casos

Ciência da Computação - FCG 8

CBR é comum em nossas vidas

Page 8: Raciocínio Baseado em Casos

Ciência da Computação - FCG 9

CBR é comum em nossas vidas

Page 9: Raciocínio Baseado em Casos

Ciência da Computação - FCG 10

CBR é comum em nossas vidas

Page 10: Raciocínio Baseado em Casos

Ciência da Computação - FCG 11

CBR é comum em nossas vidas

Page 11: Raciocínio Baseado em Casos

Ciência da Computação - FCG 12

Uso da experiência

Geralmente, a segunda vez em que se tenta resolver um determinado tipo de problema é mais fácil do que a primeira → nos lembramos da primeira vez e da solução aplicada

Somos mais competentes na segunda vez pois recordamos de nossos erros os evitamos

Também somos mais competentes na segunda vez pois nos recordamos de soluções práticas e eficazes utilizadas no passado

Page 12: Raciocínio Baseado em Casos

Ciência da Computação - FCG 13

Qualidade do CBR

A qualidade de um raciocinador baseado em casos depende de quatro coisas

Suas experiências passadas Sua habilidade em entender situações novas em

termos destas experiências Sua adaptabilidade na adaptação Sua adaptabilidade na avaliação

Page 13: Raciocínio Baseado em Casos

Ciência da Computação - FCG 14

Processo de CBR para computação

CBR foi formalizado para raciocínio computadorizado em um processo de 4 etapas:

Recuperação Reuso Revisão Retenção

Page 14: Raciocínio Baseado em Casos

Ciência da Computação - FCG 16

Reuso

Mapeia-se a solução de casos anteriores para o problema alvo

Tal operação pode exigir a adaptação da solução do caso antigo para o caso novo

Ex.: quando a anfitriã pensava em servir novamente torta de tomates aos seus convidados, ela teria que substituir o queijo muçarela por tofú → dado que Ana é intolerante à lactose

Page 15: Raciocínio Baseado em Casos

Ciência da Computação - FCG 17

Revisão

Uma vez que uma solução antiga foi mapeada à situação alvo, testa-se a nova solução no mundo real ou em uma simulação

Caso necessário, revisa-se a nova solução Ex.: Digamos que ao substituir a muçarela por

tofú, este último não harmoniza bem com o sabor dos tomates, fazendo com que a torta tenha um sabor desagradável. Assim, deve-se revisar a receita, tomando alguma decisão a respeito da inclusão do tofú na torta

Page 16: Raciocínio Baseado em Casos

Ciência da Computação - FCG 18

Retenção

Uma vez que a solução foi adaptada com sucesso ao problema alvo, a experiência resultante deve ser armazenada como um novo caso na memória → vai para a base de casos

Ex.: Digamos que a anfitriã serve o seu peixe grelhado aos seus convidados no jantar e estes adoram o prato servido, o achando saboroso. Assim, a anfitriã agora sabe que este prato é uma boa pedida para se servir em um jantar com amigos no verão

Page 17: Raciocínio Baseado em Casos

Ciência da Computação - FCG 19

CBR com Prolog

Considere um sistema de diagnósticos para um consultório médico

O médico atende a vários pacientes no decorrer do tempo, onde cada paciente apresenta sintomas variados

Para cada paciente, o trabalho do médico é mapear seus sintomas para um mal/doença

Assim, tendo conhecimento do mal/doença do paciente, ele pode receitar um tratamento a este paciente

Page 18: Raciocínio Baseado em Casos

Ciência da Computação - FCG 20

Base de fatos (casos)

diagnostico('olhos avermelhados', 'conjuntivite').

diagnostico('olhos avermelhados', 'gripe').

diagnostico('coriza', 'gripe').

diagnostico('dor de cabeça', 'gripe').

diagnostico('nariz escorrendo', 'gripe').

diagnostico('febre', 'infecção').

diagnostico('dor de cabeça', 'infecção').

diagnostico('nariz escorrendo', 'infecção').

Page 19: Raciocínio Baseado em Casos

Ciência da Computação - FCG 21

Recuperando diagnósticos

1 ?- diagnostico('olhos avermelhados', X).

X = 'conjuntivite' ;

X = 'gripe' ;

No

Page 20: Raciocínio Baseado em Casos

Ciência da Computação - FCG 22

Cálculo simples de diagnóstico

calcula_diagnostico([], D).

calcula_diagnostico([S|L1], D) :-

diagnostico(S, D),

calcula_diagnostico(L1, D).

Page 21: Raciocínio Baseado em Casos

Ciência da Computação - FCG 23

CBR com Prolog

Assim, o médico pode utilizar suas experiências de diagnósticos para criar novos diagnósticos

Para que o CBR funcione, cada novo diagnóstico sucessivo deve ser adicionado à base de fatos → feedback relevance

A partir da base de fatos, diferentes regras podem ser criadas a fim de responder perguntas mais complexas

Page 22: Raciocínio Baseado em Casos

Ciência da Computação - FCG 24

Críticas ao CBR

Alguns cientistas argumentam que o CBR é uma abordagem que aceita evidências ”anedotais” como princípio principal de operação

Sem experiências relevantes, a generalização de soluções pode levar a respostas incorretas

CBR vs relevância estatística

Page 23: Raciocínio Baseado em Casos

Ciência da Computação - FCG 25

Vantagens do CBR

Permite ao raciocinador propor soluções a problemas rapidamente

Permite ao raciocinador propor soluções a domínios que ele não compreende totalmente

Fornece ao raciocinador meios para avaliar soluções quando não se tem métodos algorítmicos para resolver o problema alvo

Casos são particularmente úteis para utilização na interpretação de conceitos abertos e mal definidos

Casos ajudam um raciocinador a concentrar o seu raciocínio em partes importantes de um problema ao apontar as características relevantes de um problema

Page 24: Raciocínio Baseado em Casos

Ciência da Computação - FCG 26

Bibliografia

KOLODNER, J. L. An Introduction to Case-Based Reasoning. Artificial Intelligence Review, Vol. 6, pages 3-34, 1992.

Case-Based Reasoning. Disponível em http://tinyurl.com/2bxrmd. Acessado em 31/10/2012.