Fundamentos de IA e Sistemas baseados em Conhecimento Acadêmicos: Rodrigo Kishi e José Ricardo
Introdução <ul><li>&quot;Não se pode ensinar tudo a alguém, pode-se apenas ajudá-lo a encontrar por si mesmo&quot; (Galile...
Fundamentos <ul><ul><li>Agindo de forma humana: O Teste de Turing (1950)‏ </li></ul></ul><ul><ul><ul><li>processamento de ...
Fundamentos <ul><ul><li>Filosofia (428 a.c)‏ </li></ul></ul><ul><ul><li>Matemática (800)‏ </li></ul></ul><ul><ul><li>Psico...
Fundamentos <ul><ul><li>Filosofia (428 a.c </li></ul></ul><ul><ul><ul><li>Como o conhecimento leva a uma ação? </li></ul><...
História da IA (Norvig e Russel)‏ <ul><ul><li>Gestação (1943 - 1956)‏ </li></ul></ul><ul><ul><ul><li>Turing </li></ul></ul...
Invernos da IA <ul><ul><li>Inspirados nos &quot;Invernos Nucleares&quot; </li></ul></ul><ul><ul><ul><li>processo de eufori...
Estado da arte <ul><ul><li>IEEE Intelligent Systems, may/june 2008: </li></ul></ul><ul><ul><ul><li>planejamento de rotas <...
Contexto <ul><ul><li>Globalização da economia </li></ul></ul><ul><ul><ul><li>conhecimento é a mola propulsora </li></ul></...
Dado, Informação e Conhecimento <ul><ul><li>Dado é o elemento  puro </li></ul></ul><ul><ul><ul><li>faturamento de vendas, ...
Dado, Informação e Conhecimento Fonte: http://www.blogincorp.com/?p=7
Dado, Informação e Conhecimento
Conhecimento <ul><ul><li>Fatos </li></ul></ul><ul><ul><ul><li>relações arbitrárias entre objetos, símbolos, eventos, etc <...
Conhecimento <ul><ul><li>Declarativo: &quot;o que é&quot; </li></ul></ul><ul><ul><li>Procedural: &quot;como funciona&quot;...
Sistemas Inteligentes <ul><ul><li>Pontos-chave: </li></ul></ul><ul><ul><ul><li>habilidade para  usar conhecimento  para de...
SBC vs Sistema Especialista SIs - Exibem comportamento Inteligente SBCs - Explicitam o domínio do conhecimento SEs - Aplic...
Sistemas Baseados em Conhecimento (SBCs)‏ <ul><ul><li>Usados em indústrias e em pesquisa há mais de 20 anos </li></ul></ul...
SBCs - Introdução <ul><ul><li>Principais características </li></ul></ul><ul><ul><ul><li>Base de Conhecimento </li></ul></u...
SBCs - Conceitos <ul><ul><li>Manipulam conhecimento e informação de forma inteligente </li></ul></ul><ul><ul><li>Usados em...
SBCs - Definição <ul><ul><li>Os SBCs devem ser capazes de (Jackson 1998): </li></ul></ul><ul><ul><ul><li>questionar o usuá...
Diferenças entre sistemas convencionais e SBCs
Diferenças entre sistemas convencionais e SBCs Intimamente relacionadas com a arquitetura do computador Abstrai completame...
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 t...
SBCs - Tipos de aplicações <ul><ul><li>Interpretação </li></ul></ul><ul><ul><ul><li>Processamento de imagens ou fala </li>...
SBCs - Estrutura Geral <ul><ul><li>Núcleo do SBC (NSBC) ou  shell </li></ul></ul><ul><ul><li>Base de Conhecimento (BC)‏ </...
Núcleo do SBC (NSBC ou  shell )‏ <ul><ul><li>controle da interação com o usuário ou com equipamentos externos </li></ul></...
NSBC - Módulo Coletor de Dados <ul><ul><li>Interação com o usuário </li></ul></ul><ul><ul><li>Formulação sucessiva de perg...
NSBC - Motor de inferência <ul><ul><li>Responsável pelo desenvolvimento do raciocínio </li></ul></ul><ul><ul><ul><li>basea...
NSBC - Módulo de Explicações <ul><ul><li>Responsável pela explicação, ou justificativas, das conclusões obtidas e dos moti...
SBCs - Base de Conhecimento <ul><ul><li>Conjunto de sentenças </li></ul></ul><ul><ul><ul><li>sentença: representação de aç...
SBCs - Memória de Trabalho <ul><ul><li>Área de trabalho </li></ul></ul><ul><ul><ul><li>respostas fornecidas pelo usuário <...
SBCs - Interface <ul><ul><li>Responsável pela interação entre o SBC e o usuário </li></ul></ul><ul><ul><li>Mais abstrata d...
Representação do Conhecimento <ul><ul><li>Um dos problemas cruciais de IA </li></ul></ul><ul><ul><ul><li>não existe teoria...
RC - Técnicas (1)‏ <ul><ul><li>Representação Lógica </li></ul></ul><ul><ul><ul><li>Lógica de primeira ordem tem sido o ins...
RC - Técnicas (2)‏ <ul><ul><li>Frames </li></ul></ul><ul><ul><ul><li>Agrupamentos de conhecimentos relevantes a uma coisa,...
RC - Ontologias <ul><ul><li>Ontologias </li></ul></ul><ul><ul><ul><li>Na filosofia: ontos (ser) + logia (conhecimento)‏ </...
RC - Ontologias <ul><ul><li>Linguagens formais para representação de ontologias </li></ul></ul><ul><ul><ul><li>tradicionai...
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 <ul><ul><li>Cada bloco possui os atributos: </li></ul></ul><...
Representação orientada a objetos com regras <ul><ul><li>Linguagem CLIPS </li></ul></ul><ul><ul><ul><li>Descrição de uma c...
Descrição de uma classe bloco <ul><li>(defclass bloco     (is-a USER)     (role concrete)     (slot nome (type STRING) (cr...
Instanciação de três blocos: a, b, c <ul><li>(definstances blocos     (a of bloco         (nome &quot;a&quot;)         (co...
Descrição de fatos representando a relação  sobre  entre instâncias de blocos <ul><li>(deffacts exemplo     (sobre [a] [b]...
Descrição das regras que definem a relação  sobre <ul><li>(defrule direta     (sobre ?X ?Y)      =>     (assert (acima ?X ...
Descrição das regras que definem a relação  sobre <ul><li>(defrule indireta     (sobre ?Z ?Y)     (acima ?X ?Z)     =>    ...
Representação lógica <ul><ul><li>Linguagem PROLOG </li></ul></ul><ul><ul><ul><li>Descrição dos fatos à respeito dos blocos...
Representação lógica <ul><li>  </li></ul><ul><li>cor(a, azul) . cor(b, verde) . cor(c, branco) . </li></ul><ul><li>  </li>...
<ul><ul><li>Gerenciamento do projeto: </li></ul></ul><ul><ul><ul><li>Gerenciamento de atividades </li></ul></ul></ul><ul><...
Processo de desenvolvimento de um SBC Identificar o domínio 1. Planejamento do SBC 2. Aquisição de conhecimento Selecionar...
Processo de desenvolvimento de um SBC <ul><ul><li>Fase 1 - Planejamento do SBC </li></ul></ul><ul><ul><ul><li>Descrição de...
Processo de desenvolvimento de um SBC <ul><ul><li>Fase 2 - Aquisição de conhecimento </li></ul></ul><ul><ul><ul><li>Tem co...
Processo de desenvolvimento de um SBC <ul><ul><li>Fase 4 - Validação e Refinamento do SBC </li></ul></ul><ul><ul><ul><li>P...
Ferramentas de suporte à construção de SBCs <ul><ul><li>Podem ser utilizadas linguagens que suportem boa variedade de estr...
Ferramentas de apoio <ul><ul><li>Ofereçem vários esquemas de representação de conhecimento </li></ul></ul><ul><ul><li>Moni...
Shells <ul><ul><li>Oferecem: </li></ul></ul><ul><ul><ul><li>Esquema de representação de conhecimento </li></ul></ul></ul><...
 
 
Perspectivas futuras <ul><ul><li>A tecnologia de SBCs já atingiu sua maturidade </li></ul></ul><ul><ul><li>No entanto aind...
Material extra: Shell Expert Sinta <ul><ul><li>Desenvolvido no LIA (Laboratório de Inteligência Artificial)‏ </li></ul></u...
Referências <ul><ul><li>Luiz Antônio Moro Palazzo. Inteligência Artificial. 2006. Disponível em: http://ia.ucpel.tche.br/~...
Upcoming SlideShare
Loading in...5
×

Fundamentos De Ia E SbCs

1,326

Published on

Apresentação de SBCs

Published in: Technology, Travel
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,326
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide
  • Transcript of "Fundamentos De Ia E SbCs"

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

    ×