1 Agentes Baseados em Conhecimento Natureza do Conhecimento Agentes baseados em conhecimento Aquisição de conhecimento Inferência CIn- UFPE 2 Ilustrações e reflexões Exemplos • West é criminoso ou não? – “A lei americana diz que é proibido vender armas a uma nação hostil. Cuba possui alguns mísseis, e todos eles foram vendidos pelo Capitão West, que é americano” • Qual é a doença de Dona Maria? – “Dona Maria tem febre, dor no corpo e apresenta pintas pequenas vermelhas” Questões • Seria possível responder estas questões com busca? • Se não, por que? • Senão, o que seria necessário? CIn- UFPE 3 O que seria necessário... Segundo a IA... • Identificar o conhecimento do domínio • Representá-lo em uma linguagem formal • Implementar um mecanismo de inferência para utilizá-lo The Knowledge Principle (Lenat & Feigenbaum) • If a program is to perform a complex task well, it must know a great deal about the world in which it operates Tão fácil assim? O que vai pegar? CIn- UFPE 4 Questões-chave O que é conhecimento? Como ele é usado pelos agentes? Como adquirí-lo (extraí-lo, identificá-lo, apreendê-lo...)? Como representá-lo adequadamente? Como raciocinar com ele correta e eficientemente? CIn- UFPE 5 O que é Conhecimento? CIn- UFPE 6 Dados x Informação x Conhecimento: qual a diferença??? Dados: • cadeias numéricas ou alfanuméricas que não possuem significado associado • ex. 12, m1, west, 10.... ( ?) Informação: • dados organizados: significam alguma coisa para quem os recebe • ex. 01, 03, 04, 06, 07, 08, 10 (meses ???) Conhecimento: • Dado, informação ou abstração formatado de maneira a permitir raciocínio por um ser humano ou por uma máquina CIn- UFPE Como se traduz o Conhecimento da Máquina? 7 Exemplos de conhecimento • Classes e objetos – relação Arma - Míssil - m1 • Formula da lógica – InimigoPolítico(Cuba,USA) • Distribuição de probabilidade prévia e condicional de variáveis aleatórias – P(Cuba-usar-míssil-contra-USA |Cuba-tem-m1) = 0,3 Basta saber isto? • Não, é preciso saber como estruturar (representar) o conhecimento, para efetivamente saber como usá-lo.... CIn- UFPE 8 Tipos de conhecimento... Existem vários aspectos .... • • • • • • • • • • • Em intenção x Em extensão Estático x Dinâmico Do problema x Meta-conhecimento Diagnóstico x Causal Dedutivo x Terminológico Síncrono x Diacrônico Certo x Incerto Preciso x Vago Declarativo x Procedimental De senso comum x Especialista Explicito x Implícito ... que ao longo do curso iremos discutir. CIn- UFPE 9 Como o Conhecimento é usado? Agentes baseados em conhecimento CIn- UFPE 10 Agentes Baseados em Conhecimento 2 componentes principais (separados): • Base de Conhecimento • Mecanismo de Inferência Base de Conhecimento: • contém sentenças em uma Linguagem de Representação de Conhecimento “tratável” pelo computador – representações de regras e fatos – ex. " x Míssil(x) Arma(x) Míssil(M1) Mecanismo (máquina) de Inferência associado: • responsável por inferir, a partir do conhecimento da base, novos fatos ou hipóteses intermediárias/temporárias – ex. M1 é uma arma CIn- UFPE Agente baseado em conhecimento (dedutivo) 11 Raciocínio Automático Sensores Ambiente Ask Base de Conhecimento Especializada Efetuadores Tell Retract Máquina de Inferência Genérica Representação e Aquisição de Conhecimento CIn- UFPE Implementando raciocínio: laço principal do agente 12 Ask: pergunta coisas à base • ex. ASK (BC, Criminoso(West)) ou ASK (BC, $x Criminoso (x))) TELL: relata novos fatos à base • ex. TELL (BC, Americano (West)) RETRACT: Elimina fatos da base • ex. RETRACT (BC, Criminoso(Zezinho)) CIn- UFPE Implementando raciocínio: laço principal do agente 13 Programa Agente Baseado em Conhecimento t := 0 //contador de tempo enquanto Agente-BC vivo, faça Tell(BC, Percepções-Sentença(percepção,t)) ação <- Ask(BC, Pergunta-Ação(t)) Executa(ação) Tell(BC, Ação-Sentença(ação,t)) t <- t + 1 CIn- UFPE 14 Conhecimento estático x dinâmico Conhecimento estático: aquele que já existe na BC e não mudará • Hierarquia de conceitos (classes de fatos) – ex, " X, wumpus(X) monstro(X). • Restrições de integridades – ex, " X,Y wumpus(X) wumpus(Y) X = Y. • Regras de dedução sobre o domínio – ex, " X,Y smelly(X,Y) (loc(wumpus,X+1,Y) loc(wumpus,X1,Y) loc(wumpus,X,Y+1) loc(wumpus,X,Y-1). • Meta-regras para controle e explicação do raciocínio – ex. preferir ir para direita em caso de mais de uma escolha CIn- UFPE 15 Conhecimento estático x dinâmico Conhecimento dinâmico: só existe durante a resolução de uma instância particular do problema • descrição da instância, hipóteses atuais, fatos novos,... • ex, loc(wumpus,2,1) loc(wumpus,1,2) loc(wumpus,2,3) loc(wumpus,2,3). alive(wumpus,4). alive(wumpus,7). CIn- UFPE 16 Como adquirir o conhecimento? CIn- UFPE 17 A grande escolha Aprender • se existe conhecimento em extensão disponível • mais rápido e simples • envolve várias técnicas – Redes neurais – Aprendizagem simbólica – algoritmos genéticos • ex. categorização de texto, recomendação de filmes, ... Explicitar (à mão): engenharia de conhecimento • se conhecimento pode ser facilmente explicitado ou não se tem escolha • mais trabalhoso embora preciso • Várias técnicas... – Programação em lógica, sistemas de produção, ... CIn- UFPE 18 Conhecimento em intenção x extensão Conhecimento em intenção • Definição do conceito (ou ação), normalmente usando regras, em termos de sua função, estrutura, etc. – ex. cadeira: serve para sentar, tem assento, ... – ex. quem tem dengue tem febre, dores, ... – ex, " X,Y X = 0 X = 5 Y = 0 Y = 5 loc(wall,X,Y) Conhecimento em extensão: Instâncias do conceito • ex. cadeira 1, cadeira 21, cadeira 613, .... • ex. a dengue de João, a dengue de Zé, ... • ex, loc(wall,0,1). loc(wall,0,2). loc(wall,0,3). loc(wall,0,4). loc(wall,5,1). loc(wall,5,2). loc(wall,5,3). loc(wall,5,4). loc(wall,1,0). loc(wall,2,0). loc(wall,3,0). loc(wall,4,0). loc(wall,1,5). loc(wall,2,5). loc(wall,3,5). loc(wall,4,5). CIn- UFPE Ciclo de vida dos sistemas baseados em conhecimento Nível de Conhecimento Nível Lógico 19 linguagem natural AQUISIÇÃO ex. a ponte princesa Isabel liga a rua da Imperatriz à rua Nova FORMALIZAÇÃO linguagem de representação de conhecimento Ex. liga(Ponte-PI,RI,RN) Nível de Implementação linguagens de programação IMPLEMENTAÇÃO BC REFINAMENTO CIn- UFPE 20 Como representar conhecimento? CIn- UFPE 21 Perguntinha... Como o conhecimento é representado nos agentes de busca (resolução de problemas)? O que há de errado? CIn- UFPE 22 Linguagens de Representação do Conhecimento Uma Linguagem de Representação do Conhecimento é definida por: 1) uma sintaxe, que descreve as configurações que podem constituir sentenças daquela linguagem; 2) uma semântica, que liga cada sentença aos fatos no mundo que ela representa – cada sentença faz uma afirmação a respeito do mundo; E têm um mecanismo de inferência associado = raciocínio CIn- UFPE Linguagens de Representação do Conhecimento 23 Linguagens de programação: • são precisas, porém não são suficientemente expressivas Linguagens naturais: • são muito expressivas, porém são ambíguas Linguagens de representação de conhecimento (LRC): • utilizadas para expressar as sentenças das BC • existem 3 grandes classes: – linguagens (predominantemente) declarativas – linguagens procedimentais – linguagens híbridas CIn- UFPE 24 Representação & Raciocínio Raciocínio é um processo de construção de novas sentenças a partir de sentenças existentes (manipulação sintática). Raciocínio plausível (sound): • garante que novas sentenças representem fatos que se seguem dos representados pelas sentenças existentes na BC fatos segue-se fatos Mundo Representação sentenças implica sentenças CIn- UFPE 25 Representação & Raciocínio A lógica é uma linguagem de representação boa porque garante que apenas sentenças válidas sejam geradas Além disso, possui outras propriedades • Composicionalidade: o significado de uma sentença é função do de suas partes • Monotonicidade: Tudo que era verdade continua sendo depois de uma inferência • Localidade: inferência apenas com comparações locais (porção da BC). CIn- UFPE 26 Interpretação Uma sentença lógica não significa nada por si só... • É preciso estabelecer uma correspondência entre fatos e sentenças através de uma interpretação • Exemplo: “O Papa já está no Rio” – mensagem secreta trocada entre dois agentes do FBI que significa que os documentos sobre as armas do Iraque (o Papa) foram entregues ao Pentágono (o Rio) a salvo (já está). Nesta ótica, uma sentença pode ser: • Válida: verdadeira sob qualquer interpretação – o papa está em Roma ou não está em Roma • Satisfatível: verdadeira sob (pelo menos) uma interpretação • Insatisfatível: falsa sob qualquer interpretação – o papa está em Roma e no Rio CIn- UFPE 27 Inferência em Computadores Computadores têm conhecimento limitado sobre o mundo: • não sabem que interpretação foi dada às sentenças na BC, e • não sabem tudo sobre o mundo, apenas o que existe na BC. Então, como responder à pergunta: “Está OK mover o agente para (2,2)?” • O computador não necessita saber qual a interpretação utilizada, nem qual o estado atual do mundo: basta testar a validade da sentença abaixo – “Se a BC é verdade, então (2,2) está OK” CIn- UFPE novo conhecimento A) " x,y,z Zaco(x) Bila(y) Noia(z) Hesta(z) Vada(x,z,y) Creme(x) Interpretação B) " x Guru(x,USA) Hesta(x) Zaco = Americano C) " x Inp(x,USA) Hesta(x) Bila = Arma D) " x Moca(x) Bila(x) Noia = Nação E) " x Bimba(x) Bila(x) Hesta = Hostil F) Noia(Cuba) Vada = Vende G) Noia(USA) Creme = Criminoso H) Inp(Cuba,USA) Possa = Possui I) Inp(Irã,USA) Moca = Míssil Bimba = Bomba J) Zaco(West) Inp = InimigoPolítico K) $ x Possa(Cuba,x) Moca(x) L) " x Possa(Cuba,x) Moca(x) Vada(West, Cuba,x) M) Possa(Cuba,M1) N) Moca(M1) O) Bila(M1) P) Hesta(Cuba) Q) Vada(West,Cuba,M1) R) Creme(West) conhecimento do problema conhecimento prévio Exemplo com lógica... - Eliminação: quantificador existencial e conjunção de K - Modus Ponens a partir de D e N - Modus Ponens a partir de C e H - Modus Ponens a partir de L, M e N - Modus Ponens a partir de A, J, O, F, P e Q A) " x,y,z Americano(x) Arma(y) Nação(z) Hostil(z) Vende(x,z,y) Criminoso(x) B) " x Guerra(x,USA) Hostil(x) C) " x InimigoPolítico(x,USA) Hostil(x) D) " x Míssil(x) Arma(x) E) " x Bomba(x) Arma(x) F) Nação(Cuba) G) Nação(USA) H) InimigoPolítico(Cuba,USA) I) InimigoPolítico(Irã,USA) novo conhecimento J) Americano(West) K) $ x Possui(Cuba,x) Míssil(x) L) " x Possui(Cuba,x) Míssil(x) Vende(West, Cuba,x) M) Possui(Cuba,M1) N) Míssil(M1) O) Arma(M1) P) Hostil(Cuba) Q) Vende(West,Cuba,M1) R) Criminoso(West) conhecimento do problema conhecimento prévio Mesmo exemplo... mais inteligível (para nós) - Eliminação: quantificador existencial e conjunção de K - Modus Ponens a partir de D e N - Modus Ponens a partir de C e H - Modus Ponens a partir de L, M e N - Modus Ponens a partir de A, J, O, F, P e Q 30 Como raciocinar? CIn- UFPE 31 Categorias de Raciocínio (Inferência) Dedução: fatos + regras de inferência => novos fatos. • ex. Onde há fogo, há fumaça. Aqui tem fogo, logo... Abdução: inverso da dedução. • ex. Se há fumaça, há fogo. Indução: parte-se dos fatos para gerar regras. • ex. Se Sr. Antônio, assim como D. Maria, tem dor de cabeça e dengue, então todo mundo que tem dengue, tem dor de cabeça. Analógico: casos + regras de adaptação • ex.: Para construir este hospital, vou me basear no projeto daquele outro CIn- UFPE Implementando raciocínio Principais sistemas de raciocínio declarativos/dedutivos Linguagens de Representação lógica Provadores de teorema Sistemas (implementação) regras objetos híbridos Sistemas Redes Semânticas Sistemas Frames Sistemas de Lógica descritiva Sistemas OO Programação em lógica Sistemas de produção Sistemas de manutenção da verdade regras+objetos lógica+objetos lógica+objetos+ funções Observações sobre linguagem e raciocínio 33 Separação controle - conhecimento • Seja lá qual for o raciocínio, haverá sempre um motor geral que o implementará • A tarefa do engenheiro de IA é “só” codificar corretamente o conhecimento Isto se chama Programação Declarativa: diz “o que” • representação descritiva dos fatos, relacionamentos e regras – ex. as partes de uma bicicleta e seus relacionamentos – ex. o pai do pai é o avô já na procedimental, se diz “como” • fatos e seqüências de instruções para manipular esses fatos – ex.: como desmontar uma bicicleta CIn- UFPE Observações sobre linguagem e raciocínio 34 O par linguagem-raciocínio é independente do tipo de arquitetura de agente KRL & reasoning • agente reativo => lógica, regras, funções, .... • Agente cognitivo => busca, lógica, regras, planejamento,... • Agnte otimizador => função utilidade,... reativo cognitivo otimizador Arquiteturas CIn- UFPE 35 Quais são os critérios para escolher uma linguagem de representação de conhecimento? CIn- UFPE 36 Critérios Expressividade • o que é possível dizer facilmente na linguagem? Inferência disponível • que tipo de inferência é possível fazer na linguagem? Corretude • a inferência é plausível? A semântica é bem definida? Eficiência • a inferência se realiza em um tempo razoável? Modularidade: • é fácil identificar e reutilizar partes do conhecimento? Legibilidade: • é fácil de ler e entender o que está escrito? Eficiência aquisicional: • é fácil adicionar conhecimento? CIn- UFPE