Jacques Robin CIn-UFPE

Slides:



Advertisements
Apresentações semelhantes
Lógica de Predicados e Representação de Conhecimento
Advertisements

Inteligência Artificial
INTELIGÊNGIA COMPUTACIONAL
Lógica Matemática e Computacional 7 – Introdução à Programação Lógica
Elsa Carvalho 163 Universidade da Madeira Departamento de Matemática Programação em Lógica e Funcional (2000/01) (Actualizado em 2004/05) Teoria dos Modelos.
Inteligência Artificial Alex F. V. Machado. Tecnologia de Processamento da Informação que envolve processos de raciocínio, aprendizado e percepção. Winston.
Introdução à Programação Lógica
Inteligência Artificial
Representação de Conhecimento na Máquina
Sistemas Baseados em Conhecimento
IA em jogos modelagem de comportamento de personagens
Metodologias Orientadas a Agentes
Agentes Baseados em Conhecimento
Agentes Baseados em Conhecimento
Raciocínio Baseado em Casos
Programação em lógica e lógica
Jacques Robin, Francisco Carvalho, Flávia Barros
FACENS – Engenharia da Computação Inteligência Artificial
FACENS – Engenharia da Computação Inteligência Artificial
FACENS – Engenharia da Computação Inteligência Artificial
Agentes Cognitivos Adaptativos
INF 1771 – Inteligência Artificial
Inteligência Artificial
Sistemas Inteligentes
FACENS – Engenharia da Computação Inteligência Artificial
Sistemas Inteligentes
Inteligência Artificial
Redes Neurais Prof. Alex F. V. Machado.
Inteligência Artificial
Engenharia do Conhecimento Ernesto Trajano Jacques Robin CIn-UFPE.
Engenharia do Conhecimento
Paradigmas de Inteligência Artificial
Agentes Baseados em Regras de Produção
Agentes Baseados em Conhecimento
Paradigmas de Inteligência Artificial
Redes Bayesianas - Aplicação em Risco Operacional
Sistemas Especialistas
Tópicos especiais em controle inteligente e distribuído Professor: Jorge Dantas de Melo Rafael Marrocos Magalhães.
Sistemas Inteligentes
Sistemas Inteligentes Sistemas Baseados em Conhecimento
Agentes Cognitivos Autônomos
Engenharia do Conhecimento
Lógica de Predicados/Primeira Ordem
Marcílio C. P. de Souto DIMAp/UFRN
Tópicos Avançados em Inteligência Artificial
Sistemas Baseados em Conhecimento
Paradigmas da Inteligência Artificial
Sistemas Baseados em Aprendizado (Aprendizado de Máquina)
Sistemas Inteligentes Aula: Sistemas Baseados em Conhecimento 1.
INTRODUÇÃO À PROGRAMAÇÃO EM LÓGICA Profa. Joseluce de Farias Cunha
Projeto Final MCI 2004 Filtragem de s Agente de Classificação de SPAM.
Sistemas Especialistas
Programação em Lógica Indutiva Jacques Robin DI-UFPE.
Introdução a Programação em Lógica e Prolog Jacques Robin CIn-UFPE Aula I/II.
Decidibilidade, Corretude, Completude, Consistência
Agentes Baseados em Conhecimento
Sistemas Inteligentes Aula: Agentes Baseados em Conhecimento Obs.: esta aula não foi totalmente baseada no livro- texto AIMA... Flávia Barros 1.
REVISÃO Prof. Mário Dantas
CIn- UFPE 1 Paradigmas da IA Jacques Robin Geber Ramalho CIn-UFPE.
Inteligência Artificial I
Inteligência Artificial I
HAC 1 MD - junho/2008 Tecnologias de suporte à Mineração de Dados Gerenciamento de dados Data Warehouse OLAP Arquiteturas Visualização Sistemas de Suporte.
Inteligência Artificial
Redes Neurais Artificiais
Introdução à Inteligência Artificial Prof. Cláudio M. N. A. Pereira.
Algoritmos e Programação I
Professora Michelle Luz
Aprendizado por Indução
Apresentação Leonardo Brussolo de Paula
Sistemas de Produção Jacques Robin CIn-UFPE. Roteiro  Definição de um sistemas de produção  Regras de produção  Inferência com regras de produção 
Transcrição da apresentação:

Jacques Robin CIn-UFPE Sistemas Baseados em Conhecimento e Paradigmas de Inteligência Artificial Jacques Robin CIn-UFPE

Agente baseado em conhecimento Ambiente Sensores Raciocínio Automático Base de Conhecimento Especializada Máquina de Inferência Genérica Ask Tell Retract Representação e Aquisição de Conhecimento Efetuadores

