aplicac˜ao do mathematica no desenvolvimento de redes...

22
Instituto de F´ ısica “Gleb Wataghin” - IFGW Universidade Estadual de Campinas - UNICAMP Campinas (S˜ ao Paulo) Aplica¸ ao do Mathematica no desenvolvimento de redes neurais Rickson Coelho Mesquita Professor: Alberto Saa

Upload: leanh

Post on 11-Nov-2018

220 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Aplicac˜ao do Mathematica no desenvolvimento de redes ...vigo.ime.unicamp.br/~asaa/redesneurais.pdf · 2 1 Introdu¸c˜ao De forma basica e direta, uma rede neural ´e um paradigma

Instituto de Fısica “Gleb Wataghin” - IFGW

Universidade Estadual de Campinas - UNICAMP

Campinas (Sao Paulo)

Aplicacao do Mathematica no desenvolvimento de

redes neurais

Rickson Coelho Mesquita

Professor: Alberto Saa

Page 2: Aplicac˜ao do Mathematica no desenvolvimento de redes ...vigo.ime.unicamp.br/~asaa/redesneurais.pdf · 2 1 Introdu¸c˜ao De forma basica e direta, uma rede neural ´e um paradigma

1

Sumario

1 Introducao 2

2 Perceptron para duas classes de padroes 4

3 Algoritmos de treinamento 6

3.1 Treinamento para classes linearmente separaveis . . . . . . . . . . . . . . . 7

3.2 Classes nao separaveis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

4 Resultados obtidos 10

4.1 Problema 1: exemplo de uma classe separavel . . . . . . . . . . . . . . . . 10

4.2 Problema 2: Treinamento de uma rede neural para implementacao da porta

logica AND . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

4.3 Problema 3: Implementacao da funcao 2cos(πk/8) a partir de sen(πk/8) . 13

5 Conclusoes 17

Page 3: Aplicac˜ao do Mathematica no desenvolvimento de redes ...vigo.ime.unicamp.br/~asaa/redesneurais.pdf · 2 1 Introdu¸c˜ao De forma basica e direta, uma rede neural ´e um paradigma

2

1 Introducao

De forma basica e direta, uma rede neural e um paradigma computacional inspirado

no paralelismo do cerebro, com o objetivo de permitir que maquinas computacionais

usem e imitem a logica funcional desenvolvida facilmente por seres humanos atraves da

unidade principal do sistema nervoso, os neuronios. Isso e possıvel atraves da utilizacao

de elementos de computacao nao-linear (chamados neuronios) organizados em redes, de

maneira analoga a que se acredita que as celulas nervosas estejam interconectadas no

cerebro. Essas redes sao utilizadas como base para o desenvolvimento adaptativo dos

coeficientes das funcoes de decisao atraves de apresentacoes sucessivas de conjuntos de

padroes de treinamento.

O interesse em redes neurais data do inıcio da decada de 1940, atraves dos trabalhos de

McCulloch e Pitts [1]. Juntos, eles propuseram um modelo que explica o funcionamento de

neuronios como dispositivos de limiarizacao binaria e algoritmos estocasticos envolvendo

mudancas repentinas de 0-1 e 1-0 em seus estados. O trabalho subsequente de Hebb

baseou-se em modelos matematicos que tentavam capturar o conceito de aprendizado por

reforco ou associacao, de forma que o aprendizado em sistema nervosos complexos poderia

ser reduzido a um processo puramente local, em que a intensidade das conexoes sinapticas

e alterada apenas em funcao dos erros detectaveis localmente [2].

No final da decada de 1950, Rosenblatt deu prosseguimento as ideias de McCulloch.

Empregando o princıpio de aprendizado de Hebb, ele criou uma genuına rede de multiplos

neuronios chamada de perceptron [3, 4]. A razao para o grande interesse nessa rede foi o

desenvolvimento de provas matematicas, mostrando que os perceptrons, quando treinados

com conjuntos de treinamento linearmente separaveis, convergiriam para uma solucao em

um numero finito de passos iterativos. A solucao tomaria a forma de coeficientes de

hiperplanos capazes de separar corretamente as classes representadas pelos padroes no

conjunto de treinamento.

