Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas

Trabalho Redes Neurais, Trabalhos de Informática

Introdução ás redes neurais artificiais

Tipologia: Trabalhos

Antes de 2010

Compartilhado em 05/12/2006

maycon-portilho-5
maycon-portilho-5 🇧🇷

4.5

(2)

3 documentos

Pré-visualização parcial do texto

Baixe Trabalho Redes Neurais e outras Trabalhos em PDF para Informática, somente na Docsity! MaycoN cesar chaves cordeiro portilho DANIEL MAZARIN CASTRO UMA VISAO GERAL SOBRE REDES NEURAIS ARTIFICIAIS FOZ DO IGUAÇU DEZEMBRO 2006 MaycoN cesar chaves cordeiro portilho PAGE 2 DANIEL MAZARIN CASTRO UMA VISAO GERAL SOBRE REDES NEURAIS ARTIFICIAIS Trabalho de Graduação apresentado ao Curso de Engenharia Mecânica, Setor de Ciências Exatas, Universidade Estadual do Oeste do Paraná. Orientador: Prof. Dr. Carlos Henrique. FOZ DO IGUAÇU DEZEMBRO 2006 PAGE 2 2. CONCEITOS BÁSICOS O cérebro apresenta uma notável habilidade de aprender, sendo considerado o mais fascinante processador existente. O processo de aprendizagem está intimamente ligado às mudanças nas conexões entre diferentes neurônios chamadas de conexões sinápticas ou simplesmente sinapses. Um neurônio biológico, ilustrado na figura 1, é composto de: dendritos, que recebem os estímulos transmitidos pelos outros neurônios; corpo de neurônio, ou soma, que recebe e organiza as informações vindas de outros neurônios; e os axônios, responsáveis por transmitir os estímulos para as outras células. Figura: Estrutura biológica do neurônio Tais mudanças ocorrem ao longo da vida provocadas por estímulos de diversas naturezas. Não se sabe ao certo quantos neurônios existem no cérebro. Algumas estimativas que se baseiam na densidade de neurônios medida em pequenas regiões apontam limites inferiores da ordem de 3x1010 mas este número pode até chegar a 1011 . Cada um destes neurônios se conecta com aproximadamente 104 neurônios. Isso implica que no cérebro existe algo em torno de 1013 a 1015 conexões sinápticas. Esses números são extraordinariamente grandes e de certa forma evidenciam a ocorrência do aprendizado, pois de outra forma todas essas informações deveriam estar armazenadas na molécula de DNA. Junte se a isso uma grande massa de evidências experimentais confirmando o fato que as conexões sinápticas são ajustadas ao longo da vida à medida que se aprende. A tabela 1 abaixo faz uma comparação entre a estrutura do cérebro humano e a estrutura do computador. Tabela : Comparação entre o computador e o cérebro humano Uma rede neural pode ser ensinada. Este é um ponto crucial para uma RNA pois nele se fundamenta seu aprendizado. Isto é muito atraente do ponto de vista tecnológico pois dessa forma é possível eliminar a necessidade da programação explícita e detalhada. PAGE 2 Todos esses aspectos favorecem o estudo das redes neurais artificiais. No entanto durante muitos anos houve pouco interesse e poucos avanços ocorreram. Uma das causas desta estagnação foi a dificuldade de formalização destes modelos. Porém a neurociência vem trabalhando juntamente com profissionais da área da ciência da computação, engenharia elétrica, matemática, física, psicologia e até os lingüistas. Figura : Modelo básico de neurônio artificial O modelo mais geral para um neurônio artificial é este apresentado na figura 2 logo acima, cujos atributos são melhor explicados adiante. – Entradas: as entradas de um neurônio podem ser as saídas de diversos outros neurônios. São as entradas que irão determinar a saída do neurônio. – Pesos: cada entrada possui um certo peso, ou seja, possui uma certa força de conexão sináptica (inibitória ou excitatória). – Net: o somatório de todas as entradas multiplicadas por seus respectivos pesos nos fornece o chamado net de um neurônio. No decorrer do trabalho explicitaremos de forma mais sucinta os atributos de uma rede neural para melhor entendimento. 2.1.. POR QUE UTILIZAR REDES NEURAIS? Desde o início da evolução das máquinas o homem busca construir uma máquina que seja independente do controle humano, cujo comportamento seja desenvolvido de acordo com seu próprio aprendizado, e que possa ser chamada de autônoma, cognitiva ou inteligente. Os computadores funcionam de modo seqüencial, proporcionando maior eficiência na resolução de tarefas nas quais devem ser seguidas etapas. Já o cérebro humano funciona de modo paralelo, sendo extremamente conectado. Devido a esta alta interconexão o cérebro é mais eficiente que os computadores na resolução de tarefas que exigem várias variáveis. PAGE 2 Se o computador reproduzisse com qualidade estas características, tais máquinas poderiam vir a ser utilizadas em locais onde a interação humana é perigosa, tediosa ou impossível, como em reatores nucleares, combate ao fogo, operações militares. Elas são particularmente úteis para lidar com dados ligados a valores reais em que se deseja obter uma saída dotada de valor real. Desta maneira as redes neurais irão realizar uma classificação por graus, e serão capazes de expressar valores equivalentes a "não conhecido com certeza". 2.2.. CARACTERISTICAS DAS REDES NEURAIS ARTIFICIAIS Através de diversas estruturas neurais e algoritmos de aprendizagem propostos por vários pesquisadores, as redes neurais artificiais conseguem simular estas características presentes nos sistemas biológicos. Dentre as características dos neurônios biológicos que são interessantes à computação podemos citar: reconhecimento de padrões; tolerância à falhas, aprendizado, processamento paralelo e distribuído, capacidade de treinamento, robustez, não-linearidade e uniformidade. Tais características não são suportadas pelos métodos computacionais tradicionais, fazendo com que tal tecnologia seja empregada para ajudar a solucionar problemas que antes eram resolvidos de forma menos eficaz. A redundância na representação de informações em uma rede neural, ao contrário de outros sistemas, transforma-se em uma vantagem, que torna o sistema tolerante a falhas. Os atributos de uma rede neural, tais como aprender através de exemplos, generalizações redundantes, e tolerância à falhas, proporcionam fortes incentivos para a escolha de redes neurais como uma escolha apropriada para aproximação de funções e para a modelagem de sistemas biológicos. A característica mais significante de redes neurais está em sua habilidade de aproximar qualquer função contínua não linear a um grau de correção desejado. Esta habilidade das redes neurais as tem tornado útil para modelar sistemas não lineares. Com o avanço em tecnologias de hardware, existe componentes com funções voltadas às redes neurais, o que traz uma velocidade adicional à computação neural. PAGE 2 3.2...1... DISPOSIÇÃO DOS NEURÔNIOS Segundo Rumelhart (RUMELHART; HINTON; WILLIAMS, 1986), a rede neural deve ter ao menos duas camadas para apresentar um resultado significativo no desempenho de suas funções: entrada e saída de dados. Como uma rede deste tipo possui o processamento muito limitado é necessária a adição de uma camada intermediária, fazendo com que uma rede neural tenha pelo menos três camadas. A rede neural de Hopfield (HOPFIELD, 1982) apresenta fluxo de dados multidirecional e comportamento dinâmico, devido ao fato de que todos os neurônios são interconectados, desaparecendo a idéia de camadas. Como seu funcionamento é mais complexo são encontrados maiores problemas tanto na fase de aprendizado quanto na fase de testes. Sua utilização é maior na área de problemas de otimização e desempenho. As duas redes neurais citadas podem ser observadas na figura 4. Figura : Modelos de redes neurais Figura : Estrutura de uma rede neural em 3 dimensões 3.2...2... CICLOS Quanto aos ciclos, as redes neurais podem ser classificadas em: • Diretas: redes neurais que não tem ciclos e podem ser representadas em camadas assim como é mostrado na figura 6; Figura : Rede neural direta • Com ciclos: redes em que o grafo de conectividade possui pelo menos um ciclo PAGE 2 (também chamadas redes com realimentação ou feedback), podem ser compostas de uma ou mais camadas, sendo que cada neurônio fornece o sinal de entrada como input para cada um dos outros neurônios, podemos ver um exemplo desta rede na figura 7; Figura : Rede neural com ciclo • Simétricas: redes cuja matriz (do grafo de conectividade) é simétrica, sendo um caso particular das redes com ciclos como na figura 8 . Figura : Rede neural simétrica 3.2...3... MODELOS DE REDES NEURAIS A partir dos algoritmos são construídas as redes neurais que irão interagir com as entradas, as quais irão processar e fornecer as respostas. Dentre estas redes, podemos classificá-las de acordo com seus ciclos e processos, os quais geram uma vasta gama de redes neurais já construídas ao longo do tempo como é mostrado na figura 9 abaixo. Figura : Modelos de redes neurais Esses ciclos desenvolvem as respostas que em geral, são funções tangentes hiperbólicas não-lineares e em degraus, como mostrado na figura 10 abaixo. Figura : Não linearidades usadas em redes neurais 3.2...4... CLASSES DE COMPORTAMENTOS O comportamento de uma rede neural designa a forma como o algoritmo que a compõe interage com os dados recebidos pela entrada, fornecendo uma resposta. Esses comportamentos são classificados em reflexivos e reativos, os quais serão detalhados. 3.2...4....1.... COMPORTAMENTOS REFLEXIVOS PAGE 2 Uma característica marcante aos comportamentos reflexivos de uma rede neural é a intensidade e a duração das respostas de um estímulo (entrada), os quais são uma função direta da intensidade e duração deste estimulo que disparou seu comportamento. Também é importante notar que tempo decorrido entre a ocorrência do estimulo e a aparecimento da resposta (saída) é mínimo. 3.2...4....2.... COMPORTAMENTOS REATIVOS É uma classe intermediária entre os comportamentos puramente reflexivos e os comportamentos instintivos. É formada por uma série de comportamentos estereotipados como resposta a um estimulo dado. A entrada que dispara esse comportamento é geralmente mais complexa e especifica que o necessário para disparar o comportamento reflexivo. A resposta envolve um seqüencial temporal de ações que se desenrolam até o final, mesmo que o estimulo disparador não esteja mais presente. 4. O PROCESSO DE APRENDIZAGEM Uma das características mais importantes de uma rede neural artificial é a capacidade de aprender com o meio ambiente, adaptando-se as condições do meio. Isto é feito através de um processo iterativo de ajuste de seus pesos, chamado de aprendizado. Quando a rede aprende uma solução para uma classe generalizada de problemas dizemos que ela aprendeu a tratar destes. Para que uma rede neural possa fazer isto é PAGE 2 4.1.. O ALGORITMO BACKPROPAGATION Modelos de redes neurais como o Perceptron (ROSENBLATT, 1959) são capazes de tratar problemas linearmente independentes ou separáveis. Para problemas não lineares, como computar a porta XOR ou a operação lógica de implicação, é necessário que a rede tenha uma representação intermediária apropriada para padrões de entrada. Isto é feito através da inserção de camadas de neurônios intermediários não-lineares. A rede neural com backpropagation utiliza a regra delta (uma restrição) para o processo de aprendizado. O termo backpropagation é uma abreviação para propagação do erro para trás. Com a regra delta, como através de outros tipos de backpropagation, o aprendizado é um processo supervisionado que ocorre a cada ciclo, isto é, cada vez que dados são apresentados na entrada da rede, através de um fluxo de ativação posterior das saídas e da propagação dos erros anteriores do ajuste de pesos. Simplificando, toda vez que uma rede neural recebe um padrão ela “adivinha” aleatoriamente o que a entrada deve ser. Verifica-se então a diferença entre a resposta encontrada está resposta e faz os ajustes nos pesos das conexões. A rede é inicializada aleatoriamente para que julgamentos acerca da aplicação não sejam feitos antes desta ser apresentada ao algoritmo backpropagation. Os padrões de treinamento apresentados à rede podem ser vistos como um conjunto de pares ordenados {(x1, y1), (x2, y2), ..., (xp, yp)}, onde xi representa um padrão de entrada, yi representa um vetor de padrão de saída associado ao vetor de entrada xi e oi representa a saída real obtida na rede. O processo de treinamento da rede é então feito de acordo com o seguinte algoritmo, o qual é derivado de um resultado natural da busca pelo gradiente da superfície de erro (no espaço de pesos) da saída atual produzida pela rede em relação a um resultado desejado. 1. Selecione o primeiro par de vetor de treinamento dos pares de vetores de treinamento. Chame este vetor de par (x, y). 2. Use o vetor de entrada x como a saída da camada de entrada dos elementos de processamento. 3. Calcule a ativação para cada unidade na camada subseqüente. PAGE 2 4. Aplique as funções de ativação apropriadas, as quais serão denotadas como f(net) para as camadas intermediárias e como f(net0) para a camada de saída, para cada unidade na camada subseqüente. 5. Repita os passos 3 e 4 para cada camada da rede. 6. Calcule o erro para este padrão p em todo a camada de saída K utilizando a fórmula: pk = (yk − ok)f0(netok). 7. Calcule o erro para todas camadas intermediárias j utilizando a fórmula recursiva. 8. Atualize os valores dos pesos das conexões das camadas intermediárias utilizando a equação: . Onde n é um pequeno valor utilizado para limitar a quantidade de mudança permitida para cada conexão durante um ciclo de treinamento. 9. Atualize os valores dos pesos das conexões da camada de saída através da fórmula: . 10. Repita os passos de 2 a 9 para todos os vetores pares no conjunto de treinamento. Chame esta de época de treinamento. Os passos 1 a 10 devem ser repetidos quantas vezes for necessária para reduzir a soma dos erros a um valor mínimo de acordo com a fórmula: A figura 13 mostra uma rede típica na qual pode ser utilizado o algoritmo backpropagation. Tal rede é constituída de L camadas feedforward (os nós de entrada não são computados como uma camada) consistindo de uma camada de entrada, (L-1) camadas intermediárias e uma camada de saída com nós conectados sucessivamente de forma para frente sem neurônios conectados que se encontrem na mesma camada. Não é ilustrado aqui o funcionamento do algoritmo devido ao grande número de iterações que geralmente são necessárias para se chegar a um resultado significativo. Figura : Estrutura típica de rede neural backpropagation 5. APLICAÇÃO DAS REDES NEURAIS ARTIFICIAIS 5.1.. RECONHECIMENTO DE VOZ O reconhecimento de voz é um campo que têm mostrado grande parte da capacidade das redes neurais. Pesquisadores facilmente obtiveram excelentes resultados em PAGE 2 tarefas básicas como diferenciação de fala humana e fala sintetizada e reconhecimento de fonemas e de dígitos através de fala. Há ainda o reconhecimento da voz humana, campo no qual têm-se encontrado muitos avanços nos últimos anos, com a presença de softwares de reconhecimento de voz tal qual o ViaVoicer da IBM. 5.2.. RECONHECIMENTO DE TEXTO O reconhecimento de caracteres é utilizado atualmente no processo de transferências de dados (principalmente livros) para o meio digital. O processo de OCR (Optical Character Recognition - reconhecimento ótico de caracteres) utilizando redes neurais é utilizado para leitura dos códigos postais em envelopes de carta nos Estados Unidos. O sistema apresenta precisão de até 99,5%. 3.2...4....3.... EXEMPLOS 3.2...4....3.....1.... ADIOS Pesquisadores das Universidades Cornell, Estados Unidos, e Tel Aviv, Israel, desenvolveram um método que permite a um computador escanear um texto, escrito em qualquer idioma, incluindo inglês e chinês, e, autonomamente e sem qualquer informação prévia, inferir as regras gramaticais por detrás da construção daquele texto. Entendendo as regras, o computador pode então utilizá-las, construindo sentenças novas - diferentes daquelas que ele "leu" - e que têm sentido. O método também funciona para pautas musicais e até mesmo para seqüências de proteínas. O novo método terá implicações significativas em aplicações como o reconhecimento de voz e em quaisquer outras aplicações que envolvam o processamento computadorizado da linguagem natural, assim como para campos de estudo como a genética ou a linguística. Ao contrário das tentativas anteriores para o desenvolvimento de algoritmos de computador voltados para o aprendizado da linguagem, o novo método, batizado de "Automatic Distillation of Structure - ADIOS", ou destilação automática de estrutura, PAGE 2 computação ainda será requerido para que o robô responda instantaneamente a alterações no ambiente. Um método de resolver este problema é através da utilização de redes neurais baseadas em sistemas de controle, as quais imitam a maneira como os seres vivos aprendem. Mas este tipo de rede tem um funcionamento excessivamente demorado, levando dias ou até mesmo meses para gerar movimentos de maneira eficiente. A tecnologia da Fujitsu é baseada em redes CPG ("Central Pattern Generator"), que simulam matematicamente o oscilador neural existente nos vertebrados. A ferramenta combina um método de perburbação numérica (NP), que quantifica o estado da configuração e dos pesos da rede. Esta combinação, conhecida como CPG/NP, foi otimizada para se chegar à nova tecnologia. A empresa também desenvolveu um software, chamado de Humanoid Movement-Generation System, que permite aos robôs humanóides aprenderem uma ampla gama de movimentos. Em termos mais simples, um gerador cria oscilações nas diversas juntas do robô. Estas oscilações são avaliadas por um software que determina se o movimento está correto ou incorreto. Se estiver incorreto, o programa altera os pesos atribuídos às diversas variáveis e tenta novamente. A rede neural se reconfigura dinamicamente e seleciona o movimento mais apropriado. Os pesquisadores enfatizam que o cerne da tecnologia está nessa reconfiguração dinâmica e não simplesmente na alteração dos pesos. Esta reconfiguração permite o aprendizado de uma enorme gama de movimentos complexos. O enfoque adotado resultou em uma significativa redução do tamanho do programa destinado a controlar os movimentos do robô, tendo apenas dez por cento do código de um programa convencional. O tempo de aprendizado também caiu para algo em torno de 10 a 30 por cento do tempo anteriormente exigido, considerando-se um robô com 20 juntas móveis. Isto torna o robô capaz de se adaptar e reagir instantaneamente às situações mutáveis de um ambiente real. Para facilitar o desenvolvimento de movimentos específicos, a empresa desenvolveu também uma linguagem de computador para a programação de redes neurais. A linguagem estará embutida no robô, podendo ser utilizada por usuários não especializados em dinâmica e redes neurais para gerar os movimentos desejados. PAGE 2 6. CONCLUSÕES Neste trabalho apresentamos uma sub-área da Inteligência Artificial: Redes Neurais Artificiais. Procuramos por meio de idéias e conceitos básicos explanar o desenvolvimento e o aprendizado de uma rede neural. Sabedores de que em processos normais de desenvolvimento destes tipos de rede, a modelagem da arquitetura é um processo custoso por demandar de especialistas que nem sempre estão disponíveis. A principal vantagem é que esse tipo de algoritmo passa a ser gerado com pouca ou quase nenhuma intervenção humana, criando sistemas autônomos que possam tomar suas próprias decisões baseados em experiências anteriores. PAGE 2 7. REFERENCIAS BIBLIOGRÁFICAS SANTOS, Davi Trindade. 2004. Sistemas Inteligentes Híbridos: Como Combinar Redes Neurais Artificiais, Lógica Nebulosa e Algoritmos Genéticos. SILVA, Flavio de Almeida. Redes Neurais Hierárquicas para Implementação de Comportamento de Agentes Autônomos. BARRETO, Jorge M. Introdução às Redes Neurais Artificiais. DESCHAMPS, Fernado. Redes Neurais Artificias – Fundamentos www.inovacaotecnologica.com.br (sitio da internet) PAGE 2
Docsity logo



Copyright © 2024 Ladybird Srl - Via Leonardo da Vinci 16, 10126, Torino, Italy - VAT 10816460017 - All rights reserved