O que é conhecimento? Dado, informação ou abstração formatado de maneira a permitir raciocínio por um ser humano ou por uma máquina, por exemplo Classes e objetos Formula da lógica Distribuição de probabilidade prévia e condicional de variáveis aleatórias O que é raciocínio? Mecanismo sistemático para inferir ou derivar novo conhecimento a partir de novas percepções e/ou de conhecimento prévio, por exemplo: Herança de atributos entre classe, sub-classes e objetos Prova de teorema por refutação, resolução e unificação Cálculo de probabilidade posterior de um evento pelo Teorema de Bayes

Exemplo de raciocínio automático com conhecimento: West é criminoso? Sabendo que: 1. É criminoso para um americano de vender armas para uma nação hostil aos EUA 2. Nono tem mísseis 3. Nono comprou todos seus mísseis do Capitão West 4. O Capitão West é americano 5. Nono é uma nação 6. Nono está um inimigo dos EUA 7 . Um míssil é um tipo de arma 8. A inimizade é uma forma de hostilidade 9. Os EUA é uma nação Pode se inferir que: 0. O Capitão West é criminoso? Representando esse conhecimento em lógica dos predicados da 1a ordem ( P,W,N american(P)  weapon(W)  nation(N)  hostile(N)  sells(P,N,W)  criminal(P)) //1  ( W owns(nono,W)  missile(W)) //2  ( W owns(nono,W)  missile(W)  sells(west,nono,W)) //3  american(west) //4  nation(nono) //5  enemy(nono,america) //6   X missile(W)  weapon(W) //7   X enemy(N,america)  hostile(N) //8  nation(america) //9 Provador de teorema pode ser usado para tentar inferir: criminoso(west) //0

Exemplo de raciocínio automático com conhecimento: West é criminoso? Lembram-se de quais mecanismos de dedução estudados na cadeira de lógica?  Refutação? Lembram-se de forma normal? Resolução? Skolemização? Unificação?

Exemplo de raciocínio automático com conhecimento: West é criminoso? Prova por refutação: mostrar que ( P,W,N american(P)  weapon(W)  nation(N)  hostile(N)  sells(P,N,W)  criminal(P)) //1  ( W owns(nono,W)  missile(W)) //2  ( W owns(nono,W)  missile(W)  sells(west,nono,W)) //3  american(west) //4  nation(nono) //5  enemy(nono,america) //6   W missile(W)  weapon(W) //7   N enemy(N,america)  hostile(N) //8  nation(america) //9  criminoso(west) //0 é inconsistente. 1o passo: colocar formula em forma normal (american(P)  weapon(W)  nation(N)  hostile(N)  sells(P,N,W)  criminal(P)) // 1  T  owns(nono,m1) // skolemização 2a  T  missile(m1) // 2b  (owns(nono,W)  missile(W)  sells(west,nono,W)) //3  T  american(west) //4  T  nation(nono) //5  T  enemy(nono,america) //6  missile(W)  weapon(W) //7  enemy(N,america)  hostile(N) //8  T  nation(america) //9  criminoso(west)  F //0

Exemplo de raciocínio automático com conhecimento: West é criminoso? (american(P)  weapon(W)  nation(N)  hostile(N)  sells(P,N,W)  criminal(P)) // 1  T  owns(nono,m1) // skolemização 2a  T  missile(m1) // 2b  (owns(nono,W)  missile(W)  sells(west,nono,W)) //3  T  american(west) //4  T  nation(nono) //5  T  enemy(nono,america) //6  missile(W)  weapon(W) //7  enemy(N,america)  hostile(N) //8  T  nation(america) //9  criminoso(west)  F //0 2o passo: aplicar regra de resolução a pares de clausulas tal que premissa de uma se unifica com conclusão da outra 1. Resolver 2b com 7 unificando W/m1 T  weapon(m1) //10 2. Resolver 6 com 8 unificando N/nono T  hostile(nono) //11 3. Resolver 2a  2b com 3 unificando W/m1 T  sells(west,nono,m1) //12 4. Resolver 4  10  5  11  12 com 1 unificando P/west, W/m1, N/nono T  criminoso(west) //13 5. Resolver 13 com 0 T  F contradição

Tipos de conhecimento Estático x Dinâmico Do problema x Meta-conhecimento (controle, explicação, reuso) Diagnóstico x Causal Dedutivo x Terminológico Intencional x Extensional Síncrono x Diácrono Certo x Incerto Preciso x Vago Declarativo x Procedimental De senso comum x Especialista Explicito x Implícito

Conhecimento estático x dinâmico 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,X-1,Y)  loc(wumpus,X,Y+1)  loc(wumpus,X,Y-1). Meta-regras para controle e explicação do raciocínio Conhecimento dinâmico: Fatos, i.e., proposições sobre instâncias de conceitos ex, loc(wumpus,2,1)  loc(wumpus,1,2)  loc(wumpus,2,3) loc(wumpus,2,3). alive(wumpus,4).  alive(wumpus,7).