Mas as expectativas que seguiram a descoberta do que parecia ser um modelo teorico

Page 4: Aplicac˜ao do Mathematica no desenvolvimento de redes ...vigo.ime.unicamp.br/~asaa/redesneurais.pdf · 2 1 Introdu¸c˜ao De forma basica e direta, uma rede neural ´e um paradigma

3

bem fundamentado de aprendizado foram logo frustradas. O perceptron basico e algumas

de suas generalizacoes naquele tempo eram simplesmente inadequados para a maioria das

tarefas de reconhecimento de padroes de importancia pratica. Tentativas subsequentes

de estender o poder dessas redes, considerando multiplas camadas desses dispositivos,

sentiam a ausencia de algoritmos efetivos de treinamento. Em meados da decada de 1960,

Minsky e Papert apresentaram uma analise desencorajadora da limitacao das maquinas

do tipo perceptron [5], o que levou Simon a descartar essa area de estudo sob o tıtulo de

“Nascimento e morte de um mito” alguns anos mais tarde [6].

Essa visao foi mantida ate meados da decada de 1980, quando Rumelhart, Hinton

e Willians mudaram consideravelmente a situacao ao desenvolver novos algoritmos de

treinamento para perceptrons multicamadas. A regra generalizada delta para aprendizado

por retropropagacao, como ficou conhecido o metodo proposto por estes autores, e uma

opcao de treinamento efetivo para maquinas de multiplas camadas [7]. Embora nao se

possa mostrar que esse algoritmo de treinamento convirja para uma solucao no sentido da

prova analoga para o perceptron de uma camada, a regra generalizada delta tem sido usada

com sucesso em varios problemas de interesse pratico, estabelecendo essas maquinas do

tipo perceptron com multiplas camadas como um dos principais modelos de redes neurais

atualmente em uso [8].

Baseado nisso, esse projeto tem como objetivo introduzir os aspectos basicos na im-

plementacoes de redes neurais de multiplas camadas. Comecaremos introduzindo o per-

ceptron mais simples como um modelo basico de um neuronio e a partir daı, discutiremos

alguns aspectos do treinamento de perceptrons sob as condicoes de separacao de classes,

bem como de nao separacao. Por fim, implementaremos esses algoritmos de treinamento

de padroes no software Mathematica. Embora simples, esses topicos servem como funda-

mento para o desenvolvimento da regra generalizada delta para o treinamento de redes

neurais multicamadas, que nao discutiremos aqui.

Page 5: Aplicac˜ao do Mathematica no desenvolvimento de redes ...vigo.ime.unicamp.br/~asaa/redesneurais.pdf · 2 1 Introdu¸c˜ao De forma basica e direta, uma rede neural ´e um paradigma

4

2 Perceptron para duas classes de padroes

Como ja mencionado, McCulloch e Pitts propuseram um modelo que explica o funci-

onamento de neuronios como um dispositivo binario: a sua saıda poderia ser pulso (1) ou

nao pulso (0), e as suas varias entradas tinham ganho arbitrario e poderiam ser excita-

torias ou inibitorias (figura 1). Para determinar a saıda do neuronio, calculava-se a soma

ponderada das entradas com os respectivos ganhos como fatores de ponderacao, positivos

nos casos excitatorios e negativos nos casos inibitorios. Se este resultado fosse maior ou

igual a um certo limiar entao a saıda do neuronio era 1; caso contrario era 0. Assim,

foi possıvel implementar varias funcoes booleanas usando ganhos iguais a 1/2 e limiares

iguais a 1.

Figura 1: Neuronio booleano de McCulloch (extraıdo de Kovacs [9]).

Seguindo as ideias de McCulloch, Rosenblatt criou o perceptron. Na sua forma mais

basica, o perceptron pode ser considerado como o neuronio de McCulloch que aprende

uma funcao de decisao linear (ao inves de considerar sempre ganhos e limiares fixos) capaz

de diferenciar dois conjuntos de treinamento linearmente separaveis como os da figura 2.

A resposta desse dispositivo basico pode ser formulada como uma soma ponderada de sua

entrada,

d(~x) =n∑

i=1

wixi + wn+1 (1)

