Fundamentos de IA e Sistemas baseados em Conhecimento Acadêmicos: Rodrigo Kishi e José Ricardo
Introdução "Não se pode ensinar tudo a alguém, pode-se apenas ajudá-lo a encontrar por si mesmo" (Galileu Galilei) O que se deseja alcançar com as técnicas de IA? Capacitar o computador a executar funções que são desempenhadas pelo ser humano usando conhecimento e raciocínio Agir inteligentemente conhecimento que possuímos precisamos incorporar conhecimento
Fundamentos Agindo de forma humana: O Teste de Turing (1950)‏ processamento de linguagem natural, representação de conhecimento, raciocínio automatizado, aprendizado de máquina,  visão computacional, robótica poucos esforços para tentar passar no teste Pensando como um humano: A Modelagem Cognitiva como a mente humana funciona? introspecção e experimentos psicológicos autores do GPS comparavam os registros dos passos realizados pelo programa e os passos realizados por humanos para resolverem os mesmos problemas Pensando racionalmente: As Leis do Pensamento Aristóteles e seus silogismos => lógica formal não é simples formalizar  explosão combinatória Agindo racionalmente: O Agente Racional
Fundamentos Filosofia (428 a.c)‏ Matemática (800)‏ Psicologia (1879)‏ Engenharia da Computação (1940)‏ Linguística (1957)‏
Fundamentos Filosofia (428 a.c Como o conhecimento leva a uma ação? Matemática (800)‏ O que pode ser computado? Psicologia (1879)‏ Como funcionam os cérebros dos animais e humanos? Como estes agem? Engenharia da Computação (1940)‏ Como construir sistemas eficientes? Linguística (1957)‏ Como a linguagem interfere no raciocínio e no conhecimento? Economia (1776)‏ Como tomar decisões a longo prazo. Neurociência (1861)‏ Como o cérebro processa informações? Teoria do controle ( Control Theory ) e cibernética (1948)‏ Como os artefatos devem operar quando estiverem sob seu próprio controle?
História da IA (Norvig e Russel)‏ Gestação (1943 - 1956)‏ Turing O nascimento da IA (1952)‏ Princeton – John McCarthy e Minsky Entusiasmo, grandes expectativas (1952 - 1969)‏ Poucos conhecimentos sobre os domínios Uma dose de realidade (1966 - 1974)‏ Sistemas Baseados em Conhecimento: A chave para o poder? (1969 -1979)‏ A IA se torna uma indústria (1980 - 1988)‏ O retorno das redes neurais (1986 - até hoje)‏ A IA se torna uma ciência (1987 - até hoje)‏ Construção a partir de teorias estabelecidas e utilização no mundo real Agentes Inteligentes (1995 - até hoje)‏ O sufixo “-bot”
Invernos da IA Inspirados nos "Invernos Nucleares" processo de euforia, desapontamento e corte de financiamento railway mania  (Inglaterra, 1840) e a bolha da internet Primeira vez em 1984 em um debate no encontro anual da AAAI ( American Association of Artificial Intelligence )  Roger Schank e Marvin Minsky avisaram à indústria que o entusiasmo em relação à IA havia saído do controle Três anos depois a indústria bilionária de IA começou a entrar em colapso OS Invernos da IA Perceptrons: criados em 58, inverno: 69 a 79 Perceptrons de Minsky e Papert, 1969 (XOR)‏ 1974−80  1987-até hoje?
Estado da arte IEEE Intelligent Systems, may/june 2008: planejamento de rotas obtenção de informações da web carros inteligentes percepção multimodal aplicações baseadas em ontologias human computation Planejamento e agendamento autônomos "Remote Agent" da Nasa Jogos - Deep Blue, bots Diagnósticos - nós linfáticos Planejamento Logístico -  Golfo Pérsico, 1991: Dynamic Analisys and Replanning Tool (DART). Planejamento de transportes (50.000 veículos) e logística, pontos de partida, rota e ponto de chegada em horas, ao invés de semanas. O DART sozinho pagou 30 anos de investimentos em IA da DARPA. Robótica Interpretação de linguagem e resolução de problemas Proverb (palavras-cruzadas)‏
Contexto Globalização da economia conhecimento é a mola propulsora rápida obsolência das tecnologias maior competitividade das empresas diminuição da produtividade dos recursos valorização do serviço ao cliente Sistemas Inteligentes (SIs)‏ manipulam conhecimentos especializados benefícios qualitativos e quantitativos trabalham eficazmente com o conhecimento
Dado, Informação e Conhecimento Dado é o elemento  puro faturamento de vendas, valor do dólar por si só, não auxilia no entendimento Informação é o dado  analisado  e  contextualizado interpretação de um conjunto de dados Conhecimento é a habilidade de criar um  modelo mental  que descreva o objeto e indique as ações a implementar e/ou decisões a tomar Compreensão, análise e síntese são realizadas a partir do nível do  conhecimento
Dado, Informação e Conhecimento Fonte: http://www.blogincorp.com/?p=7
Dado, Informação e Conhecimento
Conhecimento Fatos relações arbitrárias entre objetos, símbolos, eventos, etc Conceitos resultam de idéias abstratas Regras aplicação  do conhecimento conjunto de operações e passos que orientam a ação obtidas da análise de fatos e conceitos Metarregras criação e aplicação de  novas regras  a situações novas (!)
Conhecimento Declarativo: "o que é" Procedural: "como funciona" Senso comum: "julgamento do certo e errado" Heurístico único para cada indivíduo não pode ser obtido de nenhuma fonte avaliação sistemática e regras heurísticas Pensamento humano processo cognitivo raciocínio vertical ou lógico raciocínio lateral associativo, criativo e generativo
Sistemas Inteligentes Pontos-chave: habilidade para  usar conhecimento  para desempenhar tarefas ou resolver problemas capacidade para aproveitar associações e  inferência  para trabalhar com problemas complexos que assemelham-se a problemas reais Técnicas-chave (isoladas ou em conjunto): aquisição de conhecimento aprendizado de máquina redes neurais lógica fuzzy computação evolutiva agentes e multiagentes mineração de dados e de textos
SBC vs Sistema Especialista SIs - Exibem comportamento Inteligente SBCs - Explicitam o domínio do conhecimento SEs - Aplicam conhecimento especializado para resolução de problemas difíceis
Sistemas Baseados em Conhecimento (SBCs)‏ Usados em indústrias e em pesquisa há mais de 20 anos Usados quando  a formulação genérica do problema é computacionalmente  complexa existe uma grande quantidade de  conhecimento específico  do domínio a existência de um  especialista humano  é uma boa indicação
SBCs - Introdução Principais características Base de Conhecimento uma vez construída o conhecimento se torna  permanentemente acessível facilmente recuperável passível de utilização por todos, independentemente de sua capacitação Mecanismo de raciocínio realiza inferências sobre a base obtém conclusões a partir do conhecimento Domínios variados engenharias, ciências, medicina, negócios, ???
SBCs - Conceitos Manipulam conhecimento e informação de forma inteligente Usados em problemas que requerem uma quantidade considerável de conhecimento humano e de especialização Dois tipos diferentes de operações usadas no processo de resolução de problemas capacidade de raciocínio guiar o processo de raciocínio
SBCs - Definição Os SBCs devem ser capazes de (Jackson 1998): questionar o usuário desenvolver uma linha de raciocínio a partir dessas informações e do conhecimento nele embutido explicar seu raciocínio conviver com seus erros Motta (1998): tudo que se sabe sobre o problema deve estar explicitamente representado na Base de Conhecimento a BC deve ser usada por um agente capaz de interpretá-la (mecanismo de inferência)‏ os problemas são aqueles sobre os quais não é conhecido um procedimento determinístico
Diferenças entre sistemas convencionais e SBCs
Diferenças entre sistemas convencionais e SBCs Intimamente relacionadas com a arquitetura do computador Abstrai completamente os detalhes da máquina
Diferenças entre sistemas convencionais e SBCs Apenas isso! Explicitam conceitos do  domínio
Diferenças entre sistemas convencionais e SBCs
Diferenças entre sistemas convencionais e SBCs Inspeção, entendimento e modificação onerosos e complicados
Diferenças entre sistemas convencionais e SBCs
SBCs - Justificativas Selecionar tarefa é  altamente remunerativo A falta de especialista afeta a eficiência da tarefa A tarefa precisa ter um domínio bem delimitado Especialistas  são necessários em vários locais Existe necessidade de retenção de conhecimento e ou Justificável o desenvolvimento de um SBC
SBCs - Tipos de aplicações Interpretação Processamento de imagens ou fala Classificação Determinação de falhas, diagnósticos Monitoramento Centrais de energia nuclear, monitoramento aéreo Planejamento Operações de robôs, ações militares Projeto Layout de circuitos, CAD para tubulações em aviões da Boeing
SBCs - Estrutura Geral Núcleo do SBC (NSBC) ou  shell Base de Conhecimento (BC)‏ Memória de Trabalho (MT)‏ Base de Dados (BD)‏ Interface com o usuário
Núcleo do SBC (NSBC ou  shell )‏ controle da interação com o usuário ou com equipamentos externos processamento do conhecimento utilizando alguma linha de raciocínio justificativa ou explicação das conclusões obtidas a partir do raciocínio
NSBC - Módulo Coletor de Dados Interação com o usuário Formulação sucessiva de perguntas ao usuário
NSBC - Motor de inferência Responsável pelo desenvolvimento do raciocínio baseado nas informações do MCD Encadeamento regressivo ( backward chaining )‏ "É possível provar as hipóteses a partir dos dados que temos?" Encadeamento progressivo ( forward chaining )‏ "O que é possível concluir a partir dos dados que temos?"
NSBC - Módulo de Explicações Responsável pela explicação, ou justificativas, das conclusões obtidas e dos motivos pelos quais o SBC fez determinadas perguntas Principais tipos de explicações por que como o que acontece se por que não Não queremos um  dump , mas sim uma interpretação em alto nível
SBCs - Base de Conhecimento Conjunto de sentenças sentença: representação de ações e acontecimentos do mundo. Em sua maioria, descrevem causa e efeito. Asserções sobre o domínio de conhecimento Regras que descrevem relações nesse domínio Heurísticas e métodos de resolução de problemas (opc.)‏ Ex: "se a temperatura do paciente está acima de 37,5 graus Celsius, então o paciente está com febre" Metaconhecimento "procure a solução por caminhos onde há poucas alternativas antes de procurar onde há muitas" Muitas vezes nem todo o conhecimento requerido para gerar uma resposta se encontra na base Proverb: "Nice Story" pode ser resolvido com "ETAGE" a base contém apenas "Story in France/ETAGE" sabe que "Nice X" e "X in France" frequentemente têm a mesma solução
SBCs - Memória de Trabalho Área de trabalho respostas fornecidas pelo usuário conclusões intermediárias sequência de passos de raciocínio realizados
SBCs - Interface Responsável pela interação entre o SBC e o usuário Mais abstrata do que a usada na representação do conhecimento mais restrita do que a linguagem do dia-a-dia Interfaces de sistemas convencionais podem definir em tempo de projeto os tipos de dados (fornecidos e resultados)‏ Interfaces de SBCs necessitam ser altamente dinâmicas acentua-se quando se integra a Aquisição de Conhecimento e o uso do SBC Interfaces adaptativas, que se adaptam ao perfil e interesses do usuário
Representação do Conhecimento Um dos problemas cruciais de IA não existe teoria geral de RC Forma sistemática de estruturar e codificar o que se sabe sobre uma determinada aplicação compreensível ao ser humano independente de detalhes sobre o funcionamento interno do processador de conhecimento robusta generalizável Critérios de avaliação adequação lógica conveniência notacional
RC - Técnicas (1)‏ Representação Lógica Lógica de primeira ordem tem sido o instrumento preferido para a formalização do conhecimento Prolog Regras de Produção SE <condições> ENTÃO <conclusões> FAÇA <ações> Redes Semânticas grafo rotulado e direcionado (nós => objetos, arcos => relações)‏ possibilidade de visualização gráfica
RC - Técnicas (2)‏ Frames Agrupamentos de conhecimentos relevantes a uma coisa, um indivíduo, uma situação ou um conceito Slots : conjunto de atributos Herança de Propriedades Orientação a Objetos Representação do conhecimento como conjuntos completos de objetos com comportamentos Flexibilidade na descrição Orientação a Objetos Associada a Regras Regras de produção são adicionadas meio simples e natural de expressar o processo de raciocínio do sistema
RC - Ontologias Ontologias Na filosofia: ontos (ser) + logia (conhecimento)‏ ramo fundamental da metafísica &quot;O que realmente existe?&quot; Em IA: representação de um conjunto de conceitos e relacionamentos em um domínio indivíduos classes atributos relacionamentos regras (se-então)‏ eventos: mudanças de atributos ou relações
RC - Ontologias Linguagens formais para representação de ontologias tradicionais: Cycl, DOGMA, OCML markup (XML): OWL, OIL, DAML, DAML + OIL, RDF Este é um tema de pesquisa emergente em todo o mundo e que vem ganhando relevância crescente com o surgimento da Web Semântica (Web 3.0)‏ convergência de métodos e técnicas da Ciência da Informação e da Ciência da Computação
Exemplo: o mundo dos blocos BLOCO C BRANCO PEQUENO BLOCO B VERDE MÉDIO BLOCO A AZUL GRANDE
Exemplo de uso de linguagens de representação de conhecimento Cada bloco possui os atributos: Nome Cor Tamanho   No exemplo do mundo dos blocos, o objetivo é determinar quais blocos estão acima de outro bloco (considerando transitividade).  
Representação orientada a objetos com regras Linguagem CLIPS Descrição de uma classe bloco. Instâncias de três objetos da classe bloco: a, b, c. Descrição de fatos representando a relação  sobre  entre instâncias de blocos. Descrição das regras que definem a relação  sobre . O CLIPS realiza casamento de padrões e encadeamento progressivo.
Descrição de uma classe bloco (defclass bloco     (is-a USER)     (role concrete)     (slot nome (type STRING) (create-accessor read-write))     (slot cor (type STRING) (create-accessor read-write))     (slot tamanho (type STRING) (create-accessor read-write)) )‏   (defmessage-handler bloco imprime()     (printout t &quot;Bloco &quot; ?self:nome &quot; (&quot; ?self:cor &quot; e &quot;           ?self:tamanho &quot;) &quot; ) )‏  
Instanciação de três blocos: a, b, c (definstances blocos     (a of bloco         (nome &quot;a&quot;)         (cor &quot;azul&quot;)         (tamanho &quot;grande&quot;)     )     (b of bloco         (nome &quot;b&quot;)         (cor &quot;verde&quot;)         (tamanho &quot;medio&quot;)     )     (c of bloco         (nome &quot;c&quot;)         (cor &quot;branco&quot;)         (tamanho &quot;pequeno&quot;)     ))‏
Descrição de fatos representando a relação  sobre  entre instâncias de blocos (deffacts exemplo     (sobre [a] [b])     (sobre [b] [c]) ) 
Descrição das regras que definem a relação  sobre (defrule direta     (sobre ?X ?Y)      =>     (assert (acima ?X ?Y))     (printout t (send ?X imprime) &quot; acima de &quot;         (send ?Y imprime) crlf     ) )‏
Descrição das regras que definem a relação  sobre (defrule indireta     (sobre ?Z ?Y)     (acima ?X ?Z)     =>     (assert (acima ?X ?Y))     (printout t (send ?X imprime) &quot; acima de &quot;         (send ?Y imprime) crlf      ) )‏
Representação lógica Linguagem PROLOG Descrição dos fatos à respeito dos blocos Descrição da disposição dos blocos Sentenças descrevendo a relação  acima O PROLOG realiza o encadeamento para trás  
Representação lógica   cor(a, azul) . cor(b, verde) . cor(c, branco) .   tamanho(a, grande) . tamanho(b, medio) . tamanho(c, pequeno) .   sobre(a,b) . sobre(b,c) .   acima(X,Y) :- sobre(X,Y) . acima(X,Y) :- sobre(Z,Y), acima(X,Z). 
Gerenciamento do projeto: Gerenciamento de atividades Gerenciamento de configuração Gerenciamento de recursos Nem todos os modelos tradicionais de processo de desenvolvimento são adequados aos SBCs. Modelos mais adequados: Prototipação Espiral Passo importante no projeto: identificação do domínio do conhecimento. Nos SBCs sempre pode haver refinamentos Processo de desenvolvimento de um SBC
Processo de desenvolvimento de um SBC Identificar o domínio 1. Planejamento do SBC 2. Aquisição de conhecimento Selecionar a equipe de  desenvolvimento Selecionar a  ferramenta para  desenvolvimento Identificação   Conceituação   Formalização Representar o conhecimento na ferramenta   Implementar a  interface do SBC Gerar  documentação do SBC Validação e verificação  do SBC Refinar o  SBC 3. Implementação do SBC 4. Verificação e  refinamento do SBC
Processo de desenvolvimento de um SBC Fase 1 - Planejamento do SBC Descrição de: Domínio de conhecimento Termos chaves Referências Identificação de: Módulos Saídas Entradas Seleção de: Equipe de desenvolvimento Ferramenta de desenvolvimento
Processo de desenvolvimento de um SBC Fase 2 - Aquisição de conhecimento Tem como objetivo adquirir o conhecimento que será armazenado na Base de Conhecimento. Essa atividade se divide em: Identificação Conceituação Formalização Fase 3 - Implementação do SBC Codificação do sistema Documentação Geração de manuais Implementação da interface
Processo de desenvolvimento de um SBC Fase 4 - Validação e Refinamento do SBC Processo contínuo Fase de verificação e validação Aquisição contínua de conhecimento
Ferramentas de suporte à construção de SBCs Podem ser utilizadas linguagens que suportem boa variedade de estruturas de dados e de controle como: LISP PROLOG Linguagens de programação OO. Para reduzir o tempo de desenvolvimento, têm sido utilizadas ferramentas específicas de Engenharia do Conhecimento. Há dois grupos destas ferramentas: Ferramentas de apoio Shells
Ferramentas de apoio Ofereçem vários esquemas de representação de conhecimento Monitoramento de inferência Estratégias para resolução de problemas Interfaces para aquisição de conhecimento e para explicação
Shells Oferecem: Esquema de representação de conhecimento Motor de inferência Nestas ferramentas a interface e a estratégia para resolução de problemas é prefixada
 
 
Perspectivas futuras A tecnologia de SBCs já atingiu sua maturidade No entanto ainda há tópicos a serem pesquisados Tornar o processo menos artesanal Estudo de técnicas automáticas de aquisição de conhecimento Tratamento de incertezas Problema da cognição situada  
Material extra: Shell Expert Sinta Desenvolvido no LIA (Laboratório de Inteligência Artificial)‏ É uma ferramenta visual para criação de sistemas especialistas    
Referências Luiz Antônio Moro Palazzo. Inteligência Artificial. 2006. Disponível em: http://ia.ucpel.tche.br/~lpalazzo/Aulas/IA/m01/m01.ppt. Acesso em 09/06/08. Solange Oliveira Rezende. Sistemas Inteligentes - Fundamentos e Aplicações. Manole, 2003. Wikipedia. Prolog. 2008. Disponível em: http://pt.wikipedia.org/wiki/Prolog   Acesso em 09/06/08 SourceForge CLIPS Online Documentation. Disponível em: http://clipsrules.sourceforge.net/OnlineDocs.html   Acesso em 09/06/08 Paulo Roberto Schroeder de Souza, Descrição do Exercício Extra. 2008 Disponível em: http://www.educaonline.eng.br/FALS/tp.doc  Acesso em 10/06/08 Stuart J. Russel e Peter Norvig, Artificial Intelligence - A Modern Approach. Segunda Edição. Prentice Hall, 2002. The future of AI. AI's 10 to Watch. IEEE Intelligent Systems. May/June 2008. Disponível em: http://www.computer.org/portal/site/intelligent. AI Winter. Disponível em: http://en.wikipedia.org/wiki/AI_winter. Acesso em 11/06/08. Spring Comes to AI Winter. Disponível em: . http://www.computerworld.com/softwaretopics/crm/story/0,10801,99691,00.html. Acesso em 11/06/08. Tom Gruber. Ontology. Disponível em: http://tomgruber.org/writing/ontology-definition-2007.htm. Acesso em 11/06/2008.   

Fundamentos De Ia E SbCs

  • 1.
    Fundamentos de IAe Sistemas baseados em Conhecimento Acadêmicos: Rodrigo Kishi e José Ricardo
  • 2.
    Introdução &quot;Não sepode ensinar tudo a alguém, pode-se apenas ajudá-lo a encontrar por si mesmo&quot; (Galileu Galilei) O que se deseja alcançar com as técnicas de IA? Capacitar o computador a executar funções que são desempenhadas pelo ser humano usando conhecimento e raciocínio Agir inteligentemente conhecimento que possuímos precisamos incorporar conhecimento
  • 3.
    Fundamentos Agindo deforma humana: O Teste de Turing (1950)‏ processamento de linguagem natural, representação de conhecimento, raciocínio automatizado, aprendizado de máquina, visão computacional, robótica poucos esforços para tentar passar no teste Pensando como um humano: A Modelagem Cognitiva como a mente humana funciona? introspecção e experimentos psicológicos autores do GPS comparavam os registros dos passos realizados pelo programa e os passos realizados por humanos para resolverem os mesmos problemas Pensando racionalmente: As Leis do Pensamento Aristóteles e seus silogismos => lógica formal não é simples formalizar explosão combinatória Agindo racionalmente: O Agente Racional
  • 4.
    Fundamentos Filosofia (428a.c)‏ Matemática (800)‏ Psicologia (1879)‏ Engenharia da Computação (1940)‏ Linguística (1957)‏
  • 5.
    Fundamentos Filosofia (428a.c Como o conhecimento leva a uma ação? Matemática (800)‏ O que pode ser computado? Psicologia (1879)‏ Como funcionam os cérebros dos animais e humanos? Como estes agem? Engenharia da Computação (1940)‏ Como construir sistemas eficientes? Linguística (1957)‏ Como a linguagem interfere no raciocínio e no conhecimento? Economia (1776)‏ Como tomar decisões a longo prazo. Neurociência (1861)‏ Como o cérebro processa informações? Teoria do controle ( Control Theory ) e cibernética (1948)‏ Como os artefatos devem operar quando estiverem sob seu próprio controle?
  • 6.
    História da IA(Norvig e Russel)‏ Gestação (1943 - 1956)‏ Turing O nascimento da IA (1952)‏ Princeton – John McCarthy e Minsky Entusiasmo, grandes expectativas (1952 - 1969)‏ Poucos conhecimentos sobre os domínios Uma dose de realidade (1966 - 1974)‏ Sistemas Baseados em Conhecimento: A chave para o poder? (1969 -1979)‏ A IA se torna uma indústria (1980 - 1988)‏ O retorno das redes neurais (1986 - até hoje)‏ A IA se torna uma ciência (1987 - até hoje)‏ Construção a partir de teorias estabelecidas e utilização no mundo real Agentes Inteligentes (1995 - até hoje)‏ O sufixo “-bot”
  • 7.
    Invernos da IAInspirados nos &quot;Invernos Nucleares&quot; processo de euforia, desapontamento e corte de financiamento railway mania (Inglaterra, 1840) e a bolha da internet Primeira vez em 1984 em um debate no encontro anual da AAAI ( American Association of Artificial Intelligence ) Roger Schank e Marvin Minsky avisaram à indústria que o entusiasmo em relação à IA havia saído do controle Três anos depois a indústria bilionária de IA começou a entrar em colapso OS Invernos da IA Perceptrons: criados em 58, inverno: 69 a 79 Perceptrons de Minsky e Papert, 1969 (XOR)‏ 1974−80 1987-até hoje?
  • 8.
    Estado da arteIEEE Intelligent Systems, may/june 2008: planejamento de rotas obtenção de informações da web carros inteligentes percepção multimodal aplicações baseadas em ontologias human computation Planejamento e agendamento autônomos &quot;Remote Agent&quot; da Nasa Jogos - Deep Blue, bots Diagnósticos - nós linfáticos Planejamento Logístico - Golfo Pérsico, 1991: Dynamic Analisys and Replanning Tool (DART). Planejamento de transportes (50.000 veículos) e logística, pontos de partida, rota e ponto de chegada em horas, ao invés de semanas. O DART sozinho pagou 30 anos de investimentos em IA da DARPA. Robótica Interpretação de linguagem e resolução de problemas Proverb (palavras-cruzadas)‏
  • 9.
    Contexto Globalização daeconomia conhecimento é a mola propulsora rápida obsolência das tecnologias maior competitividade das empresas diminuição da produtividade dos recursos valorização do serviço ao cliente Sistemas Inteligentes (SIs)‏ manipulam conhecimentos especializados benefícios qualitativos e quantitativos trabalham eficazmente com o conhecimento
  • 10.
    Dado, Informação eConhecimento Dado é o elemento puro faturamento de vendas, valor do dólar por si só, não auxilia no entendimento Informação é o dado analisado e contextualizado interpretação de um conjunto de dados Conhecimento é a habilidade de criar um modelo mental que descreva o objeto e indique as ações a implementar e/ou decisões a tomar Compreensão, análise e síntese são realizadas a partir do nível do conhecimento
  • 11.
    Dado, Informação eConhecimento Fonte: http://www.blogincorp.com/?p=7
  • 12.
  • 13.
    Conhecimento Fatos relaçõesarbitrárias entre objetos, símbolos, eventos, etc Conceitos resultam de idéias abstratas Regras aplicação do conhecimento conjunto de operações e passos que orientam a ação obtidas da análise de fatos e conceitos Metarregras criação e aplicação de novas regras a situações novas (!)
  • 14.
    Conhecimento Declarativo: &quot;oque é&quot; Procedural: &quot;como funciona&quot; Senso comum: &quot;julgamento do certo e errado&quot; Heurístico único para cada indivíduo não pode ser obtido de nenhuma fonte avaliação sistemática e regras heurísticas Pensamento humano processo cognitivo raciocínio vertical ou lógico raciocínio lateral associativo, criativo e generativo
  • 15.
    Sistemas Inteligentes Pontos-chave:habilidade para usar conhecimento para desempenhar tarefas ou resolver problemas capacidade para aproveitar associações e inferência para trabalhar com problemas complexos que assemelham-se a problemas reais Técnicas-chave (isoladas ou em conjunto): aquisição de conhecimento aprendizado de máquina redes neurais lógica fuzzy computação evolutiva agentes e multiagentes mineração de dados e de textos
  • 16.
    SBC vs SistemaEspecialista SIs - Exibem comportamento Inteligente SBCs - Explicitam o domínio do conhecimento SEs - Aplicam conhecimento especializado para resolução de problemas difíceis
  • 17.
    Sistemas Baseados emConhecimento (SBCs)‏ Usados em indústrias e em pesquisa há mais de 20 anos Usados quando a formulação genérica do problema é computacionalmente complexa existe uma grande quantidade de conhecimento específico do domínio a existência de um especialista humano é uma boa indicação
  • 18.
    SBCs - IntroduçãoPrincipais características Base de Conhecimento uma vez construída o conhecimento se torna permanentemente acessível facilmente recuperável passível de utilização por todos, independentemente de sua capacitação Mecanismo de raciocínio realiza inferências sobre a base obtém conclusões a partir do conhecimento Domínios variados engenharias, ciências, medicina, negócios, ???
  • 19.
    SBCs - ConceitosManipulam conhecimento e informação de forma inteligente Usados em problemas que requerem uma quantidade considerável de conhecimento humano e de especialização Dois tipos diferentes de operações usadas no processo de resolução de problemas capacidade de raciocínio guiar o processo de raciocínio
  • 20.
    SBCs - DefiniçãoOs SBCs devem ser capazes de (Jackson 1998): questionar o usuário desenvolver uma linha de raciocínio a partir dessas informações e do conhecimento nele embutido explicar seu raciocínio conviver com seus erros Motta (1998): tudo que se sabe sobre o problema deve estar explicitamente representado na Base de Conhecimento a BC deve ser usada por um agente capaz de interpretá-la (mecanismo de inferência)‏ os problemas são aqueles sobre os quais não é conhecido um procedimento determinístico
  • 21.
    Diferenças entre sistemasconvencionais e SBCs
  • 22.
    Diferenças entre sistemasconvencionais e SBCs Intimamente relacionadas com a arquitetura do computador Abstrai completamente os detalhes da máquina
  • 23.
    Diferenças entre sistemasconvencionais e SBCs Apenas isso! Explicitam conceitos do domínio
  • 24.
    Diferenças entre sistemasconvencionais e SBCs
  • 25.
    Diferenças entre sistemasconvencionais e SBCs Inspeção, entendimento e modificação onerosos e complicados
  • 26.
    Diferenças entre sistemasconvencionais e SBCs
  • 27.
    SBCs - JustificativasSelecionar tarefa é altamente remunerativo A falta de especialista afeta a eficiência da tarefa A tarefa precisa ter um domínio bem delimitado Especialistas  são necessários em vários locais Existe necessidade de retenção de conhecimento e ou Justificável o desenvolvimento de um SBC
  • 28.
    SBCs - Tiposde aplicações Interpretação Processamento de imagens ou fala Classificação Determinação de falhas, diagnósticos Monitoramento Centrais de energia nuclear, monitoramento aéreo Planejamento Operações de robôs, ações militares Projeto Layout de circuitos, CAD para tubulações em aviões da Boeing
  • 29.
    SBCs - EstruturaGeral Núcleo do SBC (NSBC) ou shell Base de Conhecimento (BC)‏ Memória de Trabalho (MT)‏ Base de Dados (BD)‏ Interface com o usuário
  • 30.
    Núcleo do SBC(NSBC ou shell )‏ controle da interação com o usuário ou com equipamentos externos processamento do conhecimento utilizando alguma linha de raciocínio justificativa ou explicação das conclusões obtidas a partir do raciocínio
  • 31.
    NSBC - MóduloColetor de Dados Interação com o usuário Formulação sucessiva de perguntas ao usuário
  • 32.
    NSBC - Motorde inferência Responsável pelo desenvolvimento do raciocínio baseado nas informações do MCD Encadeamento regressivo ( backward chaining )‏ &quot;É possível provar as hipóteses a partir dos dados que temos?&quot; Encadeamento progressivo ( forward chaining )‏ &quot;O que é possível concluir a partir dos dados que temos?&quot;
  • 33.
    NSBC - Módulode Explicações Responsável pela explicação, ou justificativas, das conclusões obtidas e dos motivos pelos quais o SBC fez determinadas perguntas Principais tipos de explicações por que como o que acontece se por que não Não queremos um dump , mas sim uma interpretação em alto nível
  • 34.
    SBCs - Basede Conhecimento Conjunto de sentenças sentença: representação de ações e acontecimentos do mundo. Em sua maioria, descrevem causa e efeito. Asserções sobre o domínio de conhecimento Regras que descrevem relações nesse domínio Heurísticas e métodos de resolução de problemas (opc.)‏ Ex: &quot;se a temperatura do paciente está acima de 37,5 graus Celsius, então o paciente está com febre&quot; Metaconhecimento &quot;procure a solução por caminhos onde há poucas alternativas antes de procurar onde há muitas&quot; Muitas vezes nem todo o conhecimento requerido para gerar uma resposta se encontra na base Proverb: &quot;Nice Story&quot; pode ser resolvido com &quot;ETAGE&quot; a base contém apenas &quot;Story in France/ETAGE&quot; sabe que &quot;Nice X&quot; e &quot;X in France&quot; frequentemente têm a mesma solução
  • 35.
    SBCs - Memóriade Trabalho Área de trabalho respostas fornecidas pelo usuário conclusões intermediárias sequência de passos de raciocínio realizados
  • 36.
    SBCs - InterfaceResponsável pela interação entre o SBC e o usuário Mais abstrata do que a usada na representação do conhecimento mais restrita do que a linguagem do dia-a-dia Interfaces de sistemas convencionais podem definir em tempo de projeto os tipos de dados (fornecidos e resultados)‏ Interfaces de SBCs necessitam ser altamente dinâmicas acentua-se quando se integra a Aquisição de Conhecimento e o uso do SBC Interfaces adaptativas, que se adaptam ao perfil e interesses do usuário
  • 37.
    Representação do ConhecimentoUm dos problemas cruciais de IA não existe teoria geral de RC Forma sistemática de estruturar e codificar o que se sabe sobre uma determinada aplicação compreensível ao ser humano independente de detalhes sobre o funcionamento interno do processador de conhecimento robusta generalizável Critérios de avaliação adequação lógica conveniência notacional
  • 38.
    RC - Técnicas(1)‏ Representação Lógica Lógica de primeira ordem tem sido o instrumento preferido para a formalização do conhecimento Prolog Regras de Produção SE <condições> ENTÃO <conclusões> FAÇA <ações> Redes Semânticas grafo rotulado e direcionado (nós => objetos, arcos => relações)‏ possibilidade de visualização gráfica
  • 39.
    RC - Técnicas(2)‏ Frames Agrupamentos de conhecimentos relevantes a uma coisa, um indivíduo, uma situação ou um conceito Slots : conjunto de atributos Herança de Propriedades Orientação a Objetos Representação do conhecimento como conjuntos completos de objetos com comportamentos Flexibilidade na descrição Orientação a Objetos Associada a Regras Regras de produção são adicionadas meio simples e natural de expressar o processo de raciocínio do sistema
  • 40.
    RC - OntologiasOntologias Na filosofia: ontos (ser) + logia (conhecimento)‏ ramo fundamental da metafísica &quot;O que realmente existe?&quot; Em IA: representação de um conjunto de conceitos e relacionamentos em um domínio indivíduos classes atributos relacionamentos regras (se-então)‏ eventos: mudanças de atributos ou relações
  • 41.
    RC - OntologiasLinguagens formais para representação de ontologias tradicionais: Cycl, DOGMA, OCML markup (XML): OWL, OIL, DAML, DAML + OIL, RDF Este é um tema de pesquisa emergente em todo o mundo e que vem ganhando relevância crescente com o surgimento da Web Semântica (Web 3.0)‏ convergência de métodos e técnicas da Ciência da Informação e da Ciência da Computação
  • 42.
    Exemplo: o mundodos blocos BLOCO C BRANCO PEQUENO BLOCO B VERDE MÉDIO BLOCO A AZUL GRANDE
  • 43.
    Exemplo de usode linguagens de representação de conhecimento Cada bloco possui os atributos: Nome Cor Tamanho   No exemplo do mundo dos blocos, o objetivo é determinar quais blocos estão acima de outro bloco (considerando transitividade).  
  • 44.
    Representação orientada aobjetos com regras Linguagem CLIPS Descrição de uma classe bloco. Instâncias de três objetos da classe bloco: a, b, c. Descrição de fatos representando a relação sobre entre instâncias de blocos. Descrição das regras que definem a relação sobre . O CLIPS realiza casamento de padrões e encadeamento progressivo.
  • 45.
    Descrição de umaclasse bloco (defclass bloco     (is-a USER)     (role concrete)     (slot nome (type STRING) (create-accessor read-write))     (slot cor (type STRING) (create-accessor read-write))     (slot tamanho (type STRING) (create-accessor read-write)) )‏   (defmessage-handler bloco imprime()     (printout t &quot;Bloco &quot; ?self:nome &quot; (&quot; ?self:cor &quot; e &quot;          ?self:tamanho &quot;) &quot; ) )‏  
  • 46.
    Instanciação de três blocos:a, b, c (definstances blocos     (a of bloco         (nome &quot;a&quot;)         (cor &quot;azul&quot;)         (tamanho &quot;grande&quot;)     )     (b of bloco         (nome &quot;b&quot;)         (cor &quot;verde&quot;)         (tamanho &quot;medio&quot;)     )     (c of bloco         (nome &quot;c&quot;)         (cor &quot;branco&quot;)         (tamanho &quot;pequeno&quot;)     ))‏
  • 47.
    Descrição de fatos representandoa relação sobre entre instâncias de blocos (deffacts exemplo     (sobre [a] [b])     (sobre [b] [c]) ) 
  • 48.
    Descrição das regrasque definem a relação sobre (defrule direta     (sobre ?X ?Y)      =>     (assert (acima ?X ?Y))     (printout t (send ?X imprime) &quot; acima de &quot;         (send ?Y imprime) crlf     ) )‏
  • 49.
    Descrição das regrasque definem a relação sobre (defrule indireta     (sobre ?Z ?Y)     (acima ?X ?Z)     =>     (assert (acima ?X ?Y))     (printout t (send ?X imprime) &quot; acima de &quot;         (send ?Y imprime) crlf      ) )‏
  • 50.
    Representação lógica LinguagemPROLOG Descrição dos fatos à respeito dos blocos Descrição da disposição dos blocos Sentenças descrevendo a relação acima O PROLOG realiza o encadeamento para trás  
  • 51.
    Representação lógica  cor(a, azul) . cor(b, verde) . cor(c, branco) .   tamanho(a, grande) . tamanho(b, medio) . tamanho(c, pequeno) .   sobre(a,b) . sobre(b,c) .   acima(X,Y) :- sobre(X,Y) . acima(X,Y) :- sobre(Z,Y), acima(X,Z). 
  • 52.
    Gerenciamento do projeto:Gerenciamento de atividades Gerenciamento de configuração Gerenciamento de recursos Nem todos os modelos tradicionais de processo de desenvolvimento são adequados aos SBCs. Modelos mais adequados: Prototipação Espiral Passo importante no projeto: identificação do domínio do conhecimento. Nos SBCs sempre pode haver refinamentos Processo de desenvolvimento de um SBC
  • 53.
    Processo de desenvolvimentode um SBC Identificar o domínio 1. Planejamento do SBC 2. Aquisição de conhecimento Selecionar a equipe de desenvolvimento Selecionar a ferramenta para desenvolvimento Identificação   Conceituação   Formalização Representar o conhecimento na ferramenta   Implementar a interface do SBC Gerar documentação do SBC Validação e verificação do SBC Refinar o SBC 3. Implementação do SBC 4. Verificação e refinamento do SBC
  • 54.
    Processo de desenvolvimentode um SBC Fase 1 - Planejamento do SBC Descrição de: Domínio de conhecimento Termos chaves Referências Identificação de: Módulos Saídas Entradas Seleção de: Equipe de desenvolvimento Ferramenta de desenvolvimento
  • 55.
    Processo de desenvolvimentode um SBC Fase 2 - Aquisição de conhecimento Tem como objetivo adquirir o conhecimento que será armazenado na Base de Conhecimento. Essa atividade se divide em: Identificação Conceituação Formalização Fase 3 - Implementação do SBC Codificação do sistema Documentação Geração de manuais Implementação da interface
  • 56.
    Processo de desenvolvimentode um SBC Fase 4 - Validação e Refinamento do SBC Processo contínuo Fase de verificação e validação Aquisição contínua de conhecimento
  • 57.
    Ferramentas de suporteà construção de SBCs Podem ser utilizadas linguagens que suportem boa variedade de estruturas de dados e de controle como: LISP PROLOG Linguagens de programação OO. Para reduzir o tempo de desenvolvimento, têm sido utilizadas ferramentas específicas de Engenharia do Conhecimento. Há dois grupos destas ferramentas: Ferramentas de apoio Shells
  • 58.
    Ferramentas de apoioOfereçem vários esquemas de representação de conhecimento Monitoramento de inferência Estratégias para resolução de problemas Interfaces para aquisição de conhecimento e para explicação
  • 59.
    Shells Oferecem: Esquemade representação de conhecimento Motor de inferência Nestas ferramentas a interface e a estratégia para resolução de problemas é prefixada
  • 60.
  • 61.
  • 62.
    Perspectivas futuras Atecnologia de SBCs já atingiu sua maturidade No entanto ainda há tópicos a serem pesquisados Tornar o processo menos artesanal Estudo de técnicas automáticas de aquisição de conhecimento Tratamento de incertezas Problema da cognição situada  
  • 63.
    Material extra: ShellExpert Sinta Desenvolvido no LIA (Laboratório de Inteligência Artificial)‏ É uma ferramenta visual para criação de sistemas especialistas    
  • 64.
    Referências Luiz AntônioMoro Palazzo. Inteligência Artificial. 2006. Disponível em: http://ia.ucpel.tche.br/~lpalazzo/Aulas/IA/m01/m01.ppt. Acesso em 09/06/08. Solange Oliveira Rezende. Sistemas Inteligentes - Fundamentos e Aplicações. Manole, 2003. Wikipedia. Prolog. 2008. Disponível em: http://pt.wikipedia.org/wiki/Prolog   Acesso em 09/06/08 SourceForge CLIPS Online Documentation. Disponível em: http://clipsrules.sourceforge.net/OnlineDocs.html   Acesso em 09/06/08 Paulo Roberto Schroeder de Souza, Descrição do Exercício Extra. 2008 Disponível em: http://www.educaonline.eng.br/FALS/tp.doc  Acesso em 10/06/08 Stuart J. Russel e Peter Norvig, Artificial Intelligence - A Modern Approach. Segunda Edição. Prentice Hall, 2002. The future of AI. AI's 10 to Watch. IEEE Intelligent Systems. May/June 2008. Disponível em: http://www.computer.org/portal/site/intelligent. AI Winter. Disponível em: http://en.wikipedia.org/wiki/AI_winter. Acesso em 11/06/08. Spring Comes to AI Winter. Disponível em: . http://www.computerworld.com/softwaretopics/crm/story/0,10801,99691,00.html. Acesso em 11/06/08. Tom Gruber. Ontology. Disponível em: http://tomgruber.org/writing/ontology-definition-2007.htm. Acesso em 11/06/2008.