HEbb

September 6, 2017 | Author: Beto Casagrande | Category: Artificial Neural Network, Neuron, Neuroscience, Earth & Life Sciences, Organ (Anatomy)
Share Embed Donate


Short Description

Download HEbb...

Description

Fundamentos das Redes Neurais: exemplos em Java

Recife 2008

Copyringt  by 2007 Mêuser Valença Impresso no Brasil Printed in Brazil Editor Tarcísio Pereira Diagramação Maria do Carmo de Oliveira Capa Valeska Martins Revisão Cloris Valença

V152a Valença, Mêuser, 1955Fundamentos das redes neurais: exemplos em Java /Mêuser Valença. – Olinda, PE : Livro Rápido, 2007. 382p. : il. ISBN 978-85-7716-342-7 1. REDES NEURAIS (COMPUTAÇÃO) – GUIAS DE ESTUDOS. 2. REDES DE COMPUTAÇÃO – PROBLEMAS, EXERCÍCIOS, ETC. 3. JAVA (LINGUAGEM DE PROGRAMAÇÃO DE COMPUTADOR). 4. ALGORITMOS – GUIAS DE ESTUDOS. 5. INTELIGÊNCIA ARTIFICIAL. 6. SISTEMAS ESPECIALISTAS (COMPUTAÇÃO). I. Título. CDU 681.3 CDD 006.3 PeR-BPE

Editora Livro Rápido – Elógica Rua Dr. João Tavares de Moura, 53/99 - Peixinhos Olinda – PE CEP: 53230-290 Fone: (81) 2121.5300 Fax: (81) 2121.5333 www.livrorapido.com.br

2

Fundamentos das Redes Neurais: exemplos em Java 3

4

Este livro é dedicado a Cloris Valença. A ninguém amo tanto. Minha maior sorte é ser seu marido.

5

6

Agradecimentos Gostaria de registrar meus agradecimentos a todos que contribuíram para a realização deste sonho, destacando: • • • • • •

Cloris, minha esposa, Anelle, Lianne e Ivna, minhas filhas, pelos inúmeros dias e noites que as privei do meu convívio para dedicar-me aos estudos. Dra. Teresa Bernarda Ludermir, minha orientadora de doutorado, grande amiga e incentivadora, sem a qual dificilmente este sonho teria sido realizado. Os analistas de sistemas Ivna Valença e Jorge Cruz, meus alunos de graduação e iniciação científica pela ajuda na implementação dos códigos. Valeska Martins filha dos meus maiores amigos pela elaboração da capa. Cloris, minha esposa, pela organização do livro. Todos os demais amigos que direta ou indiretamente contribuirão com suas sugestões.

7

8

Sumário 1 1.1 1.2

Introdução ............................................................... Breve Histórico das Redes Neurais .......................... Fundamentos das Redes Neurais ..............................

15 15 17

2 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9

O Perceptron ........................................................... Definição .................................................................. Calculando a Saída para o Perceptron ..................... Exemplo de Classificação (Sistema de Alerta) ......... Exemplo de Reconhecimento de Caracteres ............ Exemplo de Classificação (Animais) ....................... Generalização do Perceptron ................................... Exercício com Dois Neurônios na Camada de Saída Exemplo sobre Avaliação de Crédito ....................... Limitações do Perceptron ........................................

23 23 27 31 42 57 72 73 97 130

3 3.1 3.2 3.3 3.4 3.5 3.6

ADALINE ................................................................ A Rede ADALINE ................................................... Calculando a Saída para a Rede ADALINE ............. Regra de Aprendizagem ........................................... Desenvolvimento da Regra Delta ............................. Sistema de Previsão com ADALINE ....................... Sistema de Previsão de Área Inundada ....................

137 137 138 140 142 147 186

4 4.1 4.2 4.3

Redes MLP Princípios das Redes MLP ........................................ Algoritmo Backpropagation ..................................... Desenvolvimento do Algoritmo Backpropagation ...

203 203 207 218

9

4.4 4.5