que representa uma funcao de decisao linear (figura 3). Nesse caso, o vetor ~x representa

a entrada de padroes do neuronio (dados iniciais utilizados para treinar a rede neural),

enquanto os coeficientes wi (i = 1, 2, ..., n + 1) sao conhecidos como pesos, e modificam a

Page 6: Aplicac˜ao do Mathematica no desenvolvimento de redes ...vigo.ime.unicamp.br/~asaa/redesneurais.pdf · 2 1 Introdu¸c˜ao De forma basica e direta, uma rede neural ´e um paradigma

5

entrada antes de ser somada. Podemos reescrever a equacao 1 como

d(~x) = w1x1 + w2x2 + ... + wnxn + wn+1 = 0 (2)

que representa a equacao de um hiperplano no espaco n-dimensional de padroes. Geome-

tricamente, os primeiros n coeficientes estabelecem a orientacao do hiperplano, enquanto

o ultimo coeficiente wn+1 e proporcional a distancia perpendicular a origem.

Figura 2: Para classes linearmente separaveis, e possıvel separar duas regioes A e B atraves

de uma superfıcie de decisao (extraıdo de Kovacs [9]).

Figura 3: Diagrama de blocos do discriminador linear (extraıdo de Kovacs [9]).

Quando d(~x) > 0, a saıda do perceptron e +1, indicando que o padrao ~x foi reconhecido

como pertencendo a classe c1. O contrario e verdadeiro quando d(~x) < 0. Quando

d(~x) = 0, ~x situa-se sobre a superfıcie de decisao que separa as duas classes, fornecendo

uma condicao indeterminada.

Page 7: Aplicac˜ao do Mathematica no desenvolvimento de redes ...vigo.ime.unicamp.br/~asaa/redesneurais.pdf · 2 1 Introdu¸c˜ao De forma basica e direta, uma rede neural ´e um paradigma

6

Podemos ainda testar a funcao em relacao a wn+1, onde a saıda do sistema (elemento

de limiarizacao) e dado por

O =

+1 se∑n

i=1 wixi > −wn+1

−1 se∑n

i=1 wixi < −wn+1

(3)

Uma outra formulacao encontrada na pratica e aumentar os vetores de padroes, acrescentando-

se um elemento adicional (n+1), que e sempre igual a 1, nao importa a classe. Assim, e

possıvel criar um vetor de padroes aumentado ~y a partir do vetor de padroes ~x fazendo-se

yi = xi, i = 1,2,3,...,n, e acrescentando-se um elemento adicional yn+1 = 1, de forma que

a equacao 1 torna-se:

d(~y) =n+1∑i=1

wiyi (4)

= ~wT~y

onde ~w = (w1, w2, ..., wn, wn+1) e chamado de vetor de pesos. Assim, se tivermos ao menos

um vetor padrao de entrada ~x, e conhecermos o vetor de pesos ~w, e possıvel calcular a

saıda obtida pela rede neural. No entanto, geralmente nao se conhece ~w, de forma que

o problema basico reduz-se a encontrar essas variaveis. Para isso, costuma-se treinar a

rede neural, usando um dado conjunto de treinamento de vetores de padroes de cada uma

das classes, { ~xk}. Introduzindo esses vetores, e conhecendo as respectivas saıdas {dk}, e

possıvel encontrar o melhor vetor ~w que representa esses dados de entrada. Diz-se que

a rede neural sofreu um processo de aprendizado apos encontrar o vetor de pesos. A

aplicacao desse grande algoritmo esta no fato de, uma vez determinado o vetor de pesos,

ser possıvel calcular a saıda para qualquer que seja um vetor de entrada ~x.

3 Algoritmos de treinamento

Pode-se aplicar diferentes algoritmos para treinar o perceptron, dependendo do tipo de

rede neural que se quer construir. Apresentaremos duas formas diferentes de treinamento:

Page 8: Aplicac˜ao do Mathematica no desenvolvimento de redes ...vigo.ime.unicamp.br/~asaa/redesneurais.pdf · 2 1 Introdu¸c˜ao De forma basica e direta, uma rede neural ´e um paradigma

7

