REDES NEURAIS Introdução Bibliografia Simon Haykin – Redes Neurais – Princípios e Prática, Tradução, Ed. Artmed: Bookman, Porto Alegre, 2001. Laurene Fausett – Fundamentals of Neural Networks – Architectures, Algorithms, and Applications, Prentice-Hall, USA, 1994. Raúl Rojas – Neural Networks – A Systematic Introduction, Springer-Verlag, Berlin, 1996. James A. Freeman, David M. Skapura – Neural Networks – Algorithms, Applications, and Programming Techniques, Prentice-Hall, USA, 1991. Braga,A.; Carvalho, A.; Ludermir, T. "Redes Neurais Artificiais: Teoria e Aplicações", Livro Técnico e Científico, Rio de Janeiro, 2000. Zsolt L. Kovács, - Redes Neuras Artificiais – Fundamentos e Aplicações, 3a. edição. Editora Livraria da Física, São Paulo-SP, 2002. Christopher M. Bishop – Neural Networks for Pattern Recognition.Oxford University Press, 2005. Robert Lent – Cem Bilhões de Neurônios – Conceitos Fundamentais de Neurociência. Ed. Atheneu, São Paulo, 2001. Conteúdo da Disciplina Introdução Base Biológica Redes Neurais Artificiais Perceptron Simples Perceptron Multicamadas Redes de Base Radial Redes de Hopfield SOM (Kohonen) Neocognitron (Fukushima) Avaliação Duas provas Trabalhos, Exercícios Motivações Muitas vezes os algoritmos são difíceis de serem elaborados, como para: fazer com que um computador reconheça figuras. encontrar regras explícitas para cobrir uma infinidade de possibilidades de figuras distorcidas, efeitos de iluminação e sombreamento, efeitos de perspectiva, e outros. para reconhecimento de vozes, existe uma quantidade de variações de tonalidades, acentos, etc. Características interessantes do cérebro humano O cérebro humano manipula problemas onde regras explícitas não são facilmente formuladas, assim como os computadores modernos tem facilidade em aritmética. O cérebro humano aprende tais habilidades não tanto por regras explícitas, mas através de exemplos. Os cientistas investigam: a habilidade de trabalhar sem regras explícitas, e o aprendizado através de exemplos, relacionado com o cérebro. Funcionamento do Cérebro Humano O funcionamento do cérebro humano não é totalmente entendido, e é objeto de contínuas pesquisas. Contudo, pelo que se conhece hoje, parece operar como segue: o processamento de informação no cérebro é realizado por uma rede de milhões de unidades de processamento simples chamados neurônios; essencialmente, cada neurônio recebe sinais de um grande número de outros neurônios, combina essas entradas, e então envia sinais a um grande número de outros neurônios. é o padrão de conexões entre os neurônios que parece incorporar o conhecimento requerido para realizar o processamento de informações. Por isso, um nome alternativo para o processamento que imita o cérebro seria computação conexionista. Ramón e Cajál, em 1911, sugerem que os constituintes básicos do cérebro são os neurônios. O cérebro humano apresenta aproximadamente 1011 neurônios, com aproximadamente 1013 sinapses ou conexões. Os neurônios são de 5 a 6 ordens de magnitude mais lentos do que portas lógicas de silício (10-3 seg. x 10-9 seg) Porém, a sua eficiência energética é muito alta. cérebro 10-16 Joules/operação/seg computador 10-6 Joules/operação/seg Como conseqüência o cérebro realiza reconhecimento de padrões, percepção e controle motor muitíssimo mais rápido e melhor do que qualquer computador já produzido. Funcionalidade do cérebro _ adaptabilidade por intermédio de aprendizado _ comportamento sensível ao contexto _ tolerância a erro _ capacidade de operar com conhecimento parcial _ grande capacidade de memória _ capacidade de processamento em tempo real O que são Redes Neurais Artificiais As redes neurais artificiais são diferentes dos computadores convencionais nos seguintes itens: do ponto de vista de projeto, redes neurais artificiais são dispositivos computacionais que usam os princípios similares aos do cérebro humano. O esforço é motivado pela esperança de que tais computadores sejam mais eficientes que os computadores convencionais em tarefas onde esses últimos apresentam dificuldades; e do ponto de vista funcional, um objetivo importante é o desenvolvimento de computadores que possam aprender através de exemplos. A necessidade de aprendizado através de exemplos é intimamente vinculada à dificuldade de formulação explícita de regras para certas aplicações. Enfoques Diferentes Os cientistas tem enfatizado diferentes aspectos: certos esforços tem focalizado mais em aspectos de engenharia. A meta principal é verificar se os computadores baseados nesses novos princípios são eficientes em aplicações onde os computadores convencionais tem certas dificuldades. outros esforços tem focalizado mais nos aspectos psicológicos. A meta principal nesse caso é estudar as redes neurais artificiais como modelos experimentais que funcionam como cérebro ou mente humana, permitir o aperfeiçoamento desses modelos, e levar ao melhor entendimento da memória humana, aprendizado, etc. A maioria dos estudos em redes neurais artificiais tem sido através de simulações de operações de tais computadores usando computadores convencionais Tendências O estímulo inicial que conduziu ao desenvolvimento de modelos matemáticos de redes neurais artificiais, foi um esforço para entender mais detalhadamente o funcionamento do cérebro humano. O objetivo era construir mecanismos que operassem de modo similar (tomar decisões, processar informações, aprender, lembrar e otimizar) e se possível, até de forma mais eficiente que o cérebro humano. Tomando por base os protótipos até aqui desenvolvidos, é de consenso geral que este objetivo ainda está longe de ser atingido. No entanto, continua elevado e em forte expansão o interesse na formalização e aplicação de modelos de redes neurais artificiais. multidisciplinaridade A razão para o interesse em redes neurais artificiais é o seu enorme potencial na análise e síntese de sistemas de processamento de informação e na generalização de resultados expressivos já obtidos em outras áreas de atuação científica, o que também contribui para evidenciar o caráter multidisciplinar da pesquisa. As principais áreas envolvidas são: estatística, teoria de informação, teoria de sistemas lineares e não-lineares, teoria da computação, álgebra linear, aproximação de funções, processamento de sinais, controle de processos e otimização de sistemas. A maturidade atingida como área de atuação científica tem levado ao desenvolvimento de ferramentas de engenharia eficazes e à utilização eficiente dos recursos computacionais, ampliando a capacidade de manipulação de informações. APLICAÇÕES Classificação de padrões Classificação de padrões A tarefa de classificação de padrões é atribuir a um padrão de entrada (como forma de onda vocal, ou símbolo manuscrito) representado por um vetor de fatores, a uma das classes pré-especificadas. Aplicações conhecidas incluem reconhecimento de caracteres, reconhecimento vocal ou da fala, classificação de formas de onda de eletroencefalograma (EEG), classificação de células sanguíneas, e inspeção de cartões de circuito impresso. Clustering/categorização Em clustering ou agrupamento, também conhecido como classificação de padrões não-supervisionada, não existem dados para treinamento com classes conhecidas. Um algoritmo de clustering explora a similaridade entre os padrões e coloca os padrões similares num grupo. Aplicações conhecidas de clustering incluem mineração de dados, compressão de dados, e análise exploratória de dados. Aproximação de funções Supondo que um conjunto de n padrões de treinamento (pares entrada-saída), (x1, y1), (x2,y2), ..., (xn,yn), tenham sido gerados de uma função desconhecida f(x) (sujeito a ruído). A tarefa da aproximação de função é achar uma estimativa, digamos f’(x) da função desconhecida. Vários problemas de modelamento em engenharia e ciência requerem aproximações de funções. Previsão(forecasting) Dado um conjunto de n amostras (y(t1), y(t2), ..., y(tn)) em uma sequência de tempo t1, t2, ...,tn, a tarefa é de prever a amostra y(tn+1) num futuro tn+1. A previsão (forecasting) tem um impacto significativo na tomada de decisões em negócios, ciência, e engenharia. Previsão de estoques e de tempo são aplicações típicas. Otimização Uma grande variedade de problemas em matemática, estatística, engenharia, ciência, medicina e economia podem ser classificadas como problemas de otimização. A meta de um algoritmo de otimização é achar uma solução que consiste numa “função objetiva” gerada por um conjunto de restrições que seja maximizada ou minimizada. O problema do vendedor ambulante (traveling salesman problem), e o problema NP-complete, são exemplos clássicos. Memória endereçável por conteúdo No modelo de von Neumann de computação, uma entrada na memória é acessada somente através do endereço, e não em função do conteúdo na memória. Assim, se um pequeno erro ocorre quando é feito o cálculo de endereço, é obtido um item completamente diferente. A memória associativa ou memória endereçável por conteúdo, é acessada pelo conteúdo. O conteúdo na memória pode ser recuperado mesmo usando uma entrada parcial ou distorcida do conteúdo. A memória associativa é extremamente desejável na construção de base de dados de informações multimídia. Controle Considerando um sistema dinâmico definido por um (u(t), y(t)), onde u(t) é a entrada do sistema de controle e y(t) é a saída, no tempo t. No controle adaptativo referenciado por padrão, a meta é gerar uma entrada u(t) tal que o sistema siga uma trajetória desejada determinada por um padrão de referência. Até que ponto as redes neurais artificiais devem imitar o cérebro humano? Comparando aves (naturais) e aviões (artificiais), ambos tem asas, porém, enquanto as aves voam agitando as suas asas, os aviões voam sem agitar as suas asas. Até que ponto os cérebros artificiais devem ser projetados baseados na estrutura dos cérebros reais? Atualmente os cientistas ainda não tem certeza dos princípios essenciais que devem ser incorporados num cérebro artificial. Em relação ao avião, sabe-se que a agitação das asas não é um princípio essencial, porém, ter asas é essencial. Similarmente, ter interconexões entre os processadores é um princípio essencial, mas usar processos químicos e elétricos para as interações entre os processadores, não é um princípio essencial. Um dos aspectos implícitos nesse novo projeto seria: os neurônios no cérebro humano são muito mais lentos que os chips usados em computadores convencionais. mas o cérebro humano parecem trabalhar velozmente em muitas tarefas de processamento de informação. isso acontece porque no cérebro as unidades trabalham essencialmente em paralelo, e cada unidade é capaz de realizar várias funções simultaneamente a outras unidades. os projetos baseados numa CPU essencialmente requerem ações realizadas uma a uma, sequencialmente e serialmente. Finalmente, no processo de aprendizado através de exemplos, as redes neurais artificiais exibem uma outra característica: a de generalização. Isso significa que se a rede aprende a lidar com um certo problema, e lhe é apresentado um similar, mas não exatamente o mesmo, ela tende a reconhecer esse novo problema, oferecendo a mesma solução. naturalmente, essa é a forma em que os seres humanos tendem a generalizar e aplicar os conhecimentos anteriores para lidar com novos problemas. é importante mencionar que as redes neurais artificiais não estão sendo propostas para substituir ou sobrepujar os projetos de computadores convencionais, mas sim para complementálos.