Exemplo de Utilização da Rede MLP para Previsão Exemplo de Utilização da Rede MLP para Classificação .............................................................

226 265

5 5.1 5.2 5.3 5.4 5.5 5.6 5.7

Modelando uma Rede MLP ................................... Aspectos a Analisar .................................................. Divisão dos Dados .................................................... Normalização ............................................................ Determinação das Variáveis de Entrada ................... Arquitetura da Rede MLP ......................................... Treinamento da Rede MLP ....................................... Verificação do Desempenho ....................................

331 331 331 333 334 338 341 345

6 6.1 6.2 6.3 6.4

Kohonen Aprendizagem Não-supervisionada .......................... A Rede de Kohonen .................................................. Algoritmo .................................................................. Exemplo de Agrupamento

347 348 353 355

Referências Apêndices

10

Apresentação Este livro visa introduzir os conceitos básicos necessários sobre Redes Neurais Artificiais usados para resolução de aplicações práticas e para implementação, buscando desenvolver no leitor o entendimento do funcionamento desta poderosa ferramenta de Inteligência Artificial, assim como a capacidade para implementar, de maneira adequada, os algoritmos de aprendizagem supervisionada da rede Perceptron, da rede ADALIDE, das redes MLP e da aprendizagem não-supervisionada (rede de Kohonen). Para implementar os algoritmos de treinamento das Redes Neurais neste livro se adota a linguagem Java, que consiste numa linguagem de programação orientada a objetos mais amplamente utilizada do mundo. Este livro foi elaborado para ser utilizado como material didático em cursos de Redes Neurais Artificiais, de nível universitário. Entretanto o conteúdo do livro não pressupõe qualquer conhecimento ou experiência anterior do leitor na área de Redes Neurais ou na área de computação em geral, requerendo apenas conhecimentos básicos de matemática, estatística e lógica de programação, usualmente abordados nos cursos universitários. Em cada capítulo é dada uma base conceitual do tema e cada um desses conceitos é abordado mais detalhadamente por meio de exemplos ilustrativos e implementações em código Java. Os códigos fonte são disponibilizados no CD para que o leitor interessado possa não apenas entender os 11

exercícios resolvidos como também realizar outras implementações. Logo, este é bastante adequado para interessados em fazer uso da tecnologia de redes neurais, pesquisadores, alunos de graduação e de pós-graduação. Este livro está dividido em 6 capítulos, conforme descrito a seguir: •

Capítulo 1 – Introdução O capítulo 1 apresenta uma visão sucinta sobre a história das Redes Neurais e seus fundamentos.



Capítulo 2 – Perceptron Nesse capítulo, se introduz o conceito básico da rede Perceptron, que constituem o cerne das Redes Neurais. Este capítulo introduz também as noções de aprendizagem e inicia o conceito de treinamento, começando por resolver exercícios simples, cujas soluções e implementação podem ser realizadas com o uso do algoritmo de treinamento do Perceptron que é bastante simples.



Capítulo 3 – ADALINE Este capítulo aborda a rede ADALINE que é uma extensão do Perceptron para dados contínuos. Introduz a regra delta que é utilizada para treinamento da rede

12

ADALINE e são realizados exercícios de previsão e classificação. A implementação da regra delta é realizada em Java e utilizada para resolução de alguns exemplos ilustrativos. •

Capítulo 4 – Redes MLP Inicialmente, será feita uma introdução as Redes MLP que é uma extensão das Redes ADALINE. Em seguida, serão apresentadas suas bases teóricas e sua importância, bem como o algoritmo de aprendizagem proposto para estas redes. Exemplos de previsão e classificação são realizados e a implementação em Java do algoritmo backpropagation é feita.



Capítulo 5 – Modelando uma Rede MLP Nesse capítulo, apresentam-se as várias etapas que são necessárias para modelagem de uma Rede MLP. Estas etapas incluem, a divisão dos dados, a normalização dos dados, a seleção das variáveis de entrada e de saída, a determinação da arquitetura ótima da rede, o treinamento (critérios de parada, parâmetros, valores iniciais dos pesos) e a verificação do desempenho.