Conhecimento causal x diagnóstico prevê resultados de ações e eventos ex, X,Y,T loc(agent,X,Y,T)  orientation(0,T)  forward(T)   loc(wall,X,Y+1)  loc(agent,X,Y+1,T+1). Conhecimento diagnóstico: forma hipóteses sobre causas de efeitos observados ex,  X,Y,T smell(stench,X,Y,T)  smelly(X,Y).  X,Y smelly(X,Y)  (loc(wumpus,X+1,Y)  loc(wumpus,X-1,Y)  loc(wumpus,X,Y+1)  loc(wumpus,X,Y-1)).

Conhecimento terminológico x dedutivo ex,  M, wumpus(M)  monster(M).  M,T monster(M)  alive(M,T)  dangerous(M,T). Conhecimento dedutivo: ex, M,X,Y,T dangerous(M,T)  loc(M,X,Y,T)   safe(X,Y,T). X,Y,T loc(agent,X,Y,T)  orientation(0,T)  forward(T)   loc(wall,X,Y+1)  loc(agent,X,Y+1,T+1).

Conhecimento intencional x extensional Conhecimento intensional: Fatos ou regras universalmente quantificados ex,  X,Y X = 0  X = 5  Y = 0  Y = 5  loc(wall,X,Y). Conhecimento extensional: Instâncias de conceitos 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).

Conhecimento sincrónico x diacrónico Conhecimento diacrónico: Regras de previsão das propriedades do ambiente entre dois instantes T e T+1 devidas a ações ou eventos ex, X,Y,T loc(agent,X,Y,T)  orientation(0,T)  forward(T)   loc(wall,X,Y+1)  loc(agent,X,Y+1,T+1). Conhecimento sincrónico: Regras de propagação das conseqüências não observáveis do ambiente a partir das observadas no mesmo instante T ex, M,X,Y,T dangerous(M,T)  loc(M,X,Y,T)   safe(X,Y,T).

Conhecimento certo x incerto Epistemologicamente booleano ex,  X,Y smelly(X,Y)   smelly(X+1,Y-1)   smelly(X-1,Y-1)  loc(wumpus,X,Y+1). Conhecimento incerto: Epistemologicamente probabilista: ex,  X,Y smelly(X,Y,1)  (loc(wumpus,X+1,Y,0.25)  loc(wumpus,X-1,Y,0.25)  loc(wumpus,X,Y+1,0.25)  loc(wumpus,X,Y-1,0.25)).

Tipos de raciocínios: dedução Dado: Conhecimento prévio ou percepção especifico Ec sobre instância particular de problema ou ambiente Conhecimento genérico G sobre classe de problema ou ambiente Inferir: Novo conhecimento específico Ee sobre instância particular do problema ou ambiente Infere efeito Ee de causa Ec a partir de modelo do ambiente G Exemplo: Dado Ec = loc(agent,1,1,1)  orientation(0,1)  forward(1)   loc(wall,1,2) G = X,Y,T loc(agent,X,Y,T)  orientation(0,T)  forward(T)   loc(wall,X,Y+1)  loc(agent,X,Y+1,T+1) Deduz Ee = loc(agent,1,2,2).

Tipos de raciocínios: abdução Dado: Conhecimentos prévios ou percepções especificos Ee e Eb sobre instância particular de problema ou ambiente Conhecimento genérico G sobre classe de problema ou ambiente Inferir: Novo conhecimento específico Ec sobre instância particular do problema ou ambiente Infere causa Ec de efeito Ee a partir do contexto Eb e modelo do ambiente G Exemplo: Dado Ee = loc(agent,1,2,2) Eb = orientation(0,1)  forward(1)   loc(wall,1,2) G = X,Y,T loc(agent,X,Y,T)  orientation(0,T)  forward(T)   loc(wall,X,Y+1)  loc(agent,X,Y+1,T+1) Abduz Ec = loc(agent,1,1,1).

Tipos de raciocínios: indução Dado: Conjunto de conhecimentos prévios ou percepções específicos Ec, Ee sobre instâncias particulares de problema ou ambiente Conhecimento prévio genérico Gp sobre classe de problema ou ambiente Inferir: Novo conhecimento conhecimento genérico Gn sobre classe de problema ou ambiente Infere parte do modelo do ambiente Gn a partir de causas Ec , efeitos Ee e outra parte do modelo do ambiente Gp Exemplo: Dado {loc(gold,1,2,1)  glitter(1,2,1), ..., loc(gold,4,4,6)  glitter(4,4,6)}  Ec x Ee {loc(gold,1,2,1)  glitter(3,2,1), ..., loc(gold,4,4,6)  glitter(2,1,6)}  Ec x Ee Induz Gn = X,Y,T glitter(X,Y,T)  loc(gold,X,Y,T)

