Fundamentos das Redes Neurais: exemplos em Java

Documentos relacionados
Redes Neurais Artificiais

Redes Neurais Artificiais

Redes Neurais Artificiais

Redes Neurais Noções Gerais

Redes Neurais 1. Redes Neurais. cont.) Definição (cont( Definição. Histórico. Características básicas

serotonina (humor) dopamina (Parkinson) serotonina (humor) dopamina (Parkinson) Prozac inibe a recaptação da serotonina

Redes Neurais Artificiais. Prof. João Alberto Fabro

Redes Neurais Artificiais

Redes Neurais Artificiais

REDES NEURAIS. Marley Maria B.R. Vellasco. ICA: Núcleo de Pesquisa em Inteligência Computacional Aplicada CONTEÚDO

Redes Neurais Artificial. Inteligência Artificial. Professor: Rosalvo Ferreira de Oliveira Neto

Classificação Linear. André Tavares da Silva.

2. Redes Neurais Artificiais

REDES NEURAIS ARTIFICIAIS

Introdução a Redes Neurais Artificiais com a biblioteca Encog em Java

Aprendizado de Máquina (Machine Learning)

Redes Neurais Artificiais. Sistemas de Informação/Ciências da Computação UNISUL Aran Bey Tcholakian Morales, Dr. Eng. (Apostila 9)

Redes Neurais Artificiais na Engenharia Nuclear 1 Aula-2 Ano: 2005

Inteligência Artificial Redes Neurais

TÓPICOS EM INTELIGÊNCIA ARTIFICIAL Redes Neurais Artificiais

Introdução à Redes Neurais. Prof. Matheus Giovanni Pires EXA 868 Inteligência Artificial Não-Simbólica B Universidade Estadual de Feira de Santana

Redes Neurais Artificiais. Capítulos 1 e 2

Aprendizado de Máquinas. Multi-Layer Perceptron (MLP)

Por que Redes Neurais?

A evolução natural deu ao cérebro humano muitas características desejáveis que não estão presentes na máquina de von Neumann:

Previsão de Vazões utilizando Redes Neurais Artificiais MLP e NSRBN

Sistemas Inteligentes - Redes Neurais -

INTELIGÊNCIA ARTIFICIAL

Introdução às Redes Neurais Artificiais

Inteligência Computacional

Redes Neurais. Prof. Aurora Pozo. Obs: slides baseados em Prof. Marcílio Souto e Prof. Marley Vellasco

Primeiras Redes Neurais Artificiais: Perceptron e Adaline

Algoritmos de Aprendizado. CONTEÚDO Introdução Motivação, Objetivo, Definição, Características Básicas e Histórico. Regra de HEBB.

Redes Neurais Artificiais Sistemas Inteligentes Especialização em Automação Industrial SISTEMAS INTELIGENTES PROFESSOR FLÁVIO MURILO

3 Redes Neurais Artificiais

Multiple Layer Perceptron

2. Redes Neurais Artificiais

3 REDES NEURAIS ARTIFICIAIS

Redes Neurais Artificiais. Profa. Teresa Ludermir Sistemas Inteligentes

Tópicos Especiais: Inteligência Artificial REDES NEURAIS

Introdução às Redes Neurais Artificiais

Redes Neurais Artificial

Redes Neurais: MLP. Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação

PRINCÍPIOS DE NEUROCOMPUTAÇÃO

Aprendizado de Máquina Introdução às Redes Neurais Artificiais

Professor José Gomes de Carvalho Jr. Modelos Conexionistas - Redes Neurais 1 INTRODUÇÃO

4 Redes Neurais Artificiais RNAs

Redes Neurais: RBF. Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação

Redes Neurais não Supervisionadas: SOM

Protótipo de Software para Reconhecimento de Impressões Digitais

4 Redes Neurais Artificiais

HP UFCG Analytics Abril-Maio Um curso sobre Reconhecimento de Padrões e Redes Neurais. Por Herman Martins Gomes.

Redes Neurais Artificiais - Introdução. Visão Computacional

Análise da Complexidade de Tempo e Espaço em Algoritmos para Classificação de Padrões em sinais de ECG

Rede Perceptron. Capítulo 3

Minicurso: Inteligência Artificial Aplicada a Sistemas Elétricos

Uso de Redes Neurais Artificiais na Determinação dos Zeros de Funções Polinomiais

UNIVERSIDADE DO ESTADO DE MATO GROSSO - UNEMAT. Faculdade de Ciências Exatas e Tecnológicas FACET / Sinop Curso de Bacharelado em Engenharia Elétrica

FÁBIO BARROS TEBALDI ESTUDO DE REDES NEURAIS ARTIFICIAS PARA VERIFICAÇÃO E CLASSIFICAÇÃO DE ASSINATURAS ATRAVÉS DE IMAGENS

UNIVERSIDADE DO ESTADO DE MATO GROSSO - UNEMAT. Faculdade de Ciências Exatas e Tecnológicas FACET / Sinop Curso de Bacharelado em Engenharia Elétrica

Inteligência Computacional

Mineração de Dados em Biologia Molecular

PERCEPTRON. Características Básicas Modelo de Neurônio Estrutura da Rede Algoritmo de Aprendizado

Inteligência Artificial. IA Conexionista: Perceptron de Múltiplas Camadas Mapas Auto-Organizáveis. Renan Rosado de Almeida

REDES NEURAIS. É um conjunto complexo de células que determina o funcionamento e comportamento dos seres vivos. Sua unidade fundamental é o neurônio

Self Organizing Maps - Redes de Kohonen

Bruna Galle UPE Ecomp Mêuser Valença UPE Ecomp

João Paulo Teixeira Departamento de Electrotecnia ESTiG Instituto Politécnico de Bragança

Classificação de Padrões. Abordagem prática com Redes Neurais Artificiais

UNIVERSIDADE DO ESTADO DE MATO GROSSO - UNEMAT. Faculdade de Ciências Exatas e Tecnológicas FACET / Sinop Curso de Bacharelado em Engenharia Elétrica

Redes Neurais. Profa. Flavia Cristina Bernardini

Introdução a Redes Neurais Artificiais com a biblioteca Encog em Java

Transcrição:

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, 1955- Fundamentos das redes neurais: exemplos em Java /Mêuser Valença. Olinda, PE : Livro Rápido, 2007. 382p. : il. PeR-BPE 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 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. Dr a. 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 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 4.3 Desenvolvimento do Algoritmo Backpropagation... 218 9

4.4 Exemplo de Utilização da Rede MLP para Previsão 226 4.5 Exemplo de Utilização da Rede MLP para 265 Classificação... 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 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 meuserv@yahoo.com.br 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 x 1, x 2, x 3,..., de entrada líquida x n, como sendo as variáveis x j (j = 1,...,n) do neurônio de saída i. A entrada net i é dada pela seguinte regra de propagação: net i = n w x j = 1 ij j θ (1.1) onde: w ij são os pesos sinápticos e θ é o limiar. A figura 1.2 mostra esta representação x 1 w 11 θ = limiar x 2 w 12 x 3... w 13 w 1n Y=f(net) x n Figura 1.2: Neurônio de McCulloch e Pitts com limiar explícito A função de ativação f net ) neste caso é a função degrau, isto é: ( i 20

1, neti 0 f ( neti ) = (1.2) 0, neti < 0 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 x 1 w 10 w 11 x 2 w 12 x 3... w 13 w 1n Y=f(net) x n Figura 1.3: Neurônio de McCulloch e Pitts com limiar implícito adicionou-se uma nova entrada de valor fixo x 0 = +1, acrescentou-se um novo peso sináptico (limiar). w 10 = θ 21

net i = n w x j= 1 ij j + ( + 1).( θ ) Substituindo-se w = θ e x = 1 10 0 + net n i = wij x j + j = 1 w 10 x 0 n net = w i ij j =0 x j 22