• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Fundamentos De Ia E SbCs
 

Fundamentos De Ia E SbCs

on

  • 2,235 views

Apresentação de SBCs

Apresentação de SBCs

Statistics

Views

Total Views
2,235
Views on SlideShare
2,218
Embed Views
17

Actions

Likes
2
Downloads
0
Comments
0

3 Embeds 17

http://www.slideshare.net 8
http://dasilvajr.blogspot.com 7
http://webcache.googleusercontent.com 2

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Fundamentos De Ia E SbCs Fundamentos De Ia E SbCs Presentation Transcript

  • 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.
    •