Tipos de raciocínios: analogia Dado: Conjunto de conhecimentos prévios ou percepções específicos completos p1(I1), ..., pn(I1), ..., p1(Im), ... pn(Im) sobre instâncias particulares de problema ou ambiente Medida de similaridade d entre essas instâncias Conhecimento ou percepção específico parcial p1(I0), ..., pi-1(I0), pi+1(I0), ..., pn (I0) sobre uma nova instância particular de problema ou ambiente Inferir: Novo conhecimento específico pi(I0), faltando sobre essa nova instância particular de problema ou ambiente como sendo f(pi(Ij), ..., pi(Ij+k)) onde q, j  q  j+k, d(I0,Iq)  l Exemplo: {result(forward,stench,2) = alive, result(left,stench,2) = alive, result(right,stench,2) = alive, result(pick,stench,2) = alive, result(left,breeze,5) = alive, result(right,breeze,5) = alive, result(pick,breeze,5} = alive} Inferir por analogia: result(forward,breeze,5) = alive

Agente baseado em conhecimento dedutivo ou abdutivo Ambiente Base de Conhecimento Estático (BCE): regras, classes, formulas lógicas universalmente quantificadas Sensores Ask Tell Máquina de inferência dedutiva e/ou abdutiva Retract Ask Base de Conhecimento Dinâmico (BCD): fatos, objetos formulas lógicas instanciadas Efetuadores

Agente baseado em conhecimento analógico Ambiente Sensores Máquina de inferência analógica Tell Ask Retract Base de Conhecimento Dinâmico (BCD): fatos, objetos formulas lógicas instanciadas estruturados por similaridades Efetuadores

Agentes baseados em conhecimento na tipologia dos agentes O agente baseado em conhecimento é: Puramente reativo? Reativo com estado interno? Deliberativo (cognitivo)? Otimizador? Todos! Depende da modelagem e arquitetura usadas na base conhecimento

Lembram do agente deliberativo? Ambiente Sensores Efetuadores Modelo dos ambientes passados e atual Interpretador de percepção Escolhedor de ação Atualizador do modelo do ambiente Preditor de ambientes futuros Modelo de ambientes futuros hipotéticos Objetivos do objetivos

E lembram do agente baseado em conhecimento? Ambiente Sensores Efetuadores Base de Conhecimento Especializada Máquina de Inferência Genérica Ask Tell Retract

Como seria então um agente deliberativo baseado em conhecimento? Ambiente Sensores Efetuadores BCD: modelo dos ambientes passados e atual BCD: modelo de ambientes futuros hipotéticos BCD: Objetivos BCE: interpretação das percepções BCE: atualização do modelo do ambiente do objetivos BCE: predição de ambientes futuros BCE: estratégia de escolha de ações Máquina de inferência Ask Tell Retract

Como se obtém conhecimento? Durante desenvolvimento: Conhecimento estático e dinâmico inicial Manualmente via codificação direta Semi-automaticamente via interface de aquisição de conhecimento Semi-automaticamente via aprendizagem de máquina (indução off-line) Usando metodologias de engenharia de conhecimento Durante execução: Conhecimento dinâmico Automaticamente via percepção, dedução, abdução ou analogia Conhecimento estático Automaticamente via analogia ou indução on-line (agente aprendiz situado)

Engenharia do conhecimento Metodologia para desenvolver sistemas baseados em conhecimento e especialmente bases de conhecimento Orientação a objeto (e também métodos formais) em: linguagens de modelagem, programação e representação do conhecimento favoreceu interseção e convergência entre engenharia de software e engenharia de conhecimento Problemática comum: Robustez, escalabilidade, estendibilidade, reusabilidade, desenvolvimento distribuído, elicitação do conhecimento de especialista do domínio lego em informática Desenvolvimento de uma base de conhecimento: Geralmente em espiral com três níveis principais de captura de conhecimento: Nível do conhecimento, nível da formalização, nível da implementação

Engenharia de uma base de conhecimento Elicitação do conhecimento Nível do conhecimento: Nos termos do especialista do domínio de aplicação Linguagem natural, Notações gráficas ad-hoc Formalização do conhecimento Nível semi-formal: Notação textual estruturada padrão (ex, XML) Notação gráfica padrão (ex, UML) Validação com especialista Nível formal: Notação sem ambigüidade com semântica definida matematicamente (ex, lógica, probabilidades) Verificação de consistência Implementação do conhecimento Nível da implementação: Codificação em uma linguagem de programação Teste de protótipo

Engenharia de uma base de conhecimento Elicitação do conhecimento Nível do conhecimento: Nos termos do especialista do domínio de aplicação Linguagem natural, Notações gráficas ad-hoc Formalização do conhecimento Nível semi-formal: Notação textual estruturada padrão (ex, XML) Notação gráfica padrão (ex, UML) Validação com especialista Nível formal: Notação sem ambigüidade com semântica definida matematicamente (ex, lógica, probabilidades) Verificação de consistência Implementação do conhecimento Nível da implementação: Codificação em uma linguagem de programação Teste de protótipo

