Baixe o app para aproveitar ainda mais
Prévia do material em texto
Unidade 03 – Sistemas Baseados em Conhecimento 1. Introdução Um sistema inteligente requer conhecimento. Quando este conhecimento está voltado ao conhecimento humano, geralmente se apresenta em grandes volumes, com imprecisão, de maneira dinâmica e organizado de acordo com seu conteúdo. Dessa forma, quando o objetivo é desenvolver um sistema artificial baseado em conhecimento ele deve ter capacidade de generalização, deve ser compreensível e deve ser facilmente modificável. Conceitualizar a palavra conhecimento é um processo bem mais amplo e que envolve outros conceitos tais como dado e informação. Dados são fatos, imagens, sons que podem ou não ser úteis para uma determinada tarefa; assim, um dado é a estrutura fundamental sobre a qual um sistema de informação é construído. Informação é um dado cuja forma e conteúdo são apresentados de forma que são úteis para uso em um processo de tomada de decisão. A transformação dos dados em informação é frequentemente realizada através da apresentação dos dados em uma forma compreensível para o usuário. Com isso, é possível perceber que uma informação é um dado que passou por um critério de seleção que o categorizou como relevante para um determinado processo. A utilidade da informação para um usuário final é um critério importante na avaliação da eficácia e da validade da mesma. Uma vez diferenciados os conceitos de dado e informação neste momento é pertinente contextualizar o que é “conhecimento”. O conhecimento fornece a capacidade de resolver problemas, inovar e aprender baseado em experiências prévias. Estas experiências envolvem uma combinação de instintos, idéias, regras e procedimentos que guiam as ações e as decisões. O êxito do conhecimento em explicar a forma como as coisas acontecem é um critério importante na validação desse conhecimento. A partir disso, pode-se afirmar: Dado não é informação! Informação não é conhecimento! Conhecimento não é inteligência! Título: Unidade 3 Autora: Profª. M. Sc. Luciana De Nardin Inteligência não é sabedoria! E você concorda com tais afirmações? 2. Introdução a Sistemas Baseados em Conhecimento (Knowledge-based systems) Um exemplo clássico encontrado na literatura é uma análise com relação a West cujo problema é o seguinte: “A lei americana diz que é proibido vender armas a uma nação hostil. Cuba possui alguns mísseis e, todos eles foram vendidos pelo Capitão West, que é americano”. Assim, deseja-se descobrir se West é um criminoso ou não. Para um ser humano resolver este problema seria necessário analisar: Linguagem: é compreensível o que está escrito em português? Conhecimento: o que se sabe sobre geopolítica e armas? Inferência: um ser humano é capaz de raciocinar usando o conhecimento descrito em português? Através do texto citado anteriormente em linguagem natural é possível extrair as informações mostradas na Tabela 01, 02 e 03. Tabela 01 – Conhecimento prévio sobre o problema Conhecimento prévio a) Todo americano que vende uma arma a uma nação hostil é criminoso. b) Todo país em guerra com uma nação X é hostil a X. c) Todo país inimigo político de uma nação X é hostil a X. d) Todo míssil é uma arma. e) Toda bomba é uma arma. f) Cuba é uma nação. g) EUA é uma nação. h) Cuba é inimigo político dos EUA. i) Irã é inimigo político dos EUA. Tabela 02 – Conhecimento do problema Conhecimento do problema j) West é americano. k) Existem mísseis em Cuba. l) Os mísseis de Cuba foram vendidos por West. Tabela 03 – Novo conhecimento Novo conhecimento m) Cuba possui um míssel M1 n) M1 é um míssel De K De K o) M1 é uma arma p) Cuba é hostil aos EUA q) M1 foi vendido a Cuba por West r) West é criminoso. De D e N De F, G, H E C De L, M e N De A, J, O, P e Q Através das Tabelas 01, 02 e 03 é possível perceber que para um ser humano responder a questão se West é um criminoso ou não, seria um processo simples, porém, como uma máquina poderia resolver este problema? De acordo com a IA para um sistema resolver este problema é necessário: Identificar o conhecimento do domínio; Representá-lo em uma linguagem formal; Implementar um mecanismo de inferência para utilizá-lo. Porém, para que tais etapas possam ser cumpridas algumas outras questões precisam ser respondidas, sendo elas: como adquirir esse conhecimento? Como representá-lo adequadamente? Como raciocinar com ele de maneira correta e eficiente? Os sistemas baseados em conhecimento são desenvolvidos com o intuito de que sejam capazes de resolver problemas de forma parecida com que os seres humanos resolveriam. Em alguns problemas os seres humanos são mais bem sucedidos que as máquinas, porém, os computadores são melhores no que diz respeito à velocidade e consistência com que executam as tarefas. Assim, para que o computador seja capaz de resolver tarefas para as quais o ser humano é melhor, é preciso muni-lo de todo o conhecimento especializado comparável ao que um especialista humano possui. Um sistema baseado em conhecimento (SBC) possui dois componentes chave que são: Base de conhecimento; e, Mecanismo de inferência ou de raciocínio. A base de conhecimento (BC) contém todo o conhecimento sobre o domínio do problema. Esse conhecimento é formado por um conjunto de sentenças em linguagem de representação que modelam o problema que se deseja resolver, isto é, o conhecimento está representado em uma linguagem tratável pelo computador. O mecanismo de inferência é um processador de um SBC cuja responsabilidade é realizar inferências sobre esta base e obter conclusões sobre o conhecimento nela contido. O desenvolvimento de um SBC é uma forma de preservar, aproveitar e fazer uso da experiência dos membros de uma organização, uma vez, que o conhecimento de um especialista é capturado, organizado e disponibilizado na base de conhecimento durante a construção do SBC. Assim, um SBC pode ser definido como um programa de computador que usa conhecimento representado explicitamente para resolver problemas que requerem uma quantidade razoável de conhecimento humano e especialização. Duas operações são fundamentalmente utilizadas na resolução do problema, são elas: Capacidade de raciocínio: como se chega a certas conclusões ou se gera conhecimento novo com base no conhecimento adquirido; Método para resoluções de problemas: especialistas determinam as seqüências de operações de raciocínio para a resolução de problemas que encontram soluções rapidamente, assim, apenas conclusões relevantes ao problema devem ser consideradas. 2.1 Características específicas de um SBC Um SBC deve atender às seguintes características: 1) Questionar o usuário, usando uma linguagem simples a fim de coletar as informações de que necessita; 2) Desenvolver uma linha de raciocínio a partir de tais informações e do conhecimento previamente armazenado na base para encontrar soluções satisfatórias; 3) Deve ser capaz de explicar seu raciocínio; 4) Deve conviver com seus erros da mesma forma que um especialista humano faz. 2.2 Níveis de conhecimento Um SBC é composto pelos seguintes níveis: Nível de Conhecimento: nesta etapa acontece a aquisição do conhecimento em estado puro, por exemplo: para um táxi automático deveria ser passada a seguinte informação, a ponte Princesa Izabel liga a Rua Imperatriz à Rua Nova; Nível lógico ou de representação: neste nível acontece a formalização do conhecimento codificado em sentenças. Utilizando o exemplo do nível de conhecimento, sua formalização seria: liga(Ponte_PI, RI, RN); Nível de máquina ou de implementação: neste nível acontece a definição final da forma com que a implementação irá acontecer, ou seja, quais estruturas de dados serão utilizadas para representar o conhecimento em uma linguagem de máquina.Por exemplo: listas, tabelas, etc. 2.3 Linguagens de Representação de Conhecimento Uma linguagem de representação do conhecimento é definida por: Uma sintaxe que descreve as configurações que podem constituir sentenças daquela linguagem; Uma semântica que associa cada sentença aos fatos no mundo que ela representa: Cada sentença faz uma afirmação a respeito do mundo; O sistema acredita nas sentenças que correspondem a sua configuração interna. Um mecanismo de inferência é um conjunto de regras para gerar novas implicações a partir de um conjunto de expressões. 2.4 Raciocínio, Lógica e Inferência O raciocínio é um processo de construção de novas sentenças a partir de sentenças existentes. Um raciocínio plausível garante que as novas sentenças representam fatos que se seguem dos fatos representados pelas sentenças existentes na base de conhecimento. O raciocínio plausível implementa ainda a relação “implicação” entre sentenças. A Figura 01 ilustra uma representação do mundo real. Figura 01 – Representação do mundo real Ainda na Figura 01 é possível perceber que, enquanto no mundo real fatos seguem-se de fatos, quando se utiliza uma representação simbólica, os fatos se transformam em sentenças e, sentenças implicam em sentenças; o que significa que, uma sentença é uma representação semântica de fatos. A inferência pode acontecer de três maneiras distintas, sendo: Dedução: um conjunto de fatos associado a um conjunto de regras de inferência geram novos fatos, ou seja, ele parte de uma premissa maior para uma menor. Exemplo: em todo lugar que há fogo, há fumaça. Aqui tem fogo, logo tem fumaça. Abdução: é o inverso da dedução. Para [Pierce, 1975] o raciocínio abdutivo é a chave das grandes descobertas científicas revolucionárias. Exemplos: há fumaça, portanto, provavelmente, há fogo. Todos os livros daquela caixa são de matemática. Este livro provém daquela caixa, portanto, provavelmente, este livro é de matemática. Indução: parte-se dos fatos para gerar regras. A indução ocorre quando generalizamos a partir de certo número de casos em que algo é verdadeiro e, inferimos que regra será verdadeira. Exemplo: Se a Sheila morena não canta bem, a Sheila loira não canta bem, então, nenhuma dançarina canta bem. O pensamento em todos os níveis apresenta uma grande similaridade aos três tipos de raciocínio apresentados. Resumidamente, a indução de qualquer classe, não pode gerar idéias novas, mas, pode confirmar ou rejeitar hipóteses. Só a abdução é capaz de introduzir idéias novas e é o primeiro passo da inferência científica, mesmo muitas vezes sendo ineficaz, é o único responsável pelas descobertas com que o homem tenta explorar e explicar o mundo [Pierce, 1975]. A indução é o mais eficaz dos argumentos uma vez que representa o passo conclusivo do raciocínio. 2.5 Representação do Conhecimento Diversas estruturas podem ser usadas para representar conhecimento. As Tabelas 04 e 05 ilustram as vantagens e desvantagens das mais comuns e que serão abordadas no decorrer desta disciplina. Tabela 04 – Vantagens de algumas formas de representação do conhecimento Representação Vantagens Lógica Formal Os fatos existem na base de conhecimento independente de seu uso. Existe a garantia de que todas e somente as conseqüências válidas serão obtidas. Sistema baseado em Regras Sintaxe simples. Simples de interpretar. Altamente modular. Altamente flexível (fácil de aumentar informações ou modificá- las). Redes Semânticas Fácil de rastrear relações. Altamente flexível. Frames Adequado para interpretar hierarquias. Tem grande poder de expressão. Facilidade em adicionar atributos para novas propriedades e relações. Facilidade em detectar valores não informados. Tabela 05 – Desvantagens de algumas formas de representação do conhecimento Representação Desvantagens Lógica Formal Ineficiência com grandes bases de conhecimento Sistema baseado em Regras Ineficiente para sistemas grandes Nem todo o conhecimento pode ser expressado por meio de regras Inadequado para representar conhecimento descritivo estruturado Redes Semânticas Conhecimento embutido nos nós pode ser ambíguo Dificuldade para lidar com exceções Dificuldade em programar Frames Dificuldade em programar Inadequado para fazer inferência 3. Engenharia do Conhecimento O papel da área da engenharia de conhecimento é estudar como construir uma boa BC, uma vez que, uma boa BC é fundamental para um bom sistema baseado em conhecimento. O responsável por construir a BC é o engenheiro de conhecimento que irá determinar quais conceitos são importantes no domínio escolhido e, irá criar representações dos objetos e suas relações no domínio dado. Uma BC de conhecimento tem dois consumidores diretos: os usuários e o mecanismo responsável por realizar a inferência e gerar novos conhecimentos. Dessa forma, ela deve: Ser clara e correta; Representar apenas objetos e relações relevantes; Idealmente, deve ser codificada separada do procedimento de inferência devido a quesitos como, reusabilidade, modularidade, etc.; Melhorar a eficiência do processo de inferência. Vale destacar que o mecanismo de inferência deve fornecer a mesma resposta, independente da forma com que a base foi codificada. 4. Sistemas Especialistas Sistemas especialistas (SE) são sistemas baseados em conhecimento que empregam o conhecimento humano para resolver problemas que requerem a presença de um especialista e pertencem a área de aplicação de mais sucesso dentro da IA. Entre seus principais benefícios na automação pode-se destacar: Provê alta qualidade de serviço: Substancial aumento de desempenho; Serve de repositório armazenando conhecimentos que poderão ser utilizados no futuro, uma vez que a experiência dos especialistas é perdida com o tempo, especialmente, no momento em que eles se especializam em outro assunto ou quando trocam de emprego. Um SE nunca esquece um procedimento, nem mesmo em seus mínimos detalhes. Possui a mesma velocidade e dinâmica de um especialista humano só que 24 horas por dia durante todos os dias; Provê baixo custo do serviço pela produtividade adquirida: Significativo aumento de produtividade: um SE pode levar uma pessoa de pouca experiência para o nível de um especialista, executando tarefas mais rapidamente e mais facilmente; Reduz os custos com funcionários especializados, pois, com SE’s uma tarefa de grande complexidade pode ser realizada por funcionários que não sejam experts, mas, que tenham um sistema de apoio à decisão, e os especialistas podem ficar dedicados a tarefas realmente complexas; SE’s podem trabalhar melhor do que um especialista humano, pois, podem combinar a capacidade do especialista com a velocidade e precisão de uma máquina. Além disso, podem fazer uma análise detalhada e completa de uma situação que dificilmente um ser humano seria capaz de fazer. Se um SE for bem estruturado, ele não cometerá erros que eventualmente o ser humano poderia cometer. Por fim, um SE seria capaz de fazer tarefas detalhadas e repetitivas – que um especialista humano talvez as desprezasse, em uma situação em que as chances de resolver um problema fossem muito pequenas. Prove gerenciamento e supervisão com maior flexibilidade: Quando o SE se encarrega de resolver problemas de gerência com grande precisão e velocidade, o supervisor do sistema (humano) não precisa ser um especialista o que provê maior flexibilidade e rodízio na função; Treinamento pessoal: Os SE’s são capazes de fornecer informações detalhadas de diversos níveis, sobre qual procedimento foi utilizado para encontrar determinada solução. Esta pode ser a maior ajuda no treinamento de pessoas inexperientes. Além disso, existemSE’s construídos essencialmente para prover treinamento, possuindo até didática. Entretanto, SE’s também podem gerar problemas. Com a introdução de procedimentos autônomos os trabalhadores podem se sentir inseguros (achando que irão perder o emprego para a máquina). Para evitar isso, pode ser interessante realizar uma migração lenta e responsável do sistema humano para a automação mantendo a supervisão como tarefa do ser humano. 4.1 Conceitos básicos É interessante definir alguns conceitos da linguagem utilizada em SE’s. São eles: Expertise: representa vasto conhecimento adquirido através de longo treinamento, leitura ou experiência do especialista em determinado assunto; Especialista: é quem possui o conhecimento, experiência, métodos ou habilidade de aplicar o expertise para dar conselhos e resolver problemas; Transferência de conhecimento: passo em que o expertise é transferido do especialista para a máquina; Engenheiro de conhecimento: é o responsável por guiar a aquisição e representação do expertise, bem como, por implementar e refinar o sistema; Usuário: é um cliente não-especialista, um aprendiz ou até mesmo o próprio especialista, que fornece os dados sobre um problema específico e pede uma explicação ao sistema. É fundamental que o especialista seja capaz de reconhecer e formular um problema, apresentar solução rápida e apropriada para o problema, explicar a solução apresentada, aprender por experiência, quebrar algumas regras quando forem necessárias (“jogo de cintura” que o ser humano possui), determinar a relevância dos fatos e a relação entre eles. 4.2 Exemplo de um SE Suponha que exista um SE na venda de carros que possui a base de conhecimento como a mostrada na Figura 02. Figura 02 – Base de conhecimento de um SE especialista na venda de Carros As questões a seguir ilustram como o usuário irá interagir com o sistema. De acordo com as respostas fornecidas pelo usuário (apresentadas em negrito) uma solução será apresentada utilizando a BC descrita na Figura 02. 1) Tem preferência por qual marca de automóvel? a. Marca A b. Marca B c. Marca C d. Marca D e. Não importa 2) Qual a motorização desejada? a. 1.0 b. 1.4 c. 1.8 d. 2.0 Carro (Nome do Carro, Marca, motorização, número de portas, valor, ano de fabricação) Carro (Palio, Marca C, 1.0, 4, 30.000, 2008) Carro (Uno, Marca C, 1.0, 2, 15.000, 2007) Carro (EcoSport, Marca D, 2.0, 4, 50.000, 2009) Carro (Gol, Marca A, 1.4, 2, 32.000, 2006) e. Não importa 3) Qual o número de portas desejado? a. Duas portas b. Quatro portas c. Não importa 4) Qual valor você deseja pagar? a. Até R$ 15.000,00 b. De R$ 15.000,00 a R$ 30.000,00 c. Acima de R$ 30.000,00 d. Não importa 5) Quantos anos de uso o carro deve ter? a. No máximo 2 b. No máximo 5 c. No máximo 10 d. Não importa A partir das respostas escolhidas pelo usuário (Marca C, 1.0, 4, 15.000, 2) o sistema irá buscar na BC por uma solução que atenda as necessidades especificadas. Consultando a Figura 02 é possível perceber que nenhuma resposta será retornada, uma vez que nenhum automóvel na BC tem as características desejadas. Porém, se alguma das respostas for um pouco mais flexível (por exemplo, o número de portas), então, uma solução será retornada (Uno). Dessa forma, é possível perceber que quanto mais específica for a consulta maior a probabilidade de que nenhuma resposta seja encontrada, a partir do momento que algumas restrições se tornam mais flexíveis a probabilidade de encontrar respostas aumenta! 4.3 Arquitetura de um Sistema Especialista Um SE é composto por um ambiente de desenvolvimento e um ambiente de consulta. Considerando estes dois ambientes, ele ainda pode ser decomposto nas seguintes partes ou módulos: Subsistema de aquisição de conhecimento: este módulo é responsável por extrair o conhecimento do especialista e armazená-lo na BC; Base de conhecimento: irá conter o conhecimento necessário para o entendimento e formulação da solução do problema. É formado pelo conhecimento do domínio mais a estrutura que irá inferir soluções e pode incluir: fatos (são sempre verdade), regras (que irão inferir novos fatos), frames (possível forma de representação do conhecimento) e heurísticas (soluções aceitáveis que deverão ser atingidas). Para isso, a base de conhecimento utiliza uma linguagem de representação do conhecimento; Base de fatos ou memória de trabalho (blackboard): é a memória temporária (ou volátil). É sua função registrar a descrição do problema e as hipóteses ou decisões intermediárias. Possui três tipos de decisões: 1) plano: como atacar o problema; 2) agenda: lista de ações potenciais que estão esperando por execução e; 3) solução: hipóteses e alternativas que o sistema já tenha produzido; Máquina de Inferência: é a parte da BC e da memória de trabalho cuja responsabilidade é chegar a uma conclusão. Ela possui três elementos principais: 1) interpretador: executa os itens da agenda aplicando as regras à BC; 2) Controlador da agenda (scheduler): ordena a agenda conforme as prioridades/estratégias; e, 3) verificador de consistência: verifica se a solução emergente é consistente e plausível; Interface com o usuário: é o módulo que irá trabalhar direto com o usuário. Para ser eficiente deve ter um modelo intuitivo e ser simples de utilizar; Subsistema de explicação: deve explicar o comportamento do SE através de questões como: por que certa pergunta foi feita ao SE? Como a conclusão foi alcançada? Por que alguma alternativa foi rejeitada? Qual é o plano para alcançar a solução? A Figura 03 ilustra a arquitetura completa de um SE. Figura 03 – Arquitetura de um SE 4.4 Problemas na construção de um SE Para que um SE tenha um bom desempenho é fundamental que sua BC seja bem fundamentada e coerente. Entretanto, a tarefa de adquirir o conhecimento é que representa um dos maiores problemas, pois, existe uma dificuldade muito grande do especialista (humano) na hora de transferir seu conhecimento para o engenheiro de conhecimento que irá modelar a base. Para o especialista algumas soluções são intuitivas ou mesmo “compiladas”, uma vez que ele as executa corriqueiramente, assim, ele sabe resolver o problema, mas, não é capaz de explicar a forma que utiliza. Isso acontece por que o conhecimento é tácito, ou seja, é um conhecimento que está implícito em sua mente e que para ser relatado deve ser explicado. Essa é inclusive uma dificuldade inerente aos seres humanos, pois, muitas vezes, as pessoas possuem conhecimentos que nem mesmo sabem que os têm. Existe também o problema da utilização de um vocabulário próprio (jargão) pertinente a área que nem sempre o engenheiro de conhecimento está habituado, além, é claro, da dificuldade inerente de verbalizar sobre pressão. Essa pressão existe porque geralmente os especialistas são profissionais extremamente valiosos e requisitados dentro de uma empresa, o que gera uma grande dificuldade tê-los comprometidos plenamente com o propósito de desenvolver um SE. Como último grande problema na aquisição de conhecimento pode que o conhecimento expressado seja: 1) irrelevante: muitas vezes, quantidades enormes de informação supérfluas são coletadas para que só depois sejam organizadas; 2) incompleto: o especialista pode não se lembrar do conhecimento aprofundado sobre o problema ou pode “pular” partes importantes; 3) incorreto: por vontade própria (receio de sua substituição por um sistema) ou inconscientemente ele pode fornecer informações incorretas; e, 4) inconsistente: o especialista pode em um dado momento fornecer determinada informação e, a seguir, se contradizer fornecendo outra, afinal, não existe garantia da qualidade da solução apresentada. Além disso, a informação pode vir acompanhada de um grande nível deincerteza que também manifesta insegurança. O grande desafio nesta fase é evitar informações irrelevantes sem bloquear a descoberta de conceitos adicionais. 4.5 Métodos de aquisição de conhecimento A parte mais sensível no desenvolvimento de um SE é, certamente, o processo de aquisição de conhecimento. Este processo não pode se limitar apenas a acrescentar novos conhecimentos à base, mas, é fundamental estabelecer relações entre os elementos que constituem o novo conhecimento e o conhecimento antigo. Fato este que faz com que esta etapa represente um “gargalo” na construção de SE’s [Rezende, 2005]. Outro ponto importante neste processo é que dependendo da forma com que o conhecimento é adquirido podem acontecer erros de aquisição. Esses erros podem ser resultado da própria complexidade do conhecimento obtido, por exemplo, sensores que captam informações automaticamente e estão sujeitos a ruídos externos, ou podem ser gerados através da interferência humana. As fontes de conhecimento usadas no processo da aquisição podem ser documentadas ou não. São consideradas fontes documentadas: livros, gráficos, filmes, relatórios, diagramas, manuais, entre outras. As fontes não documentadas são aquelas que residem na mente das pessoas e que atuam diretamente no domínio da aplicação do sistema [Costa & Silva, 2005]. Quando o engenheiro utiliza fontes documentadas é interessante que ele conheça o domínio do problema para que seja capaz de extrair o conhecimento relevante. Caso não conheça, torna-se necessário recorrer a pessoas que trabalham diretamente com o assunto em questão. Dessa forma, vários esforços têm sido feitos para sistematizar ou até mesmo automatizar este processo. Estes esforços resultaram em várias técnicas que podem ser classificadas em: manuais (mais utilizadas), semi-automáticas (bastante utilizadas em conjunto com técnicas manuais) e automáticas (bastante complexas de serem utilizadas). Manual: a extração do conhecimento do especialista é realizada através de entrevistas, sejam elas estruturadas ou não, ou através da análise de protocolos e observação. Neste caso, o especialista irá “explicar” ao engenheiro do conhecimento e irá fornecer a documentação que também poderá contribuir neste processo. É fundamental que o engenheiro conheça sobre o assunto para que a conversa possa fluir a um nível um pouco mais adiantado. A Figura 04 ilustra essa situação. Figura 04 – Extração do conhecimento através de método Manual As técnicas manuais podem ser bastante problemáticas devido ao grande número de pessoas envolvidas (especialistas, engenheiros, programadores) [Rezende, 2005]. O processo de adquirir o conhecimento do especialista e transmiti-lo aos programadores pode gerar ruídos de comunicação entre as partes. Semi-automático: os métodos semi-automáticos podem ser uma alternativa para minimizar o problema de ruído que existe no método manual. Neste caso, o especialista interage com uma ferramenta computacional que busca extrair o máximo de informação possível, porém, da maneira mais simplificada possível. A partir das respostas do especialista o engenheiro irá montar a base de conhecimento. Além de reduzir o contingente de pessoas envolvidas e o problema da comunicação entre essas pessoas, a aquisição semi-automática acelera o processo de construção da BC permitindo que o engenheiro e o especialista tenham respostas mais rápidas, pois, à medida que a BC vai sendo construída ela já pode ser testada e, possíveis erros podem ser identificados prematuramente [Costa & Silva, 2005]. A Figura 05 ilustra essa situação. Figura 05 – Extração do conhecimento através de método Semi-automático Automático: os métodos automáticos fazem parte de uma área bem mais ampla que inclui a mineração de dados e o aprendizado de máquina através de técnicas como redes neurais, árvores de decisão e outros. Neste método são fornecidas bases de dados, casos, exemplos, soluções já adotadas e através de uma técnica de indução é gerado um conjunto de regras que será utilizado na BC. Este método dispensa completamente a necessidade de um engenheiro de conhecimento. As técnicas utilizadas são eficientes em processos de reconhecimento de padrões como imagens e voz, mas, não são completamente capazes de extrair o conhecimento complexo da mente humana e ainda não são capazes de explicar a forma com que o raciocínio foi utilizado para resolver determinado problema. Dessa forma, são bastante limitadas em alguns aspectos [Costa & Silva, 2005]. A Figura 06 esquematiza a forma com que a extração do conhecimento acontece. Figura 06– Extração do conhecimento através de método Automático 4.6 Ferramentas para construção de um SE Para construção de SE existem quatro opções de linguagens mais comumente utilizadas. São elas: 1) Shell: mais utilizado por sua simplicidade de manipulação. Exemplos: OPS, ExpertSintra, KAS, entre outras; 2) Linguagens de programação para IA: um exemplo clássico é PROLOG que é uma linguagem que pertence ao paradigma lógico; 3) Linguagens de programação gerais: especialmente as orientadas a objetos como C++ e Java; 4) Linguagens híbridas: que utilizam componentes de IA e trabalham com regras associadas a objetos como: CLIPS, JESS, NeOPUS, JEOPS, etc. Para contribuir no processo de escolha da linguagem ideal para o domínio escolhido é fundamental analisar os seguintes critérios: facilidade de uso, flexibilidade, qualidade de interface para o sistema, desempenho e portabilidade. Analisados esses critérios é interessante escolher a linguagem que atenda, senão a todos, a pelo menos a maior parte deles. 4.7 Aplicações A Tabela 06 apresenta algumas aplicações de sucesso envolvendo SE’s e suas respectivas funções. Tabela 06 – Aplicações de sucesso em SE Área Nome Função Química CLONER Desenhar novas moléculas biológicas Eletrônica CADHELP Ensino para CAD Medicina PUFF ATTENDING Diagnosticar problemas pulmonares Ensinar administração de anestesias Engenharia STEAMER Ensinar a operar centrais termelétricas Sistemas de computadores YES/MVS Monitorar e controlar o sistema operacional MVS da IBM 5. Bibliografia [Costa & Silva, 2005] Costa, W. S.; Silva, S. C. M. Aquisição de conhecimento: o grande desafio na concepção de sistemas especialistas. Revista Holos, ano 21, Setembro, 2005. [Pierce, 1975] Pierce, C. S. Semiótica e filosofia. São Paulo, Cultrix, Editora Universidade de São Paulo, 1975. [Rezende, 2005] Rezende, S. O. Sistemas Inteligentes: fundamentos e aplicações. Barueri: Manole, 2005. [Rich & Knight, 1994] Rich, E.; Knight, K. Inteligência Artificial. 2ª Ed., São Paulo: McGraw-Hill, 1994. [Russell & Norvig, 2004] Russell, S.; Norvig, Peter. Inteligência Artificial. 2ª Ed. 2004.
Compartilhar