790 likes | 995 Views
Sistemas Híbridos Inteligentes. Teresa Bernarda Ludermir Centro de Informática - UFPE. O que é um sistema híbrido?. Híbridos Definição: o que é heterogêneo em orígem ou composição (latin) Biologicamente híbridos Várias espécies vegetais são híbridas de outras espécies ou plantas
E N D
Sistemas Híbridos Inteligentes Teresa Bernarda Ludermir Centro de Informática - UFPE
O que é um sistema híbrido? • Híbridos • Definição: o que é heterogêneo em orígem ou composição (latin) • Biologicamente híbridos • Várias espécies vegetais são híbridas de outras espécies ou plantas • Tecnologicamente híbridos • Sistemas inteligentes utilizando diferentes métodos de processamento de informação
Técnicas de IA Lógica Fuzzy Redes Neurais Algoritmos Genéticos Raciocínio Baseado em Regras Raciocínio Baseado em casos Redes Semânticas Programação Lógica Outras Schemata
Por que sistemas híbridos? • Toda técnica de IA tem suas vantagens e desvantagens para resolver diferentes tipos de problemas • Técnicas atuais ainda estão muito distantes da capacidade de processamento dos seres humanos • Existem problemas complexos de IA que não podem ser resolvidos, facilmente, com as técnicas atuais
Por que sistemas híbridos? • Os sistemas inteligentes coletivamente possuem características como: habilidade de aprendizagem, adaptação às mudanças, capacidade de explanação e flexibilidade para lidar com informações imprecisas e incompletas, etc. • Nenhuma técnica inteligente por si só possui todas essas características. • As limitações e pontos fortes de cada uma das técnicas inteligentes é a força motriz por trás dos sistemas inteligentes híbridos. • Ao integrar as técnicas inteligentes podem ser aumentados os pontos fortes e reduzidos os pontos fracos do sistema inteligente.
Sistemas Inteligentes Híbridos • O teorema da Inexistência de Almoço Grátis • O No-Free-LunchTheorem(NFL) afirma que todos os algoritmos de busca têm exatamente o mesmo desempenho, quando faz-se uma média através de todos os infinitos problemas existentes.
Objetivo de sistemas híbridos Integração de diferentes técnicas de processamento de informações em um sistema para resolver problemas em domínios onde nenhuma das técnicas originais (tradicionais) tem sido aplicada com sucesso
Razões para a criação de Sistemas Híbridos • Aperfeiçoamento das técnicas: Integração de diferentes técnicas para superar as limitações de cada técnica. Aqui o objetivo é tomar uma técnica que tem um ponto fraco em dada propriedade e combiná-la com uma técnica que tem a força, nessa mesma propriedade. • Aplicação em múltiplas tarefas: Quando nenhuma técnica está disponível para os muitos subproblemas de uma determinada aplicação, então um sistema híbrido é utilizado. • Percepção de multi-funcionalidades: Sistemas híbridos podem exibir várias informações das capacidades de processamento dentro de uma arquitetura.
Problemas de implementação • Diferentes representações de conhecimento • Conhecimento estruturado versus não estruturado • Regras • Casos • Bases de dados • Dados numéricos
Problemas de implementação • Processos de inferência diferentes • Serial • Processamento paralelo distribuído Não existe, atualmente, nenhuma abordagem genérica para combinar diferentes esquemas de representação de conhecimento e processos de inferência
Foco de pesquisas em SHIs • combinar técnicas fortemente baseadas em dados (e.g., RNAs) com técnicas que se utilizam de conhecimento (e.g., Lógica Fuzzy)
IA simbólica • Pode contribuir com: • Teoria rígida para manipulação de símbolos – prova de teoremas. • Mecanismos rigorosos e exatos de raciocínio, incluindo raciocínio encadeado. • Modelo de computação universal (e.g., regras de produção).
IA simbólica • Dificuldades: • Aquisição de conhecimento. • Elicitação de conhecimento de grandes massa de dados coletadas previamente. • Representação de dados e conhecimento incompleto, ambíguo, com ruído, etc. • Processamento de raciocínio aproximado.
Sistemas Fuzzy • Podem contribuir com: • Teoria de lógica fuzzy bem-definida. • Mecanismos de raciocínio similar ao do ser humano, através do uso de termos lingüísticos. • Acomodação de conhecimento de senso comum, conhecimento ambíguo e conhecimento impreciso mas racional. • Técnicas de aproximação universal. • Robustez, tolerância a falha. • Baixo custo de desenvolvimento e manutenção.
Sistemas Fuzzy • Dificuldades: • Geração das regras fuzzy a partir do conhecimento do especialista. • Definição das funções de pertinência são em geral baseadas num avaliação subjetiva do especialista. • Inexistência de técnicas de aprendizado.
Redes Neurais Artificiais • Podem contribuir com: • Aprendizado a partir de dados • Modelagem empírica do comportamento humano. • Técnicas de aproximação universal. • Métodos de extração de conhecimento a partir dos dados. • Memórias associativas e técnicas de casamento de padrão. • Paralelismo massivo. • Robustez.
Redes Neurais Artificiais • Dificuldades: • Longo tempo de treinamento. • Inexistência de um mecanismo explicativo. • Falta de um mecanismo automático e eficiente para auxiliar o desenvolvedor no projeto da rede.
Algoritmos Genéticos • Podem contribuir com: • Conhecimento matemático aprofundado do problema considerado não é necessário. • Parâmetros de funções objetivos com superfícies complexas e complicadas são otimizados de tal forma a reduzir a incidência de mínimos locais. • Paralelismo entrínsico. • Tolerância a ruídos e dados incompletos. • Flexibilidade para trabalhar com restrições arbitrárias e otimizar múltiplas funções com objetivos conflitantes. • Facilmente hibridizados com outras técnicas e heurísticas.
Algoritmos Genéticos • Dificuldades: • Custo computacional na avaliação do indivíduo. • Codificação geralmente intricada do genótipo para o fenótipo. • Convergência prematura.
Paradigmas são complementares • Facilitam a manipulação de diferentes tipos de representação de conhecimento, inferências, precisão e tolerância à falhas. • Cada um deles pode ser superior ao outro na resolução de uma sub-tarefa de um problema; por exemplo, as abordagens simbólica e conexionista (RNAs) têm mostrado força em resolver tarefas diferentes. O primeiro vem sendo usado em tarefas cognitivas de mais alto nível (e.g., planejamento), enquanto o segundo tem obtido mais sucesso em tarefas de mais baixo nível (e.g., percepção) e aprendizado.
Exemplos de melhoras • Regras (fuzzy ou não) podem ser utilizadas para inicializar a estrutura de uma RNA a fim de acelerar o treinamento e melhorar a generalização. • RNAs podem ser utilizadas para aprender regras (fuzzy ou não). • RNAs podem ser usadas para refinar regras (fuzzy ou não) e funções de pertinência fuzzy.
Exemplos de melhoras • AGs podem ser empregados para aprender regras fuzzy e funções de pertinência a partir dos dados. • AGs e simulated annealing podem ser usados para ajustar a topologia e os pesos de uma rede neural artificial, ao invés de usar o tradicional algoritmo de gradiente descendente. • RNAs e AGs podem ser utilizados como parte de uma máquina de raciocínio simbólico.
Classificação dos SHI • Tipo I: Substituição de Função • Tipo II: Híbridos Intercomunicativos • Tipo III: Híbridos Polimórficos
Tipo I: Substituição de Função • Function Replacing: nessa categoria, uma técnica é usada para implementar uma função de outra técnica. Essa forma de hibridismo não acrescenta nenhuma funcionalidade ao sistema inteligente, apenas tenta superar alguma limitação da técnica principal ou otimizar sua execução. Como exemplo, se pode citar o uso de algoritmos genéticos para otimização dos pesos de uma rede neural.
Tipo II: Híbridos Intercomunicativos • Intercommunicating Hybrids: esta é a categoria de sistemas híbridos usada para resolver problemas complexos que possam ser divididos em várias sub-tarefas independentes. Assim, o sistema híbrido é formado por módulos independentes, onde cada um usa uma técnica inteligente para resolver uma das sub-tarefas do problema principal. Como exemplo, se pode citar o sistema EITHER [R. Mooney e D. Ourston 1994], que usa módulos independentes de raciocínio indutivo, dedutivo e abdutivo para revisar claúsulas de Horn. Cada tipo de raciocínio foi implementado com uma técnica especifica.
Tipo III: Híbridos Polimórficos • Polymorphic Hybrids: nessa categoria, uma única técnica é adaptada para realizar uma tarefa inerente a uma outra técnica. A motivação dessa categoria é descobrir novas funcionalidades de uma técnica e entender como diferentes técnicas podem se relacionar. Como exemplo, se pode citar o uso de RNAs para raciocínio simbólico – manipulação de regras [V. Honavar e L. Uhr, 1995] e [V. Ajjanagadde e L. Shastri, 1995].
Ciclo de desenvolvimento de SHs • Analise do problema • Casamento das propriedades • Seleção da categoria de hibridismo • Implementação • Validação • Manutenção
Analise do problema • Identificar sub-tarefas • Identificar propriedades
Casamento de propriedades • Aquisicao de conhecimento • Brittleness (fragilidade) • tarefas cognitivas de alto e baixo nivel (raciocinio) • explicação
Selecao da cateogoria de hibridismo • Tipo I: Substituição de Função • Tipo II: Híbridos Intercomunicativos • Tipo III: Híbridos Polimórficos
Projeto Evolucionário de Redes Neurais Artificiais • Definição da arquitetura de uma rede neural • Métodos de otimização global podem ser empregados no treinamento das RNAs • Otimização dos parâmetros dos algoritmos de treinamento a serem utilizados
Por que utilizar AGs ? • Problemas das RNA • Não existe um conjunto de regras para definir melhor rede para um dado problema • Modelo • Estrutura • Parâmetros de aprendizado • Conhecimento empírico, baseado na experiência
Por que utilizar AGs ? • Universo de possíveis modelos é extremamente grande • Problemas de laboratório e problemas práticos • Maioria do espaço de busca de redes é largamente inexplorado • Não é prático avaliar manualmente uma variedade razoável de arquiteturas • “Uma boa arquitetura” depende da aplicação
Por que utilizar AGs ? • Quantidade significativa de experimentação manual baseada em tentativa e erro é necessária até obtenção da performance adequada • Nenhuma tentativa relevante é realizada para determinar as arquiteturas ótimas • Maioria das aplicações adotam estruturas simples e valores conservadores para parâmetros de aprendizado
Por que utilizar AGs ? • O problema de otimização da estrutura de uma RNA para um dado conjunto de critérios de performance é complicado • Grande número de variáveis, discretas e contínuas, interagem de uma forma complexa • Avaliação de uma estrutura não é uma tarefa direta • Eficácia do treinamento depende das condições iniciais, que são geralmente randômicas • Problema sob medida para algoritmos genéticos
Como aplicar AGs em RNA s? • AGs podem ser aplicados ao problema de projeto de RNAs de várias formas: • Treinar uma rede, com uma dada estrutura • Aplicar restrições a matriz de conexões de RNAs a serem treinadas com backpropagation • Descobrir estrutura, tamanho e parâmetros de aprendizado da rede
Como aplicar AGs em RNAs? • Depende dos aspectos a serem investigados • Desenvolvimento de uma ferramenta para definir melhor rede para um dado problema • Descobrir novas evidências que possam contribuir para a melhor compreensão teórica do projeto de RNAs • Que tipos de estruturas “sobreviverão” dado um conjunto de condições • Não informa porque estrutura falhou, mas mostra os fósseis gerados
Como aplicar AGs em RNAs? • Aspectos a serem considerados • Codificação da rede • Espaço de arquiteturas de rede a ser explorado • Adaptação dos operadores genéticos para que sejam geradas redes sem problemas de validade • Forma da função de aptidão
População • População inicial: conjunto de redes aleatóriamente gerado (30 < P < 100) • Estrutura de cada rede é codificada em um cromossomo • Genes determinam propriedades anatômicas da rede e valores de parâmetros para algoritmo de aprendizado • Cada rede é treinada com backpropagation
Aptidão • Função de aptidão • Combinação de medidas consideradas importantes para o problema • Velocidade de aprendizado • Precisão requerida • Fatores de custo • Tamanho • Complexidade • Melhora progressiva da eficiência da RNA
Codificação • Aspectos críticos: • Classes de arquiteturas a serem geradas • Funcioamento dos processos de • Codificação • Decodificação • Espaço de busca
Codificação • Desenvolver uma representação para RNA é um dos principais problemas • Existem diversas formas de parametrizar organização e operação da rede • Parâmetros podem incluir • Número de camadas • Números de unidades em uma camada • Número de conexões feedback permitidas • Grau de conectividade de uma camada para outra • Taxa de aprendizado • Termo de erro utilizado ma regra de aprendizado
Codificação • Codificação pode ser • Direta • Especifica cada um dos parâmetros das redes • Requer pouco esforço de codificação • Indireta • Descrição abstrata ou gramatical • Pode pré-estruturar as redes (para excluir arquiteturas não factíveis) • maior esforço para decodificação
Codificação • Representação deve: • Capturar todas as redes potencialmente interessantes (eficientes) • Excluir estruturas de redes não válidas ou sem sentido • Representação pode ter tamanho variável • Permite aumentar espaço de busca • Limitar pontos de “quebra” dos cromossomos
Codificação • É vantajoso definir o menor espaço de busca possível de arquiteturas que é certo de incluir a melhor solução para o problema dado • Esquema de representação deve ser fechado • Crossover ou mutação de cromossomos representando redes válidas deve produzir redes válidas • Trade-off poder de expressividade X admissão de redes não válidas ou não interessantes
Reprodução • Operadores Genéticos • Crossover • Limitação dos pontos de “quebra” dos cromossomos • Mutação • Limitação das alterações possíveis • Refinamento • Eliminar arquiteturas não factíveis
Reprodução • Refinamento • Garante com que as redes geradas sejam válidas • Elimina indivíduos com características indesejáveis • Cromossomos com pequenas anormalidades são purificados quando decodificados para RNA • Partes do cromossomo com problemas podem ser mantidas ou eliminadas
Extração de regras • Potencial completo das RNA não poderá ser utilizado sem a capacidade de explicação • Problema: inabilidade da rede para explicar, de forma compreensiva, seu processo de tomada de decisão • Desejável (essencial) que uma capacidade de explicação seja parte da funcionalidade de uma rede treinada
Extração de regras • Capacidade de explicação é obrigatória em sistemas críticos • Validar a saída da rede sob todas as condições possíveis de entrada • Exemplos: • Sistema de navegação de aviões • Usinas hidroelétricas e nucleares • Diagnóstico médico