Raciocínio Baseado em Casos (RBC) — Conceitos e Ciclo
Raciocínio Baseado em Casos (RBC)
O que é Raciocínio Baseado em Casos: buscar uma solução para um problema atual, baseando‑se em experiências passadas.
Uso natural e desafios em IA
Pessoas utilizam Raciocínio Baseado em Casos naturalmente: o ser humano utiliza experiências passadas para solução de novos problemas; porém, em IA, a elaboração traz dois tipos de problemas: como armazenar e representar a experiência para que esta seja posteriormente recuperada; e como mapear a experiência prévia no problema atual.
Paradigma de IA
Paradigma de IA: Raciocínio Baseado em Casos é um paradigma de IA, que apresenta uma forma de representar e armazenar a experiência através de casos.
O que é um caso
O que é caso: abstração de uma experiência descrita através de atributos devidamente valorados, que descrevem não apenas o conteúdo da experiência, mas o contexto em que esta se passou.
Como os casos são usados
Como os casos são usados: Dado um problema para resolver, sistemas baseados em casos:
- Recuperam um caso relevante;
- Avaliam como o caso recuperado se aplica à nova situação;
- Adaptam o caso para aplicação, se necessário;
- Aprendem armazenando sucessos e falhas como novos casos.
Etapas do ciclo
Etapas do ciclo:
- Novo caso → Recuperação → caso recuperado / novo caso
- Reuso → caso resolvido
- Revisão → caso testado
- Retenção → caso aprendido
Novo caso
Novo caso: descrição e contexto que envolvem todo o problema em questão. A complexidade da situação irá ditar a forma de representação, que poderá dispor de apenas um formalismo ou de um conjunto deles.
Recuperação
Recuperação: a recuperação ocorre mesmo quando não existe uma combinação perfeita, desde que exista similaridade.
- Indexação: seleção apropriada de índices.
- Organização da memória: tipo de representação e forma de estruturação da memória de casos.
- Selecionar o melhor caso significa obter o match mais adequado.
Reuso
Reuso: ajustar a solução recuperada de forma que esta se adapte ao novo problema.
Tipos de adaptação:
- Estrutural: regras aplicadas diretamente na solução dos casos armazenados.
- Derivacional: regras que geraram a solução original são reprocessadas para produzir uma nova solução.
Revisão
Revisão: uma verificação é realizada durante a execução de uma solução, ou após seu término. Se os resultados verificados não estão de acordo com as necessidades, é necessário reformular; caso contrário, há a retenção do caso.
Retenção
Retenção: novo caso é armazenado na memória para futuramente ser utilizado.
Sem critérios ocorre:
- Crescimento incontrolável;
- Degradação do desempenho do sistema;
- Incremento no custo de acesso.
Atitudes necessárias:
- Seletividade na escolha dos novos casos a serem armazenados;
- Remoção ocasional de casos;
- Política clara no esquema de indexação.
Qualidade da solução
Qualidade da Solução: fatores que influenciam na qualidade da solução:
- Experiência prévia do engenheiro de conhecimento;
- Habilidade de entender situações novas em termos de experiências passadas;
- Competência para adaptação;
- Competência para avaliação.
Quando e por que utilizar RBC
Quando utilizar RBC: quando não se tem um modelo para o caso em questão, ou quando se possui modelos fracos.
Por que utilizar RBC: são particularmente úteis em interpretações abertas e conceitos indefinidos. Permitem ao especialista propor soluções em domínios que não conhece completamente, disponibilizam um meio de avaliação de soluções que métodos algorítmicos não são capazes de avaliar, e relembra experiências passadas alertando o especialista para ações, a fim de evitar erros passados.
Responsabilidades
RBC – Responsabilidades: recai sobre o registro com relação às características de indexação e sobre a recuperação, que deve dispor de notificação de falhas e auxílio na crítica da solução.
Engenheiro de conhecimento
Engenheiro de conhecimento: é responsável pelas adaptações mais difíceis, pela escolha das características e dos casos a serem considerados.
Tipos de Raciocínio Baseado em Casos
Raciocínio Baseado em Casos – Tipos:
- Revolvedor de problemas: onde ocorre a adaptação da solução do caso recuperado para o novo caso;
- Interpretador: observa a interpretação da solução proposta e gera uma justificativa para a nova interpretação;
- Ensino / auxílio: classificando sistemas interativos — como exemplo, o QuickSource.
Evoluções e sistemas
Raciocínio Baseado em Casos — Evoluções:
CYRUS [Kolodner, 83], MEDIATOR [Simpson, 85], PERSUADER [Sycara, 88], CHEF [Hammond, 89], JULIA [Hinrichs, 92], CASEY [Koton, 89], PROTOS [Bareiss, 89], GREBE [Branting, 91], HYPO [Ashley, 90], CABARET [Skalak, 92], PADTEX [Richter, 91], REFINER [Sharma, 88]
Implementações e ferramentas
IPAC - Protem/cc: implementação utilizando RBC — Integração de Paradigmas na Aquisição de Conhecimento.
RaBeCa: ferramenta de desenvolvimento de sistemas RBC. Algumas características da ferramenta:
- Permite a descrição, montagem e consulta a uma base de casos a partir de uma linguagem específica;
- Permite diversas formas de efetuar casamentos entre os casos propostos e os casos da base;
- Disponibiliza alternativas de hibridização com técnicas utilizadas em IA, como redes neurais, regras de produção e algoritmos genéticos.
Inteligência Artificial Distribuída (IAD)
Sistemas de Inteligência Artificial Distribuída: são classes de sistemas que permitem que vários processos autônomos chamados agentes realizem atos de inteligência global somente através de processamento local e comunicação interprocessos. A meta de sistemas especialistas baseados em conhecimento e distribuídos é poder coordenar atividades de grupo, resolvendo problemas que os sistemas compartilham. IAD não pode ser considerada como subcampo da IA, mas sim um componente na construção de um sistema de IA.
Benefícios
Os benefícios: são derivados de ter um grupo de agentes trabalhando juntos para resolver problemas. Um problema extenso para um só especialista resolver pode ser dividido entre um grupo, ou resolvido em partes por agentes trabalhando em paralelo.
Razões para empregar IAD
Existem muitas razões para que seja empregado o conceito de IAD. Entre elas:
- Mais poder de computação ou hardware mais barato;
- Maior segurança e tolerância a falhas;
- Aproveitamento da tecnologia existente.
Padronização
Com a distribuição dos processos surge o problema de padronização. A linguagem de comunicação entre os processos deve ser padronizada, assim como a forma de apresentar o conhecimento, para que o mesmo seja trocado e tratado por sistemas especialistas distintos sem perda de informação.