420 likes | 566 Views
Engenharia do Conhecimento. Ernesto Trajano Jacques Robin CIn-UFPE. Roteiro. O que é? Tipologia do conhecimento e do seu processamento Exemplo de metodologia: CommonKADS Processo simple para desenvolvimento de agente baseado em conhecimento Engenharia do conhecimento x de software
E N D
Engenharia do Conhecimento Ernesto Trajano Jacques Robin CIn-UFPE
Roteiro • O que é? • Tipologia do conhecimento e do seu processamento • Exemplo de metodologia: CommonKADS • Processo simple para desenvolvimento de agente baseado em conhecimento • Engenharia do conhecimento x de software • Tópicos avançados
O que é engenharia de conhecimento ? • Engenharia de agentes baseados em conhecimento • Metodologias • Processos • Base de conhecimento e meta-conhecimento reutilizáveis • Principalmente define como adquirir, analisar, validar e manter uma base de conhecimento (BC) • Também pode definir mecanismos de inferência a serem utilizados com esta base
Ask Tell Retract Engenharia do conhecimento para agentes artificiais Ambiente Raciocínio Automático Sensores Base de Conhecimento Especializada Máquina de Inferência Genérica Aquisição e Representação Conhecimento Atuadores
Engenharia do conhecimentopara agentes humanos • Extrair, documentar e gerenciar o conhecimento estratégico das organizações. • Sistemas colaborativos. • Repositórios de “expertise” (perícia).
Problemas • Informações e conhecimentos complexos são de difícil compreensão • Especialistas não são unânimes, nem precisos • Variedade de representações: • texto • gráficos, imagens • heurísticas, regras
Perspectivas • Transferência de conhecimento: • transferência do que está da cabeça do especialista para a base de conhecimento. • assume que o conhecimento já existe e que ele precisa apenas ser coletado. • hipótese não é correta: conhecimento implícito. • A máquina resolve como o especialista. • Modelagem do conhecimento: • construção de modelos do problema • Conseqüências: • modelo -> aproximação da realidade • processo cíclico • modelo pode estar sujeito a interpretações subjetivas, o que pode levar a erros. • A máquina resolve tão bem quanto o especialista.
Nível formal: • Notação sem ambigüidade com semântica definida matematicamente (Lógica, Probabilidades) • Verificação de consistência • Nível semi-formal: • Notação textual estruturada padrão (XML) • Notação gráfica padrão (UML) • Validação com especialista Engenharia de uma base de conhecimento Elicitação do conhecimento • Nível do conhecimento: • Nos termos do especialista do domínio de aplicação • Linguagem natural, Notações gráficas ad-hoc Formalização do conhecimento Implementação do conhecimento • Nível da implementação: • Codificação em uma linguagem de programação • Teste de protótipo
Nível formal: • Notação sem ambigüidade com semântica definida matematicamente (Lógica, Probabilidades) • Verificação de consistência • Nível semi-formal: • Notação textual estruturada padrão (XML) • Notação gráfica padrão (UML) • Validação com especialista Engenharia de uma base de conhecimento Elicitação do conhecimento • Nível do conhecimento: • Nos termos do especialista do domínio de aplicação • Linguagem natural, Notações gráficas ad-hoc Formalização do conhecimento Implementação do conhecimento • Nível da implementação: • Codificação em uma linguagem de programação • Teste de protótipo
Elicitação do conhecimento • Nível do conhecimento: • Nos termos do especialista do domínio de aplicação • Linguagem natural, Notações gráficas ad-hoc Formalização do conhecimento • Nível formal: • Notação sem ambigüidade com semântica definida matematicamente (Lógica, Probabilidades) • Verificação de consistência • Nível semi-formal: • Notação textual estruturada padrão (XML) • Notação gráfica padrão (UML) • Validação com especialista Implementação do conhecimento • Nível da implementação: • Codificação em uma linguagem de programação • Teste de protótipo Engenharia de uma base de conhecimento • Entrevistas estruturadas com especialista • Preparação de dados • Ontologias • Linguagens semi-formais derepresentação do conhecimento • Linguagens formais derepresentação do conhecimento • Aprendizagem de Máquina • Compiladores • Máquinas de inferências • Aprendizagem de Máquina
Tipologia do conhecimento • Tipos de conhecimento: • léxico • estrutural • meta-conhecimento: • PSM • qualitativo
Conhecimento léxico • Conceitos mínimos: não podem ser decompostos • termos atômicos, símbolos terminais, etc. • Exemplos: domínio é a medicina • meningite • cirurgia • bactéria
Conhecimento estrutural • Alguns conceitos podem depender de outros: • para definir o tratamento de uma infecção é necessário saber que bactéria a está causando • Formas de estruturação: regras, hierarquias (relações is-a), etc. • sub-tipo(cirurgia, neurocirurgia).
Meta-conhecimento comportamental: PSM • A partir de um estado E, certas ações (operações), levam ao objetivo O. • Operadores: podem ser generalizados em PSM, i.e., métodos/estratégias de resolução de problemas (problem solving methods). • Espécie de “padrão de projeto” para o processo de inferência. • Controla a execução de uma BC. • Especifica: • inferências (ações) • seqüência das inferências (seqüência de ações) • conhecimento necessário em cada passo do processo • Em geral, estão organizados em bibliotecas.
Exemplo de PSM • Classificação heurística casamento heurístico abstrações de observações abstrações de soluções abstrair refinar observações soluções
Meta-conhecimento qualitativo • Descreve alguma maneira de gerar um julgamento de valor sobre uma BC. • Exemplos: portabilidade, custo de desenvolvimento, custo de manutenção, segurança, privacidade, detecção de "anomalias", etc.
Tipos de processamento • Atividades de processamento do conhecimento: • Aquisição: como o conhecimento é adquirido • Formalização do conhecimento adquirido • Operacionalização: como o conhecimento pode ser implementado • Manutenção: como o conhecimento pode ser mantido (coerência, refino, relevância, etc.) AQUISIÇÃO FORMALIZAÇÃO IMPLEMENTAÇÃO BC MANUTENÇÃO
Aquisição de conhecimento • Três formas de aquisição: • manual • semi-automática • automática
especialista explicitação codificação Engenheiro de conhecimento Base de conhecimento documentação Aquisiçãomanual • Brainstorming • Entrevistas: • estruturadas ou não estruturadas • Self report • Outros: • Observação e análise do domínio, leitura de documentos, etc.
Aquisição manual • Problemas: • toma muito tempo • requer a presença do especialista • conhecimento possui muitas formas: teórico, procedural, etc. • com vários especialistas o problema tende a ser maior • gerenciamento é complicado • Quando usar? • identificação do conhecimento: brainstorming, entrevistas não estruturadas • especificação do conhecimento: self report • refino do conhecimento: entrevista estruturada
especialista Ferramentas interativas de entrevista Base de conhecimento Engenheiro de conhecimento Aquisição semi-automática • Uso de ferramentas apóio à atividade de aquisição: • editor, navegador, visualização da documentação, etc.
Casos e exemplos Indução automática Regras Aquisição Automática • Aprendizagem de Máquina (Machine Learning) • Algoritmos de aprendizagem automática “induzem”as regras a partir de exemplos do domínio. • Aqui não há aquisição por parte do Engenheiro de Conhecimento • Isto não quer dizer o trabalho será menor!! É apenas de outro tipo
CommonKADS • Coleção de métodos estruturados para a construção de sistemas baseados em conhecimento • Pesquisa colaborativa na União Européia (+15 anos) • Utiliza diagramas baseados em UML • Diagrama de classes • Diagrama de estados • Diagrama de atividades • Possui seis modelos • Modelo organizacional • Modelo de tarefas • Modelo de agentes • Modelo de comunicação • Modelo de “expertises” • Modelo de projeto
Modelo organizacional • Descrição e análise da organização como um todo • Representa diversos aspectos de uma organização • Contexto de negócio, metas, estratégia • estrutura interna • função • estrutura • processos • autoridade • recursos (sistemas de apóio, equipamentos, ...) • Cada aspecto é modelado por um diagrama ou por uma descrição em linguagem natural • Possível problema: pode ser difícil definir o escopo do que é a "organização".
Modelo de tarefas • Alguns processos identificados no modelo organizacional podem ser passíveis de automação. • Modelo de tarefas especifica estes processos em termos de: • elementos internos: • fluxo de dados • controle • sub-tarefas • restrições: pré e pós-condições • elementos externos: • objetivo e importância • agentes envolvidos • conhecimento necessário • outras competências • recursos • qualidade e “performance”
Modelo de agentes • Mudança de perspectiva: antes, perspectiva do processo ou tarefa; agora, perspectiva dos agentes individuais
Modelo de comunicação • Especifica • tipo de informação que é trocada entre os agentes • como esta informação é trocada • Controle de alto nível sobre a execução de uma tarefa • Três níveis de modelagem: • plano geral de comunicação • transações individuais entre duas tarefas executadas por diferentes agentes • especificação dos detalhes da estrutura interna da mensagem de uma transação • Problemas semelhantes aos de comunicação em sistemas multiagente.
Modelo de “expertise” • Modelo do "expertise" (perícia) necessário para realizar uma determinada tarefa. • Na verdade é um conjunto de modelos • Dividido em três componentes: • conhecimento declarativo: conhecimento do domínio. Quatro tipos: • conceitos: classes de objetos • propriedades: atributos dos conceitos • expressões: "a propriedade do conceito é valor" • relações: ligações entre elementos do domínio • conhecimento procedural (inferência): modela o conhecimento sobre a inferência que deve ser feita para se resolver um problema • conhecimento da tarefa: especifica tarefas (sub-tarefas) e objetivos a serem alcançados. Representada por um gráfico hierárquico
Modelo de projeto • Três estágios: • projeto da aplicação : decomposição do modelo de "expertise" em componentes. Decomposição pode ser funcional, OO ou orientada a algum paradigma da IA • projeto da arquitetura : decidir que técnicas e representações de IA são as mais adequadas para a implementação dos componentes • projeto da plataforma: decidir como implementar (linguagem) e em que hardware
CommonKADS • Vantagem: • grande quantidade de modelos favorece uma boa compreensão do processo de engenharia como um todo • Desvantagens: • que modelos são essenciais? • os modelos não são formais
Um Exemplo: Circuitos Digitais • Estabelecer o objetivo: • determinar se o circuito está de acordo com sua especificação (o circuito acima é um somador) • responder a perguntas sobre o valor da corrente em qualquer ponto do circuito
Decida sobre o que falar • Para alcançar o objetivo, é relevante falar sobre • circuitos, terminais, sinais nos terminais, conexões entre terminais • Para determinar quais serão esses sinais, precisamos saber sobre: • portas e tipos de portas: AND, OR, XOR e NOT • Não é relevante falar sobre: • fios, caminhos dos fios, cor e tamanho dos fios, etc.
Decida qual vocabulário usar • Nomear os objetos e relações do domínio com funções, predicados e constantes • constantes • distinguir as portas : X1, X2... • distinguir os tipos de porta: AND, OR, XOR... • funções e predicados • tipo de uma porta: Tipo(X1) = XOR, Tipo(X1, XOR), XOR(X1) • indicar entradas e saídas: Out(1, X1), In(1, X2) • indicar conectividade entre portas: Conectado(Out(1, X1), In(1, X2))
Codifique regras genéricas (1) Dois terminais conectados têm o mesmo sinal: " t1, t2 Conectado(t1, t2)ÞSinal(t1) = Sinal(t2) (2) O sinal de um terminal é On ou Off (nunca ambos) "t Sinal(t) = On Ú Sinal(t) = Off, On ¹ Off (3) Conectado é um predicado comutativo "t1,t 2 Conectado(t1, t2) Û Conectado(t2, t1) (4) Uma porta OR está Onsse qualquer das suas entradas está On: "g Tipo(g) = OR Þ Sinal(Out(1,g)) = On Û $ n Sinal(In(n,g))=On (5) etc...
Codifique a instância específica • Portas: Tipo(X1) = XOR Tipo(X2) = XOR Tipo(A1) = AND Tipo(A2) = AND Tipo(O1) = OR • Conexões: Conectado(Out(1,X1),In(1,X2)) Conectado(Out(1,X1),In(2,A2)) Conectado(Out(1,A2),In(1,O1)) . . .
Proponha questões ao Procedimento de Inferência • Que entradas causam Out(1,C1) = Off e Out(2, C1) = On? $ i1, i2, i3, o1, o2 Sinal(In(1,C1)) = i1 Ù Sinal(In(2,C1)) = i2 Ù Sinal(In(3,C1)) = i3 Ù Sinal(Out(1,C1)) = o1 Ù Sinal(Out(2,C1) = o2. • Resposta: (i1 = On Ù i2 = On Ù i3 = Off) Ú (i1 = On Ù i2 = Off Ù i3 = On) Ú (i1 = Off Ù i2 = On Ù i3 = On)
Proponha questões ao Procedimento de Inferência • Quais são os conjuntos de valores possíveis para todos os terminais do circuito? $ i1, i2, i3 Sinal(In(1,C1)) = i1 Ù Sinal(In(2,C1)) = i2 Ù Sinal(In(3,C1)) = i3 Ù Sinal(Out(1,C1)) = Off Ù Sinal(Out(2,C1) = On • Resposta é o objetivo do agente!
Engenharia de software o cliente não é, necessariamente, um especialista o cliente define apenas o quê fazer processamento divido em muitos componentes simples componentes desenvolvidos pelo programador Engenharia do conhecimento o cliente é um especialista o especialista define também como fazê-lo processamento divido em poucos componentes complexos componentes geralmente reutilizados (bibliotecas) Engenharia de conhecimento x de software
Tópicos avançados em EC • Metodologias para sistemas multi-agentes • CommoMAS, MAS-CommonKADS • Metodologias integrando aquisição manual com aprendizagem • Metodologias integrando EC como passo de ES • Reuso de BC • Geração automática de código: • Código da base de conhecimento • Código da máquina inferência (ex, a partir de PSM)