• Nenhum resultado encontrado

HEbb

N/A
N/A
Protected

Academic year: 2021

Share "HEbb"

Copied!
22
0
0

Texto

(1)

Fundamentos das Redes Neurais:

exemplos em Java

Recife

2008

(2)

2

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, 1955-

Fundamentos 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 ESTU- DOS. 2. REDES DE COMPUTAÇÃO – PROBLEMAS, EXERCÍCIOS, ETC. 3. JAVA (LINGUAGEM DE PROGRA- MAÇÃO DE COMPUTADOR). 4. ALGORITMOS – GUIAS DE ESTUDOS. 5. INTELIGÊNCIA ARTIFICIAL. 6. SISTE- MAS 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

(3)

Fundamentos das Redes Neurais:

exemplos em Java

(4)
(5)

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

(6)
(7)

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.

(8)
(9)

Sumário

1 Introdução ... 15

1.1 Breve Histórico das Redes Neurais ... 15

1.2 Fundamentos das Redes Neurais ... 17

2 O Perceptron ... 23

2.1 Definição ... 23

2.2 Calculando a Saída para o Perceptron ... 27

2.3 Exemplo de Classificação (Sistema de Alerta) ... 31

2.4 Exemplo de Reconhecimento de Caracteres ... 42

2.5 Exemplo de Classificação (Animais) ... 57

2.6 Generalização do Perceptron ... 72

2.7 Exercício com Dois Neurônios na Camada de Saída 73 2.8 Exemplo sobre Avaliação de Crédito ... 97

2.9 Limitações do Perceptron ... 130

3 ADALINE ... 137

3.1 A Rede ADALINE ... 137

3.2 Calculando a Saída para a Rede ADALINE ... 138

3.3 Regra de Aprendizagem ... 140

3.4 Desenvolvimento da Regra Delta ... 142

3.5 Sistema de Previsão com ADALINE ... 147

3.6 Sistema de Previsão de Área Inundada ... 186

4 Redes MLP 203 4.1 Princípios das Redes MLP ... 203

4.2 Algoritmo Backpropagation ... 207

(10)

10

4.4 Exemplo de Utilização da Rede MLP para Previsão 226 4.5 Exemplo de Utilização da Rede MLP para

Classificação ... 265

5 Modelando uma Rede MLP ... 331

5.1 Aspectos a Analisar ... 331

5.2 Divisão dos Dados ... 331

5.3 Normalização ... 333

5.4 Determinação das Variáveis de Entrada ... 334

5.5 Arquitetura da Rede MLP ... 338 5.6 Treinamento da Rede MLP ... 341 5.7 Verificação do Desempenho ... 345 6 Kohonen 6.1 Aprendizagem Não-supervisionada ... 347 6.2 A Rede de Kohonen ... 348 6.3 Algoritmo ... 353 6.4 Exemplo de Agrupamento 355 Referências Apêndices

(11)

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

Apresentação

(12)

12

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

(13)

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ão-supervisionado ou auto-organizado. Dentre as redes com aprendizado não-supervisionado destacam-se os mapas

(14)

14

auto-organizáveis ou de forma simplificada SOMs (self-organizing 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

(15)

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:

Capítulo

(16)

16

“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

(17)

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

(18)

18

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.

(19)

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.

(20)

20

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

θ − ∑ = = j n j ij i w x net 1 (1.1) onde: wij são os pesos sinápticos e θ é o limiar.

A figura 1.2 mostra esta representação x1 x2 x3 xn Y=f(net) . . . w11 w12 w13 w1n

iar

lim

=

θ

x1 x2 x3 xn Y=f(net) . . . w11 w12 w13 w1n x1 x2 x3 xn Y=f(net) . . . w11 w12 w13 w1n

iar

lim

=

θ

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

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

(21)

   < ∀ ≥ ∀ = 0 , 0 0 , 1 ) ( i i i net net net f (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:

x1 x2 x3 xn Y=f(net) . . . w11 w12 w1 3 w1n w10 x0=+1 x1 x2 x3 xn Y=f(net) . . . w11 w12 w1 3 w1n w10 x0=+1

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

 adicionou-se uma nova entrada de valor fixo x = +1, 0

 acrescentou-se um novo peso sináptico w10 =−

θ

(22)

22 ) ).( 1 ( 1 θ − + + ∑ = = j n j ij i w x net Substituindo-se w10 =−

θ

e x0 =+1 0 10 1 x w x w net j n j ij i = ∑ + = j n j ij i w x net = ∑ =0

Referências

Documentos relacionados

O TUBO DE DESCARGA DEVE ESTAR SEMPRE DEVIDAMENTE CONECTADO ao aparelho: a única exceção é quando o aparelho estiver a ser usado apenas como desumidificador, em cujo caso é

9° - Haverá no JIFAC/2017 uma Comissão Disciplinar, incumbida de apreciar e julgar as infrações cometidas durante a competição, composta por 3 (três) membros

sIMÃo NETO et al (13) afirmam que na região Amazônica os processos de exploração de bovinos em campos naturais devem ser substituídos por outros racionais, com formação de

Magaldi não só aceita a obra do padre como sendo a primeira manifestação de teatro brasileiro, como entende que suas limitações devem-se mais ao gênero ao qual

Eficiência de remoção de coliformes totais, em função da quantidade de bactérias na água bruta, nas diferentes espessuras do meio filtrante nãotecido e do meio filtrante

Políticas públicas são ações governamentais que interferem na vida dos Políticas públicas são ações governamentais que interferem na vida dos cidadãos visando

O objetivo desta dissertação é analisar a associação entre autopercepção da imagem corporal e estado nutricional com autoestima corporal em adolescentes, segundo sexo e faixa

Apesar da existência do projeto desde 2004 e da inserção da ação como área de atuação do Mafra em Forma da SMS - programa institucionalizado por meio de lei - o desafio atual