Capítulo 6 – Rede de Kohonen Esse capítulo, enfoca o aprendizado nãosupervisionado ou auto-organizado. Dentre as redes com aprendizado não-supervisionado destacam-se os mapas 13

auto-organizáveis ou de forma simplificada SOMs (selforganizing maps) propostas pelo professor Teuvo Kohonen. Procurar-se-á ressaltar, nesse capítulo, um dos principais usos das redes de Kohonen que é como ferramenta de clusterização. •

Apêndice A – Ferramentas Utilizadas (Código Fonte) Nesse apêndice, apresentam-se as ferramentas utilizadas para implementação das redes Perceptron, ADALINE, MLP e de Kohonen. A descrição da localização dos códigos fontes no CD bem como a forma de execução dos exemplos.

Mêuser Valença [email protected]

14

Capítulo 1 Introdução 1.1 Breve Histórico das Redes Neurais A primeira versão de um neurônio artificial foi proposta por McCulloch (neurofisiologista) e Pitts (matemático) [MP43] que apresentaram um estudo em 1943 sugerindo a construção de uma máquina inspirada no cérebro humano. Em função destes trabalhos pioneiros credita-se a eles o estabelecimento das bases da neuro computação. Em seguida ao trabalho de McCulloch e Pitts surge a regra de aprendizagem proposta por Donald Hebb que se constitui na base de todas as regras de aprendizagem. Em seu famoso livro de 1949, The Organization of Behavior, o psicólogo Donald Hebb [Heb49] procurou encontrar um mecanismo neural capaz de explicar como as informações podem ser armazenadas e recuperadas nos neurônios. A sua grande contribuição foi formular uma regra de aprendizagem enunciada da seguinte forma:

15

“Quando um neurônio recebe um estímulo de outro neurônio, e se ambos estão altamente ativos, o peso entre estes deve ser fortalecido, caso contrário enfraquecido”. Entretanto, só em 1958 a primeira aplicação prática foi realizada por Frank Rosenblatt [Ros62] que desenvolveu uma rede neural Perceptron que era capaz de realizar reconhecimento de padrões através de uma regra de aprendizagem o que gerou um grande interesse nas redes neurais. No ano de 1960, Widrow e Hoff [WH60] apresentaram uma regra de aprendizagem para uma extensão do Perceptron chamada de ADALINE (ADAptive LInear NEuron). Esta regra baseada no método dos mínimos quadrados ficou conhecida como regra delta e é utilizada até os dias atuais. Infelizmente, com a publicação de um trabalho de Minsky e Papert [MP69] em 1969 verificou-se que o Perceptron era capaz de distinguir apenas padrões linearmente separáveis o que levou a um desinteresse nas redes neurais e, conseqüentemente, uma redução nas verbas de pesquisa. Apesar destas limitações, alguns pesquisadores continuaram interessados nas redes neurais e em 1970 destaca-se a rede neural auto-organizável desenvolvida por Teuvo Kohonen [Koh82][Koh88] (rede de Kohonen). O ressurgimento das redes neurais é atribuído ao trabalho do físico John Hopfield [Hop82] publicado em 16

1982, sobre as propriedades associativas das redes neurais (rede de Hopfield) e ao desenvolvimento do algoritmo backpropagation que teve seus passos inicias dados por Paul Werbos em 1970 [Wer74] na sua tese de doutoramento e posteriormente popularizado através da publicação feita por Rumelhart e McClelland em 1986 [RM86].

1.2 Fundamentos das Redes Neurais As redes neurais artificiais ou simplesmente redes neurais, são modelos que vêm sendo desenvolvidos nos últimos anos, e que têm como metáfora o funcionamento do cérebro humano com suas redes neurais biológicas. O cérebro humano é composto por algo em torno de 10 bilhões de neurônios que se interconectam, formando uma verdadeira rede, que é capaz de processar milhões de informações e realizar algo em torno de 60 trilhões de ligações sinápticas. O cérebro é um sistema de processamento maciçamente paralelo que apesar de ser constituído por neurônios individualmente lentos, é capaz de realizar o processamento de informações mais rápido do que o mais rápido computador existente, uma vez que pode processar trilhões de operações simultaneamente. De maneira geral, pode-se definir uma Rede Neural Artificial como um sistema constituído por elementos de processamento interconectados, chamados de neurônios, os 17

