Sistemas Especialistas Fred Freitas Centro de Informática Universidade Federal de Pernambuco Roteiro Definição e Histórico Conceitos Básicos Componentes de um Sistema Especialista Ciclo de desenvolvimento Problemas e soluções de Aquisição de Conhecimento Tendências Futuras Roteiro Definição e Histórico Conceitos Básicos Componentes de um Sistema Especialista Ciclo de desenvolvimento Problemas e soluções de Aquisição de Conhecimento Tendências Futuras Definição de Sistemas Especialistas Sistemas Baseados em Conhecimento (SBCs) que: Resolvem problemas complexos usando conhecimento humano profundo sobre o problema e/ou sobre áreas relacionadas Lembrar que, como todo SBC, os Sistemas Especialistas só funcionam em domínios restritos! Produtos de maior sucesso em IA! Representação de Conhecimento SBCs são estudados e produzidos a partir da disciplina de Representação de Conhecimento Disciplina que estuda o uso de símbolos formais para representar conjuntos de proposições Raciocínio – manipulação mecânica destes símbolos de forma a criar novos símbolos Conhecimento: Representação e Uso Raciocínio: processo de construção de novas sentenças a partir de outras sentenças. Deve-se assegurar que o raciocínio é consistente (sound) fatos segue-se fatos Mundo Representação sentenças implica sentenças 6 Hipótese de RC [Brian Smith] Propriedades de um SBC: Um observador externo pode entender o que está representado em suas proposições O sistema se comporta de um dado jeito por causa do que está representado nestas proposições Vantagem em relação a sistemas tradicionais (procedimentais): pode-se perguntar a um programa sobre o que ele sabe, etc... Sistemas Especialistas Inteligência Artificial sistemas que exibem/replicam comportamentos inteligentes Sistemas Baseados em Conhecimento o conhecimento é vital, divisão entre conhecimento e raciocínio Sistemas Espec. o conhecimento é obtido a partir de um perito Como reconhecer um Sistema Baseado em Conhecimento ? Qual deles é um SBC? Por quê? printColor(snow) :- !, write(“It’s white.”). printColor(grass) :- !, write(“It’s green.”). printColor(sky) :- !, write(“It’s yellow.”). printColor(X) :- write(“Beats me.”). printColor(X) :-color(X,Y), !, write(“It’s “), write(Y), write(“.”). color(X, Y) :- madeOf(X, Z), color(Z, Y). madeOf(grass, vegetation). printColor(X) :- write(“Beats me.”). color(snow,white). color(sky,yellow). color(vegetation, green). Prós e contras DECLARATIVO PROCEDURAL Fácil adicionar mais Mais rápido (já conhecimento ao sistema Fácil estendê-lo para novas tarefas Quais objetos têm a mesma cor? O sistema se explica! possui o script) Tomou o mercado... Usos e Benefícios Sistemas Especialistas podem servir para: Resolver problemas Assistentes de decisão de especialistas Treinamento e disseminação do conhecimento Ex: CATS-1 Benefícios Preservação de conhecimento Vantagens declarativas Conhecimento fora do programa Regras podem ser inseridas sem se preocupar com o fluxo do programa Histórico 1965 – DENDRAL Ed Feigenbaum – Univ. Stanford – EUA Determinava automaticamente a estrutura molecular de uma molécula desconhecida através de sua análise espectrográfica Abordagem algorítmica impossível Resultados melhores que os especialistas (!) Suas descobertas geraram publicações em revistas especializadas MYCIN [Shortliffe 76] Diagnóstico e terapia de doenças infecciosas Muito consultado por médicos que não eram especialista em infecções 450 regras com coeficientes de certeza associados Pioneiro no uso de interface e de módulo explanador Procurou imitar um médico num consultório Regra e diálogo do MYCIN If the infection is primary-bacteremia, and the site of the culture is one of the sterile sites, and the suspected portal of entry of the organism is gastrointestinal tract, then there is suggestive evidence (0.7) that the identity of the organism is bacteroides. > What is the patient’s name? John Doe. > Male or Female? Male. > Age? He is 55. > Have you obtained positive cultures indicating general type? Yes. > What type of infection is it? Primary bacteremia. > When did symptoms first appear? May 5. > Let’s call the most recent positive culture C1. From what site was C1 taken? From the blood. > When? May 9. > Let’s call the first significant organism from this culture U1. Do you know the identity of U1? No. > Is U1 a rod or a coccus or something else? Rod. > What is the gram stain of U1? Gram-negative. > Have there been positive cultures from sites that are not associated with the infections about which you are seeking advice? No. > Diagnosis... > My recommendations will be based on the opinion that the identity of U1 may be: 1. Psedomonas-aeruginosa 2. Klebsiella-pneumoniae 3. E. coli 4. Bateroides-fragilis 5. Enterobacter 6. Proteus-nommirabilis Some more questions... > On a scale of 0 to 4, where higher numbers indicate greater severity, how would you rate the patient’s degree of sickness? 3. > Does the patient have a clinically significant allergic reaction to any antimicrobial agent? No. > How much does the patient weigh? 70 kg. > First recommendation... > My first recommendation is as follow: to cover for items 1,2,3,5 and 6, give gentamycin using a dose of 119 mg (1,7 mg/kg) q8h IV [or IM] for 10 days. Modify dose in renal failure. Also, to cover for item 4, give clindamycin using a dose of 595 mg (8.5 mg/kg) qh6 IV [or IM] for 14 days. If diarrhea or other gastrointestinal symptoms develop, check for pseudomembranous colitis. Explicando-se… Histórico Anos 60 -70: SEs orientados a tarefas exclusivamente Regras e heurísticas, sem descrições de domínio Anos 70-80: SEs orientados a domínios PROSPECTOR [Hart et al 78]: Prospecção mineral Redes semânticas, classes, subclasses, instâncias... Aceitação comercial: CATS-1, XCON, ... CATS-1 Problema da General Electric: Aposentadoria de David Smith: engenheiro especialista em falhas de motores elétrico-diesel de locomotivas Solução convencional Treinamento de engenheiros novatos 1980: Construção de CATS-1 (DELTA) Meses de entrevista, 3 anos p/ primeiro protótipo Permite diagnóstico em poucos minutos Existe um em cada oficina Dá treinamento, é amigável e explica decisões Exemplo de SE: XCON (1978) Domínio do conhecimento: Configuração de computadores de VAX, a partir de especificações dos clientes. Entrada: Características necessãrias ao sistema computatorizado. Saída: Especificação do sistema computatorizado. A DEC tentou escrever um programa convencional para fazer este tarefa, sem nenhum sucesso McDermott foi então convidado escrever um sistema espeiclista Sucesso do XCON Até 1986, o XCON tinha processado 80.000 orçamentos, com precisdão de 95-98% conseguida Lucro para a DEC: $25M / ano O sucesso foi tão grande que a DEC fez uma família de SEs XSEL – suporte à pré-venda e venda XSITE – planos par ao projeto físico Exemplo de regra no XCON IF the most current active context is distributing massbus devices & there is a single port disk drive that has not been assigned to a massbus & there are no unassigned dual port disk drives & the number of devices that each massbus should support is known & there is a massbus that has been assigned at least one disk drive and that should support additional disk drives & the type of cable needed to connect the disk drive to the previous device on the disk drive is known THEN assign the disk drive to the massbus Roteiro Definição e Histórico Conceitos Básicos Componentes de um Sistema Especialista Ciclo de desenvolvimento Problemas e soluções de Aquisição de Conhecimento Tendências Futuras Expertise Conhecimento específico sobre a tarefa modelada e seu domínio: Fatos e teorias sobre o domínio Frames, redes semânticas,... Regras boas e rápidas e procedimentos gerais, advindas da experiência Heurísticas para situações específicas Estratégias globais Especialista Detentor do conhecimento sobre a área e sobre a tarefa específica. Sabe: Reconhecer e formular o problema em sua verdadeira extensão Explicar a solução (às vezes) Quando quebrar regras Relevância dos fatos Engenheiro de Conhecimento Ajuda a transferir a expertise para o Sistema Especialista. Tarefas: Aquisição do conhecimento Representação Documentação Principalmente para o módulo explanador Roteiro Definição e Histórico Conceitos Básicos Componentes de um Sistema Especialista Ciclo de desenvolvimento Problemas e soluções de Aquisição de Conhecimento Tendências Futuras Estrutura de um Sistema Especialista Usuário Módulo Explanador Base de Conhecimento Motor de Inferência Módulo de Aquisição de Conhecimento Interface Especialista/ Engenheiro de Conhecimento Componentes Interface: Linguagem natural ou menus Pode fazer perguntas ao usuário Deve permitir ao usuário descrever o problema Pode permitir ao especialista ou engenheiro de conhecimento inserir conhecimento Módulo de Explanação. Responde a: Como chegou a uma dada conclusão? Porque rejeitou uma dada alternativa? Qual o plano para achar uma solução? Porque fez uma pergunta específica? Funcionamento típico O especialista e o engenheiro especificam conhecimento, que é armazenado na memória permanente (regras, frames,...) do motor de inferência Usuário entra com descrição do problema, normalmente por um template da interface O motor de inferência aplica o conhecimento permanente ao problema e vai deduzindo fatos novos na memória volátil, até chegar a uma solução do problema Roteiro Definição e Histórico Conceitos Básicos Componentes de um Sistema Especialista Ciclo de desenvolvimento Problemas e soluções de Aquisição de Conhecimento Tendências Futuras Ciclo de Desenvolvimento de um Sistema Especialista Inicialização Definição do Problema, Requisitos Análise Fechamento da Base de Conhecimento e dos módulos, Testes, Validação pelos Avaliação usuários, Prototipagem Projeto, Identificação Desenvolvidas fontes de mento conhecimento Definição e Representação do Conhecimento, Protótipos, Módulos, Interface, Testes Treinamento, Documentação Operação, Upgrades, Avaliação Implemenperiódica tação Manutenção Roteiro Definição e Histórico Conceitos Básicos Componentes de um Sistema Especialista Ciclo de desenvolvimento Problemas e soluções de Aquisição de Conhecimento Tendências Futuras Aquisição de Conhecimento De que conhecimento precisa um SE? Conhecimento, principalmente, do especialista Conhecimento sobre a tarefa Ver que conceitos e relações são relevantes! Heurísticas/ regras para a solução Livros e documentos sobre o problema e sua área Ontologia do domínio Conceitos, instâncias, relações, restrições Conhecimento geral (às vezes necessário) Ciclo de Desenvolvimento de um Sistema Especialista Inicialização Definição do Problema, Requisitos Análise Fechamento da Base de Conhecimento e dos módulos, Testes, Validação pelos Avaliação usuários, Aquisição de Projeto, Identificação Conhecimento, Desenvolvidas fontes de mento conhecimento o Gargalo ! Prototipagem Definição e Representação do Conhecimento, Protótipos, Módulos, Interface, Testes Treinamento, Documentação Operação, Upgrades, Avaliação Implemenperiodica tação Manutenção Problemas na aquisição Problemas inerentes ao problema que se deseja resolver: Dificuldade de enumeração de todos os casos Terminologia difícil do domínio (ex: medicina) Problemas com o especialista Às vezes, o especialista não sabe porque toma determinadas decisões Muitas informações implícitas nas decisões do especialista, e ele não consegue expressá-las Separar o joio do trigo Conhecimento relevante x irrelevante O especialista não quer colaborar Soluções para os Problemas de Aquisição Métodos de aquisição Manuais Semi-automáticos Automáticos Sistemas Especialistas de 2ª. geração Métodos Manuais de Aquisição especialista Engenheiro de codificação Base de conhecimento conhecimento documentação Entrevistas Desestruturada Estruturada: agendas, formulários, casos, etc Rastreamento cognitivo Gravações de descrições detalhadas do especialista Engenheiro faz regras e valida com o especialista Métodos Semi-automáticos de Aquisição especialista Ferramentas de apoio Base de conhecimento Engenheiro de conhecimento Ferramentas para o engenheiro Editores, ambientes integrados (ex: Protégé), ferramentas visuais Ferramentas para o especialista Análise de grades de características (repertory grid analysis) Métodos Automáticos de Aquisição Casos e exemplos Indução automática Regras Técnicas de Aprendizado Automático É preciso gerar conhecimento explícito, muitas vezes em forma de regras! Por isso... Técnicas simbólicas de aprendizado Árvores de Decisão Espaço de Versões, ... Comparação entre usar um especialista e um SE Variável Tempo Disponível Localização Geográfica Segurança Perecível Desempenho Velocidade Custos Aspectos Emotivos Sujeito a Cansaço Especialista Horário de Trabalho Local Insubstituível Sim Variável Variável Altos Sim Sim Sistema Espec. Sempre Global Substituível Não Consistente Constante Suportá veis Não Não Sistemas Especialistas – 2ª. Geração Objetivo: Acelerar a construção de SEs Reuso é imperativo: BCs são a parte mais cara de um SBC Melhorias no processo de modelagem do conhecimento Tendência a que o próprio especialista edite o conhecimento Protégé [Gennari et al 2003] Integração entre aprendizado e inferência simbólica para acelerar a aquisição Sistemas híbridos Como reusar conhecimento?? Reuso de conhecimento sobre as tarefas: Metodologia CommonKADS [Schreber et al 94] Reusa modelos de problemas e sub-problemas Propõe especificar as tarefas em função da decomposição destas em sub-tarefas, e assim recursivamente Reuso do conhecimento sobre o domínio Ontologias Reuso de Conhecimento sobre Tarefas: CommonKADS Meta-modelos prontos para determinados tipos de tarefa: Diagnóstico, Monitoração, etc Não entrou muito em uso: Muito abstrato Necessita de muitas especificações Mas agora os metamodeos voltaram à moda! KADS system’s structure given (analysis) constructed (synthesis) modified (transformation) solution type states (predict) category (identification) solution type sequence of steps (planning) structure (design) category type discrepancy (monitoring) decision faulty category class (diagnosis) (assessment) model type fault model correct model (systematic diagnosis) (heuristic classification or cover & differentiate) Ontologia do domínio de áudio part-of audio system is-a component audio speaker tape system system deck speaker amplifier tape system deck ... left right speaker speaker components’ properties • deck: function • deck: power • amplifier: power • amplifier: input-signal • ... Properties tests • deck-power-switch • input-selector (stop, play, rew, ff, pause) (on,off) (on,off) (deck, turner, CD, VCR, Aux) (preessed, not pressed) (deck, turner, ...) ... Ontologia do domínio de áudio causes (relation) • deck: power = on and deck: function = play and cable-connection: deck amplifier = present CAUSES amplifier: input-signal = deck • amplifier: input-signal = deck and amplifier: input-selector = deck CAUSES amplifier: output-signal = deck indicates • deck-power-switch = pressed INDICATES deck-power = on • input-selector = X INDICATES amplifier: input-signal = X Roteiro Definição e Histórico Conceitos Básicos Componentes de um Sistema Especialista Ciclo de desenvolvimento Problemas e soluções de Aquisição de Conhecimento Tendências Futuras Sistemas Especialistas por Área de Aplicação Agricultura Negócios Química Comunicações Sist. Computacionais Educação Electrónica Engenharia Ambiente Geologia Process. Imagem Gestão Informação Direito Indústria Matemática Medicina Meteorologia Ap. Militares Minas Sistemas Energia Ciência Tecnolog. Espaço Transportes 100 200 Número de aplicações 300 Sistemas Especialistas por Tipo de Problema Controlo Concepção Diagnóstico Instrução Interpretação Monitorização Planeamento Previsão Prescrição Selecção Simulação 10 20 Percentagem de aplicações 30 Tendências em Sistemas Especialistas Integração de SEs numa empresa Sistemas de Gestão de Conhecimento Memória organizacional Expressão sendo substituída Agentes inteligentes... Uso cada vez maior de ontologias Web Semântica Sistemas híbridos Resumo: Para fixar Sistemas Especialistas são SBCs que resolvem problemas complexos, de difícil solução algorítmica Componentes de um SE: Interface, Módulo Explanador, Motor de Inferência e Base de Conhecimento Aquisição de Conhecimento é o maior problema dos SEs, por causa das dificuldades de obter o conhecimento do especialista Soluções: Ferramentas de Aquisição e Reuso de Conhecimento Bibliografia Básica Turban, E., Aronson, J. Decision Support Systems and Intelligent Systems, Prentice Hall, 2000 Turban, E. Expert Systems and Applied Artificial Intelligence, MacMillan Publishing Company, 1992 Giarratano, J., Riley, G. Expert Systems: Principles and Programming, Course Technology, 1998 Bibliografia Adicional Hart, P.E. Duda, R.O. and Einaudi., M.T. Prospector - a computer-based consultation system for mineral exploration. Mathematical Geology, 10(5), 1978 Shortliffe E.H. Computer-Based Medical Consultations : MYCIN. American Elsevier, New York, 1976. Gennari, J., Musen, M., Fergerson, R., Grosso, W., Crubézy, M., Eriksson, H., Noy, N., Tu, S.. The evolution of Protégé’: an environment for knowledge-based systems development. http://smi.stanford.edu/pubs/SMI_Abstracts/SMI -2002-0943.html. 2003. Bibliografia Adicional Schreiber, A., Wielinga, B., de Hoog, R., Akkermans, H., van de Velde, W. CommonKADS: A Comprehensive Methodology for KBS Development. IEEE Expert, Dezembro/1994 Freitas, F. Ontologias e a Web Semântica, Anais da III Jornada de Mini-Cursos de Inteligência Congresso da Sociedade Brasileira de Computação, Campinas. Artificial. p. 1-52. Campinas, Brasil. 2003