uma que se aplica quando as classes podem ser linearmente separaveis e outra em que nao

e possıvel separa-las.

3.1 Treinamento para classes linearmente separaveis

Um algoritmo simples para a obtencao de um vetor de pesos para dois conjuntos de

treinamento linearmente separaveis e o seguinte: partindo de dois vetores de padroes

aumentados que pertencam a duas classes de padroes c1 e c2, e de uma representacao do

vetor inicial de pesos ~w1 (escolhido arbitrariamente), podemos reformular esse vetor, de

forma que se ~y(k) ∈ c1 e ~wT (k)~y(k) ≤ 0, entao a (k+1)-esima iteracao e dada por

~w(k + 1) = ~w(k) + c~y(k) (5)

onde c e um incremento positivo de correcao. Analogamente, se ~y(k) ∈ c2 e ~wT (k)~y(k) ≥ 0,

temos

~w(k + 1) = ~w(k)− c~y(k) (6)

Em qualquer outra situacao,

~w(k + 1) = ~w(k) (7)

Esse metodo de treinamento baseia-se num conceito de recompensa-e-punicao. A

“recompensa” para a maquina no caso de classificacao correta e, na verdade, a ausencia

de punicao. Em outras palavras, se a maquina classificar um padrao corretamente, ela

e recompensada pelo fato de nao haver mudancas em ~w. A convergencia do algoritmo

ocorre quando o conjunto completo de treinamento para as duas classes for passado pela

maquina sem erros. A regra de incremento fixo de correcao converge em um numero finito

de passos se os dois conjuntos de padroes de treinamento forem linearmente separaveis.

3.2 Classes nao separaveis

Na pratica, classes de padroes linearmente separaveis sao (raras) excecoes. Consequen-

temente, uma quantidade significativa de esforco foi feita no desenvolvimento de tecnicas

Page 9: Aplicac˜ao do Mathematica no desenvolvimento de redes ...vigo.ime.unicamp.br/~asaa/redesneurais.pdf · 2 1 Introdu¸c˜ao De forma basica e direta, uma rede neural ´e um paradigma

8

projetadas para trabalhar com classes nao separaveis de padroes entre as decadas de 1960

e 1970. No entanto, com os avancos recentes no treinamento de redes neurais, muitos dos

metodos que tratam com o comportamento nao separavel tornaram-se apenas topicos de

interesse historico. Um dos primeiros metodos, entretanto, e diretamente relevante nessa

discussao: a regra delta original. Conhecida como a regra delta de Widrow-Hoff, ou de

mınimos quadrados para o treinamento de perceptrons, o metodo minima o erro entre a

resposta verdadeira e a desejada a cada passo do treinamento.

A ideia do treinamento e determinar qual o melhor vetor de pesos ~w que corresponde

ao conjunto de valores de saıda dk para um dado conjunto de vetores de entrada ~x, ambos

conhecidos. O conceito de melhor esta associado a busca da minimizacao do erro cometido

ao se comparar a saıda dada pela rede yk com o valor tomado como correto dk. Assim,

podemos procurar um conjunto de pesos que minimiza o erro quadratico medio para o

conjunto de vetores de entrada. Se o valor de saıda obtido para o k-esimo vetor padrao

de entrada e yk, entao

εk = dk − yk (8)

de forma que o erro quadratico medio e

ξ = 〈ε2k〉 =

1

n + 1

n+1∑i=1

ε2i (9)

Substituindo a equacao 8 na equacao 9 temos que

ξ = 〈dk − ~w · ~xk〉2 = 〈d2k〉+ ~wT 〈 ~xk ~xk

T 〉~w − 2〈dk ~xkT 〉~w (10)

Para o caso de duas classes, a equacao acima representa a equacao de um paraboloide. As

coordenadas wi correspondentes ao ponto de mınimo sao os melhores pesos, e consequen-

temente a solucao do problema.

Para encontrar o ponto de mınimo, e necessario calcular o gradiente de ξ. No entanto,

ao inves de aplicar sucessivos vetores padroes e acumular o erro quadratico medio, vamos

aplicar apenas um vetor padrao de entrada ~xk e usar o valor do erro εk diretamente.