quais estão dispostos em camadas (uma camada de entrada, uma ou várias camadas intermediárias e uma camada de saída) e são responsáveis pela não-linearidade e pela memória da rede. O Neurônio Neurônio biológico De maneira bastante simples, pode-se dizer que o neurônio biológico (Figura 1.1) é composto por um corpo celular, de onde saem ramificações que são os dendritos. Desse corpo celular, sai um prolongamento chamado axônio, cujo terminal é denominado de telodendro. A passagem do impulso nervoso entre dois neurônios se dá na região de sinapse, geralmente, formada pela união dos axônios de um neurônio e os dendritos do outro. Essa transmissão ocorre do axônio de um neurônio para os dendritos do neurônio seguinte, e não no sentido contrário.

Figura 1.1: Neurônio Biológico

18

Um dos aspectos importantes de entendimento do funcionamento do neurônio biológico é aquele relacionado com a Lei do Tudo ou Nada. Esta lei está relacionada com a intensidade do estímulo, chamado de limiar excitatório, a partir do qual o neurônio dispara ou não o impulso nervoso. Portanto, se o estímulo for muito pequeno, sua intensidade será inferior ao limiar excitatório e não ocorrerá nenhum impulso nervoso. Por outro lado, passado esse limiar, o potencial de ação do neurônio será sempre o mesmo, qualquer que seja a intensidade do estímulo. Em outras palavras, o neurônio segue a Lei do Tudo ou Nada. Neurônio Artificial O comportamento do neurônio artificial utilizado para caracterizar o neurônio biológico é o passo inicial para se compreender as redes neurais. A primeira proposta de uma representação matemática, chamada aqui de neurônio matemático, para representar o neurônio biológico foi feita por McCulloch e Pitts (1943). O modelo proposto procura, de forma bastante simples e, por que não dizer rude, representar o neurônio biológico utilizando uma regra de propagação e uma função de ativação. A emissão de sinal por este neurônio está baseada em um limiar em analogia com a Lei do Tudo ou Nada.

19

Considere x1 , x 2 , x3 , ..., x n , como sendo as variáveis de entrada x j (j = 1,...,n) do neurônio de saída i . A entrada líquida neti é dada pela seguinte regra de propagação: n

neti = ∑ wij x j − θ

(1.1)

j =1

onde: wij são os pesos sinápticos e θ é o limiar. A figura 1.2 mostra esta representação

x1 w11 x2

θ = lim iar

w12 w13

x3 . . .

Y=f(net)

w1n

xn Figura 1.2: Neurônio de McCulloch e Pitts com limiar explícito

A função de ativação f (net i ) neste caso é a função degrau, isto é:

20

1, ∀net i ≥ 0 f (net i ) =  0, ∀net i < 0

(1.2)

Entretanto, nos algoritmos de aprendizagem, a consideração do limiar de forma implícita é mais adequada. A Figura 1.3 apresenta uma alternativa de representação do neurônio, em que o efeito da função limiar é representado por se fazer duas modificações:

x 0 =+1 w 10

x1

w 11 x2

w 12 w 13

x3 . . .

Y=f(net)

w 1n

xn

Figura 1.3: Neurônio de McCulloch e Pitts com limiar implícito

 adicionou-se uma nova entrada de valor fixo x0 = +1,  acrescentou-se um novo peso sináptico

w10 = −θ

(limiar). 21

n

neti = ∑ wij x j + (+1).(−θ ) j =1

Substituindo-se w10 = −θ e x0 = +1 n

neti = ∑ wij x j + w10 x0 j =1

n

neti = ∑ wij x j j =0

22

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF