Agentes Baseados em Conhecimento

Agentes Baseados em Conhecimento Agentes Baseados em Conhecimento

professor.ufabc.edu.br
from professor.ufabc.edu.br More from this publisher

<strong>Agentes</strong> <strong>Baseados</strong> <strong>em</strong> <strong>Conhecimento</strong><br />

1


Limitações da resolução de<br />

probl<strong>em</strong>as por Busca<br />

! <strong>Agentes</strong> de Busca são muito eficientes na solução de<br />

probl<strong>em</strong>as que pod<strong>em</strong> ser formalizados por:<br />

1. um estado inicial;<br />

2. ações (operadores);<br />

3. um conjunto de estados finais.<br />

! Porém, não são capazes de resolver probl<strong>em</strong>as que exig<strong>em</strong><br />

raciocínio baseado <strong>em</strong> conhecimento sobre o mundo:<br />

porque seu modelo do mundo é pobre e o raciocínio é limitado<br />

e.g., diagnóstico médico, controle aero-espacial, prova de teor<strong>em</strong>as,<br />

sist<strong>em</strong>as especialistas <strong>em</strong> geral,...<br />

mesmo <strong>em</strong> casos aparent<strong>em</strong>ente solucionáveis por busca<br />

(planejamento), pode ser preciso adicionar conhecimento explícito


Como uma máquina poderia resolver<br />

este probl<strong>em</strong>a?<br />

! Segundo a IA simbólica, é necessário<br />

Identificar o conhecimento do domínio<br />

Representá-lo <strong>em</strong> uma linguag<strong>em</strong> formal<br />

Impl<strong>em</strong>entar um mecanismo de inferência para utilizá-lo<br />

! The Knowledge Principle (Lenat & Feigenbaum)<br />

“If a program is to perform a complex task well, it must<br />

know a great deal about the world in which it operates”<br />

! Questões-chave<br />

Como adquirir esse conhecimento?<br />

Como representá-lo adequadamente?<br />

Como raciocinar com ele correta e eficient<strong>em</strong>ente?


conhecimento prévio<br />

novo<br />

conhecimento<br />

Solucionando o caso do cap. West (Linguag<strong>em</strong> Natural)<br />

A) Τodo americano que vende uma arma a uma nação hostil é criminoso<br />

B) Todo país <strong>em</strong> guerra com uma nação X é hostil a X<br />

C) Todo país inimigo político de uma nação X é hostil a X<br />

D) Todo míssil é um arma<br />

E) Toda bomba é um arma<br />

F) Cuba é uma nação<br />

G) USA é uma nação<br />

H) Cuba é inimigo político dos USA<br />

I) Irã é inimigo político dos USA<br />

J) West é americano<br />

K) Exist<strong>em</strong> mísseis <strong>em</strong> Cuba<br />

L) Os mísseis de Cuba foram vendidos por West conhecimento<br />

M) Cuba possui um míssel M1 - de K<br />

N) M1 é um míssil - de K<br />

O) M1 é uma arma - de D e N<br />

P) Cuba é hostil aos USA - de F, G, H e C<br />

Q) M1 foi vendido a Cuba por West - de L, M e N<br />

R) West é crimonoso - de A, J, O, P e Q<br />

do probl<strong>em</strong>a


<strong>Agentes</strong> <strong>Baseados</strong> <strong>em</strong> <strong>Conhecimento</strong><br />

! São agentes que<br />

conhec<strong>em</strong> seu mundo<br />

raciocinam sobre suas possíveis ações<br />

! Sab<strong>em</strong>:<br />

o estado atual do mundo (propriedades relevantes)<br />

como o mundo evolui (regras)<br />

como identificar estados desejáveis do mundo (objetivos)<br />

como avaliar o resultado das ações (simulação...)<br />

conhecimento sobre conhecimento (meta-conhecimento)<br />

etc.


Agente Baseado <strong>em</strong> <strong>Conhecimento</strong><br />

Ambiente<br />

Sensores<br />

Atuadores<br />

Base de<br />

<strong>Conhecimento</strong><br />

Especializada<br />

Agente<br />

Máquina de<br />

Inferência<br />

Genérica


<strong>Conhecimento</strong> na Máquina<br />

10


! Dados:<br />

<strong>Conhecimento</strong> na Máquina<br />

cadeias numéricas ou alfanuméricas que não possu<strong>em</strong> significado<br />

associado<br />

ex. 12, m1, west, 10.... ( ?)<br />

! Informação:<br />

dados organizados: significam alguma coisa para qu<strong>em</strong> os recebe<br />

ex. 01, 03, 04, 06, 07, 08, 10 (meses ???)<br />

! <strong>Conhecimento</strong>:<br />

Dado, informação ou abstração formatados de maneira a permitir<br />

raciocínio por um ser humano ou por uma máquina<br />

Representa objetos (entidades) de algum domínio, com suas<br />

propriedades e relações


<strong>Conhecimento</strong> na Máquina<br />

! Ex<strong>em</strong>plos de conhecimento formatado<br />

Classes e objetos<br />

relação Arma - Míssil - m1<br />

Fórmula da lógica<br />

InimigoPolítico(Cuba,USA)<br />

Distribuição de probabilidade prévia e condicional de<br />

variáveis aleatórias<br />

P(Cuba-usar-míssil-contra-USA |Cuba-t<strong>em</strong>-m1) = 0,3<br />

! Basta saber isto?<br />

Não!<br />

É preciso saber como estruturar o conhecimento,<br />

identificar sua natureza e para efetivamente saber<br />

como usá-lo....


<strong>Conhecimento</strong> <strong>em</strong> Intenção x Extensão<br />

! <strong>Conhecimento</strong> <strong>em</strong> intenção<br />

Definição do conceito (ou ação), normalmente usando<br />

regras, <strong>em</strong> termos de sua função, estrutura, etc.<br />

ex. ∀ X, cadeira(X) ⇒ assento(X).<br />

cadeira: serve para sentar, t<strong>em</strong> assento, ...<br />

ex. ∀ X, t<strong>em</strong>-dengue(X) ⇒ t<strong>em</strong>-dores(X) ∧ t<strong>em</strong>-febre(X).<br />

qu<strong>em</strong> t<strong>em</strong> dengue t<strong>em</strong> febre, dores, ...<br />

! <strong>Conhecimento</strong> <strong>em</strong> extensão<br />

Instâncias do conceito<br />

ex. cadeira 1, cadeira 21, cadeira 613, ....<br />

ex. os sintomas de dengue de João, de Zé, ...


<strong>Conhecimento</strong> Declarativo X Procedimental<br />

! <strong>Conhecimento</strong> representado de modo:<br />

Procedimental<br />

fatos e seqüências de instruções para manipular<br />

esses fatos<br />

ex.: como desmontar uma bicicleta<br />

Declarativo<br />

representação descritiva dos fatos, relacionamentos<br />

e regras<br />

as partes de uma bicicleta e seus relacionamentos<br />

o pai do pai é o avô


<strong>Conhecimento</strong> Estático x Dinâmico<br />

! <strong>Conhecimento</strong> estático:<br />

Aquele que já existe na BC e não mudará<br />

Hierarquia de conceitos (classes de fatos)<br />

ex, ∀ X, gato(X) ⇒ felino(X).<br />

Restrições de integridades<br />

ex, ∀ X,Y estrela-dalva(X) ∧ vênus(Y) ⇒ X = Y.<br />

Regras de dedução sobre o domínio<br />

ex, ∀ X,Y chefe(X,Y) ⇔ <strong>em</strong>pregado(Y,X)<br />

Meta-regras para controle e explicação do raciocínio<br />

ex. preferir ir para direita caso tenha mais de uma escolha


<strong>Conhecimento</strong> Estático x Dinâmico<br />

! <strong>Conhecimento</strong> dinâmico:<br />

só existe durante a resolução de uma instância<br />

particular do probl<strong>em</strong>a<br />

descrição da instância, hipóteses atuais, fatos novos,...


Categorias de Raciocínio<br />

19


! Dedução<br />

Categorias de Raciocínio<br />

fatos + regras de inferência => novos fatos<br />

causa -> efeito<br />

Se há fogo (causa), há fumaça (efeito). Aqui t<strong>em</strong> fogo, logo, aqui t<strong>em</strong><br />

fumaça (novo fato)<br />

É o único tipo de inferência que preserva a verdade (truthpreserving)<br />

! Abdução<br />

inverso da dedução: do efeito para a causa<br />

Se há fogo, há fumaça. Eu vi fumaça (efeito), logo aqui t<strong>em</strong> fogo (causa)<br />

Ex. Se há febre e dor, a doença é dengue<br />

Este tipo de inferência preserva a falsidade


! Indução<br />

Categorias de Raciocínio<br />

parte dos fatos para gerar regras<br />

fato1 + fato2 + fato 3 => regra!<br />

ex. Sr. Antônio, assim como D. Maria, t<strong>em</strong> dor de cabeça<br />

e dengue, então todo mundo que t<strong>em</strong> dengue, t<strong>em</strong> dor<br />

de cabeça<br />

Transforma conhecimento <strong>em</strong> extensão <strong>em</strong><br />

conhecimento <strong>em</strong> intenção!!


Categorias de Raciocínio<br />

! Raciocínio Analógico<br />