Engenharia de uma base de conhecimento Entrevistas estruturadas com especialista Preparação de dados Elicitação do conhecimento Formalização do conhecimento Implementação do conhecimento Nível do conhecimento: Nos termos do especialista do domínio de aplicação Linguagem natural, Notações gráficas ad-hoc Nível semi-formal: Notação textual estruturada padrão (ex, XML) Notação gráfica padrão (ex, UML) Validação com especialista Nível formal: Notação sem ambigüidade com semântica definida matematicamente (ex, lógica, probabilidades) Verificação de consistência Nível da implementação: Codificação em uma linguagem de programação Teste de protótipo Linguagens formais de representação do conhecimento Aprendizagem de Máquina Ontologias Linguagens semi-formais de representação do conhecimento Compiladores Máquinas de inferências Aprendizagem de Máquina

Agente indutivo off-line: fase de treinamento Base de Dados, Exemplos, Casos representativos do ambiente fatos, objetos formulas lógicas instanciadas Máquina de inferência dedutiva e/ou abdutiva Compare Retract Ask Ask Ask Base de Conhecimento Estático (BCE): regras, classes, formulas lógicas universalmente quantificadas Máquina de inferência indutiva Tell Retract Ask

Agente indutivo off-line: fase de utilização Ambiente Base de Conhecimento Estático (BCE) construída por indução: regras, classes, formulas lógicas universalmente quantificadas Sensores Ask Tell Máquina de inferência dedutiva e/ou abdutiva Retract Ask Base de Conhecimento Dinâmico (BCD): fatos, objetos formulas lógicas instanciadas Efetuadores

Agente aprendiz situado Ambiente Sensores Base de Conhecimento Dinâmico (BCD): fatos, objetos formulas lógicas instanciadas Máquina de inferência dedutiva e/ou abdutiva Tell Retract Ask Ask Ask Base de Conhecimento Estático (BCE): regras, classes, formulas lógicas universalmente quantificadas Máquina de inferência indutiva Tell Retract Efetuadores Ask

Recapitulando terminologia de agentes Arquiteturas de agentes: reativo puro reativo com estado interno = autômato deliberativo = cognitivo = baseado em objetivo = planejador otimizador = baseado em utilidade = decision-theoretic aprendiz off-line = indutivo off-line aprendiz situado = aprendiz on-line Agente autônomo: ao mínimo reativo com estado interno Agente adaptativo = agente aprendiz situado Agente baseado em conhecimento: compatível com todas as arquiteturas

Paradigmas de IA Várias metáforas para modelagem computacional de raciocínio e conhecimento: Simbólico Probabilista Conexionista Evolucionista Nebuloso Multiagente Híbrido Diferenças chaves: Forma de representar o conhecimento Forma de raciocinar com esse conhecimento Forma de adquirir esse conhecimento Ciências provendo metáfora

IA Simbólica Raciocinar como manipulação de símbolos representando as entidades, relações, eventos de domínio de aplicação Exemplo: representar entidades, relações e eventos como formulas da lógica usar provador de teorema para raciocinar dedutivamente com tais formulas Inspirada na lógica, semiologia, lingüística e psicologia cognitiva IA via mímica do “software” do cérebro humano Representação do conhecimento: todos os tipos Raciocínio: todos os tipos Aquisição do conhecimento: todos os tipos

IA Simbólica Mais antiga, mais versátil e ainda mais utilizada Inadequada para: Raciocínio pelo qual eliciar conhecimento explícito é muito difícil Raciocínio de baixo nível de interpretação de percepção Reconhecimento de padrões, visão computacional, processamento da fala Raciocínio de baixo nível para disparo de ações reflexas Controle dos motores dos efetuadores do robôs Raciocínio com conhecimento incerto ou muito ruidoso Raciocínio envolvendo cálculo ou probabilidades

IA Conexionista Raciocinar como ativações de ligações em uma redes (de neurônios, de eventos, de entidades) Inspirada na neurologia IA via mímica do “hardware” do cérebro humano Representação do conhecimento: conjunto de atributo-valores de poder expressivo equivalente a lógica proposicional Raciocínio: indutivo ou analógico durante treinamento, dedutivo, abdutivo ou analógico durante utilização Aquisição do conhecimento: aprendizagem

Redes neurais: exemplo do mundo do Wumpus Entrada da rede: codificação binária de pares atributos-valores Saída da rede: codificação binária de pares atributos-valores nenhuma percepção 00000 stench 00001 breeze 00010 glitter 00100 scream 01000 batida 10000 ... stench  breeze  glitter  01111 forward 000 101 111 right 001 left 010 shoot 011 pick 100 out

Redes Neurais: princípios w1i e(i) sj wji ó õ s(i) wni sn camada de entrada camada de saída camada escondida

Redes Neurais: princípios Criar base de exemplos: Exemplos positivos: pares (seqüência de percepção,sequencia de ação) que resultaram no explorador sair da caverna vivo com o ouro Exemplos negativos: pares (seqüência de percepção,sequencia de ação) que resultaram no explorador morrer Dividir essa base em treinamento e teste Iniciar pesos da rede com valores aleatorias Codificar todas as seqüências de percepção em bits de entrada da rede Propagar essas seqüências de percepções e comparar saída da rede com codificação binária das seqüências de ação bem sucedidas Ajustar pesos para minimizar distância média quadrada entre saída da rede e a melhor sequencia de ação

