Introdução Inteligência Computacional Prof. João Alberto Fabro
Estrutura da Apresentação Início Inteligência Artificial... O que se estuda! Como foi estudado... (Sistemas Especialistas)
Estrutura da Apresentação Inteligência Computacional Algoritmos Genéticos Redes Neurais Lógica Fuzzy
Inteligência Artificial x Computacional Inteligência... Inteligência Artificial -Símbolos, Lógica Clássica, Conhecimento (Sistemas Especialistas) - O que se faz em IA!(Problemas da IA) -Histórico (como chegamos até aqui...) Inteligência Computacional Redes Neurais Algoritmos Genéticos Sistemas Nebulosos (Fuzzy)
Conceitos Básicos A INTELIGÊNCIA É SÓ HUMANA? Em um primeiro momento, a inteligência era geralmente associada a uma característica unicamente humana, de representação de conhecimentos e resolução de problemas, refletindo um ponto de vista altamente antropocêntrica. Mas, ainda assim, nós, humanos, não compreendemos a nós mesmos, como funciona nossa inteligência e nem mesmo a origem de nossos pensamentos. Hoje em dia, para muitos pesquisadores, a idéia de inteligência passou a ser associada com a idéia de sobrevivência. Fogel: : Inteligência pode ser definida como a capacidade de um sistema de adaptar seu comportamento para atingir seus objetivos em uma variedade de ambientes.
Inteligência - Conceitos Básicos I I propose to consider the question, Can machines think? This should begin with definitions of the meaning of the terms machine and think. A. Turing,, Computing Machinery and Intelligence, 1950 Se queres discutir comigo, define primeiro teus termos. Descartes O QUE É INTELIGÊNCIA? Helm: : A atividade inteligente consiste na compreensão do essencial de uma situação e numa resposta reflexa apropriada. Piaget: : Adaptação ao ambiente físico e social.
Inteligência Artificial Área de Pesquisa Multidisciplinar: Biologia Computação Engenharia - Estuda maneiras de simular/obter comportamento inteligente! - Fazer as máquinas realizarem tarefas que requerem inteligência!
PROBLEMAS DE PESQUISA EM IA Resolução de problemas (planejamento) Quebra-cabeças, Jogos, Problemas que requerem conhecimento especialista Raciocínio por senso-comum Percepção (visão e fala) - reconhecimento de imagens, de voz Processamento de linguagem natural Extração de conhecimento(knowledge Data Discovery,Aprendizado) Desenvolver sistemas que auxiliem no aprendizado de alunos Paralelização de linguagens de IA Distribuição da resolução de problemas Sistemas Multi-Agentes
Áreas de Pesquisa em IA > Intelligent Information Systems > Intelligent Software Engineering > Intelligent Agents > Intelligent Networks > Intelligent Databases > Brain Models(Neural Networks) > Evolutionary Algorithms > Data mining > Machine Learning > Reasoning Strategies > Automated Problem Solving > Distributed AI Algorithms and Techniques > Distributed AI Systems and Architectures > Expert Systems > Fuzzy Logic > Genetic Algorithms > Heuristic Searching > Knowledge Acquisition > Knowledge Discovery > Knowledge Representation > Knowledge-Intensive Problem Solving Techniques > Languages and Programming Techniques for AI > Software Tools for AI > Integration of AI with other Technologies > Evaluation of AI Tools > Social Impact of AI > Applications - Computer Vision > Applications - Signal Processing > Applications - Military > Applications - Surveillance > Applications - Robotics > Applications - Medicine > Applications - Pattern Recognition > Applications - Face Recognition > Applications - Finger Print Recognition > Applications - Finance and Marketing > Applications - Stock Market > Emerging Applications
Histórico Formalmente a área foi criada em 1956 quando o nome foi cunhado (Darthmouth College). Entretanto, por 2000 anos filósofos estudaram como o ver, apreender, recordar e raciocinar pode ser realizado? O desejo de criar artefatos capazes de reproduzir um comportamento inteligente encontra suas origens em tempos remotos: - Autômatos (relógios, jogador de xadrez, Frankenstein) - Analytical Engine, Babbage, 1842 - Ela seria capaz de compor peças musicais de qualquer grau de complexidade e extensão (comentário de Lady Lovelace) Precursores da IA George Boole, inventou a álgebra booleana, Suas idéias se incorporam como base da matemática e da filosofia. Alan Turing, propôs um teste para decidir se um computador exibe inteligência.
Histórico Época Pré-histórica (até 1875, Camillo Golgi visualizou o neurônio) Objetivo:: criar mecanismos apresentando comportamento inteligente. Metodologia:: Mecanismos usando mecânica de precisão. Limitações:: Complexidade, dificuldades de construção. Época Antiga (1875-1943) (McCulloch & Pitts) Objetivo: : Entender a Inteligência Humana. Metodologia: : Estudos de psicologia e neurofisiologia. Limitações:: Grandes distâncias entre a psicologia e a neurofisiologia. Época Pré-Clássica (1943-1956) Objetivo:: Simular a inteligência humana - situações pré-determinadas. Metodologia:: Inspiração na Natureza, Nascimento da Cibernética Limitações:: Limitação das capacidade computacionais.
Histórico Época Clássica (1956-1970) Objetivo:: Simular a inteligência Humana e expandir ao máximo as aplicações da IA. Metodologia:: Solucionadores gerais de problemas e lógica. Limitações:: Subestimaçã ção o da complexidade computacional dos problemas. Época Romântica (1970-1980) Objetivo:: Simular a inteligência humana em situações pré-determinadas. Metodologia:: formalismos de representação de conhecimento adaptados ao tipo de problema, mecanismos de ligação procedural visando maior eficiência computacional. Limitações:: Subestimação da quantidade de conhecimento necessária para tratar mesmo o mais banal problema de senso comum.
Histórico Época Moderna (1980-1990) Objetivo:: Simular o comportamento de um especialista humano ao resolver problemas em um domínio específico. Metodologia:: Sistemas de regras, representação da incerteza, popularização do Prolog. Limitações:: Subestimação da complexidade do problema de aquisição do conhecimento. Época Atual(Pós-Moderna? Contemporânea?) (1990-????) Objetivo:: Resolver problemas cada vez mais difíceis! Metodologia:: Qualquer que funcione!(inteligência Computacional, proveniente do simples fato que máquinas de inspiração biológica resolvem problemas difíceis!) Limitações:: Complexidade dos problemas tratados.
Inteligência Computacional O que é Inteligência Computacional? Áreas de Aplicação Lógica Nebulosa (Fuzzy) Redes Neurais Algoritmos Genéticos Conclusões
O que é Inteligência Computacional? Técnicas e sistemas computacionais que imitam aspectos humanos, tais como: percepção, raciocínio, aprendizado, evolução e adaptação.
Inspiração na Natureza Sistemas Especialistas - inferência humana Lógica Fuzzy - processamento lingüístico Redes Neurais - neurônios biológicos Algoritmos Genéticos - evolução biológica Sistemas Híbridos - aspectos combinados
Novos Sistemas Computacionais Suporte à Decisão Classificação de Dados Reconhecimento de Padrões Previsão Otimização Controle Modelagem Planejamento Descoberta de Conhecimento
Automação Inteligente I Planejamento da Produção Monitoração do Controle Detecção e Diagnóstico de Falhas Manutenção Preventiva Simulação e Modelagem de Processos Robótica Reconhecimento de Imagens, Voz Inferência/Predição de Propriedades
Automação Inteligente II Planejamento da Produção: Algoritmo Genético busca a ordem das tarefas que otimiza a produção (tempo, recursos, custos, etc) e satisfaz as restrições Detecção e Diagnóstico de Falhas: Redes Neurais são treinadas com dados históricos para prever antecipadamente falhas em equipamentos; Sistema Especialista ou Lógica Nebulosa dá o diagnóstico e indica procedimentos. Manutenção Preditiva: Redes Neurais são treinadas com a leitura dos sensores para apontar a perspectiva de falhas em programas de manutenção preventiva. Robótica: Navegação de Robôs móveis por Redes Neurais, com planejamento de trajetórias por Algoritmos Genéticos.
Automação Inteligente III Simulação e Modelagem de Processos: Rede Neural é treinada para representar a dependência entre o estado e uma medida de qualidade de um processo. Após treinada, a RN atua como um modelo do processo industrial. Reconhecimento de Imagens, Voz: Redes Neurais treinadas com padrões de imagens/voz são usadas para fins de segurança, seleção e identificação. Inferência/Predição de Propriedades: Redes Neurais são treinadas para modelar a relação entre as variáveis de entrada de um processo e as propriedades físicas de um produto, permitindo que o operador possa influenciar no processo sem ter que esperar pela análise laboratorial de amostras.
Áreas de Aplicação em Negócios Avaliação de Financiamento Previsão de Demanda de Produtos Avaliação de Risco Perfil do Consumidor Gerência de Carteira Previsão de Ativos Financeiros Detecção de Fraude (Cartões de Crédito, Sistemas de Telefonia) Planejamento da Produção e Distribuição
Sistemas Especialistas Conceitos Básicos: São programas que armazenam e manipulam o conhecimento adquirido de um especialista. = -> Requer entrevistas e observações para extrair o conhecimento. -> Conhecimento é representado em formato manipulável pelo computador.
Representação do Conhecimento Regras de produção: Regra 1: IF <condição_1> AND <condição_2>... THEN <ação_a> AND <ação_b>... Exemplos: IF carro = BMW AND cidade = São Paulo THEN seguro = 10% valor carro IF carro = Fiat AND cidade = Curitiba THEN seguro = 5% valor carro
Organização de Sistemas Especialistas Base de Conhecimento IF Carro = BMW AND cidade = SP THEN seguro = 10% IF Carro = Fiat AND cidade = CWB THEN seguro = 5% Memória de Trabalho carro = Fiat cidade = Curitiba Máquina de Inferência Sistema de Explicações Aquisição de Conhecimento
Avaliação Adequada para aplicações onde: o conhecimento (o especialista) é acessível, as regras são conhecidas e fáceis de serem formuladas por este especialista, e quando explicações são necessárias.
Avaliação Vantagens utiliza representação explícita do conhecimento programas fáceis de ler e de compreender capazes de gerar justificativas (explicações) Desvantagens ausência de mecanismo automático de aprendizado processo longo e caro de extração do conhecimento exigência de declarações precisas dos especialistas
Lógica Nebulosa Técnica inteligente que tem como objetivo modelar o modo aproximado de raciocínio, imitando a habilidade humana de tomar decisões em um ambiente de incerteza e imprecisão
Lógica Nebulosa Permite que os sistemas inteligentes de controle e suporte à decisão lidem com informações imprecisas (nebulosas - fuzzy) Exemplos: investimento de alto risco pressão média fluxo muito intenso temperatura alta muito jovem
Conjunto Nebuloso Indica uma definição (imprecisa) de um termo lingüístico (também impreciso) utilizado comumente pelas pessoas: Ex: A cantina externa é perto daqui! A cantina interna é meio longe(meio perto): (0.5/perto=±100m)
Conjuntos Nebulosos e Pertinência Você é Alto, Baixo ou de estatura mediana? Resposta CRISP(Não Fuzzy, rígida): - Até 1,65 é baixo! De 1,85 acima é alto! Entre os dois, mediano! Resposta Fuzzy(nebulosa, não rígida): -1,60 é 0,25/baixo+0,75/mediano, i.e., é mais mediano do que baixo!
Lógica Fuzzy - Controle se (x1(distância até a esquina) é grande) e (x3(ângulo com a parede) é nulo) e (x2 e x4 (distâncias laterais) não são pequenas) então (y(atuação no volante do carro) é nulo->vá em frente).
Lógica Nebulosa - Avaliação Técnica utilizada em aplicações: onde o conhecimento envolve conceitos subjetivos e intrinsicamente imprecisos; e onde deseja-se obter explicações sobre o resultado do problema.
Lógica Nebulosa - Avaliação Vantagens facilidade de lidar com dados imprecisos. facilita a descrição das regras pelos especialistas. menor número de regras. explicação do raciocínio. Desvantagens especificação das funções de pertinência. necessidade de um especialista e/ou dados históricos.
Redes Neurais Modelo Computacional inspirado nos neurônios biológicos e na estrutura do cérebro, com capacidade de adquirir, armazenar e utilizar conhecimento experimental.
Relação com a Natureza Cérebro Neurônio Biológico Rede de Neurônios 10 bilhões neurônios Aprendizado Generalização Associação Reconhecimento de Padrões Redes Neurais Artificiais Neurônio Artificial Estrutura em Camadas centenas/milhares Aprendizado Generalização Associação Reconhecimento de Padrões
Neurônio Biológico x Artificial
Rede Neural Artificial(Feedforward)
Avaliação Indicada para o reconhecimento de padrões em aplicações com dados ruidosos ou incompletos, e quando regras claras não podem ser facilmente formuladas.
Avaliação Vantagens modelagem de sistemas não lineares aprendizado automático tolerante a dados ruidosos e incompletos resposta rápida e precisa modelos compactos Desvantagens ausência de explicações sensível a quantidade de dados disponível
Algoritmos Genéticos Algoritmo de busca/otimização inspirado na seleção natural e reprodução genética. Combina sobrevivência do mais apto e cruzamento aleatório de informação Qual a finalidade de Algoritmos Genéticos? Algoritmos Genéticos empregam um processo adaptativo e paralelo de busca de soluções em problemas complexos.
Analogia com a Natureza Evolução Natural Indivíduo Cromossoma Reprodução Sexual Mutação População Gerações Meio Ambiente Algoritmo Genético Solução Representação Operador Cruzamento Operador Mutação Conjunto de Soluções Ciclos Problema
Qual a finalidade de Algoritmos Genéticos? Adaptativo informação corrente influencia a busca futura Paralelo várias soluções consideradas a cada momento Problema Complexo de difícil formulação matemática ou com grande espaço de busca (grande número de soluções)
Operações Básicas Seleção: privilegia os indivíduos mais aptos Reprodução: indivíduos (palavras binárias) são reproduzidas com base na aptidão Crossover: troca de genes (pedaços de palavras) Mutação: troca aleatória de um gene (bit da palavra)
Avaliação Aplicado em problemas complexos de otimização de difícil modelagem matemática, com variedade de regras e condições, ou com grande número de soluções a considerar.
Avaliação Vantagens Técnica de busca global Otimização de problemas mal estruturados Dispensa formulação matemática precisa do problema Desvantagens Dificuldade na representação do cromossoma Evolução demorada em alguns problemas
Conclusões Problemas Reais são difíceis! Mas seres vivos resolvem problemas reais! Então como fazer para resolvê-los com Máquinas? Imitando Seres Vivos! Fim!