fatos + similaridades + regras de adaptação +...<br />

a partir de fatos (conhecimento <strong>em</strong> extensão), a da<br />

similaridade entre eles, resolve o probl<strong>em</strong>a s<strong>em</strong> gerar<br />

regras<br />

ex.: Naquele caso de dengue, eu passei aspirina e não deu<br />

certo, logo vou evitar receitar aspirina neste caso s<strong>em</strong>elhante


Raciocínio na Máquina<br />

! Dedução e Abdução (via dedução)<br />

usadas nos agentes baseados <strong>em</strong> conhecimento<br />

declarativo<br />

! Indução e Analogia<br />

usadas na aprendizag<strong>em</strong> automática


Raciocínio na Máquina<br />

! Dedução: dois grandes grupos<br />

Lógica e afins<br />

Ver<strong>em</strong>os mais sobre isso a seguir<br />

Eg., Chegarei ao cin<strong>em</strong>a às 20h<br />

Tratamento de incerteza:<br />

Probabilístico ou vago (fuzzy)<br />

Provavelmente chegarei ao cin<strong>em</strong>a às 20h<br />

Eu garanto que chegarei cedo para a sessão das 20h


Como Representar <strong>Conhecimento</strong><br />

e Raciocinar?<br />

Linguagens de Representação<br />

do <strong>Conhecimento</strong><br />

25


Linguagens de Representação<br />

do <strong>Conhecimento</strong><br />

! Uma Linguag<strong>em</strong> de Representação do<br />

<strong>Conhecimento</strong> (LRC) é definida por:<br />

1) uma sintaxe, que descreve as configurações que<br />

pod<strong>em</strong> constituir sentenças daquela linguag<strong>em</strong><br />

2) uma s<strong>em</strong>ântica, que liga cada sentença aos fatos do<br />

mundo que ela representa<br />

cada sentença faz uma afirmação a respeito do mundo<br />

o Agente BC acredita nas sentenças armazenadas na sua base<br />

de conhecimento<br />

! Toda LRC deve ter um mecanismo de inferência<br />

associado => raciocínio


Linguagens de Representação<br />

do <strong>Conhecimento</strong><br />

! Linguagens de programação:<br />

são precisas, porém não são suficient<strong>em</strong>ente<br />

expressivas<br />

! Linguagens naturais:<br />

são muito expressivas, porém são ambíguas<br />

! Linguagens de representação de conhecimento:<br />

utilizadas para expressar as sentenças das BC<br />

exist<strong>em</strong> 3 grandes classes:<br />

linguagens (predominant<strong>em</strong>ente) declarativas<br />

linguagens procedimentais<br />

linguagens híbridas


Principais sist<strong>em</strong>as de<br />

raciocínio declarativos/dedutivos<br />

lógica regras<br />

objetos híbridos<br />

Provadores de teor<strong>em</strong>a<br />

Lógica e afins (LRC+MI)<br />

Programação <strong>em</strong> lógica<br />

Sist<strong>em</strong>as de produção<br />

Sist<strong>em</strong>as de manutenção da verdade<br />

Sist<strong>em</strong>as Redes S<strong>em</strong>ânticas<br />

Sist<strong>em</strong>as Frames<br />

Sist<strong>em</strong>as de Lógica descritiva<br />

Sist<strong>em</strong>as OO<br />

regras+objetos<br />

lógica+objetos<br />

lógica+objetos+funções


conhecimento prévio<br />

novo<br />

conhecimento<br />

Solucionando o caso do cap. West (<strong>em</strong> LPO)<br />

A) ∀ x,y,z Americano(x) ∧ Arma(y) ∧ Nação(z) ∧ Hostil(z) ∧ Vende(x,z,y)<br />

⇒ Criminoso(x)<br />

B) ∀ x Guerra(x,USA) ⇒ Hostil(x)<br />

C) ∀ x InimigoPolítico(x,USA) ⇒ Hostil(x)<br />

D) ∀ x Míssil(x) ⇒ Arma(x)<br />

E) ∀ x Bomba(x) ⇒ Arma(x)<br />

F) Nação(Cuba)<br />

G) Nação(USA)<br />

H) InimigoPolítico(Cuba,USA)<br />

I) InimigoPolítico(Irã,USA)<br />

J) Americano(West)<br />

K) ∃ x Possui(Cuba,x) ∧ Míssil(x)<br />

L) ∀ x Possui(Cuba,x) ∧ Míssil(x) ⇒ Vende(West, Cuba,x) conhecimento<br />

M) Possui(Cuba,M1) - Eliminação: quantificador existencial e<br />

N) Míssil(M1) conjunção de K<br />

O) Arma(M1) - Modus Ponens a partir de D e N<br />

