aprendizado supervisionado para redes neurais pulsadas sem...

67
Aprendizado Supervisionado para Redes Neurais Pulsadas sem Terminais e Estudos Comparativos com MLPs Pedro Henrique Pamplona Savarese Projeto de Graduac ¸˜ ao apresentado ao Curso de Engenharia de Computac ¸˜ ao e Informac ¸˜ ao da Escola Polit´ ecnica, Universidade Federal do Rio de Janeiro, como parte dos requisitos necess´ arios ` a obtenc ¸˜ ao do t´ ıtulo de Engenheiro. Orientador: Ricardo Guerra Marroquim Examinador: Daniel Ratton Figueiredo Examinador: Genildo Nonato Santos Rio de Janeiro Julho de 2014

Upload: others

Post on 03-Jul-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Aprendizado Supervisionado para Redes Neurais Pulsadas sem …monografias.poli.ufrj.br/monografias/monopoli10011211.pdf · 2014-08-26 · Aprendizado Supervisionado para Redes Neurais

Aprendizado Supervisionado para Redes Neurais Pulsadas sem Terminaise Estudos Comparativos com MLPs

Pedro Henrique Pamplona Savarese

Projeto de Graduacao apresentado ao Cursode Engenharia de Computacao e Informacaoda Escola Politecnica, Universidade Federaldo Rio de Janeiro, como parte dos requisitosnecessarios a obtencao do tıtulo de Engenheiro.

Orientador: Ricardo Guerra Marroquim

Examinador: Daniel Ratton Figueiredo

Examinador: Genildo Nonato Santos

Rio de Janeiro

Julho de 2014

Page 2: Aprendizado Supervisionado para Redes Neurais Pulsadas sem …monografias.poli.ufrj.br/monografias/monopoli10011211.pdf · 2014-08-26 · Aprendizado Supervisionado para Redes Neurais

Áåç ìóêè íåò íàóêè - Sem sofrimento n�ao h�a aprendizado

Gostaria de agradecer:

Aos professores da Universidade Federal do Rio de Janeiro que me inspirarame mostraram a elegancia da ciencia e da tecnologia: Ivo Lopez, Rolci Cipolatti, ReginaArcuri, Mauricio Calvao, Ricardo Marroquim e Daniel Ratton.

Ao Genildo, por ter me introduzido ao assunto e me dar valiosas sugestoes paratornar o trabalho mais elaborado e interessante.

2

Page 3: Aprendizado Supervisionado para Redes Neurais Pulsadas sem …monografias.poli.ufrj.br/monografias/monopoli10011211.pdf · 2014-08-26 · Aprendizado Supervisionado para Redes Neurais

Resumo. Este trabalho tem como objetivo abordar modelos, algoritmos e capa-cidades de Redes Neurais Pulsantes, visando comparar este tipo de rede com osmodelos classicos. A problematica da codificacao de dados e de aprendizagemsera investigada atraves de diversas tecnicas diferentes aplicadas em problemasreais e de benchmark. Apos investigar dois metodos supervisionados de apren-dizado - Spike Propagation e a sua extensao para multiplos spikes - derivamosuma maneira de ajustar atrasos sinapticos que antes eram fixos. Com isto, po-demos criar redes mais flexıveis, entretanto com mais ajustes de parametros aserem feitos durante o processo de aprendizado. Comparando a performancede redes com e sem atrasos ajustaveis, nos demonstramos que uma rede simpli-ficada com atrasos ajustaveis - ou seja, com menos parametros - pode superarredes com atrasos fixos.

Palavras-chave: Redes Neurais Pulsantes, Classificacao, Spike Propagation,Deteccao de Padroes

Abstract. This project aims to address models, algorithms and capabilities ofSpiking Neural Networks, seeking to compare this type of network with clas-sical models. The issue of coding and learning will be investigated throughseveral techniques applied to real and benchmark problems. After investiga-ting two supervised learning methods - Spike Propagation and its extension formultiple spikes - we derive a way to adjust synaptic delays, which before werefixed. With this, we can create networks that are more flexible, however withmore parameter adjustments during the learning process. Comparing the per-formance of networks with and without adjustable delays, we demonstrate thata simplified network with adjustable delays - that is, with less parameters - canoutperform networks with fixed delays.

Keywords: Spiking Neural Networks, Classification, Spike Propagation, PatternRecognition

3

Page 4: Aprendizado Supervisionado para Redes Neurais Pulsadas sem …monografias.poli.ufrj.br/monografias/monopoli10011211.pdf · 2014-08-26 · Aprendizado Supervisionado para Redes Neurais

Sumario

1 Introducao 6

1.1 Motivacao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

1.2 Objetivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

1.3 Estrutura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

1.4 Contribuicoes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2 Redes Neurais Biologicas 8

2.1 Neuronio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.2 Repouso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

2.3 Spike . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

3 Redes Neurais Artificiais 13

3.1 Neuronio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

3.2 Perceptron . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

3.3 Multilayer Perceptron . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

3.4 Backpropagation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

3.5 Extensoes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

3.6 Experimentos com MLPs . . . . . . . . . . . . . . . . . . . . . . . . . . 24

3.6.1 Reconhecimento de Dıgitos . . . . . . . . . . . . . . . . . . . . 24

3.6.2 Classificacao de Objetos em Sonar Passivo . . . . . . . . . . . . 25

4 Redes Neurais Pulsantes 31

4.1 Introducao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

4.2 Neuronio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

4.2.1 Hodgkin-Huxley . . . . . . . . . . . . . . . . . . . . . . . . . . 32

4.2.2 Integrate and Fire . . . . . . . . . . . . . . . . . . . . . . . . . . 32

4

Page 5: Aprendizado Supervisionado para Redes Neurais Pulsadas sem …monografias.poli.ufrj.br/monografias/monopoli10011211.pdf · 2014-08-26 · Aprendizado Supervisionado para Redes Neurais

4.2.3 Izhikevich . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

4.2.4 Spike-Response Model . . . . . . . . . . . . . . . . . . . . . . . 33

4.2.5 Implementacao de Rede utilizando o modelo IZ . . . . . . . . . . 35

4.3 Codificacao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

4.3.1 Time-to-First-Spike . . . . . . . . . . . . . . . . . . . . . . . . . 40

4.3.2 Train Coding . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

4.3.3 Phase Coding . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

4.3.4 Frequencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

4.4 Spike Propagation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

4.4.1 Implementacao . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

4.4.2 Benchmarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

4.4.3 Iris . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

4.4.4 XOR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

4.5 Spike Propagation sem Terminais . . . . . . . . . . . . . . . . . . . . . . 52

4.5.1 Benchmark - Iris . . . . . . . . . . . . . . . . . . . . . . . . . . 53

4.5.2 Sonar Passivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

4.6 Multiple Spike Propagation . . . . . . . . . . . . . . . . . . . . . . . . . 56

4.6.1 Aprendendo Padroes Temporais . . . . . . . . . . . . . . . . . . 60

4.6.2 Padrao Degrau . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

4.6.3 XOR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

4.7 Multiple Spike Propagation sem Terminais (Monosinaptico) . . . . . . . 62

4.7.1 Comparacoes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

5 Conclusao 65

5.1 Trabalhos Futuros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

5

Page 6: Aprendizado Supervisionado para Redes Neurais Pulsadas sem …monografias.poli.ufrj.br/monografias/monopoli10011211.pdf · 2014-08-26 · Aprendizado Supervisionado para Redes Neurais

Capıtulo 1

Introducao

1.1. Motivacao

Problemas de classificacao sao utilizados em diversas areas diferentes e estao presentesdesde hospitais, no suporte a diagnosticos, a submarinos, na deteccao de navios atravesdo sistema de sonar. As Redes Neurais Artificiais foram adotadas por seguradoras, ban-cos, orgaos militares e outras inumeras instituicoes, principalmente devido a sua fortecapacidade de classificacao e predicao.

Embora o seu uso seja amplo, elas ainda se deparam com obstaculos em pro-blemas especıficos, porem nao menos importantes, como classificacao em audio, vıdeoe operacoes em tempo real. A ineficacia ao tratar destes problemas prejudica o avancoda robotica e de outras interacoes humano-computador, como sistemas de atendimentotelefonico automatico e sistemas inteligentes de cameras.

Recentemente um novo tipo de rede neural foi proposto, que por ser dinamicopode operar livremente em cima dos problemas mencionados. Este novo modelo, cha-mado de Redes Neurais Pulsantes, leva a inspiracao biologica um passo a frente ao tentarmodelar aspectos especıficos do neuronio humano.

Embora os metodos de aprendizado sejam ainda poucos e limitados, esta novageracao de redes e capaz de substituir tecnicas como Modelos Ocultos de Markov, quepopularizou-se em grande parte devido a sua eficiencia ao trabalhar com dados de tama-nho variavel.

1.2. Objetivo

O objetivo deste trabalho e o de abordar diferentes tecnicas de Redes Neurais Pulsantese comparar os resultados com os de redes classicas. Dentre os diferentes aspectos deRedes Neurais Pulsantes, serao focados os modelos neuronais, os tipos de codificacao eos metodos de aprendizagem.

Os problemas escolhidos vao desde bases de dados referenciais, como os de floresIris e de deteccao de caracteres, ate problemas reais como deteccao de objetos atraves desonar passivo. Desta forma, queremos mensurar o potencial desta nova especie de redeneural nao somente em problemas didaticos, mas tambem em problemas do dia a dia.

6

Page 7: Aprendizado Supervisionado para Redes Neurais Pulsadas sem …monografias.poli.ufrj.br/monografias/monopoli10011211.pdf · 2014-08-26 · Aprendizado Supervisionado para Redes Neurais

1.3. EstruturaEste trabalho toma inıcio ao elaborar brevemente o funcionamento de Redes NeuraisBiologicas, pois e o modelo que inspirou a criacao das primeiras redes neurais e quepossui caracterısticas importantes para a modelagem das novas redes.

Em seguida o capıtulo 3 cobrira o desenvolvimento historico de Redes NeuraisArtificiais, cobrindo modelos neuronais, tecnicas de aprendizagem e extensoes, alem deaplica-los em problemas reais.

O capıtulo 4 sera encarregado de apresentar as Redes Neurais Pulsantes, partindodos modelos neuronais ate chegar nos metodos de aprendizagem, e finalmente aplicando-os em problemas.

Finalmente, no capıtulo 5 serao feitas as consideracoes finais, incluindo a con-clusao do projeto e propostas para trabalhos futuros.

1.4. ContribuicoesNeste trabalho, propomos e testamos alguns novos metodos a serem utilizados em RedesNeurais Pulsantes.

Na secao 4.2.5, propomos um algoritmo para aprendizado de redes com duas ca-madas utilizando o modelo neuronal de Izhikevich, fortemente baseado na regra deltautilizada em Perceptrons.

Na secao 4.5, derivamos o ajuste de pesos em redes pulsantes que utilizam o mo-delo neuronal SRM, dando origem a redes monosinapticas e a redes hıbridas (ambos ostermos propostos neste trabalho). Em suas subsecoes, e especialmente na 4.5.2, aplica-mos redes pulsantes pela primeira vez (pelo menos ate o conhecimento do autor) em umproblema real.

Abordamos tambem o algoritmo Multiple Spike Propagation de forma diferente,ao utilizarmos a equacao 4.45, que pode resultar em um aumento de velocidade de apren-dizado ao defini-la como um estado neuronal que nao precisa ser recalculado.

Testamos tambem esta especie de rede em problemas com invariancia temporalnas secoes 4.6.1 e 4.6.2, onde vemos que redes pulsantes podem detectar padroes tempo-rais de forma invariante - ou seja, sem a necessidade de um referencial.

Finalmente, a principal contribuicao do trabalho e a proposta de uma extensao nasecao 4.7, onde derivamos o ajuste de pesos para redes com neuronios com multiplosspikes. Em seguida, propomos uma maneira de substituir redes hıbridas por redes mo-nosinapticas, ao mesmo tempo aumentando a flexibilidade da rede e diminuindo a suacomplexidade (numero de parametros).

7

Page 8: Aprendizado Supervisionado para Redes Neurais Pulsadas sem …monografias.poli.ufrj.br/monografias/monopoli10011211.pdf · 2014-08-26 · Aprendizado Supervisionado para Redes Neurais

Capıtulo 2

Redes Neurais Biologicas

2.1. Neuronio

As redes neurais biologicas, abreviadas como BNNs (Biological Neural Networks), sao asredes neurais como conhecidas pela area da biologia. Apos descoberto que os neuronioseram as unidades que compunham o sistema nervoso, muita atencao comecou a ser vol-tada para os seus estudos.

Na area de Inteligencia Artificial, o objetivo e de criar sistemas que aparentampossuir inteligencia humana, sendo capazes de aprender, serem logicos e interagir comhumanos. Uma das ferramentas mais importantes na area de IA sao as Redes NeuraisArtificiais, que foram baseadas no modelo de redes neuronais encontradas no cerebrode vertebrados. Para isto, torna-se necessario compreender como neuronios biologicosfuncionam.

Esta secao tem como objetivo elucidar as principais caracterısticas dos neuroniose suas redes, e toma como base os conteudos presentes em [e Sadock(1984)],[Brandao(1984)] e [Bear et al.(2006)Bear, Connors, and Paradiso].

O cerebro humano e composto por cerca de 1011 neuronios, que explica em partecomo o ser humano e capaz de processar tanta informacao e compreender padroes com-plexos. Diferentemente de computadores, as redes neuronais funcionam com um grandenumero de neuronios atuando paralelamente, de forma distribuıda. Desta forma, mesmo avelocidade de processamento de cada neuronio sendo muito menor que a de CPUs moder-nas, temos que grandes quantidades de informacao podem ser processadas rapidamente.Alem disso, estas redes sao extremamente robustas e tolerantes a falhas, tornando-se ne-cessario que uma consideravel parcela de suas unidades falhe para que um processamentoapresente erro significativo.

Os elementos principais do neuronio sao os dendritos, a soma e o axonio (figura2.1). Os dendritos sao por onde o neuronio recebe estımulo de um neuronio precedente,a soma e onde o processamento em si e feito, e o axonio e por onde a informacao etransmitida para outros neuronios. Esta transmissao da-se atraves de pulsos eletricos queestimulam os neuronios seguintes, atraves de um processo chamado de spike.

A membrana que separa os meios intracelular e extracelular possui poros quepodem aumentar o fluxo de ıons especıficos atraves dela, chamados de canais ionicos.

8

Page 9: Aprendizado Supervisionado para Redes Neurais Pulsadas sem …monografias.poli.ufrj.br/monografias/monopoli10011211.pdf · 2014-08-26 · Aprendizado Supervisionado para Redes Neurais

Figura 2.1. Neuronio biologico

Alguns destes canais sao sensıveis a ligantes, sendo assim abertos quando ocorre aassociacao com estes. Os ligantes podem ser tanto excitatorios, que abrem canais decations e causam PEPS (potenciais excitatorios pos-sinapticos), quanto inibitorios, queabrem canais de cloro (que nao serao abordados neste trabalho) e causam PIPS (potenci-ais inibitorios pos-sinapticos).

Existem tambem canais sensıveis a voltagem, que abrem quando o corpo neuronalchega a um determinado potencial eletrico.

2.2. RepousoCada neuronio possui um potencial de repouso, onde o seu compartimento intracelular eeletricamente negativo comparado ao meio extracelular. Para este exemplo, usaremos ovalor de repouso Vr = −70mV , que e o potencial encontrado em diversos neuronios.

De um ponto de vista quımico, em estado de repouso, o seu espaco intracelularpossui uma concentracao de ıons de potassio ate 20 vezes maior que o meio extracelular.Ja a concentracao de ıons de sodio chega a ser ate 15 vezes menor. A concentracao deK+ no meio intracelular e de 150mEq/l, enquanto que no meio extracelular e de apenas5mEq/l. Ja a concentracao de Na+ e da ordem de 12mEq/l e 140mEq/l, respectiva-mente. A diferenca de concentracao de K+ faz com que haja um fluxo destes ıons para omeio extracelular. Em estado de repouso, a membrana encontra-se como demonstrado nafigura 2.2.

Podemos calcular o estado de equilıbrio tanto para os ıons K+ e Na+ ao igualar-mos a energia do gradiente difusional a energia do gradiente eletrico:

∆Gd = RTln(∆[ion]) (2.1)

∆Ge = ∆EzF (2.2)

Onde:

R = 8.314J

molK

9

Page 10: Aprendizado Supervisionado para Redes Neurais Pulsadas sem …monografias.poli.ufrj.br/monografias/monopoli10011211.pdf · 2014-08-26 · Aprendizado Supervisionado para Redes Neurais

Figura 2.2. Membrana neuronal, em estado de repouso: rico em potassio e pobreem sodio [Mangels(2003)].

T = Temperatura(K)

F = 9.648× 104 J

V mol

z = valencia dos ıons

E, ao igualarmos 2.1 e 2.2, teremos a equacao de Nernst:

RTln∆[ion] = ∆EzF (2.3)

∆E =RTln∆[ion]

zF=

8.617× 10−5T ln∆[ion]

zV K−1

Temos, portanto, para os ıons K+ e Na+, a uma temperatura de 310.15K(37◦C):

EK+ =2.672× 10−2ln∆[K+]

zV = −27.704ln

150mEql−1

5mEql−1= −94.226V (2.4)

ENa+ =2.672× 10−2ln∆[Na+]

zV = −27.704ln

12mEql−1

140mEql−1= 68.061V (2.5)

2.3. Spike

Com estımulo proveniente de outros neuronios, canais ionicos sensıveis a ligantes saoabertos e ıons de sodio fluem para o seu interior, aumentando o potencial eletrico da

10

Page 11: Aprendizado Supervisionado para Redes Neurais Pulsadas sem …monografias.poli.ufrj.br/monografias/monopoli10011211.pdf · 2014-08-26 · Aprendizado Supervisionado para Redes Neurais

celula ao fazer com que ela se aproxime de ENa+ . Como resposta, o neuronio expele ıonsde potassio para ter equilıbrio eletrico, atraves de um processo chamado eletrotono.

Caso o estımulo nao seja suficientemente forte, o potencial do neuronio retornaraao repouso eletrico atraves da perda de ıons de potassio para o meio extracelular. Caso eleseja forte o suficiente para fazer com que o neuronio chegue a um potencial de −50mV ,o processo de pulsagem toma inıcio. Este valor, chamado de potencial de acao ou limiar,e quando os canais ionicos de sodio sensıveis a voltagem abrem, aumentando o fluxo deıons de sodio para dentro do corpo neuronal. Inicia-se entao um processo exponencial,onde o fluxo de sodio para dentro do nucleo aumenta o seu potencial eletrico, e quantomais este potencial cresce maior e o fluxo de sodio, de forma retroalimentada.

Isto ocorre ate que o potencial do neuronio chegue ao seu ponto de pico, que variaem torno de +55mV , e e quando os canais de potassio sensıveis a voltagem se abrem. Oneuronio, neste momento, encontra-se saturado de ıons de sodio, e passa a expelir grandesquantidades de ıons de potassio, fazendo com que o seu potencial desca rapidamente -processo chamado de repolarizacao – pois o seu potencial passa a ir na direcao de EK+ .

O seu potencial desce ate que o neuronio encontre-se hiperpolarizado, com umpotencial de aproximadamente−90mV . Quimicamente, o neuronio ainda estara saturadode ıons de sodio e pobre em ıons de potassio. Finalmente, o neuronio volta ao seu repousoatraves da bomba de sodio-potassio, onde utiliza-se energia ATP para fazer troca entresodio (presente no corpo) e potassio (presente no meio extracelular). A bomba continuaate que o neuronio volte ao repouso eletrico de −70mV e encontre-se novamente rico emıons de potassio e pobre em ıons de sodio.

O resultado deste processo e o spike, um pulso eletrico que e transmitido atraves desinapses (conexoes entre dois neuronios) e estimula neuronios seguintes. O spike possuivalores importantes: Vr - potencial de repouso −70mV , Vt - potencial de acao −50mV ,VNa+ - potencial de pico 55 mV e VK+ - potencial de hiperpolarizacao −90mV (figura2.3).

Figura 2.3. Alteracao no potencial da membrana durante um spike([Eskandari(2012)]).

11

Page 12: Aprendizado Supervisionado para Redes Neurais Pulsadas sem …monografias.poli.ufrj.br/monografias/monopoli10011211.pdf · 2014-08-26 · Aprendizado Supervisionado para Redes Neurais

Algumas propriedades importantes podem ser inferidas a partir desta descricao.Primeiramente, vemos que um neuronio pode gera um pulso ou nao, portanto ainformacao transmitida e binaria. Caso ele nao seja excitado ate o potencial de acao,absolutamente nenhuma informacao sera transmitida, e caso contrario apenas um pulso osera.

Alem disso, fica claro a existencia de um intervalo de tempo mınimo entre doisspikes, pois um neuronio hiperpolarizado e pobre em ıons de sodio nao pode ser excitadonovamente ate que a bomba de sodio-potassio faca-o retornar ao seu repouso quımico.Este perıodo e chamado de perıodo refratario absoluto, ou undershot.

12

Page 13: Aprendizado Supervisionado para Redes Neurais Pulsadas sem …monografias.poli.ufrj.br/monografias/monopoli10011211.pdf · 2014-08-26 · Aprendizado Supervisionado para Redes Neurais

Capıtulo 3

Redes Neurais Artificiais

3.1. NeuronioA criacao de redes neurais artificiais tomou como base as redes neurais biologicas, poisqueria-se imitar o potencial de processamento do cerebro humano. Todos os neuroniosem redes neurais artificias funcionam, de maneira geral, ao aplicar uma funcao g em cimade uma soma ponderada das suas entradas, que normalmente sao saıdas dos neuroniosanteriores (figura 3.1):

uj =∑i

wijxi (3.1)

yj = g(uj) (3.2)

Figura 3.1. Modelo geral de um neuronio artificial, que aplica uma funcao nosomatorio ponderado de suas entradas.

Onde wij e uma variavel da conexao entre o neuronio i e j, chamado de peso.Cada funcao g caracteriza um diferente modelo neuronal. O primeiro modelo proposto

13

Page 14: Aprendizado Supervisionado para Redes Neurais Pulsadas sem …monografias.poli.ufrj.br/monografias/monopoli10011211.pdf · 2014-08-26 · Aprendizado Supervisionado para Redes Neurais

foi chamado de Threshold Logic Unit (TLU) [McCulloch and Pitts(1943)], e mais atual-mente de neuronio McCulloch-Pitts (MCP). As principais caracterısticas propostas forama de o neuronio receber informacoes de neuronios precedentes, e a da sua saıda ser semprebinaria:

gMCP (x) =

{1 se x > ϑ0 caso contrario (3.3)

Onde ϑ e uma constante da rede, chamada de limiar. Este modelo seguia uma seriede restricoes, como as entradas serem necessariamente binarias e limitacoes em relacaoaos pesos possıveis. Diversos outros modelos de neuronios foram propostos e utilizadosapos o MCP, cada um oferecendo uma funcao g(x) diferente:

Linear : gL(x) = x

Linear Retificado : gRL(x) =

{x se x > ϑ0 caso contrario

Sigmoide : gSg(x) =1

1 + e−x(3.4)

Estocastico : gSt(x) =

{1 com densidade de probabilidade P (x) = gSg(x)0 caso contrario

Nesta secao focaremos principalmente no modelo sigmoidal de neuronio. A pri-meira vantagem oferecida por este modelo e da sua saıda ser sempre um valor entre 0 e 1,com um rapido crescimento em−2.5 < x < 2.5 (figura 3.2). Esta propriedade e conveni-ente para problemas de classificacao, pois pode ser interpretada como uma probabilidadee possui uma interpretacao logica, pois assemelha-se ao modelo MCP . A segunda van-tagem e que, diferentemente do modelo MCP , o modelo sigmoidal e diferenciavel, quesera uma propriedade necessaria mais a frente.

3.2. PerceptronO primeiro modelo de rede neural proposto foi chamado de Perceptron [Rosenblatt(1962)]e seria futuramente conhecido como a primeira geracao de redes neurais artificiais. Comisto, gerou-se um grande interesse na area, que na epoca era chamada de conexionismopor propor maneiras para que redes aprendessem funcoes de maneira geral.

O Perceptron era definido como duas camadas de neuronios – uma de entradae outra de saıda – e onde existem apenas conexoes partindo de neuronios de entradapara neuronios de saıda, ou seja, neuronios da mesma camada nao sao conectados, nemneuronios de entrada recebem informacoes dos neuronios de saıda. O modelo neuronalutilizado era o MCP .

Alem disso, os neuronios de entrada nao realizam processamento, apenas repre-sentando as entradas da rede. Assim sendo, neuronios posteriores recebem as proprias

14

Page 15: Aprendizado Supervisionado para Redes Neurais Pulsadas sem …monografias.poli.ufrj.br/monografias/monopoli10011211.pdf · 2014-08-26 · Aprendizado Supervisionado para Redes Neurais

Figura 3.2. Grafico da funcao sigmoide.

entradas e nao o resultado de uma funcao g. Podemos definir o processamento reali-zado pelo Perceptron como um operador que mapeia as entradas nas saıdas utilizando asequacoes 3.1, 3.2 e 3.3:

y = G(x)

Onde a saıda de cada neuronio da camada de saıda pode ser explicitada por:

yj =

{1 se

∑iwijxi > ϑ

0 caso contrario

Temos entao que Perceptrons podem ser utilizados para a criacao de modelos ma-tematicos. Para que um Perceptron modele corretamente um sistema, e necessario que osseus pesos sejam ajustados para que a saıda real aproxime-se o maximo possıvel da saıdadesejada, e para este processo da-se o nome de aprendizado.

O aprendizado de um Perceptron baseia-se em realizar o ajuste a partir de um con-junto de entradas cujas saıdas sao conhecidas D = (x1,y1), . . . , (xN ,yN). Um eventoxk e definido como um vetor de escalares, chamados comumente de atributos.

Por exemplo, podemos ter uma base cujos eventos sao pessoas e os atributos sao:salario, despesas, valor dos bens e idade - por exemplo xk = (3200, 2600, 300000, 29).A saıda poderia ser, entao, se a pessoa encontra-se em debito ou nao (se e inadim-plente) e se ela considera-se classe alta. Caso a pessoa exemplo nao fosse inadimplente econsiderasse-se classe alta, terıamos yk = (0, 1).

O processo e iniciado com uma inicializacao aleatoria dos pesos, e em seguidacalcula-se a saıda para cada evento k, alterando o valor dos pesos, proporcionalmente aentrada, caso a rede tenha uma saıda diferente da correta:

yk = G(xk)

15

Page 16: Aprendizado Supervisionado para Redes Neurais Pulsadas sem …monografias.poli.ufrj.br/monografias/monopoli10011211.pdf · 2014-08-26 · Aprendizado Supervisionado para Redes Neurais

∆wij = α(ykj − ykj )xki (3.5)

Onde yk e a saıda da rede, yk e a saıda correta e conhecida a priori, xki e o i-esimoatributo do evento k, e α e a taxa de aprendizagem.

Desta maneira, a rede e capaz de aprender tanto funcoes basicas como as logicasAND e OR, quanto algumas mais gerais que podem ser utilizadas para reconhecimentode padroes. Nota-se que, para isso, e necessario que o conjunto de eventos catalogadosesteja correto e seja bem representativo e que a aprendizagem convirja.

Entretanto, uma analise rigorosa sobre as capacidades de aprendizagem dos Per-ceptrons revelou diversas limitacoes [Minsky and Papert(1969)], como por exemplo queeste tipo de rede nao e capaz de aprender uma funcao basica como a XOR (figura 3.3):

x1 x2 y0 0 00 1 11 0 11 1 0

Tabela 3.1. Saıdas da funcao binaria XOR

Figura 3.3. Rede com arquitetura para o problema XOR.

Cada evento, portanto, pode ser representado por uma inequacao. Utilizando ucomo a entrada do neuronio de saıda (somatorio ponderado de suas entradas), temos queu > ϑ quando y = 1, e u < ϑ caso contrario.

Neste caso, como possuımos apenas duas entradas, temos que u = x1w1 + x2w2.O mapeamento de cada evento em uma inequacao fica, portanto:

w1 × 0 + w2 × 0 = 0 < ϑ

16

Page 17: Aprendizado Supervisionado para Redes Neurais Pulsadas sem …monografias.poli.ufrj.br/monografias/monopoli10011211.pdf · 2014-08-26 · Aprendizado Supervisionado para Redes Neurais

w1 × 0 + w2 × 1 = w2 > ϑ

w1 × 1 + w2 × 0 = w1 > ϑ

w1 × 1 + w2 × 1 = w1 + w2 < ϑ

Estas inequacoes nao apresentam solucoes, significando que a funcao XOR naopode ser aprendida por Perceptrons.

3.3. Multilayer Perceptron

Embora os Perceptrons nao possuıssem o potencial imaginado, maneiras para contornarestas limitacoes foram propostas. Uma delas era a de realizar um pre-processamentonos atributos de forma que a funcao desejada torne-se linearmente separavel. Um exem-plo classico desta abordagem e a de utilizar como entradas as funcoes AND(x1, x2) eOR(x1, x2) para o problema da funcao XOR (figura 3.4) - isto e, utilizar as funcoesAND e OR para pre-processar as entradas:

x1 x2 AND(x1, x2) OR(x1, x2) y0 0 0 0 00 1 0 1 11 0 0 1 11 1 1 1 0

Tabela 3.2. Saıdas das funcoes binarias AND, OR e XOR

Figura 3.4. Rede com arquitetura para o problema XOR, entradas pre-processadas.

17

Page 18: Aprendizado Supervisionado para Redes Neurais Pulsadas sem …monografias.poli.ufrj.br/monografias/monopoli10011211.pdf · 2014-08-26 · Aprendizado Supervisionado para Redes Neurais

Mapeando cada evento em uma inequacao, assim como feito anteriormente, te-mos:

w1 × 0 + w2 × 0 = 0 < ϑ

w1 × 0 + w2 × 1 = w2 > ϑ

w1 × 1 + w2 × 1 = w1 + w2 < ϑ

Que possui como solucao w1 < −w2.

Sabendo tambem que as funcoes AND e OR podem ser aprendidas por Percep-trons, temos que a funcao XOR pode ser aprendida por um conjunto de 3 PerceptronsP1, P2 e P3, onde P1 realiza a operacao AND, P2 realiza a operacao OR, e P3 realiza aoperacao XOR, tendo como entrada as saıdas de P1 e P2. Desta forma, criou-se o con-ceito de Multilayer Perceptron (MLP) (figura 3.5), onde existem camadas intermediariasresponsaveis pelo procedimento descrito acima.

Embora isso demonstre que um MLP e capaz de aprender funcoes mais com-plexas que um Perceptron, o problema foi direcionado para a escolha do tipo de pre-processamento a ser feito na camada intermediaria: neste caso, o problema so foi resol-vido pois sabıamos qual pre-processamento realizar (funcoesAND eOR), caso contrarionao encontrarıamos uma solucao.

Figura 3.5. Multilayer Perceptron capaz de aprender a funcao XOR, caso b1aprenda a funcao AND e b2 a funcao OR.

18

Page 19: Aprendizado Supervisionado para Redes Neurais Pulsadas sem …monografias.poli.ufrj.br/monografias/monopoli10011211.pdf · 2014-08-26 · Aprendizado Supervisionado para Redes Neurais

3.4. Backpropagation

Os MLPs so vieram a ser popularizados com o uso de um outro metodo de treinamentochamado Back Propagation. Embora primeiramente proposto anos antes do surgimentodos MPLs [Bryson(1963)], a sua difusao apenas tomou inıcio quando este foi testado emredes neurais.

A sua grande vantagem e que, diferentemente do aprendizado dado por 3.5, ele ecapaz de ajustar os pesos nas camadas ocultas, fazendo com que o pre-processamento sejaautomatico. O metodo e fortemente baseado em um tipo de regressao chamado gradientedescendente, onde utiliza-se o gradiente de uma funcao para caminhar para um de seusmınimos locais:

∆x = −αf ′(x)

No caso de uma funcao multivariavel y = f(x1, x2, . . . , xn):

∆xk = −α ∂f∂xk

(x1, x2, . . . , xn) (3.6)

Ou, em notacao vetorial:

∆x = −α∇f(x)

Desta forma, podemos definir uma funcao erro Ej , que representa o erro de umneuronio de saıda j, e minimiza-la aplicando 3.6:

Ej =1

N

n∑k=1

(ykj − ykj )2

2(3.7)

No caso de uma rede de 3 camadas de neuronios: neuronios h ∈ H , onde H e acamada de entrada, neuronios i ∈ I , onde I e a camada oculta, e neuronios j ∈ J , ondeJ e a camada de saıda:

∆wij = −α ∂Ej∂wij

(3.8)

Onde podemos aplicar a regra da cadeia:

∂Ej∂wij

=∂Ej∂yj

∂yj∂uj

∂uj∂wij

(3.9)

E derivando as equacoes 3.1, 3.2 e 3.7, temos que:

∂Ej∂yj

=1

N

n∑k=1

(ykj − ykj ) (3.10)

19

Page 20: Aprendizado Supervisionado para Redes Neurais Pulsadas sem …monografias.poli.ufrj.br/monografias/monopoli10011211.pdf · 2014-08-26 · Aprendizado Supervisionado para Redes Neurais

∂yj∂uj

=∂g

∂uj(uj) (3.11)

∂uj∂wij

= xi (3.12)

Para isso, e necessario que o neuronio utilize uma funcao g que seja diferenciavel.Exatamente por esta razao que o neuronio sigmoide e o utilizado, onde:

∂g

∂uj(uj) =

1

1 + e−uj

(1− 1

1 + e−uj

)= g(uj) (1− g(uj)) = yj (1− yj) (3.13)

Podemos entao substituir 3.10, 3.11, 3.12, e 3.13 em 3.9, e substituı-la em 3.8 paraajustar os pesos entre neuronios das camadas I e J :

∆wij = −α 1

N

N∑k=1

xki ykj (1− ykj )(ykj − ykj ) (3.14)

Neste caso, definimos o erro como a media entre os erros de todas as saıdas.Tambem podemos definir o erro como o erro de uma unica saıda, de forma que os pesossejam ajustados a cada evento:

Ej =(yj − yj)2

2

Terıamos entao os ajustes:

∆wij = −αxiyj(1− yj)(yj − yj)

Para ajustar os pesos de neuronios na camada intermediaria, a funcao erro deixade ser atribuıda a um neuronio de saıda, uma vez que cada neuronio oculto transmite a suasaıda para todos os neuronios da proxima camada. Desta forma, a sua funcao de erro E,como sera visto mais a frente, devera depender do erro de todos os neuronios da proximacamada.

∆whi = −α ∂E

∂whi(3.15)

Aplicando novamente a regra da cadeia:

∂E

∂whi=∂E

∂yi

∂yi∂ui

∂ui∂whi

(3.16)

Temos, similarmante a 3.12 e 3.13:

20

Page 21: Aprendizado Supervisionado para Redes Neurais Pulsadas sem …monografias.poli.ufrj.br/monografias/monopoli10011211.pdf · 2014-08-26 · Aprendizado Supervisionado para Redes Neurais

∂ui∂whi

= xh (3.17)

∂yi∂ui

= yi (1− yi) (3.18)

O primeiro termo de 3.16 pode ser encontrado somando todos os erros da camadade saıda e utilizando a regra da cadeia:

∂E

∂yi=∑j∈J

∂uj∂yi

∂Ej∂uj

=∑j∈J

wij∂Ej∂uj

(3.19)

Onde ∂Ej∂uj

ja foi calculado no passo anterior, a partir de 3.10 e 3.11. Basta substi-tuirmos 3.17, 3.18 e 3.19 em 3.16 e aplicarmos em 3.15 para obtermos a regra de ajustesdos pesos dos neuronios de entrada:

∆whi = −α 1

N

N∑k=1

xkhyki (1−yki )

∑j∈J

wij∂Ej∂uj

= −α 1

N

N∑k=1

xkhyki (1−yki )

∑j∈J

wijykj (1−ykj )(ykj−ykj )

(3.20)

Desta forma, e possıvel ensinar qualquer funcao a uma rede MLP, desde que elapossua a quantidade necessaria de neuronios intermediarios para a funcao em questao.

3.5. ExtensoesExistem diversas propostas para melhorar o desempenho de MLPs, como, por exemplo,tecnicas para otimizar o uso do gradiente no ajuste de pesos. Uma das tecnicas maissimples propostas como melhoria para MLPs e a de utilizar uma funcao de erro maisrobusta. Podemos primeiramente generalizar a funcao 3.7:

E =1

N

N∑k=1

f(ykj , ykj ) (3.21)

Onde ate entao estavamos utilizando a funcao de erro quadratica:

f(yj, yj) =(yj − yj)2

2

Porem, para problemas de classificacao, seria mais apropriado escolher umafuncao que penalizasse de uma maneira nao-quadratica: idealmente, terıamos uma penali-dade severa no caso de um erro grande e uma penalidade negligenciavel no caso proximode um acerto. Uma funcao que oferece estas caracterısticas e:

f(yj, yj) =

{−log(yj) se yj = 1−log(1− yj) se yj = 0

21

Page 22: Aprendizado Supervisionado para Redes Neurais Pulsadas sem …monografias.poli.ufrj.br/monografias/monopoli10011211.pdf · 2014-08-26 · Aprendizado Supervisionado para Redes Neurais

Figura 3.6. f(yj, yj)para yj = 1, indicandoa penalizacao para umasaıda yj no caso de umalvo yj = 1.

Figura 3.7. f(yj, yj)para yj = 0, indicandoa penalizacao para umasaıda yj no caso de umalvo yj = 0.

Cada parte desta funcao (para yj = 1 e para yj = 0) pode ser vista nas figuras 3.6e 3.7. Ela pode ser reescrita como:

f(yj, yj) = −yjlog(yj)− (1− yj)log(1− yj) (3.22)

Tambem podemos estender ainda mais esta regra para evitar que a rede neuraltorne-se demasiadamente especializada e perca seu potencial de generalizacao. Este pro-blema, comumente chamado de sobreajuste (figura 3.8), pode ser reduzido ao penalizar-mos pesos excessivamente altos (que representam um excesso de especializacao). Faze-mos isso ao adicionarmos o somatorio de todos os pesos ao erro da rede em 3.22:

f(yj, yj) = −yjlog(yj)− (1− yj)log(1− yj) + β

(∑h∈H

∑i∈I

w2hi +

∑i∈I

∑j∈J

w2ij

)(3.23)

Onde β determina o quanto penalizaremos os pesos (quanto maior o seu valor,mais suave sera o modelo).

Substituindo 3.23 em 3.21, teremos:

E =−1

N

N∑k=1

(ykj log(ykj ) + (1− ykj )log(1− ykj )

)+ β

(∑h∈H

∑i∈I

w2hi +

∑i∈I

∑j∈J

w2ij

)

Alem disso, podemos utilizar metodos de gradiente conjugado nao-linear, fazendocom que a regressao convirja mais rapidamente, especialmente caso o mınimo local tenhaforma quadratica. Para isso, em vez de ajustarmos diretamente os pesos de acordo com3.6, seguimos o seguinte processo [Shewchuk(1994)]:

s0 = ∆w0

22

Page 23: Aprendizado Supervisionado para Redes Neurais Pulsadas sem …monografias.poli.ufrj.br/monografias/monopoli10011211.pdf · 2014-08-26 · Aprendizado Supervisionado para Redes Neurais

Figura 3.8. Exemplo de problema de sobreajuste. A funcao desejada e dada pelalinha preta, enquanto um modelo demasiadamente especializado e dado pelalinha verde. Usualmente um problema de sobreajuste em redes neurais ocorrequando o aprendizado ajusta os pesos para valores muito altos.

sn = ∆wn + ϕsn−1

µn = argminf(w + αsn)

wn+1 = wn + µnsn

A ideia por tras deste metodo e a de obrigar que a direcao de cada passo sejaX-ortogonal a direcao anterior, onde X e a matriz com todos os eventos da base. Doisvetores v e u sao X-ortogonais se uTXv = 0. Para que a direcao de um passo sejadefinida, e necessario calcular o escalar ϕ tal que sn = ∆wn + ϕsn−1 seja X-ortogonala sn−1. Diversas funcoes ja foram propostas para o calculo deste escalar em problemasnao-lineares.

O passo a ser tomado µn e calculado atraves da otimizacao do melhor passopossıvel α (uma busca em uma linha). Em problemas de otimizacao linear, o metodofaz com que apenas um passo precise ser tomado em cada direcao X-ortogonal, tendo as-sim que um mınimo local seja encontrado apos n iteracoes, onde n e a dimensionalidadedo problema. Como o aprendizado de redes neurais nao se enquadra como um problemalinear, esta propriedade nao e valida, porem o metodo converge mais rapidamente que oBack Propagation.

23

Page 24: Aprendizado Supervisionado para Redes Neurais Pulsadas sem …monografias.poli.ufrj.br/monografias/monopoli10011211.pdf · 2014-08-26 · Aprendizado Supervisionado para Redes Neurais

Uma das funcoes ϕ mais utilizadas e a de Polak-Ribiere:

ϕ =∆wT (∆wn −∆wn−1)

∆wT∆wn−1

Existem diversas outras extensoes que nao serao abordadas neste trabalho, comooutras funcoes para neuronios de saıda (Softmax), tecnicas para acelerar a convergencia(gradiente descendente com momentum), diferentes tipos de normalizacao de dados (Z-Score) e diversas tecnicas para o pre-processamento de dados (Analise de Componen-tes Principais, Decomposicao em Valores Singulares) [Evsukoff(2014)]. As ferramentasvistas ate agora sao suficientes para diversas aplicacoes, como veremos nos exemplos aseguir.

3.6. Experimentos com MLPs

3.6.1. Reconhecimento de Dıgitos

Como exemplo, treinamos uma rede neural a partir de uma base de dados de imagensde numeros escritos a mao. Cada imagem possui 400 pixels (20 x 20), e representa umdıgito de 0 a 9 (figura 3.9). Escolhemos utilizar 25 neuronios na camada intermediaria(um numero excessivo, porem que nao acarretara problemas pois penalizaremos os pesos,fazendo com que neuronios desnecessarios acabem com pesos proximos de zero), alemdos 400 na camada de entrada e 10 na de saıda, cada um responsavel pela aprendizagemde um dıgito.

Figura 3.9. 20 eventos aleatorios da base de dados utilizada, cada um com 400atributos (pixels).

Cada atributo, neste caso, e um pixel da imagem, e e representada por umnumero entre 0 e 1 que indica luminosidade do pixel em tons de cinza. Como saıdatemos um vetor de dimensao 10, onde (1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) representa o numero1, (0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0) representa o numero 2, etc. A saıda da rede neural, emprimeira ocasiao, sera um vetor v que pode ser interpretado como um vetor de proba-bilidades, onde v1, o primeiro elemento do vetor, e a probabilidade do dıgito ser 1. Adecisao da rede neural e considerada como a maior probabilidade deste vetor, ou seja,y = indexmax(v).

24

Page 25: Aprendizado Supervisionado para Redes Neurais Pulsadas sem …monografias.poli.ufrj.br/monografias/monopoli10011211.pdf · 2014-08-26 · Aprendizado Supervisionado para Redes Neurais

A implementacao foi toda feita em Octave e de forma matricial: a rede era ca-racterizada por duas matrizes Θ1 e Θ2, onde a primeira armazenava os pesos entre ascamadas H e I (uma matriz 400x25), e a segunda armazenava os pesos entre as camadasI e J (matriz 25x10). No inıcio da execucao, a base foi embaralhada e dividida em 80%dos eventos para treinamento e 20% para teste.

Utilizando a funcao de Polak-Ribiere, penalizacao de pesos de β = 1 e 50iteracoes, chegamos a uma media (de 10 tentativas) de 95.6% de acerto nos eventos detreinamento e 92.5% nos eventos de teste. Este exemplo mostra o potencial de redes neu-rais para classificacao e deteccao de padroes, porem e importante notar que a maioria dasaplicacoes reais nao sao tao simples e usualmente precisam de pre e pos-processamento,como veremos no proximo exemplo.

3.6.2. Classificacao de Objetos em Sonar Passivo

Como outro exemplo de aplicacao, utilizaremos sinais provenientes de um sistema desonar passivo para a classificacao de objetos, usando tecnicas de pre-processamento eredes MLP. As tecnicas utilizadas sao melhor elaboradas em [de Moura(2013)], onde oproblema tambem e atacado por MLPs.

Os sinais sao gravados a partir de um conjunto de sensores onde cada sensor cap-tura sinais em uma determinada direcao (figura 3.10), o que torna possıvel saber em qualdirecao o objeto se encontra. Embora cada sensor capture sinais originados apenas de umafaixa angular, pode ocorrer interferencia entre o sinal emitido por dois objetos proximos.

Figura 3.10. Conjunto de sensores de captura, onde cada um captura sinaisapenas de um feixe direcional. Sendo assim, caso um sensor esteja apontadopara uma direcao, ele recebera pouca ou ate mesmo nenhuma energia de umsinal emitido por um corpo que esteja em uma direcao diferente.

25

Page 26: Aprendizado Supervisionado para Redes Neurais Pulsadas sem …monografias.poli.ufrj.br/monografias/monopoli10011211.pdf · 2014-08-26 · Aprendizado Supervisionado para Redes Neurais

A partir deste arranjo, teremos um conjunto de sinais captados ao longo do tempo,onde cada sinal foi captado em uma determinada direcao por um dos sensores. Avisualizacao destes sinais pode ser dada da forma Tempo x Grau, onde a energia do sinale representada por tons de cinza na imagem (figura 3.11).

Figura 3.11. Diagrama Tempo x Grau. Capturas feitas por cada sensor sao re-presentadas por intervalos no eixo horizontal, e a energia capturada e indicadapelo tom de cinza no respectivo tempo (eixo vertical). Faixas verticais indicamum objeto parado na direcao dada pelo seu angulo no eixo horizontal, enquantofaixas inclinadas indicam objetos em movimento ([de Moura(2013)]).

Veremos o problema de classificar um objeto a partir de um sinal captado em umdos sensores de um sonar passivo. Para isso, foram utilizados sinais captados de duasdirecoes (190o e 205o), onde em cada direcao havia um tipo diferente de objeto - cada umdestes dois sinais e dado por uma coluna no diagrama 3.11. Um dos problemas a seremabordados e a existencia de interferencia entre os sinais de cada objeto que ocorre no finalda gravacao.

Cada sinal foi gravado em uma frequencia de amostragem Fs = 31250Hz, e pos-sui 7190528 amostras, tendo portanto uma duracao de aproximadamente 230 segundos.

Este exemplo visa demonstrar a necessidade de um pre-processamento em muitoscasos reais antes do uso de uma rede neural, com tentativas de, por exemplo, reducao deruıdo e melhoria da representacao dos dados. Desta forma, duas tecnicas serao abordadaspara o tratamento dos dados antes destes serem alimentados a rede neural.

A primeira das duas tecnicas utilizadas na etapa de pre-processamento foi o LO-FAR (Low Frequency Analysis and Recording), que processa um sinal de entrada e gerao seu lofargrama. A analise aplica janelas temporais de n amostras no sinal (por exemplo,caso um sinal com 4000 amostras seja dividido em janelas de n = 80 elementos, teremos50 janelas com 80 amostras cada). Em seguida, aplica-se a transformada de Fourier emcada uma destas janelas, obtendo-se para cada uma delas um espectrograma. Finalmente,o espectrograma e normalizado para que haja reducao no ruıdo de fundo.

O resultado da analise LOFAR, portanto, e um conjunto de espectrogramas, cadaum gerado a partir de uma janela diferente no sinal, e sao representados por um graficoJanela x Frequencia (figura 3.12) onde a energia em cada frequencia e indicada por tonsde cinza. Podemos tambem calcular a media da energia presente em cada banda de

26

Page 27: Aprendizado Supervisionado para Redes Neurais Pulsadas sem …monografias.poli.ufrj.br/monografias/monopoli10011211.pdf · 2014-08-26 · Aprendizado Supervisionado para Redes Neurais

frequencia para vermos quais frequencias sao as mais caracterısticas do objeto (figura3.13).

Figura 3.12. Lofargrama da marcacao 190o, onde cada linha e um espectrogramaresultante de uma janela temporal. Cada janela e determinada por um intervalode tempo, que e representado em segundos no eixo vertical.

Figura 3.13. Grafico de Energia media X Frequencia, para cada marcacao(marcacao 190o representada em azul e 205o em vermelho), indicando a simi-laridade entre as medias das energias de cada sinal.

A segunda tecnica utilizada e a Analise de Componentes Independentes (ICA),que e um tipo de Separacao Cega de Fontes (BSS): tecnicas que tentam isolar as diferentesfontes emissoras dado um conjunto de sinais, como ilustrado na figura 3.14.

O princıpio basico do ICA e a tentativa de descobrir a forma como os sinais inter-ferem, que e dada por uma matriz de misturas. Por exemplo:

AX =

[0.5 0.2−0.4 0.8

]×[3 4 3 41 5 8 11

]=

[1.7 3 3.1 4.2−0.4 2.4 5.2 7.2

]= Y

Temos queX representa dois sinais originais, Y representa dois sinais captados deduas fontes (onde houve interferencia), e A e a matriz de misturas, que diz como os sinaisoriginais foram misturados para gerar cada sinal capturado (por exemplo, o primeiro sinalcapturado e resultado de metade do primeiro sinal original mais um quinto do segundo).O ICA tenta estimar a matriz A ao minimizar a correlacao entre os dois sinais originaisestimados.

27

Page 28: Aprendizado Supervisionado para Redes Neurais Pulsadas sem …monografias.poli.ufrj.br/monografias/monopoli10011211.pdf · 2014-08-26 · Aprendizado Supervisionado para Redes Neurais

Figura 3.14. Separacao cega de fontes com 2 fontes e 2 emissores. A analisetenta reconstruir os sinais originais a partir de sinais capturados com inter-ferencia ([Eastaway et al.(2007)Eastaway, Dayal, Steinbauer, and Qian]).

Sabendo como a mistura e dada, basta inverter a matriz A a aplica-la aos sinaiscapturados para chegarmos aos originais. Entretanto, o algoritmo utilizado neste trabalho,chamado de FastICA, faz isso a partir de um metodo iterativo.

Apos estas etapas, decidiu-se por utilizar o lofargrama como entrada para o trei-namento da rede. A analise LOFAR com os seus parametros padroes aplica janelas de2048 elementos, gerando um conjunto de 7190528

2048= 3511 espectrogramas para cada sinal,

onde cada espectrograma utiliza 1025 intervalos para representar a faixa de frequenciaamostravel (0 < f < Fs

2= 15625Hz). Desta forma, temos um total de 7022 eventos

(3511 de cada um dos dois sinais) de dimensao 1025 (numero de faixas de frequencia).

Os eventos foram embaralhados antes do treinamento da rede, evitando que o BackPropagation itere em cima de todos os eventos provenientes de um objeto e em seguidaem cima dos eventos do outro objeto. Com isso, a direcao do gradiente e mais variada etenta-se deixar o aprendizado mais robusto. Todos os resultados apresentados sao mediasde 10 execucoes com embaralhamentos diferentes.

O particionamento da base de dados foi escolhido da seguinte forma:

Treinamento Validacao Teste70% 15% 15%

Tabela 3.3. Particionamento da base de dados do problema de deteccao de obje-tos por sonar.

Primeiramente a rede e treinada a partir da base de treinamento, que e finalizadoquando a acuracia na classificacao do conjunto de validacao comeca a cair - uma tecnicachamada de early stop que visa evitar com que a rede sofra de sobreajuste e possibilita aretirada dos pesos na funcao erro. Finalmente, a base de teste e utilizada para mensurara acuracia real da rede, uma vez que seus eventos nao sao usados em nenhuma etapa detreinamento ou decisao.

A primeira abordagem foi a aplicacao direta da analise LOFAR em cada sinal e ouso do resultado para alimentar a rede. As entradas, portanto, sao dadas por uma matriz7022 × 1025 (7022 eventos de dimensao 1025), e as saıdas conhecidas sao dadas poruma matriz 7022 × 2, onde [1, 0] representa o objeto presente na marcacao 190o e [0, 1]representa o na marcacao 205o.

A primeira topologia testada foi 1025× 10× 2: 1025 neuronios de entrada, 10 nacamada oculta e 2 neuronios de saıda:

28

Page 29: Aprendizado Supervisionado para Redes Neurais Pulsadas sem …monografias.poli.ufrj.br/monografias/monopoli10011211.pdf · 2014-08-26 · Aprendizado Supervisionado para Redes Neurais

1025× 10× 2 Treinamento Validacao Teste%Acerto 92.8% 92.5% 92.7%

Tabela 3.4. Resultados para classificacao sem separacao de fontes

Embora o resultado possa mostrar-se bom a primeira vista, temos que considerarque um modelo completamente ingenuo (que classifica aleatoriamente) chegaria a 50% deacuracia, pois estamos classificando apenas dois tipos de objetos igualmente provaveis.Desta forma, o nosso resultado possui aproximadamente 6.8 vezes menos erro de ummodelo aleatorio. Entretanto tambem devemos lembrar que ainda nao tratamos a inter-ferencia.

Em seguida tentamos aumentar os neuronios da camada oculta para 25, o quenao apresentou melhora nos resultados. Finalmente, diminuımos este numero para tornaras proximas etapas mais rapidas e reduzir a complexidade da rede, ate que chegamos atopologia 1025× 6× 2 sem prejuızo nos resultados:

1025× 6× 2 Treinamento Validacao Teste%Acerto 93.2% 93.3% 92.6%

Tabela 3.5. Resultados para classificacao sem separacao de fontes, com arqui-tetura mais simples

Tivemos tambem que a fracao de objetos classificados erroneamente de cada tipofoi aproximadamente igual: 49% para objetos do tipo 1 e 51% para objetos do tipo 2.

Em seguida, aplicamos o FastICA no sinal antes da analise LOFAR. Podemos veruma diferenca no fim do sinal ao compararmos a entrada e a saıda da separacao de fontes(figuras 3.15 e 3.16, respectivamente), mostrando que o algoritmo conseguiu retirar algumtipo de interferencia.

Figura 3.15. Marcacao 190o antesda separacao de fontes.

Figura 3.16. Marcacao 190o aposseparacao de fontes.

Utilizando o mesmo procedimento da abordagem anterior, chegamos aos resulta-dos:

29

Page 30: Aprendizado Supervisionado para Redes Neurais Pulsadas sem …monografias.poli.ufrj.br/monografias/monopoli10011211.pdf · 2014-08-26 · Aprendizado Supervisionado para Redes Neurais

1025× 6× 2 Treinamento Validacao Teste%Acerto 94.6% 94.6% 94.6%

Tabela 3.6. Resultados para classificacao com separacao de fontes no tempo

Vemos que embora o resultado na base de teste tenha melhorado, esta melhora e deum erro 7.8 vezes menor que o do modelo ingenuo, tornando indicavel outra abordagemao problema. Alem disso, a fracao de erros em cada classe continuou similar: 53% para aclasse 1 e 47% para a classe 2.

Tentaremos entao aplicar o FastICA no domınio da frequencia, ou seja, aplica-loapos a analise LOFAR. Para isso, aplicamos o algoritmo FastICA em cada um dos 3511pares de espectrogramas gerados pelo LOFAR, fazendo com que a correlacao minimizadaseja a presente nas frequencias, e nao as presentes nas energias do sinal durante o tempo.Podemos ver atraves das figuras 3.17 e 3.18 que os lofargramas sao demasiadamente di-ferentes visualmente, o que e explicado pelo fato de que o FastICA nao consegue estimaros valores absolutos dos sinais originais, mas apenas relativos, fazendo com que a escalaseja alterada.

Figura 3.17. Lofargrama damarcacao 190o antes da separacaode fontes.

Figura 3.18. Lofargrama damarcacao 190o apos a separacaode fontes na frequencia.

Finalmente, utilizamos os dois lofargramas resultantes do FastICA aplicado nafrequencia como entrada da nossa rede, obtendo os resultados:

1025× 6× 2 Treinamento Validacao Teste%Acerto 96.3% 96.2% 96.3%

Tabela 3.7. Resultados para classificacao com separacao de fontes no tempo

Este resultado representa um erro 13.5 vezes menor que o modelo ingenuo. Em-bora uma classificacao errada a cada 27 possa parecer aceitavel, devemos lembrar quea criticalidade do sistema (pelo seu aspecto militar) faz com que erros de classificacaopossam ser desastrosos. O uso de outras abordagens pode fazer com que o erro dimi-nua em ordens de grandeza, como visto em [de Moura(2013)], que apresentou 99.97% deacuracia.

30

Page 31: Aprendizado Supervisionado para Redes Neurais Pulsadas sem …monografias.poli.ufrj.br/monografias/monopoli10011211.pdf · 2014-08-26 · Aprendizado Supervisionado para Redes Neurais

Capıtulo 4

Redes Neurais Pulsantes

4.1. Introducao

Um dos obstaculos presentes no problema do sonar passivo foi a necessidade de alterara representacao dos dados. Esta e uma etapa necessaria no uso de dados de tamanhovariavel, como sinais e vıdeos. No caso de imagens, este problema nao e comum poispode-se redimensionar a imagem para que ela tenha a quantidade de pixels desejada.Caso uma rede neural seja treinada para analisar imagens de 20 x 20 = 400 pixels, elapossuira 400 neuronios de entrada, e portanto sera incapaz de analisar imagens de outrasdimensoes sem que haja um redimensionamento previo.

No caso de sinais de audio aplica-se o janelamento do sinal, dividindo-o em jane-las com quantidades fixas de amostras – quantidades estas iguais ao numero de neuroniosde entrada da rede. No caso do sonar passivo, houve o janelamento e em seguida umaanalise espectral em cada janela, onde as frequencias foram divididas em bandas – onde,claramente, o numero de bandas e igual ao numero de neuronios de entrada.

Idealmente, gostarıamos que as redes neurais pudessem operar em cima de dadoscom dimensoes diferentes. Uma maneira de abordar esse problema e fazer com que elaspossam operar em streams de dados, que sao alimentados em intervalos fixos de tempo.As Redes Neurais Recorrentes (RNNs - Recurrent Neural Networks) possuem essa capa-cidade ([Haykin(1984)]), porem apresentam diversas dificuldades para aprendizado e naoserao abordadas neste trabalho.

Em vez disso, apresentaremos aqui um outro modelo de redes neurais, chamadode Redes Neurais Pulsantes (SNNs - Spiking Neural Networks, [Maass(1997)]), que alemde ser biologicamente mais plausıvel e ter a capacidade de operar em streams, possuimetodos de aprendizado menos obscuros.

Os neuronios de SNNs nao recebem escalares como entrada, mas sim streams quepodem ser alimentados em tempo real ou representados por um vetor. A rede tambemdeixa de ser estatica, e passa a ser um sistema dinamico em relacao ao tempo, ou seja:

y(t) = H(x(0),x(1), ...,x(T ))

Onde T indica por quantos ciclos a rede neural executara antes de parar, e e defi-

31

Page 32: Aprendizado Supervisionado para Redes Neurais Pulsadas sem …monografias.poli.ufrj.br/monografias/monopoli10011211.pdf · 2014-08-26 · Aprendizado Supervisionado para Redes Neurais

nida pelo seu projetista.

Os neuronios possuem como entrada e saıda apenas tempos de spike, similarmentea maneira que BNNs operam. Podemos interpretar isso como uma ANN que, para cadapasso t, recebe um novo vetor de entradas x(t) e realiza a operacao G em cima destevetor. Caso tenhamos um total de 10 entradas, ou seja, 0 ≤ t ≤ 9, podemos representara atividade dinamica de cada neuronio i como um vetor ai, onde ati = 1 caso o neuroniotenha saıda 1 no passo t, e 0 caso contrario – sendo assim um trem de impulsos. Nestecaso, entretanto, temos que o estado de um neuronio no tempo t e independente do estadono seu tempo t− 1.

Veremos agora alguns modelos neuronais e conexionistas, para entao abordarmoso problema da representacao de dados para estes modelos.

4.2. Neuronio

Os modelos neuronais de SNNs tentam imitar o comportamento de neuronios biologicos,especialmente o mecanismo de spike e o perıodo refratario. Por isso, os modelos saosignificantemente mais complexos que os classicos de ANNs.

4.2.1. Hodgkin-Huxley

O modelo de Hogdkin-Huxley, usualmente chamado de neuronio HH, tem uma otimaplausibilidade biologica uma vez que chega a modelar os proprios canais de sodio epotassio vistos anteriormente. Neste trabalho ele nao sera abordado, pois a sua mo-delagem consiste em um total de 4 equacoes diferenciais com dezenas de parametros[Hodgkin and Huxley(1952)], sendo demasiadamente complexo para testes em redes neu-rais.

Devido ao seu alto custo computacional e complexidade, modelos mais minimalis-tas foram propostos, visando a troca de plausibilidade biologica (ao nao modelar os canaisionicos) por performance computacional, tendo assim uma interpretacao puramente ma-tematica. E importante notar que, em simulacoes, o modelo HH pode ser utilizado parafins de analise de comportamento neuronal, porem para o uso em redes artificiais (que eo escopo deste trabalho) a sua alta complexidade torna a execucao da rede inviavel - seucusto computacional e 240 vezes maior que o do modelo IF, e 92 vezes maior que o domodelo IZ [Izhikevich(2004)] (ambos serao abordados em seguida).

4.2.2. Integrate and Fire

Este modelo, abreviado por IF, visa capturar as seguintes 3 caracterısticas da forma maisminimalista possıvel:

• Retorno gradativo ao repouso• Envio de um pulso ao ultrapassar o potencial de acao• Retorno instantaneo ao repouso apos o envio de um spike

E o modelo mais simplista: nao oferece flexibilidade, nao modela o tempo derefracao absoluta e sua interpretacao e puramente matematica.

32

Page 33: Aprendizado Supervisionado para Redes Neurais Pulsadas sem …monografias.poli.ufrj.br/monografias/monopoli10011211.pdf · 2014-08-26 · Aprendizado Supervisionado para Redes Neurais

CmdV

dt= Iinj − Ileak

Ileak = ¯gleak(V − Vr)se V ≥ Vt : V = Vreset

A voltagem V atua como um integrador da corrente Iinj (corrente injetada poroutros neuronios) e da corrente vazante Ileak (para modelar o retorno ao repouso). Estaultima e proporcional a diferenca entre a voltagem atual V e a voltagem de repouso Vr,onde ¯gleak e apenas uma constante de proporcionalidade.

Como vimos no primeiro capıtulo, o potencial para qual o neuronio caminha aposum spike e VK = −90mV , sendo assim uma boa proposta para o parametro Vreset. Casoa voltagem ultrapasse o limiar Vt do neuronio, ele retorna instantaneamente a voltagempos-spike.

4.2.3. IzhikevichO modelo de Izhikevich - IZ ([Izhikevich(2003)]) oferece uma maior flexibilidade que omodelo IF, porem sem o custo computacional e complexidade do modelo HH. Ele possui4 parametros que podem ser usados para modelar diversos tipos de neuronios presentesno corpo humano.

CmdV

dt= k(V − Vr)(V − Vt)− u+ I

du

dt= a(b(V − Vr)− u)

se V ≥ Vpeak : V = c, u = u+ d

(4.1)

Vemos que caso V < Vr, o fator k(V − Vr)(V − Vt) sera positivo, fazendo comque V aumente na direcao de Vr. Caso Vr < V < Vt, o fator sera negativo e V diminuirana direcao de Vr. No ultimo caso, onde V > Vt, o fator sera positivo, fazendo com que Vsuba ate ultrapassar o valor de pico Vpeak.

Com a escolha dos parametros a, b, c e d, nos ajustamos o comportamento pos-pulsagem do neuronio (seu perıodo refratario), que caracteriza diversos comportamentosneuronais diferentes. Na figura 4.1 podemos ver como os parametros devem ser escolhi-dos para cada submodelo (LTS, TC, etc), onde o comportamento de pulsagem de cada ume ilustrado na figura 4.2.

4.2.4. Spike-Response ModelO modelo SRM se distancia dos outros ao nao utilizar equacoes diferenciais para a mo-delagem de um neuronio. Alem disso, o estado de um neuronio deixa de ser dependenteapenas da corrente injetada, mas passa a ser associada ao estado de neuronios precedentes:

ε(t) =

{e−

tτm − e−

tτs , se t > 0

0, caso contrario(4.2)

33

Page 34: Aprendizado Supervisionado para Redes Neurais Pulsadas sem …monografias.poli.ufrj.br/monografias/monopoli10011211.pdf · 2014-08-26 · Aprendizado Supervisionado para Redes Neurais

Figura 4.1. Submodelos diferentes de acordo com a escolha dos parametros([Izhikevich(2003)]).

Figura 4.2. Comportamento pulsativo de cada submodelo, sendo estes compor-tamentos encontrados em diferentes neuronios do sistema nervoso de vertebra-dos. ([Izhikevich(2003)]).

Onde t e o tempo decorrido apos o recebimento de um spike. O fator −e−tτs da

equacao e utilizado para modelar o crescimento da funcao, enquanto o fator e−tτm modela

o seu retorno a zero. τs e o parametro que define a subida da funcao, onde quanto menormais rapido sera o seu ponto de pico. τm define o retorno ao valor zero, onde quantomaior o seu valor, mais demorado sera o retorno a zero.

Para τm = 4 e τs = 2, temos um pico em torno de 2.5 e seu grafico pode ser vistona figura 4.3.

Alem disso, o perıodo refratario e modelado pela seguinte funcao:

η(t) =

{−Vte−

tτr , se t > 0

0, caso contrario(4.3)

Onde t e o tempo decorrido apos ter atingido um spike. Para τr = 20 e Vt = 1, ografico pode ser visto na figura 4.4.

34

Page 35: Aprendizado Supervisionado para Redes Neurais Pulsadas sem …monografias.poli.ufrj.br/monografias/monopoli10011211.pdf · 2014-08-26 · Aprendizado Supervisionado para Redes Neurais

Figura 4.3. Grafico da funcao 4.2, indicando a resposta excitatoria de umneuronio t unidades de tempo apos um neuronio precedente gerar um spike.

Figura 4.4. Grafico da funcao 4.3, indicando a resposta inibitoria de um neuroniot unidades de tempo apos gerar um spike.

4.2.5. Implementacao de Rede utilizando o modelo IZPara experimentarmos os modelos apresentados, implementamos uma rede neural simplesutilizando o modelo de Izhikevich, pois como vimos ele e um modelo de complexidadeintermediaria entre os modelos de Hodgkin-Huxley e o Integrate-and-Fire. O modeloSRM sera abordado mais a frente.

Primeiramente, devemos traduzir o modelo neuronal para uma forma discreta,pronta para implementacao. Partimos da equacao 4.1, onde ao discretiza-la teremos:

V (t+ 1) = V (t) +k

Cm(V (t)− Vr)(V (t)− Vt)− u(t) + I(t)

u(t+ 1) = u(t) + a(b(V (t)− Vr)− u(t))

se V (t+ 1) ≥ Vpeak : V (t+ 1) = c, u(t+ 1) = u(t+ 1) + d

(4.4)

Onde utilizamos os valores apresentados na secao 1:

35

Page 36: Aprendizado Supervisionado para Redes Neurais Pulsadas sem …monografias.poli.ufrj.br/monografias/monopoli10011211.pdf · 2014-08-26 · Aprendizado Supervisionado para Redes Neurais

Vr = −70mV

Vt = VNa+ = −50mV

Vp = VK+ = +50mV

E, como sugerido em [Izhikevich(2007)], utilizaremos o valor kCm

= 0.04. Osubmodelo utilizado sera o RS (Regular Spiking), onde a = 0.02, b = 0.2, c = −90, d =9. A definicao de spike sera dada pelo momento quando V (t + 1) ultrapassa o valorVp. Podemos ver como este modelo se comporta com uma injecao de corrente constanteI(t) = 10, t > 10 dada pela figura 4.5 na figura 4.6.

Figura 4.5. Injecao de corrente aplicada ao neuronio Izhikevich, dado por Injecaox Tempo (em decimos de segundo).

Figura 4.6. Resposta do neuronio de Izhikevich a injecao dada pela figura 4.5,dada por Voltagem x Tempo (em decimos de segundo).

Possuindo entao o modelo neuronal, precisamos definir uma maneira para co-

36

Page 37: Aprendizado Supervisionado para Redes Neurais Pulsadas sem …monografias.poli.ufrj.br/monografias/monopoli10011211.pdf · 2014-08-26 · Aprendizado Supervisionado para Redes Neurais

necta-los, de forma que a resposta de um seja a entrada de outro. Uma maneira simplese fazer que um spike de um neuronio i resulte em uma injecao momentanea de correnteem um neuronio posterior j. A magnitude da injecao sera dada por um peso wij , similar-mente como ocorre em ANNs. Podemos ter tambem atrasos na sinapse, fazendo com queum spike demore para gerar respostas nos neuronios posteriores. Desta forma, temos:

Ij(t) =∑i∈I

wijhi(t− dij) (4.5)

Onde j e o neuronio de saıda (neste exemplo, teremos apenas um), I e a camadade entrada da rede, hi(t) e uma funcao que determina se o neuronio i obteve um spike notempo t, e di e o atraso de resposta entre os neuronios i e j.

Podemos ver na figura 4.7 como um neuronio j responde ao neuronio i exempli-ficado pela figura anterior 4.6 com os valores sinapticos wij = 25 e dij = 10ds. Comotemos que o neuronio i gerou um spike em t = 56ds, o neuronio j recebera a resposta notempo t = 56 + dij = 66ds. Esta resposta sera dada por um aumento no seu potencial de−70mV para −70 +wij = −45mV , fazendo com que ele ultrapasse Vt e posteriormentegere um spike em t = 86ds.

Figura 4.7. Resposta em Potencia x Tempo (ds) de um neuronio de Izhikevich aum spike de um neuronio precedente em t = 56ds, com os parametros sinapticoswij = 25 e dij = 10ds, fazendo com que o neuronio receba uma excitacao demagnitude 25 no tempo t = 56ds+ 10ds = 66ds.

Diferentemente das ANNs vistas, os neuronios de entrada desta rede processamas entradas. Com isso, queremos dizer que eles recebem uma entrada na forma exemplifi-cada pela figura 4.5 e geram spikes que terao respostas nos neuronios seguintes - enquantoem ANNs os neuronios de entrada eram apenas representadores das entradas da rede, enao aplicavam funcao qualquer nelas.

Com isto, podemos criar um algoritmo de aprendizado baseado no algoritmousado em Perceptrons. Como o modelo IZ e dado por um conjunto de equacoes diferen-ciais, nao podemos aplicar o metodo do gradiente descendente, porem podemos aplicar

37

Page 38: Aprendizado Supervisionado para Redes Neurais Pulsadas sem …monografias.poli.ufrj.br/monografias/monopoli10011211.pdf · 2014-08-26 · Aprendizado Supervisionado para Redes Neurais

um reajuste em redes de apenas duas camadas. Diferentemente do algoritmo para Percep-trons, teremos que nos preocupar com o ajuste dos atrasos e os casos onde o neuronio desaıda nao possui spikes.

O aprendizado entao e definido como o ajuste dos pesos e dos atrasos para que umconjunto de entradas gere um spike de saıda no tempo desejado tj . No caso de um erro,teremos entao quatro possibilidades a serem tratadas:

1. A rede nao gera qualquer spike de saıda, enquanto o alvo e um spike.2. O alvo e que nao haja spike de saıda, porem a rede o gera.3. tj > tj4. tj < tj

Para cada um dos casos temos que ter um ajuste diferente, seja ele nos pesos ounos atrasos.

No primeiro caso, temos apenas que aumentar os pesos de todas as sinapses pro-porcionalmente ao numero de spikes que o neuronio obteve. Caso um neuronio de entradanao tenha gerado spikes, os seus pesos sinapticos nao devem ser alterados pois nao ha-veria influencia sobre a saıda da rede. Por outro lado, um neuronio que gerou diversosspikes tera um maior aumento na resposta do neuronio de saıda ao ter os seus pesos acres-centados. Teremos entao:

∆wij = ατi

Onde τi e o numero de spikes que o neuronio i teve durante a execucao da rede.

O segundo caso e similar ao primeiro: devemos apenas diminuir o peso de cadasinapse para que o neuronio de saıda pare de gerar um spike:

∆wij = −ατi

Ja nos terceiro e quarto casos, temos que ajustar os atrasos em vez dos pesos. Demodo geral, os tempos importantes neste caso podem ser vistos na figura 4.8. Para cadatempo de spike ti de um neuronio i, temos que so havera resposta por parte do neuronio jno tempo ti+dij . Existe, porem, um perıodo µ ate que o neuronio j tenha o seu spike: esteperıodo pode ser causa de uma acao conjunta entre neuronios de entrada, ou por exemplopelo tempo de hiperpolarizacao do neuronio (apos a ultrapassagem do limiar, porem antesdo spike).

Desta forma, o atraso deve ser ajustado visando que ti + dij = tj − µ, ondeµ = tj − (ti + dij), que significa tj = tj . Temos entao que:

∆dij = α(tj − (tj − (ti + dij))− (ti + dij)) = α(tj − tj)

Esse ajuste vale tanto para o caso tj > tj quanto para tj < tj .

Finalmente, temos o algoritmo de aprendizado para a nossa rede:

38

Page 39: Aprendizado Supervisionado para Redes Neurais Pulsadas sem …monografias.poli.ufrj.br/monografias/monopoli10011211.pdf · 2014-08-26 · Aprendizado Supervisionado para Redes Neurais

Figura 4.8. Tempos e atrasos envolvidos em um spike em t = ti de um neuroniode entrada i e outro em t = tj de um neuronio de saıda j. A excitacao gerada noneuronio posterior j so ocorre apos um tempo dado pelo atraso dij , e um spikeso e gerado apos o tempo de hiperpolarizacao µ.

Executar rede para obter tjif tj! = tj then

if nao existe tj thenfor all neuronios de entrada i do

∆wij = ατiend for

else if nao existe tj thenfor all neuronios de entrada i do

∆wij = −ατiend for

elsefor all neuronios de entrada i do

∆dij = α(tj − tj)end for

end ifend if

Com isso, implementamos a nossa rede e o algoritmo deduzido em Python paratesta-la. Como nao temos camadas intermediarias, assumiremos que nossa rede, assimcomo ANNs com apenas duas camadas, nao e capaz de realizar separacoes nao linea-res. Embora nao existam provas matematicas acerca esta questao, alguns experimentosindicam que neuronios pulsantes podem realizar separacoes nao lineares ([Maass(1997)],[Bohte(2003)]). Pela nossa rede ter apenas fins experimentais (e tambem por nao sero foco deste trabalho), decidimos por ensina-la apenas um conjunto restrito de funcoeslogicas.

39

Page 40: Aprendizado Supervisionado para Redes Neurais Pulsadas sem …monografias.poli.ufrj.br/monografias/monopoli10011211.pdf · 2014-08-26 · Aprendizado Supervisionado para Redes Neurais

Para o uso do codigo desenvolvido, temos apenas que instanciar os neuronios de-sejados atraves das suas classes Neuron, instanciar uma rede da classe Network, e inseriros neuronios nas camadas de entrada atraves do metodo addInner() ou inserir o neuroniode saıda atraves do metodo addOuter().

Decidimos por executar a nossa rede por 15 passos de tempo, e definimos umaentrada 1 como uma injecao de corrente de intensidade 7 a cada perıodo de tempo (estaintensidade faz com que o neuronio tenha apenas um spike no nono passo de tempo).Uma entrada 0 e definida como inexistencia de injecao de corrente.

A saıda foi escolhida de forma que 1 seja representado por tj = 13, e 0 por umaausencia de spike. Desta forma, a nossa rede foi capaz de aprender funcoes como: NOT ,AND, OR, J0 e por exemplo x1AND(NOTx2). A rede, como esperado, nao foi capazde aprender a funcao XOR.

4.3. Codificacao

Vimos que os modelos HH, IZ e IF recebem como entradas injecoes de correntes, quepodem ser representadas como um vetor de escalares. Por outro lado, o modelo SRMopera apenas com spikes, fazendo com que entradas escalares devam ser codificadas emimpulsos para serem processadas.

As duas maneiras mais intuitivas de se codificar dados em termos de trens deimpulso sao a de codificar utilizando a frequencia de impulsos, ou codificar utilizando ostempos dos impulsos.

4.3.1. Time-to-First-Spike

Para codificar escalares em trens de impulso utilizando os tempos de cada impulso, umaabordagem simples e a de reservar uma fracao no inıcio de T e normalizar os dados nela.

Por exemplo, caso tenhamos T = 100 podemos reservar 40% desse tempo paraas entradas. Nao devemos escolher a parcela inteira pois, pela dinamicidade do sis-tema, existe um atraso ate que uma entrada seja completamente processada por todosos neuronios da rede. Dependendo do modelo neuronal e dos parametros escolhidos, otamanho desta parcela pode variar arbitrariamente, porem escolhemos aqui 40% como umexemplo inicial. Desta forma, as entradas serao alimentadas a rede neural ate t = 40, eposteriormente (ate o ponto de parada, t = T = 100), a rede operara apenas em cima dasinformacoes ja armazenadas nos neuronios.

Teremos entao que cada entrada pode ser mapeada em um impulso que pode ocor-rer em tempos entre 0 e 40. Basta entao normalizarmos a nossa entrada, para que o seuvalor mınimo seja mapeado em um spike em t = 0 e o seu valor maximo em um spikeem t = 40. Por exemplo, caso as entradas sejam tamanhos das petalas de uma flor, cujosvalores dado um conjunto de eventos D sao:

x11 x2

1 x31 x4

1

8.3 10.6 6.7 9.1

Tabela 4.1. Exemplo de atributos (tamanhos de petalas) de 4 eventos (flores) emforma escalar

40

Page 41: Aprendizado Supervisionado para Redes Neurais Pulsadas sem …monografias.poli.ufrj.br/monografias/monopoli10011211.pdf · 2014-08-26 · Aprendizado Supervisionado para Redes Neurais

Onde xij e o j-esimo atributo do i-esimo evento - neste caso, o unico atributo decada evento e o tamanho de sua petala. Como estes eventos nao sao dinamicos a dimensaode cada atributo e 1 e omite-se o parametro t. Podemos normaliza-los utilizando a regrade normalizacao:

xi =range× (xi −min(x))

max(x)−min(x)

Neste caso, onde max(x) = 10.6, min(x) = 6.7 e range = 40, temos:

x11 x2

1 x31 x4

1

16.4 40 0 24.6

Tabela 4.2. Atributos mapeados em tempos de spike

Embora este exemplo possa levantar um incomodo no leitor por estarmos codi-ficando tamanhos de petalas em tempos de impulsos, ele foi escolhido exatamente parademonstrar que qualquer tipo de entrada - independente do que ela representa - deve sermapeada em um tempo de impulso no caso desta codificacao.

Figura 4.9. Grafico do impulso re-sultante do primeiro evento.

Figura 4.10. Grafico do impulso re-sultante do segundo evento.

Figura 4.11. Grafico do impulso re-sultante do terceiro evento.

Figura 4.12. Grafico do impulso re-sultante do quarto evento.

Assim sendo, para cada evento, um neuronio de entrada tera um spike no tempocalculado acima (figuras 4.9, 4.10, 4.11 e 4.12). Alguns modelos so possibilitam que umneuronio tenha um spike em um tempo que coincida com um ciclo da rede (neste exemplo,t = (0, 1, 2, 3, ..., T )), enquanto outros possibilitam que o tempo de um spike nao precisecoincidir com um passo de tempo (por exemplo, t = 2.5).

41

Page 42: Aprendizado Supervisionado para Redes Neurais Pulsadas sem …monografias.poli.ufrj.br/monografias/monopoli10011211.pdf · 2014-08-26 · Aprendizado Supervisionado para Redes Neurais

4.3.2. Train CodingNo caso do time-to-first-spike mapeamos um escalar em um unico impulso, portanto saopoucas as aplicacoes com dinamicidade temporal. Um exemplo dinamico seria, por exem-plo, uma sequencia de imagens (um vıdeo). Assumindo que as imagens tenham apenaspixels pretos ou brancos, podemos mapear cada pixel do vıdeo inteiro em um trem deimpulsos. Dado um pixel pij , que e o pixel com coordenadas (i, j) no vıdeo, ele podeassumir os valores pij(n) = 0, 1, dependendo se ele e branco ou preto no n-esimo framedo vıdeo. No caso de um vıdeo com 4 frames, um pixel com coordenadas (i, j) pode serrepresentado por um vetor de dimensao 4, por exemplo:

pij = (0, 1, 1, 0)

Que indicaria que nos frames 1 e 4 o pixel estava preto, enquanto nos frames 2 e 3ele estava branco (caso definirmos 1 como o estado “branco”), como mostrado na figura4.13.

Figura 4.13. Intensidades do mesmo pıxel em 4 diferentes frames, dado pelo tremde impulsos (0, 1, 1, 0) e onde 1 e definido pelo estado branco e 0 pelo estadopreto.

A entrada do neuronio responsavel por este pixel, portanto, poderia ser represen-tada tambem como:

xij = (2, 3)

Que e o vetor com os tempos de cada impulso (figura 4.14). Esta forma possi-bilita que spikes em tempos desassociados a passos de tempo sejam representados - porexemplo, poderıamos ter um spike no tempo t = 1.5, entre dois ciclos da rede. E impor-tante notar que neste caso a entrada deve ser binarizada, acarretando portanto em perdade informacao – caso a imagem possuısse pixels em escala de cinza, terıamos que aplicaruma binarizacao para este tipo de codificacao. Podemos tambem normalizar estes tempospara ocupar uma fracao de T .

4.3.3. Phase CodingA tecnica de phase coding consiste em aplicar a tecnica time-to-first-spike a cada tempot do evento. No caso de um vıdeo de 4 frames, similar ao anterior, porem onde cada pixelesta em escala de cinza, poderıamos ter por exemplo (figura 4.15):

p1ij(1) p1

ij(2) p1ij(3) p1

ij(4)1.0 0.4 0.6 0.0

Tabela 4.3. Intensidades do mesmo pıxel em 4 diferentes frames

Temos que, assim como no time-to-first-spike, escolher uma fracao de T para omapeamento das entradas. Tomando como exemplo novamente uma fracao de 40 passos

42

Page 43: Aprendizado Supervisionado para Redes Neurais Pulsadas sem …monografias.poli.ufrj.br/monografias/monopoli10011211.pdf · 2014-08-26 · Aprendizado Supervisionado para Redes Neurais

Figura 4.14. Grafico do trem de impulsos resultado do pixel.

Figura 4.15. Intensidades do mesmo pıxel em 4 diferentes frames, assumindovalores na escala de cinza.

de tempo (40% de T ), temos que dividir essa fracao pelo numero de frames do vıdeo(ou da duracao temporal do evento em questao, mais generalizadamente), alocando 40

4=

10 passos de tempo para cada intervalo de tempo do evento. Desta forma, seguimosao aplicar a tecnica do time-to-first-spike para cada alocacao, e depois as concatenamos(figura 4.16).

p1ij(1) p1

ij(2) p1ij(3) p1

ij(4)10 4 6 0

Tabela 4.4. Atributos mapeados em tempo de spike, em fracoes de 10 ciclos.

Figura 4.16. Grafico resultante da concatenacao das 4 intensidades mapeadasem tempos de spike.

4.3.4. Frequencia

A tentativa de mapear a informacao dos escalares em frequencia de spikes e intuitivaporem gera trens de impulso com diversos spikes, como veremos a frente.

43

Page 44: Aprendizado Supervisionado para Redes Neurais Pulsadas sem …monografias.poli.ufrj.br/monografias/monopoli10011211.pdf · 2014-08-26 · Aprendizado Supervisionado para Redes Neurais

Em vez de normalizarmos os valores dos escalares em um tempo de spike, comoaplicado nas codificacoes time-to-first-spike e phase coding, a normalizacao sera feita emuma faixa de frequencias definidas pelo projetista da rede. Desta forma, o menor valorsera mapeado em um trem com frequencia de impulsos igual a zero (ou qualquer cons-tante, caso desejado) enquanto o maior sera mapeado num trem com frequencia maxima.

Utilizaremos novamente o exemplo das flores, com os mesmos dados que ja foramapresentados:

x11 x2

1 x31 x4

1

8.3 10.6 6.7 9.1

Tabela 4.5. Exemplo de atributos (tamanhos de petalas) de 4 eventos (flores) emforma escalar.

Caso, por exemplo, definirmos a faixa de frequencia a ser mapeada como 0 <f < 20mHz, basta normalizarmos similarmente como fizemos no caso da codificacaotime-to-first-spike:

x11 x2

1 x31 x4

1

8.2 20 0 12.3

Tabela 4.6. Atributos mapeados em frequencias que serao utilizadas para gerartrens de impulso.

E entao criamos trens de impulso com as dadas frequencias. Um trem de duracao1ms e f = 8.2mHz (frequencia dada pela petala da primeira flor) tera um impulso a cada1

8.2= 0.12ms e e dado pela figura 4.17.

Figura 4.17. Trem de impulso que representa a petala da primeira flor emcodificacao na frequencia.

De forma analoga, podemos expandir esta ideia para representarmos eventosdinamicos, como o pixel que assume valores na escala de cinza exemplificado no phasecoding:

44

Page 45: Aprendizado Supervisionado para Redes Neurais Pulsadas sem …monografias.poli.ufrj.br/monografias/monopoli10011211.pdf · 2014-08-26 · Aprendizado Supervisionado para Redes Neurais

p1ij(1) p1

ij(2) p1ij(3) p1

ij(4)1.0 0.4 0.6 0.0

Tabela 4.7. Intensidades do mesmo pixel em 4 diferentes frames

Caso codificarmos cada intensidade em uma frequencia utilizando a mesma faixade f = 20mHz, teremos:

p1ij(1) p1

ij(2) p1ij(3) p1

ij(4)20 8 12 0

Tabela 4.8. Atributos mapeados em frequencias entre 0 e 20 mHz.

Podemos entao representar os estados do pixel nos 4 frames por uma concatenacaode trens de spike. Caso escolhermos a duracao de cada trem novamente como 1ms, o tremresultante sera dado pela figura 4.18.

Figura 4.18. Trem de impulsos resultante das frequencias que codificam o pixelexemplo nos 4 frames.

Desta forma, vemos que nas codificacoes train coding, phase coding e codificacaona frequencia, cada atributo e mapeado em um vetor que representa um trem de impulsos.O conjunto de entradas, portanto, deixa de ser representavel por uma matriz (onde cadaatributo era um escalar) e passa a ser dado por um tensor de terceira ordem (uma matrizde vetores).

4.4. Spike PropagationUm dos primeiros algoritmos para aprendizagem supervisionada em SNNs proposto foio SpikeProp [Bohte et al.(2002)Bohte, Poutre, and Kok]. Seu funcionamento requer duasrestricoes:

• Cada neuronio deve ter, no maximo, apenas 1 spike por evento.• Neuronios devem ser ligados por um grupo de diversas sinapses, chamado de ter-

minal.

45

Page 46: Aprendizado Supervisionado para Redes Neurais Pulsadas sem …monografias.poli.ufrj.br/monografias/monopoli10011211.pdf · 2014-08-26 · Aprendizado Supervisionado para Redes Neurais

O modelo neuronal utilizado foi o SRM por possuir derivadas faceis: este e o unicomodelo visto que nao e dado por equacoes diferenciais. Estas derivadas serao necessariaspara o aprendizado proposto, que utiliza, assim como o Back Propagation, o metodo dogradiente descendente. Como cada neuronio so podera ter apenas um spike, a equacao4.3 pode ser ignorada, ja que o perıodo refratario torna-se desnecessario.

O modelo sinaptico e similar ao de ANNs, porem, alem do peso, cada sinapsetambem possui um parametro dij , que representa o atraso ate que o impulso partindo doneuronio i chegue ao neuronio j. Isso faz com que a funcao do grafico 4.3 desloque-separa a esquerda ou para a direita.

Para deixar o modelo flexıvel em relacao a este deslocamento, utilizam-se diversassinapses entre neuronios (onde anteriormente tınhamos apenas uma), cada uma com umvalor de d fixo e diferente. Por exemplo, caso tenhamos 3 sinapses entre neuronios i e j,onde os valores de d sao dados por (0, 5, 10), temos que os graficos das respostas de j aum spike de i no tempo ti = 0ms e dado pela figura 4.19.

Figura 4.19. Resposta de um neuronio para 3 sinapses com atrasos de 0, 5 e 10.Note que as respostas estao representadas individualmente, onde a respostareal e dada pela soma dos tres graficos.

Assim como em ANNs, essas respostas serao ponderadas pelo peso correspon-dente da sinapse. Teremos, agora, que a resposta final transmitida pela k-esima sinapseentre os neuronios i e j sera dada por:

ykij(t) = wkijε(t− ti − dkij) (4.6)

Assim sendo, atrasos que nao contribuem para um aprendizado podem ser ignora-dos ao ajustarmos o peso da respectiva sinapse para zero. Caso utilizassemos um numeroarbitrariamente grande de sinapses entre neuronios, cada um com um valor fixo de d ar-bitrariamente proximo um do outro, terıamos, virtualmente, a possibilidade de deslocar aresposta como bem entendessemos ao ajustarmos para zero os pesos de todas as sinapsesindesejadas.

Com isto, um terminal e definido como um conjunto de K sinapses entreneuronios, cada uma com o seu proprio parametro d e w. Neste modelo, utilizam-se va-lores iguais para todos os k-esimos atrasos de cada terminal. Na figura 4.20 um terminalcom K = 3 sinapses e representado.

46

Page 47: Aprendizado Supervisionado para Redes Neurais Pulsadas sem …monografias.poli.ufrj.br/monografias/monopoli10011211.pdf · 2014-08-26 · Aprendizado Supervisionado para Redes Neurais

j1 jv jn

i1 iu imi

j

Figura 4.20. Terminal (ampliado a esquerda) composto por 3 sinapses, com atra-sos e pesos diferentes ([Booij(2004)]). O deslocamento da resposta de cada si-napse e dado pelo seu respectivo atraso, e ela em seguida e multiplicada pelopeso correspondente.

Desta forma, a contribuicao que um neuronio j recebe em um tempo t de seusneuronios precedentes e:

uj(t) =∑i∈Γj

K∑k=1

ykij(t) =∑i∈Γj

K∑k=1

wkijε(t− ti − dkij) (4.7)

Onde Γj e o conjunto de neuronios pre-sinapticos do neuronio j, K e o numerode sinapses por terminal e ti e o tempo de spike do neuronio i. O neuronio tera um spikequando uj(t) ultrapassar uma constante que caracteriza o potencial de acao, e para talutilizaremos a constante 1.

O aprendizado fundamenta-se na minimizacao do erro atraves do metodo do gra-diente descendente, assim como o Back Propagation. Dada a funcao de erro quadratica:

Ej =(tj − tj)2

2(4.8)

Aplicamos a regra da cadeia, similarmente a 3.9:

∂Ej∂wkij

=∂Ej∂tj

∂tj∂uj(tj)

∂uj(tj)

∂wkij(4.9)

Neste caso, derivamos 4.8 e 4.7:

∂Ej∂tj

= (tj − tj) (4.10)

∂uj(tj)

∂wkij= ε(tj − ti − dkij) (4.11)

47

Page 48: Aprendizado Supervisionado para Redes Neurais Pulsadas sem …monografias.poli.ufrj.br/monografias/monopoli10011211.pdf · 2014-08-26 · Aprendizado Supervisionado para Redes Neurais

Para o termo ∂tj∂uj(tj)

, fazemos uma aproximacao linear (como demonstrado de-talhadamente em [Bohte(2003)]): assumindo que a funcao uj(t) se comporta de formaaproximadamente linear perto do ponto tj , e sabendo que o tempo de spike tj diminuira(ou seja, o spike acontecera mais cedo) com o aumento de uj(t), temos:

∂tj∂uj(tj)

=−1

∂uj(t)

∂t(tj)

=−1∑

i∈Γj

∑Kk=1 w

kij∂ε(t)∂t

(tj − ti − dkij)(4.12)

Em 4.12, devemos derivar 4.2:

∂ε(t)

∂t(t) =

{−e−

tτm

τm+ e

− tτs

τs, se t > 0

0, caso contrario(4.13)

Substituindo 4.10, 4.12, 4.11, e 4.13 em 4.9, chegamos a uma equacao para ajustaros pesos entre neuronios das camadas I e J :

∆wkij = −α ∂Ej∂wkij

= −α −(tj − tj)∑i∈Γj

∑Kk=1w

kij∂ε(t)∂t

(tj − ti − dkij)ε(tj − ti − dkij) (4.14)

Ou, mais simplificadamente:

∆wkij = −αδjε(tj − ti − dkij) (4.15)

Onde:

δj =∂Ej∂tj

∂tj∂uj(tj)

=−(tj − tj)∑

i∈Γj

∑Kk=1w

kij∂ε(t)∂t

(t− ti − dkij)(4.16)

Para neuronios nas camadas escondidas, utilizamos novamente a regra da cadeia:

∂E

∂wkhi=∂E

∂ti

∂ti∂ui(ti)

∂ui(ti)

∂wkhi(4.17)

Seguindo a nossa definicao em 4.16, temos:

δi =∂E

∂ti

∂ti∂ui(ti)

(4.18)

O termo ∂ti∂ui(ti)

pode ser calculado como em 4.12:

∂ti∂ui(ti)

=−1∑

h∈Γi

∑Kk=1 w

khi∂ε(t)∂t

(ti − th − dkhi)(4.19)

O termo ∂E∂ti

pode ser expandido atraves da regra da cadeia:

48

Page 49: Aprendizado Supervisionado para Redes Neurais Pulsadas sem …monografias.poli.ufrj.br/monografias/monopoli10011211.pdf · 2014-08-26 · Aprendizado Supervisionado para Redes Neurais

∂E

∂ti=∑j∈Γi

∂E

∂tj

∂tj∂uj(tj)

∂uj(tj)

∂ti=∑j∈Γi

δj∂uj(tj)

∂ti(4.20)

Para encontrarmos ∂uj(tj)

∂ti, derivamos 4.7:

∂uj(tj)

∂ti=∂∑

l∈Γj

∑Kk=1 w

kljε(tj − tl − dklj)∂ti

= −K∑k=1

wkij∂ε(t)

∂t(tj − ti − dkij) (4.21)

E substituindo 4.21 em 4.20, e esta e 4.19 em 4.18, temos:

δi =

∑j∈Γi δj

∑Kk=1w

kij∂ε(t)∂t

(tj − ti − dkij)∑h∈Γi

∑Kk=1w

khi∂ε(t)∂t

(ti − th − dkhi)(4.22)

O terceiro termo de 4.17 pode ser calculado como 4.11:

∂ui(ti)

∂wkhi= ε(ti − th − dkhi) (4.23)

Temos entao o ajuste de pesos para neuronios de camadas intermediarias:

∆wkhi = −αδiε(ti − th − dkhi) (4.24)

Este modelo, embora seja capaz de aprender funcoes desde que haja umacodificacao em spikes, sofre em quesito de tempo de execucao devido aos terminais. Alemdisso, problemas cuja codificacao apresenta mais de um spike por entrada nao podem serresolvidos, uma vez que este modelo nao admite mais de um spike por neuronio.

4.4.1. Implementacao

Desenvolvemos uma biblioteca em C++ com a implementacao do modelo e do algoritmode aprendizado de Bohte. Embora linguagens e frameworks como Python e Matlab ofe-recessem meios de desenvolvimento mais ageis, a escolha por C++ deu-se devido a ne-cessidade de maior velocidade na execucao. Diferentemente das redes neurais classicas,as SNNs precisam executar por um ciclo de T passos de tempo para que haja uma saıdadefinitiva, e a existencia de terminais faz com que existam K vezes mais pesos que umarede classica.

A biblioteca implementa uma rede que pode ter um numero arbitrario de camadas,ja que o ajuste de pesos para neuronios de camadas escondidas e igual. Uma otimizacaosimples feita na implementacao foi a de armazenar tuplas (wkij, ti + dkij) em todos osneuronios j posteriores quando um neuronio i tiver um spike, descartando a necessidadedos neuronios checarem os estados de todos os neuronios precedentes a cada ciclo.

Para a escolha da discretizacao do tempo, fixamos passos de tempo com 0.5msde duracao e o tempo total de execucao de 16ms. Cada sinapse inter-terminal e separada

49

Page 50: Aprendizado Supervisionado para Redes Neurais Pulsadas sem …monografias.poli.ufrj.br/monografias/monopoli10011211.pdf · 2014-08-26 · Aprendizado Supervisionado para Redes Neurais

por um atraso de 1ms, portanto cada terminal era composto por 15 sinapses com atrasosentre 1 e 15 (ja que um atraso de 16ms faz com que a entrada nao tenha tempo suficientede ter influencia duas camadas a frente).

Desta forma, uma rede criada com os parametros padroes da biblioteca precisa de32 ciclos para finalizar a sua operacao e tem 16 vezes mais pesos que uma rede classica.Exatamente por este motivo escolheu-se por implementar a biblioteca em C++, pois suaexecucao seria inviavel em linguagens com pior performance.

Para o seu uso, basta que a arquitetura da rede seja definida (numero de camadase numero de neuronios por camadas), dois arquivos sejam escolhidos (um contendo asentradas e outro as saıdas) e os parametros de aprendizado sejam definidos, embora sejamopcionais.

Cada arquivo deve conter seus vetores de entradas ou de saıdas (dependendo doarquivo) em forma de texto, onde cada evento deve ser representado em uma linha e oselementos separados por um espaco. Por exemplo, caso tenhamos 3 eventos, onde cadaum e composto por 4 atributos (entradas) e 1 saıda dados por:

x1 = (0.2, 3.0, 0.4, 0.35)

x2 = (4.4, 1.25, 5.7, 4.9)

x3 = (2.6, 0.75, 4.4, 4.2)

y1 = 10

y2 = 14

y3 = 14

Teremos que os arquivos contendo as entradas e as saıdas, terao os seus conteudosrepresentados pelas figuras 4.21 e 4.22, respectivamente.

Figura 4.21. Conteudo do arquivo com as entradas do respectivo exemplo.

Figura 4.22. Conteudo do arquivo com as saıdas do respectivo exemplo.

O aprendizado possui apenas duas opcoes. Primeiramente, pode-se optar poraprendizado instantaneo, onde o ajuste e feito a cada evento (e da maneira como o al-goritmo foi demonstrado), ou em batch, onde calcula-se o ajuste para cada evento, poremos ajustes em si so sao realizados no final do ultimo evento. O usuario pode escolher sequer ou nao a opcao de early stop, onde o treinamento e abortado assim que o erro nabase de validacao comeca a aumentar, evitando assim o sobreajuste.

50

Page 51: Aprendizado Supervisionado para Redes Neurais Pulsadas sem …monografias.poli.ufrj.br/monografias/monopoli10011211.pdf · 2014-08-26 · Aprendizado Supervisionado para Redes Neurais

4.4.2. Benchmarks

Para testar a rede, foram escolhidos primeiramente bases de referencia cujas solucoes saobem conhecidas. Os resultados sao dados pelo erro em ms2 e em acuracia. Como vimos,em ANNs a classe escolhida e dada pelo neuronio de saıda que apresentou o maior valor.No caso de uma SNN onde, por exemplo, duas classes sao codificadas em tempos de spikede 10 e 14ms, a classe escolhida sera aquela cujo tempo de spike e o mais proximo dotempo de saıda da rede. Se para um dado evento o neuronio de saıda apresenta um tempode spike de 13ms, a segunda classe sera considerada. Por isso, podemos ter casos onde aacuracia e maxima porem o erro em ms2 e diferente de zero.

4.4.3. Iris

A base das flores Iris e um problema classico de classificacao, e e composto por 150eventos e 3 classes (50 eventos de cada classe). Cada evento e composto por 4 atributosem formato escalar, e duas classes sao linearmente separaveis enquanto outra nao. Acodificacao utilizada foi a time-to-first-spike, onde cada atributo foi normalizado em umtempo de entrada entre 0 e 5 ms. As saıdas foram codificadas em 10ms para uma classe e14ms para outra, e todos os resultados apresentados sao medias tomadas de 10 execucoes.

Primeiramente, testamos uma rede minimalista para separar as flores entre as duasclasses linearmente separaveis (Iris-setosa e Iris-versicolor). Como vimos, ANNs saocapazes de separar classes linearmente separaveis com apenas duas camadas, portantoutilizamos uma arquitetura 4×1. Com uma taxa de aprendizagem α = 0.005 e utilizandotreinamento instantaneo e early stop, o algoritmo convergiu em 1.5 iteracao, alcancando100% de acuracia na base de validacao (20% da base) e 100% de acuracia na base de teste(10% da base).

A outra separacao linear possıvel - entre as especies Iris-setosa e Iris-virginica -tambem resultou em 100% de acuracia nas bases de validacao e teste, apos 1.1 iteracao.

Ja a separacao nao-linear alcancou uma acuracia de 99.5% na base de validacao e97.5% de acuracia na base de teste apos 62.5 iteracoes. Os resultados podem ser vistos natabela 4.9.

Separacao Acuracia na Validacao Acuracia no Teste IteracoesSetosa Versicolor 100% 100% 1.5Setosa Virginica 100% 100% 1.1

Virginica Versicolor 99.5% 97.5% 62.5

Tabela 4.9. Resultados de separacoes de classes de flores Iris, uma a uma. Asduas primeiras separacoes sao lineares, enquanto a ultima nao e linear e possuisobreposicao - explicando assim a sua acuracia inferior.

Em seguida, testaremos a performance da rede ao separar as 3 classes entre si.Neste caso, ela tera 3 neuronios de saıda (um correspondente a cada classe), e co-dificaremos uma saıda negativa como um spike em t = 14ms e uma saıda positivacomo t = 10ms. Logo, um evento pertencente a segunda classe devera ter saıdas(14ms, 10ms, 14ms). A classe considerada sera aquela cujo neuronio de saıda tenhao spike mais cedo, portanto uma saıda (8ms, 14ms, 15ms) indicara a primeira classe.

51

Page 52: Aprendizado Supervisionado para Redes Neurais Pulsadas sem …monografias.poli.ufrj.br/monografias/monopoli10011211.pdf · 2014-08-26 · Aprendizado Supervisionado para Redes Neurais

Os testes foram feitos utilizando os mesmos parametros utilizados anteriormente,porem com arquiteturas diferentes da rede. Como nos casos das arquiteturas mais basicaso treinamento nao era abortado pelo early stop, sendo este um sinal de falta de con-vergencia, limitamos o numero de iteracoes em 1000. Os resultados estao presentes natabela 4.10.

Arquitetura Acuracia na Validacao Acuracia no Teste Iteracoes4× 3 92.4% 93% 56.3

4× 3× 3 92.4% 92% 237.14× 5× 3 93% 93.4% 369.6

Tabela 4.10. Resultados de separacoes entre as 3 classes de flores Iris. Aausencia de ganho com o acrescimo de camadas sugere que os erros nao eramcausados pela nao-linearidade da separacao, mas sim pela sobreposicao declasses.

4.4.4. XOR

O problema de aprender a funcao XOR, que e classico para o teste de sistemas declassificacao, tambem foi abordado neste trabalho. Primeiramente, tentou-se por repro-duzir os resultados de Bohte de aprender XOR com 0ms2 de erro utilizando apenas duascamadas [Bohte et al.(2002)Bohte, Poutre, and Kok], porem mesmo apos 10000 iteracoeso algoritmo nao mostrava sinais de convergencia para um erro nulo.

Para a codificacao, as entradas binarias foram normalizadas em um tempo de en-trada entre 0 e 5 ms, e as saıdas entre 10 e 14ms (10ms para 0 e 14ms para 1).

Desta forma, testou-se uma rede de arquitetura 2x3x1, que convergiu apos 367iteracoes com α = 0.02, alcancando um erro de 0ms2.

4.5. Spike Propagation sem Terminais

Como vimos, o modelo conexionista de Bohte e capaz de classificar alguns problemas dereferencia de forma perfeita. Entretanto, como ja vimos, seus problemas de performancenao sao poucos: o numero de sinapses, e portanto tambem de parametros, e 2K vezesmaior que o de ANNs (um atraso para cada peso, e K duplas atraso-peso por terminal) eela precisa operar por um numero mınimo de ciclos de tempo antes de possuir uma saıda.

Poderıamos acelerar o aprendizado ao aplicarmos diversas tecnicas formuladaspara ANNs, como o uso de momentum e do gradiente conjugado, porem estes nao altera-riam o tempo de execucao da rede nem diminuiriam o numero de parametros.

Uma maneira simples de melhorar a performance da rede e a de, em vez de utilizarK valores fixos para os atrasos sinapticos, termos atrasos variaveis para cada sinapse.Estes atrasos podem ser aprendidos da mesma maneira feita com os pesos:

∆dkij = −β ∂Ej∂dkij

(4.25)

Onde temos, similarmente a 4.9:

52

Page 53: Aprendizado Supervisionado para Redes Neurais Pulsadas sem …monografias.poli.ufrj.br/monografias/monopoli10011211.pdf · 2014-08-26 · Aprendizado Supervisionado para Redes Neurais

∂Ej∂dkij

=∂Ej∂tj

∂tj∂uj(tj)

∂uj(tj)

∂dkij(4.26)

Os seus dois primeiros termos ja foram calculados na secao anterior, fazendo comque apenas ∂uj(tj)

∂dkijprecise ser encontrado. Fazemos isso ao derivarmos 4.7:

∂uj(tj)

∂dkij=∂∑

i∈Γj

∑Kk=1w

kijε(tj − ti − dkij)

∂dkij= −wkij

∂ε(t)

∂t(tj − ti − dkij) (4.27)

E utilizando a definicao previa de δj e 4.27, reescrevemos 4.25:

∆dkij = βδjwkij

∂ε(t)

∂t(tj − ti − dkij) (4.28)

Para neuronios ocultos, novamente o unico termo diferente e ∂ui(ti)

∂wkhi, onde teremos,

similarmente a 4.27:

∂ui(ti)

∂dkhi= −wkhi

∂ε(t)

∂t(ti − th − dkhi) (4.29)

Chegando entao ao ajuste dos atrasos de neuronios ocultos:

∆dkhi = βδiwkhi

∂ε(t)

∂t(ti − th − dkhi) (4.30)

Com isso, podemos reduzir drasticamente o numero de parametros da rede. Nosexemplos praticos da rede de Bohte utilizamos um total de 15 sinapses por terminal, ondeagora poderıamos utilizar apenas uma, eliminando assim os terminais e diminuindo em15 vezes o numero de parametros a serem ajustados durante o aprendizado.

4.5.1. Benchmark - Iris

Para testarmos a rede sem terminais, utilizaremos novamente a base de flores Iris parafins de comparacao. Em vez de terminais, criaremos apenas uma sinapse com um atrasoinicial de 3.5ms, que sera ajustado de acordo com o algoritmo elaborado. Desta forma,em vez de 15 pesos a serem ajustados, teremos apenas 1.

Para separacao de classes uma a uma, a mesma codificacao foi utilizada: entradas0ms < t < 5ms e saıdas 10ms < t < 14ms. Para o ajuste dos pesos e atrasos,utilizamos β = 0.05 e α = 0.005. Os resultados podem ser verificados na tabela 4.11e uma comparacao de numero de iteracoes entre as redes com e sem terminais pode servista na tabela 4.12. Os resultados sao medias de 10 execucoes.

Para a separacao entre as 3 classes, utilizamos os mesmos parametros (α = 0.005,β = 0.05, dinicial = 3.5ms). Os resultados podem ser vistos na tabela 4.13.

53

Page 54: Aprendizado Supervisionado para Redes Neurais Pulsadas sem …monografias.poli.ufrj.br/monografias/monopoli10011211.pdf · 2014-08-26 · Aprendizado Supervisionado para Redes Neurais

Separacao Acuracia na Validacao Acuracia no Teste IteracoesSetosa Versicolor 100% 100% 1.5Setosa Virginica 100% 100% 2.2

Virginica Versicolor 97.5% 95.5% 71.8

Tabela 4.11. Resultados de separacoes de classes de flores Iris, uma a uma eutilizando ajuste de atrasos.

Iteracoes Com terminais Sem terminaisSetosa Versicolor 1.5 1.5Setosa Virginica 1.1 2.2

Virginica Versicolor 62.5 71.8

Tabela 4.12. Iteracoes em redes com e sem terminais, para separacao de classesuma a uma de flores Iris. Iteracoes em redes sem terminais sao aproximada-mente 8 vezes mais rapidas, uma vez que 8 vezes menos parametros devem serajustados.

Arquitetura Acuracia na Validacao Acuracia no Teste Iteracoes4× 3 93.9% 92.9% 242.5

4× 3× 3 95.2% 94.5% 513.64× 5× 3 98.2% 95.4% 337.6

Tabela 4.13. Resultados de separacoes entre as 3 classes de flores Iris, utilizandoajuste de atrasos.

4.5.2. Sonar Passivo

Com o ganho de velocidade de execucao da rede proporcionado pelos atrasos flexıveis,podemos agora aplica-la em exemplos mais complexos. O problema do sonar, visto nasecao de ANNs, mostrava-se inviavel de ser testado em uma SNN ate entao. Como javimos, o problema consiste numa base de 7022 eventos (4822 apos a separacao de fontesna frequencia) compostos por 1025 variaveis cada. No caso de uma rede com terminais econsiderando uma arquitetura (1025 × 5 × 1) e K = 16, temos um total de 82080 pesosa serem ajustados.

Codificamos entao os dados utilizando codificacao time-to-first-spike, comconfiguracoes similares as da codificacao usada para a base de flores: 0ms < t < 6mspara entradas e 10ms < t < 14ms para saıdas. Como a nossa rede ainda e significante-mente mais lenta que uma ANN - principalmente devido a necessidade de executar por Tciclos - decidimos tambem por amostrar a base em vez de utiliza-la inteira.

Como utilizaremos a base ja com separacao cega de fontes aplicada na frequencia,temos 4822 eventos no total (2411 de cada classe). Decidimos fazer uma amostra deaproximadamente 1

16da base. Visto que nossa rede executa ate o ponto t = 16ms em

passos de tempo t = 0.5ms, resultando em um total de 32 ciclos, escolhemos o dobro dafracao a partir de uma heurıstica ad hoc. A base trabalhada neste exemplo sera compostaentao por 300 eventos em vez de 4822.

Separamos a base nos 3 conjuntos (treino, validacao e teste): 60% para treino,

54

Page 55: Aprendizado Supervisionado para Redes Neurais Pulsadas sem …monografias.poli.ufrj.br/monografias/monopoli10011211.pdf · 2014-08-26 · Aprendizado Supervisionado para Redes Neurais

20% para validacao e 20% para teste. Devido ao alto numero de variaveis, optamos poruma taxa de aprendizagem mais alta, pois muitas das variaveis sao insignificantes para oproblema e terao a maioria dos seus pesos ajustados para zero antes que o ajuste comecea tornar-se significativo. A escolha da taxa foi de α = β = 0.005.

Escolhemos a mesma arquitetura utilizada pela nossa ANN: (1025× 5× 1). Umdos problemas que tornaram-se aparentes logo no inıcio do teste foi que o early stopnao era adaptado para SNNs sem terminais com taxas de aprendizado altas. Vimos quediversas vezes o passo tomado pelo gradiente descendente resultava em um aumento doerro na base de validacao, porem nos passos seguintes havia a diminuicao constante doerro como esperado.

Por isso, adaptamos o early stop para que ele executasse forcadamente por ummınimo de M iteracoes, onde cada vez que o erro de validacao diminuısse os parametrosfossem salvos (pesos e atrasos). Desta forma, garantimos obter os melhores parametrospara o desempenho no conjunto de validacao em pelo menosM iteracoes de aprendizado.Chamamos este tipo de controle de aprendizado de best stop.

Finalmente, executamos o aprendizado com M = 300 e com os parametros jadescritos anteriormente. Ao fim das 300 iteracoes, o melhor desempenho no conjunto devalidacao foi dado na iteracao 50, e a media dos resultados de 10 execucoes pode ser vistona tabela 4.14.

Acuracia no Treinamento Acuracia na Validacao Acuracia no Teste98.6% 91% 89%

Tabela 4.14. Resultado da classificacao no problema do sonar passivo utilizandoSNNs sem terminais, com arquitetura 1025 × 5 × 1.

Devido a baixa acuracia resultante, decidimos tentar uma abordagem hıbrida:utilizar multiplos atrasos flexıveis. Nesta nova tentativa, utilizamos 2 sinapses entreneuronios, com atrasos iniciais 3ms e 6ms.

Fazendo esta modificacao e mantendo todos os outros parametros, o resultadoobtido pode ser visto na tabela 4.15.

Acuracia no Treinamento Acuracia na Validacao Acuracia no Teste98.6% 93.6% 93.2%

Tabela 4.15. Resultado da classificacao no problema do sonar passivo utilizandoSNNs hıbridas, com arquitetura 1025 × 5 × 1 e 2 sinapses por terminal.

Embora o resultado no conjunto de teste nao seja superior ao do apresentado pelaANN, devemos tomar em conta que, de acordo com [e P. Norvig(1984)], amostragens nabase normalmente resultam em perdas significantes de performance.

Por isso, decidimos testar novamente o nosso modelo de ANN, porem utilizandoapenas 300 amostras assim como fizemos com a nossa SNN. Utilizamos os mesmos pro-cedimentos descritos na secao 3.6.2, com a unica diferenca de termos tambem separado60% da base para treinamento, 20% para validacao e 20% para teste. Foi tomada a media

55

Page 56: Aprendizado Supervisionado para Redes Neurais Pulsadas sem …monografias.poli.ufrj.br/monografias/monopoli10011211.pdf · 2014-08-26 · Aprendizado Supervisionado para Redes Neurais

dos resultados de 10 execucoes, que pode ser vista na tabela 4.16. Podemos ver, compa-rando os resultados nas tabelas, que com 300 registros uma ANN gera um modelo compouca generalizacao, indicando que os registros foram insuficientes para o ajuste de todosos parametros. Entretanto, SNNs conseguiram obter uma generalizacao suficiente com amesma quantidade de registros, mesmo possuindo um numero superior de parametros aserem ajustados.

Acuracia no Treinamento Acuracia na Validacao Acuracia no Teste95.6% 81.1% 77.7%

Tabela 4.16. Resultado da classificacao no problema do sonar passivo utilizandoANNs, com amostragem de 300 eventos.

4.6. Multiple Spike PropagationPosteriormente, uma modificacao ao algoritmo de Bohte foi proposta [Booij(2004)], tor-nando possıvel que neuronios tivessem mais de um spike durante uma execucao da rede.E importante notar que SNNs que seguem o modelo de Bohte nao podem ser aplicadasem diversos problemas - mais especificamente, problemas que nao podem ser codifica-dos utilizando time-to-first-spike. Com a possibilidade de neuronios possuırem diversosspikes, temos entao que a rede pode operar com codificacoes do tipo phase-coding, train-coding e teoricamente ate em frequency-coding (embora nao hajam estudos sobre esteultimo caso).

Devemos notar que a proposta de Booij tomou como base os trabalhos de Bohte,que nao possuıam ajuste de atrasos, portanto voltaremos a trabalhar com terminais nestasecao.

Primeiramente, ao assumirmos multiplos spikes os neuronios passam a ter outrafuncao que dita o seu potencial em um tempo t - ele deve tomar em conta todos os spikesdos neuronios que o precedem, e tambem considerar o tempo refratario dele mesmo. Emvez da equacao 4.7 utilizada anteriormente, devemos considerar o fator 4.3 e multiplosspikes. Relembrando a funcao que modela o tempo refratario (onde ja substituimos Vtpor 1):

η(t) =

{−e−

tτr , se t > 0

0, caso contrario

Temos, entao:

uj(t) =∑tgj∈Fj

η(t− tgj ) +∑i∈Γj

∑tgi∈Fi

K∑k=1

wkijε(t− tgi − dkij) (4.31)

OndeFj e o conjunto com todos os tempos de spike do neuronio j e tgj e o g-esimotempo de spike do neuronio j.

Como exemplo, veremos como um neuronio j responde a um spike gerado porum neuronio precedente i. Neste caso, os dois neuronios estao ligados por um terminal

56

Page 57: Aprendizado Supervisionado para Redes Neurais Pulsadas sem …monografias.poli.ufrj.br/monografias/monopoli10011211.pdf · 2014-08-26 · Aprendizado Supervisionado para Redes Neurais

de ordem 3. As 3 respostas excitatorias geradas no neuronio j serao suficientes para queele gere um spike, onde a partir de entao ocorre uma resposta inibitoria dada pela funcaoque modela o perıodo refratario. O exemplo pode ser visto na figura 4.23.

Figura 4.23. Potencial de um neuronio j no tempo. Um neuronio precedente igera um spike no tempo ti = 5, e os neuronios i e j estao ligados por 3 sinapsescom parametros d = (1, 8, 15) e w = (2, 3.5, 1). A segunda resposta excitatoria (notempo t = ti + d2ij = 5 + 8 = 13) faz com que o neuronio j ultrapasse o limiar notempo t = 14.8, e passe a sofrer inibicao pela funcao de refracao absoluta.

A classe indicada pela rede continuara sendo dada apenas pelo primeiro spikedos neuronios de saıda, portanto consideramos apenas o primeiro spike de cada neuronioj ∈ J . Com isso, a nossa funcao erro passa a ser:

Ej =(t1j − tj)2

2(4.32)

E a aplicacao da regra da cadeia nos leva a:

∂Ej∂wkij

=∂Ej∂t1j

∂t1j∂uj(t1j)

∂uj(t1j)

∂wkij(4.33)

Onde, derivando de forma similar a 4.10, 4.11 e 4.12:

∂Ej∂t1j

= (t1j − tj) (4.34)

∂t1j∂uj(t1j)

=−1∑

i∈Γj

∑tgi∈Fi

∑Kk=1 w

kij∂ε(t)∂t

(t1j − tgi − dkij)

(4.35)

57

Page 58: Aprendizado Supervisionado para Redes Neurais Pulsadas sem …monografias.poli.ufrj.br/monografias/monopoli10011211.pdf · 2014-08-26 · Aprendizado Supervisionado para Redes Neurais

∂uj(t1j)

∂wkij=∑tgi∈Fi

ε(t1j − tgi − dkij) (4.36)

E, utilizando a definicao de δj em 4.16:

δj =∂Ej∂t1j

∂t1j∂uj(t1j)

=−(t1j − tj)∑

i∈Γj

∑tgi∈Fi

∑Kk=1 w

kij∂ε(t)∂t

(t1j − tgi − dkij)

(4.37)

Temos o ajuste de pesos para sinapses entre neuronios das camadas I e J :

∆wkij = −αδj∑tgi∈Fi

ε(t1j − tgi − dkij) (4.38)

Para os neuronios das camadas escondidas, a funcao de erro sera diferente de 4.17,pois devemos considerar todos os seus spikes:

∂E

∂wkhi=∑tgi∈Fi

∂E

∂tgi

∂tgi∂ui(t

gi )

∂ui(tgi )

∂wkhi(4.39)

E aqui temos um δi para cada spike g do neuronio i, portanto:

δgi =∂E

∂tgi

∂tgi∂ui(t

gi )

(4.40)

Onde ∂tgi∂ui(t

gi )

devera considerar o tempo de refracao:

∂tgi∂ui(t

gi )

=−1∑

tfi ∈Fi∂η(t)∂t

(tgi − tfi ) +

∑h∈Γi

∑tph∈Fh

∑Kk=1w

khi∂ε(t)∂t

(tgi − tph − dkhi)

(4.41)

Assim como em 4.20, o erro dado por um neuronio oculto deve ser propagado aosneuronios que o procedem:

∂E

∂tgi=∑j∈Γi

∂E

∂t1j

∂t1j∂uj(t1j)

∂uj(t1j)

∂tgi=∑j∈Γi

δj∂uj(t

1j)

∂tgi(4.42)

Onde o seu ultimo termo pode ser calculado derivando diretamente uj(t):

∂uj(t1j)

∂tgi=∂∑

tgj∈Fjη(t− tgj ) +

∑i∈Γj

∑tgi∈Fi

∑Kk=1w

kijε(t− t

gi − dkij)

∂tgi(t1j) (4.43)

= −K∑k=1

wkij∂ε(t)

∂t(t1j − t

gi − dkij) (4.44)

58

Page 59: Aprendizado Supervisionado para Redes Neurais Pulsadas sem …monografias.poli.ufrj.br/monografias/monopoli10011211.pdf · 2014-08-26 · Aprendizado Supervisionado para Redes Neurais

E substituindo 4.44 em 4.42, e este e 4.41 em 4.40, temos:

δgi =

∑j∈Γi δj

∑Kk=1 w

kij∂ε(t)∂t

(t1j − tgi − dkij)∑

tfi ∈Fi∂η(t)∂t

(tgi − tfi )∑

h∈Γi

∑tph∈Fh

∑Kk=1w

khi∂ε(t)∂t

(tgi − tph − dkhi)

(4.45)

O ultimo termo a ser calculado, ∂ui(tgi )

∂wkhi, deve ser abordado de forma diferente, pois,

relembrando:

ui(t) =∑tgi∈Fi

η(t− tgi ) +∑h∈Γi

∑tph∈Fh

K∑k=1

wkhiε(t− tph − d

khi)

Temos que os tempos de spikes anteriores, tfi ∈ Fi, tambem sao funcoes de wkhi.Portanto, ao deriva-la, temos:

∂ui(tgi )

∂wkhi= −

∑tfi ∈Fi

∂η(t)

∂t(tgi − t

fi )∂tfi∂wkhi

+∑tph∈Fh

ε(tgi − tph − d

khi) (4.46)

O termo ∂tfi∂wkhi

pode ser expandido por:

∂tfi∂wkhi

=∂tfi

∂ui(tfi )

∂ui(tfi )

∂wkhi(4.47)

Que sao as proprias equacoes 4.41 e 4.46. Desta forma, o termo ∂tgi∂wkhi

de cada spikede um neuronio oculto i depende do mesmo termo dos outros spikes do mesmo neuronio.Devemos notar que para um spike f de um neuronio i, o seu fator ∂tfi

∂wkhie independente do

spike g > f , pois ∂ui(tfi )

∂tgi= 0.

O calculo deve proceder de forma que o termo do primeiro spike seja calculado,em seguida do segundo, e assim em diante, onde o termo ∂tgi

∂wkhide cada spike depende dos

termos ∂tfi∂wkhi

, para todo f < g.

E com 4.46 e 4.45 temos finalmente o ajuste de pesos entre neuronios de camadasH e I:

∆wkhi = −α∑tgi∈Fi

δgi

∑tph∈Fh

ε(tgi − tph − d

khi)−

∑tfi ∈Fi

∂η(t)

∂t(tgi − t

fi )∂tfi∂wkhi

(4.48)

Com esta extensao, Booij aplicou o seu algoritmo a um problema de leitura labialcomposto por vıdeos com um numero variavel de frames. Cada frame foi binarizado,

59

Page 60: Aprendizado Supervisionado para Redes Neurais Pulsadas sem …monografias.poli.ufrj.br/monografias/monopoli10011211.pdf · 2014-08-26 · Aprendizado Supervisionado para Redes Neurais

transformando os pixels em preto ou branco, e foi utilizada a codificacao train-coding(de forma similar ao exemplo na secao 4.3.2). Como este tipo de codificacao nao eraaceito pela rede proposta por Bohte, esta aplicacao nao poderia ser realizada sem o novoalgoritmo demonstrado.

4.6.1. Aprendendo Padroes Temporais

Nesta subsecao, testaremos brevemente o algoritmo descrito em redes com neuronios quepulsam mais de uma vez. Em nıvel de implementacao, alem dos ajustes no algoritmo deaprendizado tambem foi necessario que a base de entrada da rede seja dada por um tensorde terceira ordem (onde antes esta era dada por uma matriz). Quando antes tınhamospara cada evento um vetor de tamanho n, onde n e o numero de variaveis de entrada,e cada elemento i representava o tempo do unico spike do neuronio de entrada i, agoratemos uma matriz em que cada linha i representa o conjunto de tempos de spike de cadaneuronio i.

Desta forma, a representacao da entrada no arquivo tambem teve que ser alterada.Para isso, onde antes cada variavel de entrada era representada por um numero, e esteseram separados por espacos, agora temos cada variavel de entrada representada por umconjunto de numeros separados por vırgulas (figura 4.24).

Figura 4.24. Exemplo de arquivo de entrada para uma rede onde neuronios po-dem ter mais de um spike, com dois neuronios de entrada.

4.6.2. Padrao Degrau

Para testar o algoritmo de Booij, chamado a partir de agora de Multiple Spike Propagation- MSP, decidimos ensinar a rede um padrao temporal simples de apenas um neuronio, edepois faze-lo variar no tempo. No nosso caso, usaremos train-coding onde I(t) = 1 comprobabilidade 75%, para t = {0, 1, 2, 3}. Alguns exemplos de trens de impulso geradospodem ser vistos na figura 4.25.

Queremos que a rede aprenda apenas o padrao dado por tres impulsos seguidos.No caso dos trens gerados, apenas (0, 1, 2), (0, 1, 2, 3) e (1, 2, 3) satisfazem essa condicao.Nestes casos, queremos que a saıda seja um spike no tempo t1+10ms, onde t1 e o primeiroimpulso do trem. Ou seja, para o trem (0, 1, 2), queremos que a saıda seja tj = 10ms, epara o trem (1, 2, 3) uma saıda tj = 11ms. Nos outros casos, queremos que a saıda sejadada por t1 + 14ms: no caso do trem (0, 2, 3), queremos uma saıda tj = 14ms.

Com isso, geramos um total de 20 eventos a serem utilizados no aprendizado darede. Para o teste, utilizamos os eventos ((2, 3, 4), (12)), ((3, 4, 5), (13)), ((0, 2, 4), (14)),((0, 1, 4, 5), (14)), ((3, 5, 6), (17)) e ((1, 2, 4, 5), (15)). Utilizando uma taxa de aprendi-zado α = 0.005 e uma arquitetura 1 × 5 × 1, a rede convergiu para E = 0ms2 apos 904

60

Page 61: Aprendizado Supervisionado para Redes Neurais Pulsadas sem …monografias.poli.ufrj.br/monografias/monopoli10011211.pdf · 2014-08-26 · Aprendizado Supervisionado para Redes Neurais

Figura 4.25. Exemplos de trens de impulso gerados com 75% de chance de terum impulso em cada tempo t = (0, 1, 2, 3).

iteracoes, e obteve 100% de acuracia no conjunto de teste. Embora o exemplo seja de-masiadamente simples, e interessante notar que SNNs sao capazes de identificar padroesdeslocados no tempo a partir do aprendizado com apenas um referencial temporal.

4.6.3. XOR

Tambem tentamos fazer com que a rede aprenda a funcao XOR utilizando apenas umneuronio de entrada. Para isso, tivemos que codificar as duas entradas da funcao XORem apenas um trem de impulsos ([Booij(2004)]). Utilizamos a seguinte codificacao parao problema:

x1 x2 ti0 0 (0)0 1 (0, 2)1 0 (0, 4)1 1 (0, 2, 4)

Tabela 4.17. Codificacao das entradas da funcao XOR em um trem de impulsos.

Onde o primeiro spike (t = 0) e utilizado como bias, para informar a rede o inıcioda entrada. Caso contrario nao haveria como ela diferenciar entradas t = (2) e t = (4),pois ela seria invariante no tempo (que nao e o caso deste problema). As saıdas foram asmesmas utilizadas anteriormente: t = 10ms para 1 e t = 14ms para 0.

Com isso, uma rede com topologia 1×5×1 aprendeu com sucesso a funcaoXORapos 87 iteracoes, utilizando uma taxa de aprendizagem de α = 0.05.

61

Page 62: Aprendizado Supervisionado para Redes Neurais Pulsadas sem …monografias.poli.ufrj.br/monografias/monopoli10011211.pdf · 2014-08-26 · Aprendizado Supervisionado para Redes Neurais

4.7. Multiple Spike Propagation sem Terminais (Monosinaptico)Embora vimos que o algoritmo MSP possibilita que SNNs sejam aplicadas a uma gamamaior de problemas, voltamos a ter dificuldades no tempo de execucao devido aos termi-nais. A proposta final deste trabalho e, portanto, propor uma modificacao ao algoritmoMSP para que SNNs possam operar com neuronios que pulsem mais de uma vez, sem anecessidade de terminais. Seguiremos a mesma ideia utilizada quando deduzimos o ajustede atrasos para o Spike Propagation.

Temos que os fatores δj e δgi nao se alteram, pois nao dependem de nenhum fator∂dkij ou ∂dkhi (assim como na deducao na secao 4.5). Temos, similarmente a equacao 4.33:

∂Ej∂dkij

=∂Ej∂t1j

∂t1j∂uj(t1j)

∂uj(t1j)

∂dkij(4.49)

Onde apenas o terceiro termo e diferente e deve ser calculado:

∂uj(t1j)

∂dkij= −

∑tgi∈Fi

wkij∂ε(t)

∂t(t1j − t

gi − dkij) (4.50)

Chegando ao ajuste de atrasos entre as camadas I e J :

∆dkij = βδj∑tgi∈Fi

wkij∂ε(t)

∂t(t1j − t

gi − dkij) (4.51)

Para neuronios ocultos, temos uma funcao erro similar a 4.39:

∂E

∂dkhi=∑tgi∈Fi

∂E

∂tgi

∂tgi∂ui(t

gi )

∂ui(tgi )

∂dkhi(4.52)

Onde novamente apenas o terceiro termo deve ser calculado, pois os outros ja oforam na secao anterior (δgi ). Devemos notar que os tempos de spikes anteriores tfi dafuncao ui(t) tambem sao funcoes de dkhi, portanto ao deriva-la temos:

∂ui(tgi )

∂dkhi= −

∑tfi ∈Fi

∂η(t)

∂t(tgi − t

fi )∂tfi∂dkhi

−∑tph∈Fh

wkhi∂ε(t)

∂t(tgi − t

ph − d

khi) (4.53)

Onde expandimos ∂tfi∂dkhi

:

∂tfi∂dkhi

=∂tfi

∂ui(tfi )

∂ui(tfi )

∂dkhi(4.54)

Que e recursivo e deve ser calculado da mesma maneira que 4.47. Desta forma,chegamos ao ajuste de atrasos entre neuronios de camadas H e I:

62

Page 63: Aprendizado Supervisionado para Redes Neurais Pulsadas sem …monografias.poli.ufrj.br/monografias/monopoli10011211.pdf · 2014-08-26 · Aprendizado Supervisionado para Redes Neurais

∆dkhi = β∑tgi∈Fi

δgi

∑tph∈Fh

wkhi∂ε(t)

∂t(tgi − t

ph − d

khi) +

∑tfi ∈Fi

∂η(t)

∂t(tgi − t

fi )∂tfi∂dkhi

(4.55)

4.7.1. Comparacoes

Para testar o MSP com ajuste de atrasos, decidimos abordar novamente o padrao temporaldegrau, visto na secao 4.6.2. Testando a mesma base, mantendo uma arquitetura 1×5×1e α = 0.005, e com uma taxa de ajuste de pesos β = 0.05 (com uma sinapse entredois neuronios), chegamos a um resultado de E = 1.5ms2 na base de treinamento eE = 1.65ms2 na base de teste.

Como, diferentemente da rede com terminais, a nossa rede sem terminais nao foicapaz de chegar a solucao E = 0ms2 alcancada anteriormente, decidimos testar umarede hıbrida, com 3 sinapses entre neuronios, cujos atrasos sao ajustaveis. Utilizando osmesmos parametros anteriores, a rede foi capaz de alcancar uma solucao E = 0ms2 tantopara o conjunto de treinamento quanto de teste apos 535 iteracoes.

Como neste caso tınhamos 3 × 5 = 15 atrasos e pesos a serem ajustados entreas camadas H e I , decidimos por testar tambem uma rede com arquitetura 1 × 15 × 1monosinaptica (com uma sinapse entre neuronios), pois esta possui a mesma quantidadede parametros ajustaveis entre as camadas H e I . Utilizando novamente os mesmosparametros, a rede chegou ao resultado E = 0ms2 em 18 iteracoes. Os resultados podemser comparados nas tabelas 4.18 e 4.19. A coluna de ajustes totais da tabela 4.19 indicao numero total de ajustes feitos durante o processo de aprendizado (ou seja, o numero deiteracoes vezes o numero de parametros ajustaveis), sendo assim a melhor metrica dentreas apresentadas para comparar a performance da rede - quanto menor o seu valor, maisrapido foi o treinamento.

Estes resultados sugerem que a rede obtem uma melhor performance aumentandoo numero de neuronios ocultos em vez de ter uma abordagem hıbrida, pois o numerode iteracoes necessarias para a convergencia da quarta rede e apenas 3.3% do numerode iteracoes necessarias para a terceira rede - onde ambas possuem o mesmo numero deparametros a serem ajustados. Isso de certa forma e intuitivo, pois estamos mantendo onumero de parametros da rede e aumentando o numero de unidades de processamento(neuronios), possibilitando que mais caracterısticas ocultas sejam aprendidas.

Tambem podemos ver que nao e possıvel a simples substituicao de terminais porum modelo monosinaptico sem o aumento de neuronios ocultos, pois a segunda rede foiincapaz de alcancar E = 0ms2, diferentemente do modelo com terminais fixos dado pelaprimeira rede da tabela.

63

Page 64: Aprendizado Supervisionado para Redes Neurais Pulsadas sem …monografias.poli.ufrj.br/monografias/monopoli10011211.pdf · 2014-08-26 · Aprendizado Supervisionado para Redes Neurais

Numero da Rede Arquitetura Sinapses entre neuronios Parametros ajustaveis1 1× 5× 1 16 com atrasos fixos 1602 1× 5× 1 1 com atraso ajustavel 203 1× 5× 1 3 com atrasos ajustaveis 604 1× 15× 1 1 com atraso ajustavel 60

Tabela 4.18. Comparacao entre arquiteturas e tipos diferentes de redes em ter-mos de numero de parametros a serem ajustados.

Numero da Rede Erro no Treinamento Erro no Teste Iteracoes Ajustes Totais1 0ms2 0ms2 904 1446402 1.5ms2 1.65ms2 42 8403 0ms2 0ms2 535 321004 0ms2 0ms2 18 1080

Tabela 4.19. Comparacao entre as redes na solucao do problema de padrao tem-poral.

64

Page 65: Aprendizado Supervisionado para Redes Neurais Pulsadas sem …monografias.poli.ufrj.br/monografias/monopoli10011211.pdf · 2014-08-26 · Aprendizado Supervisionado para Redes Neurais

Capıtulo 5

Conclusao

Neste trabalho, vimos como modelos matematicos inspirados em neuronios biologicosforam utilizados para criar redes neurais artificiais, e investigamos o seu poder computa-cional atraves de problemas reais. Em seguida, vimos como modelos matematicos maisfieis ao neuronio biologico podem ser utilizados em problemas de classificacao e mo-delagem em Redes Neurais Pulsantes, e estendemos o algoritmo MSP (Multiple SpikePropagation) proposto por Booij para termos redes monosinapticas.

Com isso, conseguimos diminuir o numero de parametros ajustaveis em SNNs,acelerar a sua execucao e tambem a sua aprendizagem. Ao compararmos o MSP mono-sinaptico com o MSP classico, obtivemos indicacoes de que redes monosinapticas comum acrescimo no numero de neuronios ocultos possuem uma melhor performance queredes hıbridas ou redes com terminais fixos.

5.1. Trabalhos FuturosEmbora um dos problemas cruciais das Redes Neurais Pulsantes - mais especificamente,o seu tempo de execucao e custo de memoria - tenha sido atacado neste trabalho e umasolucao tenha sido proposta, o problema da codificacao ainda mostra-se muitas vezesobscuro. Apresentamos quatro tipos de codificacao para o modelo neuronal SRM, poremmuitas vezes nao e intuitivo que tipo de codificacao utilizar ou como fazer o mapeamento.

Alem disso, a necessidade de uma pre-codificacao pode prejudicar a operacao darede em tempo real, que e uma das principais vantagens de SNNs. Para isso, poderıamosutilizar uma camada adicional antes da camada de entrada, composta por neuronios domodelo de Izhikevich, pois vemos que eles sao capazes de codificar escalares, vetores estreams em tempo real.

Um outro uso para neuronios pulsantes pode ser visto na area de reservoir com-puting, como em Liquid State Machines ([Maass(2010)]). Embora o comportamento deLSMs ja tenha sido estudado, o seu uso em conjunto com SNNs ainda nao foi plenamenteinvestigado, mesmo ambos os sistemas baseando-se no mesmo comportamento neuronal.

Como vimos neste trabalho, a extensao da regra de ajuste de parametros naoe complexa, portanto poderıamos nao somente estende-la para mais parametros mastambem generaliza-la para redes neurais pulsantes recorrentes, como proposto por Bo-oij no final de sua tese.

65

Page 66: Aprendizado Supervisionado para Redes Neurais Pulsadas sem …monografias.poli.ufrj.br/monografias/monopoli10011211.pdf · 2014-08-26 · Aprendizado Supervisionado para Redes Neurais

Finalmente, outras abordagens para o ajuste de parametros podem ser exploradas,como o uso de algoritmos geneticos (como por exemplo em [Stromatias(2011)]).

ReferenciasMark F. Bear, Barry W. Connors, and Michael A. Paradiso. Neurociencias: Desvendando

o Sistema Nervoso. artmed, 2nd edition, 2006.

S. M. Bohte, H. L. Poutre, and J. N. Kok. Error-backpropagation in temporally encodednetworks of spiking neurons. Neurocomputing, 48, 2002.

Sander Bohte. Spiking neural networks. Master’s thesis, Universiteit Liden, 2003.

Olaf Booij. Temporal pattern classification using spiking neural networks. Master’s thesis,Universiteit van Amsterdam, 2004.

M. L. Brandao. Introducao a Neurociencia. Addison-Wesley, 15th edition, 1984.

A.E.; W.F. Denham; S.E. Dreyfus Bryson. Optimal programming problems with inequa-lity constraints. American Institute of Aeronautics and Astronautics, 11, 1963.

Natanael Nunes de Moura. Deteccao e classificacao de sinais de sonar passivo usandometodos de separacao cega de fontes. Master’s thesis, Universidade Federal do Riode Janeiro, 2013.

S. Russel e P. Norvig. Artificial Intelligence: A Modern Approach. Addison-Wesley, 15thedition, 1984.

Kaplan e Sadock. Compendio de Psiquiatria. Addison-Wesley, 15th edition, 1984.

Mark Eastaway, Akshay Dayal, John Steinbauer, and Angela Qian. Blind source se-paration via ica: Introduction and background. http://cnx.org/content/m15702/latest/?collection=col10503, 2007. Acessado: 24-05-2014.

Sepehr Eskandari. Physiology of the nervous system. http://www.physiologyweb.com/lecture_notes/neuronal_action_potential/neuronal_action_potential.html, 2012. Acessado:26-05-2014.

Alexandre G. Evsukoff. Inteligencia Computacional em Mineracao de Dados: Funda-mentos e Aplicacoes, 2014.

S. O. Haykin. Neural Networks: A Comprehensive Foundation. Addison-Wesley, 15thedition, 1984.

A. L. Hodgkin and A. F. Huxley. A quantitative description of membrane current and itsapplication to conduction and excitation in nerve. The Journal of Physiology, 117,1952.

E. M. Izhikevich. Which model to use for cortical spiking neruons? IEEE Transactionson Neural Networks, 15, 2004.

Eugene M. Izhikevich. Simple model of spiking neurons. IEEE, 14, 2003. Versaoeletronica da figura e autorizacao de uso disponıveis gratuitamente em www.izhikevich.com.

Eugene M. Izhikevich. Dynamical Systems in Neuroscience: The Geometry of Excitabilityand Bursting. MIT Press, 1st edition, 2007.

66

Page 67: Aprendizado Supervisionado para Redes Neurais Pulsadas sem …monografias.poli.ufrj.br/monografias/monopoli10011211.pdf · 2014-08-26 · Aprendizado Supervisionado para Redes Neurais

Wolfgang Maass. Networks of Spiking Neurons: The Third Generation of Neural NetworkModels, 1997.

Wolfgang Maass. Liquid State Machines: Motivation, Theory, and Applications., 2010.

Jennifer Mangels. Mind, brain and behavior course. http://www.columbia.edu/cu/psychology/courses/1010/mangels/, 2003. Acessado: 24-05-2014.

W. McCulloch and W. Pitts. A logical calculus of the ideas immanent in nervous activity.Bulletin of Mathematical Biophysics, 7, 1943.

Marvin Minsky and Seymour Papert. Perceptrons: an Introduction to ComputationalGeometry. 1969.

F. Rosenblatt. Principles of Neurodynamics: Perceptrons and the Theory of Brain Me-chanisms. Spartan Books, 1962.

Jonathan Richard Shewchuk. An Introduction to the Conjugate Gradient Method Withoutthe Agonizing Pain, 1994.

Evangelos Stromatias. Developing a supervised training algorithm for limited precisionfeed-forward spiking neural networks. Master’s thesis, University of Liverpool,2011.

67