Redes neurais: exemplo do mundo do Wumpus Entrada da rede: codificação binária de pares atributos-valores Saída da rede: codificação binária de pares atributos-valores nenhuma percepção 00000 stench 00001 breeze 00010 glitter 00100 scream 01000 batida 10000 ... stench  breeze  glitter  01111 forward 000 101 111 right 001 left 010 shoot 011 pick 100 out

IA Conexionista Adequada para: Inadequada: Raciocínio pelo qual eliciar conhecimento explícito é muito difícil Raciocínio de baixo nível de interpretação de percepção Reconhecimento de padrões, visão computacional, processamento da fala Raciocínio de baixo nível para disparo de ações reflexas Controle dos motores dos efetuadores do robôs Inadequada: Para domínios relacionais requerem representação da 1a ordem Para aplicações críticas requerendo explicações detalhadas e claras do porque das decisões do agentes (ex, central nuclear, cirurgia, investimento de grande porte)

IA Evolucionista Raciocinar como construção de soluções por um processo iterativo de geração semi-aleatório de hipóteses seguida por uma seleção das mais adaptadas ao ambiente Inspirada na teoria da evolução, paleontologia, socio-biologia IA via mímica do “processo de desenvolvimento” do cérebro humano Representação do conhecimento: conjunto de atributo-valores de poder expressivo equivalente a lógica proposicional Raciocínio: indutivo durante treinamento, dedutivo ou abdutivo durante utilização Aquisição do conhecimento: aprendizagem

Algoritmos genéticos: exemplo no mundo do Wumpus Entrada: vocabulário básico de atributos e domínio de valores glitter, stench, breeze, ...  {yes/no} action  {forward,turnRight,turnLeft,shoot,pick, ...} Saída: árvore de decisão cujos ramos testam valores de (alguns) atributos e cujas folhas indicam decisão a tomar 1a geração de indivíduo: conjunto de árvores de decisão gerados aleatóriamente Cada par (atributo,valor) é visto como um gen Cada árvore de decisão é visto como um genótipo glitter? turnRight shoot yes no turnLeft pick breeze? Indivíduo 1 Indivíduo N stench? pick yes no ...

Algoritmos genéticos: princípio Os indivíduos da geração i são testados no ambiente Função de fitness determina métrica de desempenho e limiar de sobrevivência A geração i+1 é formada por: Cruzamento dos genótipos dos sobrevivente da geração i (reprodução) Cortar e colar aleatória da árvore pai com a árvore mãe Mutação dos sobreviventes da geração i Modificação aleatória da árvore Iteração até uma geração conter indivíduo com desempenho acima de limiar desejado

Algoritmos genéticos: reprodução Filha glitter? turnRight no pick breeze? yes Mãe Pai stench? pick no glitter? stench? pick yes stench? no Filho shoot yes turnLeft breeze? no yes no yes no breeze? breeze? stench? pick yes no yes no yes no turnLeft shoot pick turnRight pick pick

Algoritmos genéticos: mutação Original glitter? Mutante 1 glitter? yes no yes no breeze? breeze? stench? breeze? yes no yes no yes no yes no turnLeft shoot pick turnRight turnLeft shoot pick turnRight Mutante 2 glitter? Mutante 3 glitter? yes no yes no turnRight pick breeze? yes no shoot turnLeft breeze? yes no breeze? yes no turnLeft shoot pick

IA Evolucionista Adequada para: Raciocínio pelo qual eliciar conhecimento explícito é muito difícil Raciocínio de baixo nível de interpretação de percepção Reconhecimento de padrões, visão computacional, processamento da fala Raciocínio de baixo nível para disparo de ações reflexas Controle dos motores dos efetuadores do robôs Inadequada para domínios relacionais requerem representação da 1a ordem

IA Nebulosa Raciocinar em termos intuitivos com “palavras” e “quantidades qualitativas” do quotidiano “alto”, “baixo”, “muito”, “pouco”, ... “Voce vai ao cinema hoje?” “Vou de tardezinha.” “Estou com muita vontade de ir” Inspirada na lingüística e lógicas não booleanas com valores de verdades contínuas IA via mímica do “software” do cérebro humano Representação do conhecimento: versões nebulosas de lógica e regras Raciocínio: dedução e abdução Aquisição do conhecimento: manual

IA nebulosa Teoria de Conjunto Convencional (Booleano): Teoria de Conjunto Fuzzy: 42°C 39.3°C “Febre Alta” 38.7°C d,fcnas.dfknj aösl.dkjf ölaskdjf öaslkjdf öaslkdfj as df as df a sdf asd f as df asdf df asdf 38°C 37.2°C 40.1°C 41.4°C “mais ou menos“ ao invés de “ou isto ou aquilo”! 42°C 39.3°C 37.2°C

