Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
1
Aula 3Raciocínio Baseado em Casos
Monday, March 21, 2011
Definição
O raciocínio baseado em casos (RBC) é uma técnica que pretende resolver novos problemas adaptando soluções anteriormente utilizadas na resolução de problemas similares.
RBC baseia-se no uso da Analogia
Monday, March 21, 2011
RBC versus RBM
Monday, March 21, 2011
Motivação – O saber da experiência
• Classificação: “Os problemas de ouvido deste paciente são casos típicos de otite média”
• Soluções compiladas: “Os sintomas de coração do paciente X podem ser explicados da mesma maneira que aquele paciente Y”
• Avaliar medidas: A minha casa é como aquela que foi vendida mais em baixo nesta rua por 120.000€ mas esta tem uma vista melhor”
• Concepção (design): para projectar este hospital, vou-me basear naquele que já fiz com um número de camas parecido, embora tenha de adaptá-lo pois este é de esquina
• Avaliando opções: se nós atacássemos as instalações dos mísseis cubanos/russos, seria como no caso de Pearl Harbor
Monday, March 21, 2011
Vantagens
• Fac i l i t a o p rocesso de aqu i s i ção de conhecimento (ao não exigir modelos)
• Amostragem antecipada do tipo de problemas
• Permite a reutilização do conhecimento armazenado em bases de dados e outras fontes
• O conhecimento é encapsulado na solução aplicada
• Permite aprendizagem automática de novos casos
Monday, March 21, 2011
Desvantagens
• Dificuldade em obter casos disponíveis e confiáveis
• Não cobrem todo o domínio
• Recuperação por similaridade tem desempenho medíocre em aplicações reais
• Não existem bons algoritmos de adaptação
• Espaço de armazenamento do conhecimento muito maior do que modelos
Monday, March 21, 2011
Algumas críticas ao Raciocínio Baseado em Modelos
• Fase de desenvolvimento pode ser longa
• Aprendizagem complexa
• Não é robusto
• Tratamento de incerteza complicado
• Manutenção e refinamento são delicados
• Baixo desempenho
Monday, March 21, 2011
Funcionamento: ciclo dos 4 Rs
Monday, March 21, 2011
Ciclo de funcionamento
• Recuperação: quando se apresenta ao sistema um novo problema é feita a recuperação na base de casos do caso mais parecido com o problema em questão, identificando as características mais significantes comuns aos dois casos.
• Reutilização: a partir do caso recuperado é feita a reutilização da solução a ele associada. Geralmente a solução do caso recuperado é transferida para o novo problema directamente como a sua solução.
• Revisão: é feita quando a solução não pode ser aplicada directamente ao novo problema. O sistema avalia as diferenças entre os problemas (o novo e o recuperado), quais as partes do caso recuperado que são semelhantes ao novo caso e podem ser transferidas. A solução do caso recuperado da base é adaptada para obter a solução do novo caso.
• Retenção: é o processo de armazenar o novo caso e sua respectiva solução para futuras recuperações. O sistema irá decidir qual a informação a armazenar e de que forma.
Monday, March 21, 2011
Aquisição de Casos
• Processo mais complexo no desenvolvimento de uma aplicação. Algumas situações:
• Os dados não existem numa fonte externa
A técnica de RBC pode ficar impossibilitada. A construção de casos é tão ou mais complexa que a de modelos
• Estão semi-disponíveis numa fonte externa Situação mais comum, os dados podem ser complementados por
um especialista
• Os dados existem mas contêm erros
Situação comum, os dados podem ser verificados e validados por um especialista
• Os dados estão registrados de forma correcta e disponíveis Situação rara, só é necessário eliminar dados repetidos ou não
relevantes
Monday, March 21, 2011
Representação de Casos
• A estrutura de representação utilizada deve permitir que o utilizador da aplicação consiga facilmente entender/manipular os dados correctamente
• A gestão da aplicação deve ser eficiente (indexação...)• Somente os atributos que influenciam na solução
devem ser representados• Aspectos da estrutura de um caso:
• Problema • Solução• Avaliação da solução
• A organização pode ser sequencial ou estruturada• No caso de ser estruturada, a hierarquia pode considerar
semelhanças de atributos ou classificação de casos
Monday, March 21, 2011
Indexação
• Índices apontam para atributos mais discriminantes e/ou significativos
• Apontam similaridades úteis entre os casos, construindo “atalhos” para os casos candidatos
(Mesma ocupação? Mesmo salário?)
• O objetivo é evitar ter de percorrer toda a base na busca do caso mais similar
• Devem prever a utilização da informação em diferentes problemas
• A indexação pode ser manual ou automática
(Automáticos: Métodos de indução, análise de sensibilidade, cálculo de semelhanças, arvores de decisão)
Monday, March 21, 2011
Recuperação
• Selecção dos casos mais parecidos com a situação actual
• Os algoritmos baseiam-se nos índices e na organização de memória para realizar a pesquisa dos casos
• A selecção do melhor caso é realizada através de uma medida da similaridade
• Podem ser utilizados algoritmos de buscas exaustivas e outros baseados em heurísticas
Monday, March 21, 2011
Similaridade
wi - peso da característica iaxi e ayi - valores da característica i nos casos C e Ssimi - função primitiva para a característica i
• Observações• similaridade global [0-1] • mais fácil introduzir conhecimento do domínio: pesos• os pesos podem ser definidos manualmente ou por
métodos automáticos
Monday, March 21, 2011
Exemplo
• Pesos• ano = 2, modelo = 3, marca = 2, cor = 1, preco =1
• Funções primitivas• ano: (diferença ≤ 2) => 1; (2 < dif ≤ 4) => 0,5; (dif > 4) => 0
• modelo: igual => 1; diferente => 0• marca: igual => 1; diferente => 0• cor: igual => 1; parecida => 0,5; diferente => 0
• preço: (dif ≤ 250) => 1; (250 < dif < 1000) => 0,5); (dif > 1000) => 0
Carro 1 Carro 1 Carro 1
Ano 1997 1996 1995
Marca Polo Golf Tempra
Modelo VW VW Fiat
Cor Azul Vermelho Azul
Preço 1000 1500 1300
Monday, March 21, 2011
Similaridade
• De tipos numéricos• Considera uma distribuição uniforme (linear) para os valores
dos atributos• Distribuições mais complexas devem usar funções que avaliam
a distribuição
• Similaridade de tipos simbólicos• São definidas enumerações
Branco Amarelo Vermelho Castanho Preto
Branco 1 0.8 0.4 0.15 0
Amarelo 1 0.5 0.2 0
Vermelho 1 0.7 0.6
Castanho 1 0.85
Preto 1
Monday, March 21, 2011
Adaptação
• Procura diferenças salientes entre as duas descrições e aplica regras para compensá-las
• As regras de adaptação podem ser automáticas ou manuais
• Geralmente, a adaptação é realizada pelo utilizador do sistema, pois a adaptação automática, se for realizada de forma errada, pode comprometer todo o sistema
• Adaptação automática através de Substituição ou Transformação
• Reinstanciação• Ajuste de Parâmetros• Substituição baseada em casos
Monday, March 21, 2011
Solução / Aprendizagem
• Ocorre quando um caso é solucionado com sucesso
• O caso é armazenado no banco de casos, para que possa ser usado na solução de novos problemas
• Podem também ser armazenados casos de insucesso
• Quan to ma io r fo r o número de casos armazenados, melhor o índice de similaridade é gerado
Monday, March 21, 2011
Alguns Problemas
• Aquisição & descrição dos casos • nem sempre é trivial encontrar conhecimento do domínio!
• O controle da medida de similaridade é fraco pois o matching é parcial • A acumulação de semelhanças “irrelevantes” faz com que
certos casos sejam escolhidos em detrimento dos outros
• como ter certeza que as propriedades A e B serão determinantes na recuperação de um caso que contém 20 atributos?
• A explicação • pode ser prejudicada quando a recuperação é baseada numa
medida de similaridade numérica
Monday, March 21, 2011
Aplicação
• Grande diversidade de classes de problemas• diagnóstico, planeamento, escalonamento, selecção, design,
interpretação, ensino,....
• Ferramentas (shells)• ReMind, CAsePOint,CASUEL, ReCall, CBR-Express, ART*,...
• Exemplos Machine Tool Fault Diagnosis; Computer Network Diagnosis;
Credit Analysis; Geological Deposit Prediction; Battle Planning; Bank Telex Classification; Natural Language Understanding ; Network Management; Legal Reasoning; Claims Settlement; Medical Diagnosis; Weather Prediction; Fraud Detection; Industrial Planning and Scheduling; Residential Domain; Aircraft Maintenance Domain; Helpdesk Systems for PC Network Diagnostics
Monday, March 21, 2011
Sistema PROLOG CASE
• PROLOG CASE (escrito por Bruno Gonçalves) URL - http://iscte.pt/~luis/aulas/tsi/PrologCASE.zip
• Apontamentos e Manual do PROLOG CASE (Luís Botelho - ISCTE - Instituto Superior de Ciências do Trabalho e da EmpresaURL - http://iscte.pt/~luis/aulas/tsi/ApontamentosCBR.zip
Monday, March 21, 2011
http://iscte.pt/~luis/aulas/tsi/PrologCASE.ziphttp://iscte.pt/~luis/aulas/tsi/PrologCASE.ziphttp://iscte.pt/~luis/aulas/tsi/ApontamentosCBR.ziphttp://iscte.pt/~luis/aulas/tsi/ApontamentosCBR.zip
CBR – Exemplo Simples
Exemplo de Conhecimento geral
IF Heroi(H) AND Vilao(V) AND Pos(H, Pos) AND Pos(V, Pos)
THEN Disparar(H, V)
Neste jogo, isto é uma regra aplicável a qualquer herói e a qualquer vilão, sejam eles quais forem, que se encontrem em qualquer posição do mundo do jogo.
Raciocínio por analogia: enquanto que a lógica e as regras representam conhecimento geral, o raciocínio por analogia baseado em casos, representa casos particulares.
Monday, March 21, 2011
CBR – Exemplo Simples(Conhecimento de casos)
Caso 1
ProblemaHeroi(James)
Vilao(Jaws).Pos(James, (2,5)).
Pos(Jaws, (2, 5)).
SoluçãoDisparar(James, Jaws).
Caso 2Problema
Heroi(Batman)Vilao(Pinguin).
Pos(Batman, (10,4)).
Pos(Pinguin, (10, 4)).
Solução
Disparar(Batman, Pinguin).
Caso 3Problema
Heroi(James)Vilao(Jaws).Pos(James, (2,10)).Pos(Jaws, (2, 5)).
SoluçãoPassoBaixo(James).
ProblemaHeroi(SpiderMan)Vilao(Octopus).Pos(SpiderMan, (3,10)).Pos(Octopus, (3, 5)).
Solução: ???
Monday, March 21, 2011
Qual é a solução deste problema? Isto é, que acção deverá realizar o SpiderMan?P: Qual é o caso da base de conhecimentos mais parecido com o problema actual?R: Caso 3P: Qual é a analogia entre os dois casos (o novo e o caso 3):R:
i.e., { James/SpiderMan, Jaws/Octupus, 2/3 }
CBR – Exemplo Simples
Novo Problema Caso 3
SpiderMan James
Octopus Jaws
3 2
Monday, March 21, 2011
CBR – Exemplo Simples
P: Qual é a solução do caso novo?R: PassoBaixo(SpiderMan), a qual resulta da aplicação da analogia estabelecida à solução do caso 3.
Notas:★ Pode formar‑se um novo caso constituído pelo novo problema
e a solução derivada por analogia. ★ Se este novo caso for suficientemente diferente dos casos já
armazenados deve ser guardado na base de casos, aumentando assim o conhecimento do sistema.
★ É natural que haja problemas futuros que sejam mais semelhantes ao novo caso do que os outros casos já existentes.
★ Se o novo caso não for suficientemente diferente dos casos existentes não vale a pena armazená-lo pois a rapidez do sistema diminui com o aumento de casos armazenados.
Compromisso
Monday, March 21, 2011
Utilização do PROLOG CASE
★ Para utilizar o Prolog Case, é necessário carregar os seus ficheiros no interpretador de Prolog.
★ De seguida realizam-se as seguintes tarefas:1. Criar e armazenar uma base de casos;2. Parametrizar o sistema;3. Utilizar o raciocinador Prolog Case para obter soluções para
problemas.
★ Os casos de uma base de casos são representados através do predicado case/2. ★ Primeiro argumento - descrição de um problema. ★ Segundo argumento - solução para esse problema.
Monday, March 21, 2011
Utilização do PROLOG CASE• O Prolog Case tem de ser configurado através de um conjunto de
parâmetros a serem definidos pelo programador:• comparison_threshold: Limiar de semelhança a partir do qual o sistema
considera que um dado caso pode fornecer a solução para o novo problema;
• storage_threshold: Limiar de semelhança até ao qual o sistema decide guardar o novo caso que resulta da junção do novo problema com a solução sugerida pelo sistema;
• problem_matching_method: Método a ser usado pelo Prolog Case para comparar o novo problema com o problema armazenado num caso.
• Também é necessário especificar (nos predicados top_comparable/5 e comparable_args/8):• quais os termos que são comparáveis;• qual é o método usado na comparação dos seus argumentos;• qual o valor a usar para multiplicar o resultado da comparação dos
argumentos de modo a obter o resultado da comparação entre os termos.
Monday, March 21, 2011
Utilização do PROLOG CASE(Base de Casos)
• Os casos, no Prolog Case, são guardados em ficheiro e carregados no interpretador de Prolog. Cada caso é armazenado num facto que recorre ao predicado case/2.
• Em vez de representar cada caso num facto case/2, usando a base de conhecimento interna do Prolog, o programador é livre de definir o predicado case/2 de outra forma qualquer, • Por exemplo, pode definir case/2 como um predicado de acesso a uma
base de dados relacional que armazenaria os casos de forma permanente.
• Neste caso, a consulta dos casos seria por acesso à base de dados, não sendo necessário ter em memória todos os casos.
Monday, March 21, 2011
Utilização do PROLOG CASE(Exemplo de Base de Casos)
case([ artigo_desejado(‘Learning through observation’),
autor(‘Learning through observation’, jaçanã),
paginaWeb(jaçanã, ‘http://iscte.pt/~jacana/’)
],
[ abrir_pagina(‘http://iscte.pt/~jacana/’) ]
).
case([ artigo_desejado(‘Agent based simulation’),
autor(‘Agent based Simulation’, bruno),
telefone(bruno, 960860360) ],
[ telefonar(960860360) ]
).
case([ artigo_desejado(‘Brainstorm assistance tool’),
autor(‘Brainstorm assistance tool’, antonio),
paginaWeb(antonio, ‘http://www.we-b-mind.org/~tony/’),
telefone(antonio, 931111333) ],
[ abrir_pagina(‘http://www.we-b-mind.org/~tony/’) ]
).
Monday, March 21, 2011
http://www.we-b-mind.org/~tony/http://www.we-b-mind.org/~tony/
Utilização do PROLOG CASE(Parameterização do Sistema)
% Parâmetros
comparison_threshold(0.5).
storage_threshold(0.7).
problem_matching_method(permutations).
% Termos comparáveis
/* top_comparable(ComparableId, FunctorSpec1, FunctorSpec2, ArgsComparisonMethod, Similarity) */
% Functores dos termos comparáveis dos problemas
top_comparable(1, artigo_desejado/1, artigo_desejado/1, match, 1).
top_comparable(2, autor/2, autor/2, match, 1).
top_comparable(3, paginaWeb/2, paginaWeb/2, match, 1).
top_comparable(4, telefone/2, telefone/2, match, 1).
/*top_comparable(2, autor/2, autor/2, match, 1) estabelece o contexto de comparação 2, e significa que, em qualquer contexto, dois termos de aridade 2 formados a partir do functor autor são comparáveis, que as respectivas colecções de argumentos devem ser comparadas através do método match de comparação e que a semelhança entre os dois functores é 1 */
Monday, March 21, 2011
Utilização do PROLOG CASE(métodos de comparação)
• match - compara-se a lista de termos que representa o novo problema com a lista de termos que representa o problema de um caso armazenado. O termo de ordem i do novo problema só pode ser comparado com o termo de ordem i do problema armazenado.
• Subsequences – comparar as duas sequências S1 : [t1.1, t1.2, t1.3] e S2 : [t2.1, t2.2]
Analogia 1 Analogia 2 Analogia 3• T1.1 corresponde
a T2.1
• T1.2 corresponde a T2.2
• Em S2, falta o elemento correspondente a T1.3
• T1.1 corresponde a T2.1
• Em S2, falta o elemento correspondente a T1.2
• T1.3 corresponde a T2.2
• Em S2, falta o elemento correspondente a T1.1
• T1.2 corresponde a T2.1
• T1.3 corresponde a T2.2
Monday, March 21, 2011
Utilização do PROLOG CASE(métodos de comparação)
• permutations – comparar as duas sequências S1 : [t1.1, t1.2, t1.3] e S2 : [t2.1, t2.2]Analogia 1 Analogia 2 Analogia 3
• T1.1 corresponde a T2.1
• T1.2 corresponde a T2.2
• Em S2, falta o elemento correspondente a T1.3
• T1.1 corresponde a T2.1
• T1.3 corresponde a T2.2
• Em S2, falta o elemento correspondente a T1.2
• T1.2 corresponde a T2.1
• T1.1 corresponde a T2.2
• Em S2, falta o elemento correspondente a T1.3.
Analogia 4 Analogia 5 Analogia 6• T1.2 corresponde a
T2.1
• T1.3 corresponde a T2.2
• Em S2, falta o elemento correspondente a T1.1
• T1.3 corresponde a T2.1
• T1.1 corresponde a T2.2
• Em S2, falta o elemento correspondente a T1.2
• T1.3 corresponde a T2.1
• T1.2 corresponde a T2.2
• Em S2, falta o elemento correspondente a T1.1
Monday, March 21, 2011
Utilização do PROLOG CASE(Parameterização do Sistema)
/* comparable_args(ComparableId, ContextId, Term1Index, Term2Index, Arg1, Arg2, ComparisonMethod, Similarity) */
% Artigo
comparable_args(5, 1, 1, 1, Artigo1, Artigo2, no_comparison, 1):-
artigo(Artigo1), artigo(Artigo2), Artigo1 \= Artigo2.
comparable_args(6, 2, 1, 1, Artigo1, Artigo2, no_comparison, 1):-
artigo(Artigo1), artigo(Artigo2), Artigo1 \= Artigo2.
% Autor
comparable_args(7, 2, 2, 2, Autor1, Autor2, no_comparison, 1):-
pessoa(Autor1), pessoa(Autor2), Autor1 \= Autor2.
comparable_args(8, 3, 1, 1, Autor1, Autor2, no_comparison, 1):-
pessoa(Autor1), pessoa(Autor2), Autor1 \= Autor2.
comparable_args(9, 4, 1, 1, Autor1, Autor2, no_comparison, 1):-
pessoa(Autor1), pessoa(Autor2), Autor1 \= Autor2.
% URL
comparable_args(10, 3, 2, 2, Url1, Url2, no_comparison, 1):-
url(Url1), url(Url2), Url1 \= Url2. artigo(Artigo):- atom(Artigo).
pessoa(Autor):- atom(Autor).
url(Url):- atom(Url).
Monday, March 21, 2011
A cláusulacomparable_args(7, 2, 2, 2, Autor1, Autor2, no_comparison, 1):-
pessoa(Autor1), pessoa(Autor2), Autor1 \= Autor2.
significa que, • no contexto de comparação nº 2 (estabelecido por uma cláusula
top_comparable/5 ou comparable_args/8) (neste exemplo, é o contexto de comparação de dois termos autor/2),
• o segundo argumento (2) de um termo pode ser comparado com o segundo argumento (2) do outro termo desde que esses argumentos sejam pessoas (pessoa(Autor1) e pessoa(Autor2)) e sejam diferentes um do outro. Se forem iguais, o sistema usa o método de comparação por omissão.
• neste contexto e nestas circunstâncias, a semelhança entre os valores dos segundos argumentos dos dois termos é 1.
• o método de comparação no_comparison indica que os argumentos não têm argumentos ou, se os tiverem, a semelhança não depende deles.
Utilização do PROLOG CASE(Parameterização do Sistema)
Monday, March 21, 2011
Utilização do PROLOG CASE(um pequeno programa…)
:- ensure_loaded(cbr).
:- ensure_loaded(kb_of_cases).
:- ensure_loaded(parameters).
solve(CaseNb) :-
problem(CaseNb, Problem), cbr(Problem, Action, Simil),
write('Problema :'), nl, write(Problem), nl, write('Accao : '), write(Action), write(' - Semelhanca : '), write(Simil), nl.
problem(1, [artigo_desejado('The use of plans'),
autor('The use of plans', martha),
paginaWeb(martha, 'http://www.eecs.umich.edu/~~pollackm/')]).
problem(2, [artigo_desejado('The Role of Emotions'),
autor('The Role of Emotions', paolo),
paginaWeb(paolo, 'http://www.ofai.at/~~paolo.petta/'),
telefone(paolo, 777999555)]).
problem(3, [artigo_desejado('A caça aos gambusinos'),
autor('A caça aos gambusinos', pedro),
telefone(pedro, 395564456)]).
Monday, March 21, 2011
Utilização do PROLOG CASE(interacção na consola)
| ?- solve(1).
Problema :
[artigo_desejado(The use of plans),autor(The use of plans,martha),paginaWeb(martha,http://www.eecs.umich.edu/~pollackm/)]
Accao : [abrir_pagina(http://www.eecs.umich.edu/~pollackm/)] - Semelhanca : 1
yes
| ?- solve(2).
Problema :
[artigo_desejado(The Role of Emotions),autor(The Role of Emotions,paolo),paginaWeb(paolo,http://www.ofai.at/~paolo.petta/),telefone(paolo,777999555)]
Accao : [abrir_pagina(http://www.ofai.at/~paolo.petta/)] - Semelhanca : 0.875
yes
| ?- solve(3).
Problema :
[artigo_desejado(A caça aos gambusinos),autor(A caça aos gambusinos,pedro),telefone(pedro,395564456)]
Accao : [telefonar(395564456)] - Semelhanca : 0.833333333333333
yes
| ?-
Monday, March 21, 2011
Mais um Exercício para o PROLOG CASE
Caso 1Caso 1 Caso 2Caso 2 Caso 3Caso 3
SituaçãoSituação SituaçãoSituação SituaçãoSituação
Evento 1 O João empurrou a Ana
Evento 1 A Maria atropelou o Ricardo
Evento 1 O António atropelou o Zé
Evento 2 O João roubou a carteira da Ana
Evento 2 A Maria saiu do carro
Evento 2 O António arranca no carro
Evento 2 O João roubou a carteira da Ana
Evento 3 A Maria meteu o Ricardo no carro
Evento 2 O António arranca no carro
Evento 3 O João fugiu Evento 3 A Maria meteu o Ricardo no carro
Evento 2 O António arranca no carro
Evento 3 O João fugiu
Evento 4 A Maria entrou no carro
Evento 2 O António arranca no carro
Evento 3 O João fugiu
Evento 5 A Maria arranca no carro
Evento 2 O António arranca no carro
ClassificaçãoClassificação ClassificaçãoClassificação ClassificaçãoClassificação
Assalto e fuga: João, Ana, Carteira da AnaAssalto e fuga: João, Ana, Carteira da Ana
Atropelamento e ajuda: Maria, RicardoAtropelamento e ajuda: Maria, Ricardo
Atropelamento e fuga: António, ZéAtropelamento e fuga: António, Zé
Monday, March 21, 2011
Fim
?
Monday, March 21, 2011