Page 10: Aplicac˜ao do Mathematica no desenvolvimento de redes ...vigo.ime.unicamp.br/~asaa/redesneurais.pdf · 2 1 Introdu¸c˜ao De forma basica e direta, uma rede neural ´e um paradigma

9

Nesse caso podemos usar o valor local do erro ao quadrado como aproximacao para o erro

quadratico medio para um padrao particular:

ξ = 〈ε2k〉 ≈ ε2

k = ξk =

(dk −

n∑i=1

wi(xi)k

)2

(11)

Uma vez que ξk e uma funcao dos pesos, o gradiente dessa funcao e dado por

∂ξk

∂wi

= −2

(dk −

n∑i=1

wi(xi)k

)(xi)k = −2εk(xi)k (12)

Por fim, ajustamos o valor do peso wi por um pequeno valor na direcao contraria a

do gradiente. Em outras palavras, atualizamos o valor do peso de acordo com a seguinte

“receita”:

wi(t + 1) = wi(t) + cε(xi)k (13)

ou, em forma vetorial,

~w(t + 1) = ~w(t) + cε(~x)k (14)

onde c e chamado de parametro de taxa de aprendizado e geralmente e muito menor do

que 1.

Repetindo o processo acima para todo o conjunto de vetores padrao de entrada, es-

taremos caminhando em direcao ao ponto de mınimo na superfıcie do erro, embora nao

necessariamente teremos o gradiente exato da superfıcie devido as aproximacoes feitas.

Enquanto o vetor de pesos se move em direcao ao ponto de mınimo, os valores de erro

diminuem. Deve-se manter a iteracao ate os erros serem reduzidos a um valor aceitavel,

sendo que a definicao de aceitavel e determinada pelas exigencias da aplicacao.

Page 11: Aplicac˜ao do Mathematica no desenvolvimento de redes ...vigo.ime.unicamp.br/~asaa/redesneurais.pdf · 2 1 Introdu¸c˜ao De forma basica e direta, uma rede neural ´e um paradigma

10

4 Resultados obtidos

4.1 Problema 1: exemplo de uma classe separavel

Como primeiro exemplo de aplicacao dos topicos discutidos acima, vamos discutir os

dois conjuntos de treinamento apresentados na figura 4, cada qual consistindo de dois

padroes. O algoritmo de treinamento deveria terminar com sucesso, uma vez que os dois

conjuntos de treinamento sao linearmente separaveis.

Figura 4: Problema 1 - ilustracao do algoritmo de treinamento do perceptron para padroes

pertencentes a duas classes.

O algoritmo da secao 3.1 foi implementado no Mathematica (arquivo em anexo), para

o caso desse problema. A convergencia foi atingida para 4 ≤ k ≤ 13, dependendo do vetor

de pesos inicial, que foi escolhido de forma arbitraria (utilizando o comando Random[ ] no

Mathematica). A solucao para o vetor de pesos tambem variou de acordo com a escolha

inicial, porem o numero de possibilidades foi restrito. As solucoes encontradas, bem como

sua frequencia em 76 simulacoes, estao na figura 5.

Page 12: Aplicac˜ao do Mathematica no desenvolvimento de redes ...vigo.ime.unicamp.br/~asaa/redesneurais.pdf · 2 1 Introdu¸c˜ao De forma basica e direta, uma rede neural ´e um paradigma

11

Figura 5: Solucoes encontradas para o vetor de pesos do problema 1.

Figura 6: Fronteira de decisao mais provavel para o treinamento do problema 1

A funcao de decisao correspondente ao vetor de pesos mais provavel e d(~y) = −3y1+1.

Voltando ao espaco de padroes original leva a d(~x) = −3x1 + 1, que, quando igualada a

zero, se torna a equacao da fronteira de decisao mostrada na figura 6.

Page 13: Aplicac˜ao do Mathematica no desenvolvimento de redes ...vigo.ime.unicamp.br/~asaa/redesneurais.pdf · 2 1 Introdu¸c˜ao De forma basica e direta, uma rede neural ´e um paradigma

12

4.2 Problema 2: Treinamento de uma rede neural para imple-

mentacao da porta logica AND

Um outro exemplo analogo ao anterior e que pode ser feito a partir do treinamento de