P) Hostil(Cuba) - Modus Ponens a partir de C e H<br />

Q) Vende(West,Cuba,M1) - Modus Ponens a partir de L, M e N<br />

R) Criminoso(West) - Modus Ponens a partir de A, J, O, F, P e Q<br />

do probl<strong>em</strong>a


Critérios para avaliação das LRC<br />

! Expressividade<br />

o que é possível dizer facilmente na linguag<strong>em</strong>?<br />

! Inferência disponível<br />

que tipo de inferência é possível fazer na linguag<strong>em</strong>?<br />

! Corretude<br />

a inferência é plausível? A s<strong>em</strong>ântica é b<strong>em</strong> definida?<br />

! Eficiência<br />

a inferência se realiza <strong>em</strong> um t<strong>em</strong>po razoável?


Critérios para avaliação das LRC<br />

! Modularidade:<br />

é fácil identificar e reutilizar partes do conhecimento?<br />

! Legibilidade:<br />

é fácil de ler e entender o que está escrito?<br />

! Eficiência aquisicional:<br />

é fácil adicionar conhecimento?


Agente Baseado <strong>em</strong> <strong>Conhecimento</strong><br />

Arquitetura básica e algoritmo<br />

35


Ambiente<br />

Agente Baseado <strong>em</strong> <strong>Conhecimento</strong><br />

(Dedutivo)<br />

Sensores<br />

Efetuadores<br />

Base de<br />

<strong>Conhecimento</strong><br />

Especializada<br />

Ask<br />

Tell<br />

Retract<br />

Representação e<br />

Aquisição de<br />

<strong>Conhecimento</strong><br />

Raciocínio<br />

Automático<br />

Máquina de<br />

Inferência<br />

Genérica


Impl<strong>em</strong>entando Raciocínio:<br />

Laço Principal do Agente<br />

! ASK: pergunta coisas à base<br />

ex. ASK (BC, Criminoso(West)) ou<br />

ASK (BC, ∃x Criminoso (x)))<br />

! TELL: relata novos fatos à base<br />

ex. TELL (BC, Americano (West))<br />

! RETRACT: Elimina fatos da base<br />

ex. RETRACT (BC, Criminoso(Zezinho))


Impl<strong>em</strong>entando Raciocínio:<br />

Laço Principal do Agente<br />

! Programa Agente Baseado <strong>em</strong> <strong>Conhecimento</strong><br />

t := 0 //contador de t<strong>em</strong>po<br />

enquanto Agente-BC vivo, faça<br />

Tell(BC, Percepções-Sentença(percepção,t))<br />

ação


Engenharia do <strong>Conhecimento</strong><br />

Muito de leve...<br />

39


Ciclo de vida dos Sist<strong>em</strong>as <strong>Baseados</strong> <strong>em</strong><br />

Nível de<br />

<strong>Conhecimento</strong><br />

Nível Lógico<br />

Nível de<br />

Impl<strong>em</strong>entação<br />

<strong>Conhecimento</strong><br />

AQUISIÇÃO<br />

FORMALIZAÇÃO<br />

IMPLEMENTAÇÃO<br />

REFINAMENTO<br />

BC<br />

linguag<strong>em</strong> natural<br />

linguag<strong>em</strong> de<br />

representação de<br />

conhecimento<br />

linguagens de<br />

programação


! Aprender<br />

Como adquirir conhecimento?<br />

A grande escolha<br />

se existe conhecimento <strong>em</strong> extensão disponível<br />

mais rápido e simples<br />

envolve várias técnicas<br />

Redes neurais<br />

Aprendizag<strong>em</strong> simbólica<br />

Algoritmos genéticos<br />

ex. categorização de texto, recomendação de filmes, ...<br />

! Explicitar (à mão): Engenharia de <strong>Conhecimento</strong><br />

se conhecimento pode ser facilmente explicitado ou não se t<strong>em</strong><br />

escolha<br />

mais trabalhoso <strong>em</strong>bora preciso<br />

Várias técnicas...<br />

Programação <strong>em</strong> lógica, sist<strong>em</strong>as de produção, ...


Sist<strong>em</strong>as <strong>Baseados</strong> <strong>em</strong> <strong>Conhecimento</strong> X<br />

<strong>Agentes</strong> BC<br />

! Sist<strong>em</strong>as baseados <strong>em</strong> conhecimento<br />

Têm uma base de conhecimento e uma máquina de<br />

inferência associadas<br />

Formalizam e impl<strong>em</strong>entam parte dos agentes<br />

! Qual a diferença?<br />

<strong>Agentes</strong> interag<strong>em</strong> com o ambiente onde estão<br />

imersos através dos sensores e atuadores

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!