IA Nebulosa Função de pertinência mA de elemento X a conjunto nebuloso A mA: X -> [0,1] 1 X(m) alto baixo 1,55 1,80 Incerteza... no dia a dia se vive para tratar ambiguidade linguistica imprecisao mALTO(1,70) = 0.6, lêia-se 1,70 pertence à classe alto c/ pertinência de 0.6

IA Nebulosa Nova teoria dos conjuntos => nova lógica rejeita os axiomas da consistência (P Ù Ø P Þ F) e do terceiro excluído (P Ú Ø P Þ T) Operadores lógicos: Sendo r, r1 e r2 fórmulas bem formadas Ø r = 1 - r r1 Ù r2 = min (r1,r2) ou r1 ´ r2 (t-norma) r1 Ú r2 = max (r1,r2) ou r1 + r2 (s-norma) $ ri = min (r1,r2), i Î U " ri = max (r1,r2), i Î U r1 Þ r2 = min (r1,r2) o Propriedades: comutatividade, associatividade, monotonicidade, elemento neutro, ...

IA Nebulosa Lógica Fuzzy define a estratégia de controle no nível linguístico! Measured Variables Command Variables Inference + composition (Linguistic Values) (Linguistic Values) Linguistic Level Fuzzification Defuzzification Numerical Level Measured Variables Plant Command Variables (Numerical Values) (Numerical Values)

Lógica nebulosa: exemplo no mundo do Wumpus  X,Y m(loc(X,Y),smelly,1)  m(loc(X+1,Y),safe,0.10)  X,Y m(loc(X,Y),smelly,1)  m(loc(X-1,Y),safe,0.10)  X,Y m(loc(X,Y),smelly,1)  m(loc(X,Y+1),safe,0.10)  X,Y m(loc(X,Y),smelly,1)  m(loc(X,Y-1),safe,0.10)  X,Y m(loc(X,Y),breezy,1)  m(loc(X+1,Y),safe,0.10)  X,Y m(loc(X,Y),breezy,1)  m(loc(X-1,Y),safe,0.10)  X,Y m(loc(X,Y),breezy,1)  m(loc(X,Y+1),safe,0.10)  X,Y m(loc(X,Y),breezy,1)  m(loc(X,Y-1),safe,0.10) m(loc(1,1),smelly,0)  m(loc(1,1),breezy,0)  m(loc(1,1),safe,?) m(loc(1,2),smelly,0)  m(loc(1,2),breezy,1)  m(loc(1,1),safe,?) m(loc(1,2),smelly,1)  m(loc(1,2),breezy,1)  m(loc(1,1),safe,?)

Lógica nebulosa: exemplo no mundo do Wumpus  X,Y m(loc(X,Y),smelly,1)  m(loc(X+1,Y),safe,0.25)  X,Y m(loc(X,Y),smelly,1)  m(loc(X-1,Y),safe,0.25)  X,Y m(loc(X,Y),smelly,1)  m(loc(X,Y+1),safe,0.25)  X,Y m(loc(X,Y),smelly,1)  m(loc(X,Y-1),safe,0.25)  X,Y m(loc(X,Y),breezy,1)  m(loc(X+1,Y),safe,0.25)  X,Y m(loc(X,Y),breezy,1)  m(loc(X-1,Y),safe,0.25)  X,Y m(loc(X,Y),breezy,1)  m(loc(X,Y+1),safe,0.25)  X,Y m(loc(X,Y),breezy,1)  m(loc(X,Y-1),safe,0.25) m(loc(1,1),smelly,0)  m(loc(1,1),breezy,0)  m(loc(1,1),safe,0.56) m(loc(1,2),smelly,0)  m(loc(1,2),breezy,1)  m(loc(1,1),safe,0.19) m(loc(1,2),smelly,1)  m(loc(1,2),breezy,1)  m(loc(1,1),safe,0.06)

IA Híbrida

IA Distribuída e Sistemas Multi-Agentes

Provador de teoremas: exemplo no mundo do Wumpus

Métodos de IA Simbólica Árvores Regras Lógica Classes Instâncias Modelagem Manual de Decisão Sistemas de Produção Provadores de Teoremas Frames OOPL Programação em Lógica Lógicas Descritivas Aprendizagem de Máquina ID3 ILP KNN CBR Representação do Conhecimento Aquisição do Conhecimento

Sistemas híbridos simbólicos Engenharia manual do conhecimento: Regras + Lógica: Programação em lógica Classes + Lógica: Lógicas Descritivas Regras + Classes + Procedimentos: Sistemas de Produção Orientados a Objetos (EOOPS) Regras + Classes + Lógica: Programação em Lógica Orientada a Objetos (OOLP)

Métodos de IA Numérica Numérica Evolucionista Conexionista Representação do Conhecimento Numérica Evolucionista Conexionista Probabilista Outras Modelagem Manual Cadeias de Markov Aprendizagem de Máquina Algoritmos Genéticos Redes Neurais Classificador Bayesiano Ingênuo Aprendizagem Q Aquisição do Conhecimento