redes neurais para classes separaveis e a implementacao da porta logica AND, cuja tabela

verdade e mostrada abaixo:

p q AND

T T T

T F F

F T F

F F F

Figura 7: Problema 2 - ilustracao do algoritmo de treinamento do perceptron para o

problema AND.

Utilizamos o software Mathematica para a implementacao do algoritmo (arquivo em

anexo) para encontrar o vetor de pesos. A convergencia para a solucao final dependeu

do vetor de pesos inicial, e variou entre 6 ≤ k ≤ 17 iteracoes. No entanto, todas as 40

simulacoes resultaram na mesma solucao: ~w = (−3,−2, 4). Assim, a equacao da fronteira

Page 14: Aplicac˜ao do Mathematica no desenvolvimento de redes ...vigo.ime.unicamp.br/~asaa/redesneurais.pdf · 2 1 Introdu¸c˜ao De forma basica e direta, uma rede neural ´e um paradigma

13

de decisao que separa as duas classes do problema e dada por d(~x) = −3x1 − 2x2 +4 = 0,

como mostra a figura 8.

Figura 8: Fronteira de decisao encontrada para o treinamento do problema 2.

4.3 Problema 3: Implementacao da funcao 2cos(πk/8) a partir

de sen(πk/8)

Por fim, realizamos uma simulacao utilizando a regra delta apresentada na secao 3.2. A

ideia foi encontrar o vetor de pesos de minimiza o erro na utilizacao da funcao sen(πk/8)

para representar a funcao 2cos(πk/8). A comparacao entre as funcoes utilizadas pode ser

vista na figura 9.

A solucao para o vetor de pesos foi ~w = (4.8,−5.2), variando a segunda casa decimal

devido a escolha (aleatoria) do vetor de pesos inicial. Na implementacao do algoritmo, o

parametro da taxa de aprendizado foi fixado em 0.2, resultando num numero de iteracoes

da ordem de 760 (para um parametro de taxa de aprendizado maior, o numero de iteracoes

seria menor).

Podemos acompanhar a evolucao do aprendizado calculando o valor do erro para cada

Page 15: Aplicac˜ao do Mathematica no desenvolvimento de redes ...vigo.ime.unicamp.br/~asaa/redesneurais.pdf · 2 1 Introdu¸c˜ao De forma basica e direta, uma rede neural ´e um paradigma

14

Figura 9: Problema 3 - (a) grafico da funcao 2cos(πk/8); (b) grafico da funcao de entrada

sen(πk/8) e; (c) comparacao entre as duas funcoes citadas acima.

iteracao (figura 10), mostrando que este diminui ate o valor mınimo estipulado no inıcio

do programa (5.10−4). Como o vetor de pesos foi calculado para cada valor de k, tambem

podemos acompanhar a evolucao de ~w em funcao do numero de iteracoes (figura 11).

Page 16: Aplicac˜ao do Mathematica no desenvolvimento de redes ...vigo.ime.unicamp.br/~asaa/redesneurais.pdf · 2 1 Introdu¸c˜ao De forma basica e direta, uma rede neural ´e um paradigma

15

Figura 10: Problema 3 - Valor do erro ao longo do numero de iteracoes.

Figura 11: Problema 3 - Evolucao do vetor de pesos ao longo das iteracoes.

Widrow e Stearns calcularam a equacao exata para a superfıcie de erro para esse

exemplo [10],

ε(w1, w2) = 0, 51(w21 + w2

2) + w1w2cos(π/8) + 2w2sen(π/8) + 2 (15)

cujo grafico pode ser visto na figura 12. Se fizermos uma projecao em duas dimensoes

Page 17: Aplicac˜ao do Mathematica no desenvolvimento de redes ...vigo.ime.unicamp.br/~asaa/redesneurais.pdf · 2 1 Introdu¸c˜ao De forma basica e direta, uma rede neural ´e um paradigma

16

com o auxılio do comando ContourPlot no Mathematica, podemos acompanhar o movi-

mento do vetor peso ao longo da superfıcie exata quando a rede aprende. A figura 13

indica a posicao do vetor peso encontrado, comparada com a superfıcie exata para o erro,