Sistemas híbridos numéricos Aprendizagem de máquina: Conexionista + Nebuloso: Sistemas neuro-fuzzy Evolucionista + Nebuloso: Sistemas fuzzy-genéticos Evolucionista + Conexionista: Sistemas neuro-genéticos Evolucionista + Conexionista + Nebuloso: Sistemas neurofuzzy-genéticos

Sistemas híbridos numérico-simbólicos Engenharia manual do conhecimento: Numérica + lógica: Lógica nebulosa Aprendizagem de máquina: Conexionista + regras: Sistemas neuro-simbólico Engenharia manual do conhecimento e/ou aprendizagem de máquina: Conexionista + probabilista + simbólico: Redes Bayesianas

IA Probabilista Raciocinar usando as leis das probabilidades e da estatística representando eventos de domínio de aplicação como variáveis aleatórias Inspirada na probabilidade e estatística IA como escolha da decisão que maximiza a esperança matemática da utilidade dado uma distribuição de probabilidades de eventos Representação do conhecimento: distribuição de probabilidade ou versões com anotações probabilistas dos formalismos simbólicos Raciocínio: todos os tipos Aquisição do conhecimento: todos os tipos Adequado para ambientes não-deterministas e conhecimento incerto

Redes Bayesianas: exemplo no mundo do Wumpus

Algum problema com nosso uso dos paradigmas numéricos para o mundo do Wumpus? Constantes: agent,gold,wumpus,...,1,2,3,... Variáveis: X,Y,Z,T,..., Predicados: =, see/1,pick/1,loc/4, ... Conectivas: , , ,

Processo de desenvolvimento de agentes baseado em conhecimento Identificar as características do ambiente do agente Escolher a arquitetura de agente mais adequada para tais características Para cada elemento nessa arquitetura: Identificar: Tipos de raciocínios necessários Tipos de conhecimentos necessários Disponibilidade de conhecimento na forma de especialista humano, literatura ou documentação, ontologia parcialmente re-aproveitável Disponibilidade de dados, exemplos, casos ou ambiente de simulação Em função disso, escolher: Paradigma de IA Formalismo de representação de conhecimento Máquina de inferência Métodos e ferramentas de aquisição de conhecimento Aplicar sub-processo de desenvolvimento da base de conhecimento Integrar os elementos Testar o protótipo completo e possivelmente iterar

Conhecimento explícito x implícito Sentenças simbólicas explicitamente armazenadas na base de conhecimento Conhecimento implícito: Axiomas que devem ser verificados para que a base de conhecimento reflete o ambiente modelado Idealmente documentadas, no entanto muitas vezes presentes apenas na cabeça do engenheiro do conhecimento Suposições permitindo codificação mais simples e concisa da base de conhecimento Explicitar conhecimento implícito necessário para tornar BC facilmente extensível

Conhecimento explícito x implícito: exemplo de explicitação de conhecimento A codificação see(glitter)  pick. Deixa implícito que: Existe um único agente no ambiente See é uma percepção Pick é uma ação A visão do agente é limitada a caverna no qual se encontra O ouro é o único objeto a brilhar e o único objeto que o agente pode pegar

Conhecimento explícito x implícito: exemplo de explicitação de conhecimento Quando essas suposições não são mais verificadas, a codificação tem que tornar-se mais explícita, ex: A,C,T,X,Y agent(A)  loc(C,[(X,Y)])  time(T)  in(A,C,T)  horizCoord(X)  verticCoord(Y)  percept(A,C,T,vision,glitter)   O physObj(O)  emit(O,glitter)  in(O,C,T). O physObj(O)  emit(O,glitter)  ouro(O). O ouro(O)  treasure(O). A,C,T,X,Y,O agent(A)  loc(C,[(X,Y)])  time(T)  in(A,C,T)  horizCoord(X)  verticCoord(Y)  in(O,C,T)  treasure(O)  chooseAction(A,T+1,pick(O)).

Ementa da disciplina

Revisão de lógica Refutação: Formal normal (implicativa): Para provar BC  C verdadeiro, provar BC  C falso Porque? Por que (BC  C)  (BC  C)  (BC  C)  BC  C Formal normal (implicativa): Para qualquer formula da lógica dos predicados da 1a ordem, existe uma formula com mesmas valores de verdades da forma: X1, ..., Xk P1(...,Xi,...)  ...  Pm(...,Xj,...)  C1(...,Xu,...)  ...  Cm(...,Xv,...) Regra de resolução (implicativa): Caso proposicional: ((A  B)  (B  C))  (A  C) A  B e B  C se resolvam em A  C Caso da 1a ordem: (A  B)  (C  D)  (B) = (C)  ((A)  (D)) onde  é a substituições das variáveis que unificam B com C A  B e C  D se resolvam em (A)  (D) pela unificação de B com C via  Unificação: conjunto de substituições variável/constante ou variável1/variável2 em 2 termos a unificar para torná-los iguais