mostrando a solucao esta muito proxima do vetor de pesos ~w = (w1, w2) que minimiza o

erro.

Figura 12: Problema 3 - Superfıcie de erro encontrada a partir da equacao exata.

Figura 13: Problema 3 - Comparacao do vetor de pesos encontrado com a superfıcie exata.

Page 18: Aplicac˜ao do Mathematica no desenvolvimento de redes ...vigo.ime.unicamp.br/~asaa/redesneurais.pdf · 2 1 Introdu¸c˜ao De forma basica e direta, uma rede neural ´e um paradigma

17

5 Conclusoes

O presente trabalho procurou introduzir os aspectos basicos relacionados com o apren-

dizado de redes neurais. Discutimos diferentes tipos de treinamento de perceptrons,

classificando-os em relacao a separacao de classes. Implementamos os algoritmos pro-

postos no software Mathematica atraves da solucao de tres problemas propostos simples,

porem didaticos. Os resultados encontrados foram condizentes com o esperado, vendo que

para classes linearmente separaveis o algoritmo converge num numero finito de passos;

para classes nao-separaveis, pudemos encontrar a solucao do vetor de pesos e compara-la

com a equacao exata, mostrando uma grande concordancia entre esses resultados.

Embora simples, vale ressaltar o fato de que esses topicos servem como fundamento

para o desenvolvimento da regra generalizada delta para o treinamento de redes neurais

multicamadas, nao discutida aqui, mas que e de fundamental importancia para o desen-

volvimento de redes neurais multicamadas utilizadas atualmente.

Referencias

[1] W. McCulloch e W. Pitts, Bulletin of Mathematical Biophysics 5 (1), 115-133 (1943).

[2] D. Hebb, The organization of behaviour, John Wiley & Sons, New York (1949).

[3] F. Rosenblatt, Mechanisation of thought processes: Proc. of Symposium 10 (1), 421-

456 (1959).

[4] F. Rosenblatt, Principles of neurodynamics: perceptrons and the theory of brain me-

chanisms, Spartan, Washington (1962).

[5] M. Minsky e S. Papert, Perceptrons: an introduction to computational geometry, the

MIT Press. Cambridge, Mass. (1969).

Page 19: Aplicac˜ao do Mathematica no desenvolvimento de redes ...vigo.ime.unicamp.br/~asaa/redesneurais.pdf · 2 1 Introdu¸c˜ao De forma basica e direta, uma rede neural ´e um paradigma

18

[6] J.C. Simon, Patterns and Operators: the foundations of data representations,

McGraw-Hill, New York (1986).

[7] D.E. Rumelhart, G.E. Hinton e R.J. Williams, Parallel distributed processing: explo-

rations in the microstructures of cognition, vol 1: foundations, Rumelhart, D.E., et

al. eds., MIT Press, Cambridge, Mass., 318-362 (1986).

[8] R.C. Gonzalez e R.E. Woods, Digital Image Processing, 2nd. Edition, Prentice Hall,

New Jersey (2002).

[9] Z.L. Kovacs, Redes Neurais Artificiais: fundamentos e aplicacoes, 3a. edicao, Livraria

da Fısica Ed., Sao Paulo (1996).

[10] B. Widrow e S.D. Stearns, Adaptative Signal Processing, Prentice Hall, New Jersey

(1985).

Page 20: Aplicac˜ao do Mathematica no desenvolvimento de redes ...vigo.ime.unicamp.br/~asaa/redesneurais.pdf · 2 1 Introdu¸c˜ao De forma basica e direta, uma rede neural ´e um paradigma

Apêndice: Implementação dos algoritmos no Mathematica

Page 21: Aplicac˜ao do Mathematica no desenvolvimento de redes ...vigo.ime.unicamp.br/~asaa/redesneurais.pdf · 2 1 Introdu¸c˜ao De forma basica e direta, uma rede neural ´e um paradigma
Page 22: Aplicac˜ao do Mathematica no desenvolvimento de redes ...vigo.ime.unicamp.br/~asaa/redesneurais.pdf · 2 1 Introdu¸c˜ao De forma basica e direta, uma rede neural ´e um paradigma