síntese de estruturas bio-inspiradas baseada em redes de

Propaganda
JEFERSON FIGUEIREDO CHAVES
SÍNTESE DE ESTRUTURAS BIO-INSPIRADAS
BASEADA EM REDES DE NEURÔNIOS
PULSANTES
Belo Horizonte – MG
Dezembro de 2007
JEFERSON FIGUEIREDO CHAVES
SÍNTESE DE ESTRUTURAS BIO-INSPIRADAS
BASEADA EM REDES DE NEURÔNIOS
PULSANTES
Dissertação apresentada ao Curso de
Mestrado em Modelagem Matemática
e Computacional do Centro Federal de
Educação Tecnológica de Minas Gerais,
como requisito parcial à obtenção do título
de Mestre em Modelagem Matemática e
Computacional.
Linha de pesquisa:
Sistemas Inteligentes
Orientador:
Prof. Dr. Henrique Elias Borges
Centro Federal de Educação Tecnológica de Minas Gerais
Co-orientador:
Prof. Dr. José Luiz Acebal Fernandes
Centro Federal de Educação Tecnológica de Minas Gerais
M ESTRADO EM M ODELAGEM M ATEMÁTICA E C OMPUTACIONAL
C ENTRO F EDERAL DE E DUCAÇÃO T ECNOLÓGICA DE M INAS G ERAIS
D IRETORIA DE P ESQUISA E P ÓS -G RADUAÇÃO
Belo Horizonte – MG
Dezembro de 2007
Folha de aprovação. Esta folha será fornecida pelo
Programa de Pós-Graduação.
Dedico este trabalho às mulheres
que, sendo exemplos de dedicação
e trabalho, sempre me motivaram:
Maria Irene, Jusselma e Ana Beatriz.
Agradecimentos
Aos meus orientadores, Prof. Dr. Henrique Elias Borges e Prof. Dr. José Luiz
Acebal que me ajudaram a entender um pouco mais o que é fazer pesquisa. Agradeço
pelo orientação e conselhos dados nos momentos tempestuosos que, sem dúvida, me
deixaram mais tranquilo nos momentos difíceis. Agradeço também pela autonomia e
liberdade que tive. Vi que este presente não tem preço e desta maneira pude aprender
muito.
Ao amigo Bruno André Santos com quem publiquei alguns artigos e que tanto me
ajudou no desenvolvimento deste trabalho.
Ao amigo Geraldo Magela com quem tanto discuti e estudei em diversos momentos.
À minha família que sempre me incentivou e me apoiou.
À Ana Beatriz e sua família, que hoje considero minha também, pelo apoio e incentivo constante.
Aos meus amigos do LSI que contribuíram com sua amizade e com palavras de
incentivo.
À CAPES pelo apoio financeiro individual recebido.
Ao CNPq pelo apoio financeiro ao projeto ARTÍFICE.
Ao Laboratório de Sistemas Inteligentes (LSI) pelos recursos disponibilizados para
realização deste trabalho.
Ao Centro Federal de Educação Tecnológica de Minas Gerais (CEFET-MG).
“Seeing our understanding of nature as a mathematical
construction has fundamentally different implications
from seeing it as an empirical synthesis.
One view identifies us as masters of the universe;
the other identifies the universe as the master of us.”
Robert Laughlin
Resumo
O problema de síntese de estruturas neuronais de coordenação de agentes autônomos, i.e., projetar um conjunto de estruturas neuronais de maneira a possibilitar o surgimento de comportamentos não pré-programados, é um grande desafio.
Somando-se a este esforço de pesquisa, o presente trabalho propõe a síntese de
um conjunto de micro-circuitos de neurônios pulsantes, cada qual projetado para desempenhar uma função específica e bem definida. Além disso, estes micro-circuitos
devem ser acoplados entre si de modo a possibilitar a emergência de coordenações
sensório-motoras. Para tanto, os diversos modelos de neurônios pulsantes disponíveis na literatura foram revisados. Para implementar os micro-circuitos propostos foi
escolhido o modelo de neurônio pulsante de IZHIKEVICH (2003), basicamente devido
à diversidade de fenômenos que ele modela, bem como à sua facilidade de implementação. O acoplamento entre os micro—circuitos foi implementado via projeções de um
micro-circuito neuronal sobre outro, i.e., conexões sinápticas entre neurônicos pertencentes a diferentes circuitos. No entanto, tais sinapses incluem efeitos de evanescência da corrente no axônio bem como atrasos de condução axonal. Considerando a
dificuldade de se realizar um estudo analítico rigoroso do conjunto de neurônios, foi
utilizado métodos de simulação computacional para avaliar o impacto dos diversos parâmetros do sistema na dinâmica dos micro-circuitos neuronais e, assim, estabelecer
os valores mais adequados destes parâmetros. Como resultado, foi possível mostrar
que, mediante uma parametrização adequada da dinâmica dos neurônios individuais e dos mecanismos de acoplamento neuronal, pode-se coordenar com sucesso o
comportamento de um robô de maneira a evitar a colisão com obstáculos.
PALAVRAS-CHAVE: Neurônios Pulsantes; Micro-Circuitos Neuronais; Neurocomputação; Computação Bio-Inspirada.
Abstract
One of the most challenging problems in bio-inspired autonomous agents is the
synthesis of artificial neuronal structures in a way that becomes possible to observe
the emergence of behaviours that were not embedded into the agent. Joining this effort of research, the present work considers the synthesis of a set of micro-circuits of
spiking neurons, each one playing a well defined and specific function. Moreover, in
order to provide for the emergence of sensory-motor coordination, these micro-circuits
should be properly coupled to each other. In such a way, the literature concerning
spiking neurons models was reviewed. The IZHIKEVICH (2003) spiking neuron model
was then chosen to implement the proposed micro-circuits, mainly due to the diversity of phenomena it models as well as its computational simplicity and easiness of
implementation. The coupling of different neuronal micro-circuits was implemented via
projections of one micro-circuit onto another one, i.e., synapses involving two neurons
belonging to distinct circuits. However, such synaptic coupling model includes effects
due to axonal current evanescence and also due to axonal conduction delay. Faced
to the difficulty of studying this kind of system from an analytical perspective, some
computational simulation was carried out aiming to establish the impact of several systems parameters on the micro-circuits dynamics. As a result, it was shown that, under
a suitable parameterization of individual neurons as well as of the synaptic coupling
between micro-circuits, it was possible to successfully coordinate the behaviour of a
simulated navigational robot to prevent its collision with obstacles.
PALAVRAS-CHAVE: Spiking Neurons; Neuronal Micro-Circuits; Neurocomputation; Bio-Inspired Computation.
Lista de Figuras
1.1 Diagrama de blocos da arquitetura ARTÍFICE. . . . . . . . . . . . . .
p. 16
1.2 Arquitetura ARTÍFICE operando em um robô simulado. . . . . . . . .
p. 17
2.1 Neurônio típico. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 23
2.2 Potencial de ação e potenciais pós-sinápticos, onde u representa o
(f)
potencial elétrico da membrana celular e t j
o tempo de disparo do
neurônio pré-sináptico (neurônio j). . . . . . . . . . . . . . . . . . . .
p. 24
2.3 Sistema Tálamo-Cortical. . . . . . . . . . . . . . . . . . . . . . . . . .
p. 26
2.4 Segundo arranjo topológico. . . . . . . . . . . . . . . . . . . . . . . . .
p. 27
2.5 Sistema Valoracional. . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 28
3.1 Máquina de estado liquido. . . . . . . . . . . . . . . . . . . . . . . . .
p. 35
3.2 Robô navegando no ambiente com obstáculos. . . . . . . . . . . . . .
p. 36
3.3 Morfologia do agente. . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 37
4.1 Espaço de estados do modelo de Izhikevich. . . . . . . . . . . . . . .
p. 42
4.2 Evolução temporal do modelo de Izhikevich. . . . . . . . . . . . . . . .
p. 42
4.3 Diagrama de bifurcação do modelo de Izhikevich. . . . . . . . . . . . .
p. 44
4.4 Impacto de diferentes constantes de tempo de decaimento do estímulo sináptico. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 46
4.5 Função de modificação do peso sináptico através do STDP. . . . . . .
p. 47
5.1 Anatomia das matrizes do sistema dinâmico. . . . . . . . . . . . . . .
p. 49
5.2 Detector de Coincidências. . . . . . . . . . . . . . . . . . . . . . . . .
p. 50
5.3 Robô simulado e seus sensores. . . . . . . . . . . . . . . . . . . . . .
p. 51
5.4 Sistema de coordenação sensório-motora. . . . . . . . . . . . . . . .
p. 52
5.5 Trajeto percorrido pelo robô no ambiente simulado. . . . . . . . . . . .
p. 53
5.6 Percurso utilizado para análise da dinâmica dos componentes internos. p. 54
5.7 Dinâmica dos sonares e do motor do robô. . . . . . . . . . . . . . . .
p. 55
5.8 Dinâmica dos neurônios N1 , N2 , e N5 . . . . . . . . . . . . . . . . . . . .
p. 56
5.9 Dinâmica dos neurônios N5 , N6 , N9 e N8 . . . . . . . . . . . . . . . . . .
p. 56
5.10 Outro trajeto onde o robô foi testado. . . . . . . . . . . . . . . . . . . .
p. 57
Lista de Abreviaturas e Siglas
ANN Artificial Neural Networks (Redes Neurais Artificiais)
ASCS Agentes de software cognitivos situados
CEFET-MG Centro Federal de Educação Tecnológica de Minas Gerais
GPSI Grupo de Pesquisa em Sistemas Inteligentes
LSI Laboratório de Sistemas Inteligentes
SNN Spiking Neurons Networks (Redes de Neurônios Pulsantes)
TNGS Theory of Neuronal Group Selection (Teoria de Seleção dos Grupos
Neuronais)
Sumário
1 Introdução
p. 13
1.1 A arquitetura ARTÍFICE . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 15
1.2 Relevância do trabalho para a área de Sistemas Inteligentes . . . . .
p. 17
1.3 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 18
1.4 O escopo do trabalho de pesquisa . . . . . . . . . . . . . . . . . . . .
p. 18
1.5 Metodologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 19
1.6 Organização da dissertação . . . . . . . . . . . . . . . . . . . . . . . .
p. 20
2 Alguns aspectos neurocientíficos do sistema nervoso
p. 21
2.1 Estrutura neuronal . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 22
2.2 Grupos, Circuitos e Sistemas neuronais . . . . . . . . . . . . . . . . .
p. 25
2.3 Integração neural . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 28
3 Aspectos selecionados da modelagem de sistemas neurais biologicamente plausíveis
p. 31
3.1 Alguns modelos computacionais envolvendo sistemas biologicamente
plausíveis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 34
3.2 Neurônios pulsantes . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 37
3.3 Considerações finais . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 38
4 Estudo dos Modelos matemáticos de neurônios e mecanismos de
acoplamento neuronal
p. 40
4.1 Modelo de neurônio pulsante de Izhikevich . . . . . . . . . . . . . . .
p. 40
4.2 Sinapses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 45
4.3 Spike-timing-dependent plasticity, STDP . . . . . . . . . . . . . . . . .
5 Estruturas propostas
p. 47
p. 48
5.1 Detector de Coincidências . . . . . . . . . . . . . . . . . . . . . . . . .
p. 49
5.2 Circuito sensório-motor . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 51
5.2.1 Modelo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 51
5.2.2 Analise e discussão do resultados . . . . . . . . . . . . . . . .
p. 53
6 Conclusão
p. 58
6.1 Principais contribuições deste trabalho . . . . . . . . . . . . . . . . . .
p. 58
6.2 Dificuldades encontradas . . . . . . . . . . . . . . . . . . . . . . . . .
p. 59
6.3 Perspectivas de trabalhos futuros . . . . . . . . . . . . . . . . . . . . .
p. 59
6.4 Considerações finais . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 60
Referências Bibliográficas
p. 61
Anexo A -- Algoritmo principal
p. 65
Anexo B -- Algoritmo de coordenação do robô
p. 69
13
1
Introdução
A concepção de sistemas genuinamente inteligentes, i.e., aqueles que apresentam
um grau razoável de autonomia, é uma tarefa desafiadora (PFEIFER, 2001), (CLARK,
1998), (CLANCEY, 1997). Neste contexto, usa-se o termo autonomia no sentido dado
por Haselager (2004). Segundo ele, entende-se por agentes autônomos aqueles que
são capazes de operar sob todas as condições razoáveis sem recorrer a um projetista
externo, operador ou controlador, e são capazes de lidar com eventos imprevistos em
um ambiente desestruturado em busca de suas metas.
No intuito de dotar agentes artificiais de tais habilidades, pesquisas recentes têm
adotado como caminho a busca de inspiração nos seres vivos, mais especificamente
naqueles que possuem sistema nervoso, visto sua reconhecida autonomia e adaptabilidade.
Evidências experimentais demonstram que a presença do sistema nervoso é fortemente ligada a um repertório comportamental amplo, ou seja, expande de maneira
dramática as possibilidades de interação do ser com seu meio (MATURANA; VARELA,
2004). Um exemplo claro do papel desempenhado pelo sistema nervoso é apresentado por Adams (2005), que usou os platelmintos do grupo dos policládidos (Polyclad
flatworms) como objeto de inspiração em seu trabalho:
Os platelmintos são um caso interessante por conta do seu primitivo sistema nervoso composto por aproximadamente 2000 neurônios. Estas criaturas são capazes de realizar tarefas críticas para a sobrevivência, mesmo
quando seu sistema nervoso é completamente removido. Quando apresentados a um pouco de camarões, platelmintos descerebrados agarram o
alimento com a parte do corpo mais próxima e a colocam imediatamente
em suas bocas. Entretanto, quando um destes vermes com o sistema nervoso intacto é apresentado à comida, ele agarra o alimento com a porção
mais próxima do seu corpo e dobra-se em torno do mesmo, agarra-o com
1 Introdução
14
a porção anterior do seu corpo e, então, coloca-o na boca. Um verme intacto apenas consome uma quantidade finita de alimento. Uma vez que
seu intestino está cheio, seu habito alimentar não é mais disparado pela
apresentação de alimento. Entretanto, um verme descerebrado não pára
a alimentação depois da saciedade e continua tentando colocar comida na
boca mesmo depois que o tubo digestivo esteja completamente cheio.
Em organismos mais recentes na árvore evolutiva este papel não é diferente. Pelo
contrário, com estruturas maiores e mais sofisticadas, o sistema nervoso expande o
domínio de condutas possíveis, ao dotar o organismo de uma estrutura espantosamente versátil e plástica. Mais especificamente, o mecanismo-chave é o acoplamento
das superfícies sensoriais e motoras, mediante uma rede de neurônios cuja configuração pode ser muito variada (MATURANA; VARELA, 2004).
Apesar de necessário, apenas o sistema nervoso não é suficiente para permitir
o surgimento de comportamentos mais elaborados. Chiel e Beer (1997) destacam
o papel do corpo e do ambiente. Segundo eles, a despeito da maioria dos estudos
de mecanismos de comportamento adaptativo geralmente focarem em neurônios e
circuitos de neurônios, o comportamento depende também das interações entre o
sistema nervoso, corpo e ambiente. A interface entre o sistema nervoso e o corpo
atua de maneira analoga à um filtro: os sistemas nervoso e periférico co-evoluem e
desenvolvem-se conjuntamente criando uma forte complementariedade entre eles. A
estrutura corporal cria restrições e oportunidades para a coordenação neural; realimentações contínuas entre o sistema nervoso, o corpo e o ambiente são essenciais
para um comportamento normal.
Em vista disso, é de grande interesse dotar artefatos de hardware e/ou software de
estruturas que desempenhem o mesmo papel que o sistema nervoso realiza nos seres
vivos que o possuem. Além disso, é fundamental que tais estruturas levem em conta,
na sua concepção, um forte acoplamento com um corpo. Como não se sabe o nível de
realismo necessário para obter comportamentos interessantes (FURBER; TEMPLE,
2007), é desejável a síntese de estruturas flexíveis e eficientes computacionalmente
que permitam a incorporação futura de outros mecanismos caso seja necessário.
Uma das contribuições do grupo de pesquisas em sistemas inteligentes do CEFETMG, GPSI, para a construção de agentes inteligentes artificiais é a arquitetura ARTÍFICE, tema da próxima seção.
1.1 A arquitetura ARTÍFICE
15
1.1 A arquitetura ARTÍFICE
O projeto ARTÍFICE (BORGES, 2002) vem continuamente sendo desenvolvido no
Laboratório de Sistemas Inteligentes do CEFET-MG desde a sua criação. O projeto
em questão trata-se de uma arquitetura para construção de sistemas inteligentes de
propósito geral. Sua primeira versão foi apresentada por Santos (2003), e já era inspirada em organismos com sistema nervoso onde a operação deste último foi inspirada
na TNGS (EDELMAN, 1987). Desde então, outras importantes contribuições foram
dadas à arquitetura, destacando-se a modelagem de um mecanismo de percepçãoem-ação (PIRES, 2005) e a modelagem do processo cognitivo-emocional (CAMPOS,
2006).
Recentemente, foi apresentada por Campos (2006) a última versão da arquitetura.
Neste trabalho, toda a arquitetura constitui um sistema dinâmico discreto, assim como
cada um de seus componentes funcionais que operam por meio de troca de estímulos
(figura 1.1). Também nesta versão, tais componentes da arquitetura apresentam uma
dinâmica de quasi-tempo real visto que utilizam-se de threads como mecanismos para
sua dinâmica temporal.
Entre os trabalhos que estão em desenvolvimento com o propósito de estender
o projeto ARTÍFICE, destaca-se a iniciativa de adequação da arquitetura para operação em robôs reais (SOARES, 2007). Além de proporcionar um forte acoplamento
entre estrutura coordenadora e corpo, este trabalho será especialmente relevante por
ampliar as possibilidades de interação do agente com o mundo e, consequentemente,
permitir também o surgimento de comportamentos mais elaborados. A figura 1.2 apresenta um ambiente 3D onde um robô, operando com a arquitetura, é simulado.
Um dos problemas da implementação atual é a ausência de plasticidade, ou seja,
a estrutura sempre realiza certos tipos pré-definidos de correlações entre seu estado
e os estímulos que recebe. Com esta estrutura inata, hardwired e sem plasticidade, o
agente não pode ser considerado autônomo. Além disso e pelo mesmo motivo, exibe
um comportamento pobre em comparação com os animais que possuem sistema nervoso.
Desde a terceira versão da arquitetura (SANTOS et al., 2004) já se havia aventado a possibilidade de uso de redes neurais auto-organizáveis como mecanismo da
dinâmica temporal dos blocos funcionais. Em vista disto, paralelamente ao desenvolvimento da arquitetura, pesquisas com redes GBSB, generalized-brain-state-in-a-box,
1.1 A arquitetura ARTÍFICE
16
Figura 1.1: Diagrama de blocos da arquitetura ARTÍFICE.
Fonte: Campos (2006).
(HUI; ZAK, 1992), foram desenvolvidas no GPSI (GOMES; BRAGA; BORGES, 2005),
(GOMES; BRAGA; BORGES, 2006), (OLIVEIRA, 2006), (REIS et al., 2006). Estes
trabalhos produziram inovações na área de acoplamento de redes dinâmicas assim
como resultados relevantes em aplicações de memória associativas hierárquicas.
A despeito dos bons resultados, as redes GBSB não se apresentam adequadas
ao atual referencial teórico. O principal ponto é que o sistema nervoso real pode ser
entendido como um sistema físico aberto e distante do equilíbrio1 e, em contrapartida,
as redes GBSB operam em direção a minimização de energia e portanto só produzem uma "resposta" quando convergem para algum atrator, ou seja, quando vão para
o equilíbrio. Esta lacuna, i.e., a necessidade de um novo tipo de estrutura para os
blocos funcionais, motivou fortemente o presente trabalho. No intuito de solucionar tal
problema, buscou-se modelos de redes neurais que fossem adequados ao referencial
já apresentado e que permitissem também o emprego dos princípios de acoplamento
1 mais
detalhes nos capítulos 2 e 3
1.2 Relevância do trabalho para a área de Sistemas Inteligentes
17
Figura 1.2: Arquitetura ARTÍFICE operando em um robô simulado.
Fonte: Soares (2007).
já desenvolvidos para as redes GBSB.
1.2 Relevância do trabalho para a área de Sistemas Inteligentes
As redes neurais artificiais possuíam originalmente o propósito de colaborar na
compreensão do funcionamento do sistema nervoso, através de elementos computacionais primitivos que foram baseados nas propriedades neuronais que se conheciam
naquela época (1943) (ANDERSON, 1995). Desde então, a área de pesquisa em
redes neurais se consolidou e amadureceu, passando a ter um foco interdisciplinar,
deixando de ter necessariamente uma preocupação apenas com a operação do sistema nervoso real, contribuindo, também, com a coordenação de inúmeros processos
industriais (MEIRELES; ALMEIDA; SIMOES, 2003).
Neste período, a neurociência avançou de maneira a esclarecer alguns pontos
relativos à operação de mecanismos fundamentais no processo cognitivo dos seres
vivos, porém apenas recentemente estas contribuições estão sendo usadas para compor sistema de coordenação de agentes inteligentes. Sendo assim, o presente traba-
1.3 Objetivos
18
lho se destaca por buscar contribuir ainda mais com a área de sistemas inteligentes
através do uso de idéias resultantes de pesquisas recentes da neurociência.
Este trabalho também se apresenta relevante no âmbito do grupo de pesquisas
em sistemas inteligentes do CEFET-MG, GPSI, porque propõe uma estrutura eficiente
e flexível que poderá ser incorporada na arquitetura ARTÍFICE, apresentada na seção
1.1. O uso das estruturas propostas permitirá o encapsulamento da complexidade inerente as redes, além de diminuir a distância entre os correlatos neurais e os inúmeros
componentes da arquitetura desenvolvidos e em desenvolvimento.
1.3 Objetivos
Este trabalho tem por objetivo geral contribuir para estabelecer uma nova perspectiva para a síntese de redes neurais biologicamente plausíveis adequadas para
agentes inteligentes com uma fundamentação teórica consistente.
Especificamente, o trabalho atual tem os seguintes objetivos:
• compor um referencial teórico consistente, adequado ao que se pretende contemplar sobre síntese de sistema nervoso artificial, redes neurais biológicas e
sistemas dinâmicos;
• identificar e desenvolver, com base no referencial teórico obtido, alguns modelos
de mecanismos neurais importantes para o processo cognitivo;
• propor uma metodologia para simulação co-evolutiva das estruturas propostas;
• implementar e validar, através da realização de alguns experimentos, um mecanismo de coordenação sensório-motora com redes de neurônios pulsantes
utilizado o modelo de neurônio escolhido;
1.4 O escopo do trabalho de pesquisa
Inúmeros trabalhos têm sido desenvolvidos, baseados em fortes evidências experimentais, com o propósito de sugerir substratos neurais da cognição (SETTINGS,
2000), (SHERMAN, 2006). Trabalhos desta natureza têm contribuído fortemente com
o desenvolvimento de completos arcabouços conceituais de modo a levar em conta
1.5 Metodologia
19
a já citada influência do corpo e do ambiente no processo cognitivo (LEWIS, 2005),
(SPORNS, 2003). Estas iniciativas são a fonte de inspiração deste trabalho. Tendo
em vista este referencial, onde comportamentos complexos surgem de relações bem
definidas em cada escala de organização, a preocupação do presente trabalho é reproduzir princípios organizacionais na escala de neurônios pontuados na literatura
como importantes para o surgimento da cognição.
Alguns trabalhos já foram desenvolvidos no GPSI e outros encontram-se em desenvolvimento de maneira a apresentar indicações de como as estruturas devem ser
usadas e estabelecendo quais relações devem ser adotadas. São estes trabalhos
bem como a evolução deles que se beneficiarão das estruturas propostas aqui, em
especial do meio de acoplamento proposto.
Sendo assim, a preocupação deste trabalho é conceber estruturas biologicamente
plausíveis, na escala de neurônios, que operem em tempo real e que desempenhem
funções específicas relativas à integração temporal no sistema nervoso. A maneira
como ocorrem as transduções relacionadas às capacidades sensoras e efetoras específicas são tratadas aqui de maneira simplista mas poderão ser pesquisada em
trabalhos futuros.
1.5 Metodologia
O desenvolvimento deste trabalho envolveu conceitos e técnicas que perpassam
várias áreas do conhecimento, fazendo-se necessário o levantamento bibliográfico
para sua fundamentação e o estudo das tecnologias envolvidas para a modelagem
e implementação do mesmo. Estas etapas são apresentadas a seguir:
1. revisão da literatura nas áreas da neurociência e sistemas inteligentes, no que
diz respeito às redes neurais naturais e artificiais;
2. construção de uma abstração adequada e coerente dos processos neurais, que
unifique, tanto quanto possível, os pontos de vista da neurobiologia e as necessidades da área de sistemas inteligentes;
3. realização de um estudo matemático-computacional do modelo de neurônio proposto por Izhikevich (2003), dos modelos de sinapse e do mecanismo de plasticidade implementado, spike-timing-dependent plasticity;
1.6 Organização da dissertação
20
4. construção em software de alguns micro-circuitos utilizando os mecanismos descritos na etapa anterior;
5. elaboração e execução de experimentos computacionais de maneira a validar a
proposta;
6. realização de analises críticas quanto aos resultados obtidos.
Para a realização deste trabalho foi utilizada a linguagem de programação do Matlab 7.0.4.352 (R14) Service Pack 2.
1.6 Organização da dissertação
Este trabalho está dividido em seis capítulos, sendo que o segundo será utilizado
para detalhar alguns aspectos organizacionais e operacionais do sistema nervoso,
pois o entendimento destes conceitos são fundamentais para a compreensão do restante do trabalho.
No terceiro capítulo serão apresentados alguns pontos referentes à modelagem
de sistemas neurais biologicamente plausíveis. Além disto, será feita também uma
análise de trabalhos correlatos no âmbito da área de Sistemas Inteligentes, visando
contextualizar o presente trabalho.
No quarto capítulo será realizado um estudo matemático e computacional dos mecanismos usados para compor os micro-circuitos: modelo do neurônio adotado, modelo da sinapse e de seu mecanismo de plasticidade.
O quinto capítulo é dedicado à apresentação e validação dos micro-circuitos e
mecanismos propostos. Por fim, no sexto e último capítulo conclui-se este trabalho de
pesquisa.
21
2
Alguns aspectos
neurocientíficos do sistema
nervoso
Desde o trabalho dos primeiros neuroanatomistas, o cérebro humano desperta a
curiosidade acerca de seu funcionamento. Hoje alguns mecanismos já são bem conhecidos, mas uma imagem completa do funcionamento deste órgão ainda está longe
de ser compreendida. O cérebro continua a ser "um mundo composto de numerosos continentes não explorados e grandes extensões de territórios desconhecidos"1
comparado com outros campos clássicos das ciências naturais (YEUNG, 2005).
Este desconhecimento se deve, fundamentalmente, às condições restritivas nas
quais os experimentos são realizados. Boa parte do conhecimento adquirido advém
de pesquisas baseadas em lesões de regiões do sistema nervoso. Além disso, pesquisas in vitro também colaboraram com o avanço da neurociência, apesar de eliminarem
a influência do locus no objeto de estudo. Apenas recentemente foram desenvolvidas
técnicas eficientes de registro da atividade de neurônios individuais com dano mínimo
ao tecido e também técnicas de imageamento com boas resoluções espaciais e temporais.
Como já apontado na introdução deste trabalho, o sistema nervoso tem um papel
importante no surgimento de comportamentos elaborados. Este fato se dá, fundamentalmente, em conseqüência das características das células que o compõe e também
da maneira como elas se organizam. Desta forma, as seções subseqüentes têm como
propósito apresentar princípios de organização de algumas escalas de observação do
sistema nervoso baseado em obras da neurociência, maiores detalhes encontram-se
em Lent (2001), LeDoux (2002) e Edelman e Tononi (2001).
Sendo assim, na seção 2.1 será apresentada um pouco da fenomenologia na es1 “a
world consisting of a number of unexplored continents and great stretches of unknown territory”,
frase atribuída a Ramón y Cajal (1852-1934), histologista e neuroanatomista espanhol.
2.1 Estrutura neuronal
22
cala dos neurônios. Em seqüência serão caracterizados os micro-circuitos e grupos
neuronais na seção 2.2, e, por fim, na seção 2.3 será apresentado como ocorre a coordenação e integração entre as estruturas neurais de maneira a permitir o surgimento
de comportamentos complexos.
2.1 Estrutura neuronal
Os principais constituintes do tecido nervoso são basicamente dois tipos de células: os neurônios e as células gliais. O primeiro, desde sua descoberta, sempre
teve papel de destaque, sendo considerado a unidade básica do sistema nervoso e
o segundo, uma célula responsável apenas por realizar funções de agregação e sustentação entre os neurônios. O conceito não está de todo errado, mas sabe-se hoje
que as células gliais apresentam um papel mais fundamental e complexo do que este
(LENT, 2001).
Os neurônios têm como característica uma diferença de potencial elétrico sobre
a membrana celular, na ausência de estímulos a tensão é negativa. Isso ocorre em
conseqüência da diferença de concentração de certos íons, e.g., Na+ , Cl− , K+ , Ca++ ,
entre o interior da célula e o meio extracelular. Além deste importante fato, podese considerar que o que torna especial o papel do neurônio são suas características
quanto à sua forma e quanto à maneira como ele produz e recebe estímulos de outras
células.
Maturana e Varela (2004) caracterizam de maneira geral os neurônios quanto à
forma:
Eles se distinguem por terem ramificações de formas específicas que
se estendem por enormes distâncias, da ordem de dezenas de milímetros
no caso dos maiores. Essa característica neuronal universal, presente em
todos os organismos dotados de sistema nervoso, determina o modo específico pelo qual este participa dos organismos multicelulares, que integra ao
pôr em contato elementos celulares situados em muitas partes diferentes
do corpo.
Mais especificamente, neurônios possuem três partes principais, figura 2.1. A primeira é o corpo celular ou soma, que está envolvida em importantes funções básicas
2.1 Estrutura neuronal
23
como armazenamento do material genético e produção de proteínas e de outras moléculas necessárias para a sobrevivência da célula. O corpo celular realiza nos neurônios o mesmo trabalho feito nas outras células. A principal diferença anatômica está
nos anexos que os neurônios possuem, que são as outras duas partes, os dendritos
e o axônio.
Figura 2.1: Neurônio típico.
Fonte: Wikipedia.
Os dendritos2 , numerosos prolongamentos ramificados múltiplas vezes como pequenos arbustos, são as estruturas pelas quais o neurônio recebe estímulos provenientes dos demais neurônios a que se associa. O grande número de dendritos é útil
à célula nervosa, pois permite multiplicar a área disponível para receber os estímulos
aferentes. Estes são recebidos nos dendritos através de receptores sensíveis a determinadas substâncias, chamadas neurotransmissores, que provocam a abertura ou
fechamento de canais iônicos permitindo ou bloqueando o trânsito de íons específicos
e provocando assim variações no potencial elétrico da célula.
O axônio é o prolongamento mais longo e fino, ramificando-se pouco no trajeto e
muito na sua porção terminal. Cada neurônio tem apenas um, e é por ele que saem
os estímulos eferentes, pulso conhecido como potencial de ação, dirigidos às outras
células de um circuito neural. A propagação de um potencial de ação termina na
porção final do axônio estimulando as vesículas sinápticas, que por sua vez liberam
neurotransmissores em botões de contato, as sinapses, com os dendritos das células
2 do
grego: "pequenos ramos de árvore"
2.1 Estrutura neuronal
24
seguintes.
Há dois tipos de sinapses, as elétricas3 , que são aquelas onde existe o contato
direto entre entre as membranas da célula que produz o estímulo (pré-sináptica) e da
que recebe (pós-sináptica), e as sinapses químicas, onde há a chamada fenda sináptica entre as duas células. O primeiro tipo tem como principal função a sincronização
de neurônios, porém é pouco modulável e sua presença é rara em animais vertebrados. O segundo tipo, mais comum, são as sinapses químicas, que podem receber
outras influências permitindo a modulação do estímulo.
Dado estas informações, o processo de comunicação entre os neurônios pode ser
sintetizado assim:
Um neurônio é perturbado por inúmeros estímulos excitatórios e inibitórios. O
efeito observado na tensão elétrica da membrana são despolarizações (EPSP, excitatory postsynaptic potential) e hiperpolarizações (IPSP, inhibitory postsynaptic potential), respectivamente, figura 2.2. Dependendo da intensidade e da freqüência com
que estas perturbações são recebidas, um potencial de ação é disparado na fronteira
entre o corpo celular e o axônio. Este pulso propaga-se através do último provocando
a liberação de neurotransmissores na fenda sináptica e assim fechando o ciclo perturbando outra célula.
Figura 2.2: Potencial de ação e potenciais pós-sinápticos, onde u representa o poten(f)
cial elétrico da membrana celular e t j o tempo de disparo do neurônio pré-sináptico
(neurônio j).
Fonte: Adaptado de Gerstner e Kistler (2002).
3 conhecidas
como gap junctions
2.2 Grupos, Circuitos e Sistemas neuronais
25
2.2 Grupos, Circuitos e Sistemas neuronais
Sabe-se hoje que o cérebro humano tem aproximadamente 100 bilhões de neurônios que se ligam em um complexo padrão de conexão. A despeito disto, em níveis
mais altos de ordem anatômica é possível distinguir importantes princípios de organização. Deste modo serão apresentados três arranjos topológicos que segundo Edelman e Tononi (2001) parecem ser essenciais na compreensão da função global do
cérebro.
O primeiro arranjo é uma ampla e densa malha tridimensional segregada, mas
também, integrada num conjunto de circuitos constituindo o chamado sistema tálamocortical. Uma das partes que compõe este sistema é o tálamo, estrutura encontrada
no profundo interior do cérebro, que recebe entradas sensoras e outros estímulos internos. O tálamo é reciprocamente conectado ao córtex cerebral, lâmina retorcida
que cobre a superfície do cérebro. O córtex por sua vez é dividido em seis camadas,
cada uma enviando e recebendo conjuntos específicos de entradas e saídas. O córtex e o tálamo são tradicionalmente subdivididos num grande número de áreas que
desempenham diferentes funções. Esta segregação funcional pode ser vista em muitas escalas espaciais diferentes. Exemplo disso é que a porção posterior do sistema
tálamocortical é dedicada à percepção, enquanto a parte frontal é dedicada à ação e
planejamento. Muitas destas áreas são montadas como mapas: neurônios vizinhos
de uma área conectam-se com neurônios vizinhos de outra. Diferentes áreas corticais
e seus núcleos talâmicos associados são também especializados: algumas destas
áreas tratam de estímulos visuais, enquanto outras tratam de estímulos acústicos e
outras de estímulos táteis. Observando apenas uma destas áreas, o sistema visual
por exemplo, vê-se que diferentes regiões realizam diferentes submodalidades: algumas com a forma visual, outras com a cor, outras com movimentos, e assim por diante.
Em cada uma destas áreas, diferentes grupos de neurônios ocupam-se preferencialmente com aspectos específicos de um estímulo.
Apresentada a segregação do sistema tálamo-cortical é importante caracterizar
como se dá a integração funcional neste sistema. A maioria destes grupos neuronais
são conectados reciprocamente em certos padrões. Neurônios de um mesmo grupo
numa dada localização são ligados fortemente, desta maneira muitos deles respondem simultaneamente quando um estímulo apropriado é apresentado. Grupos neuronais com diferentes localizações, porém com especificidades similares, são preferencialmente conectados uns nos outros. Por exemplo, grupos neuronais que respondem
2.2 Grupos, Circuitos e Sistemas neuronais
26
Figura 2.3: Sistema Tálamo-Cortical.
Fonte: Adaptado de Edelman e Tononi (2001).
a bordas verticais são ligados através de conexões recíprocas muito mais fortemente
do que grupos neuronais que respondem a bordas em diferentes orientações.
Regras similares parecem aplicar-se à outras áreas do córtex, sejam elas dedicadas à percepção ou à ação. Numa escala ainda maior, áreas corticais contêm um
grande número de grupos neuronais que são ligados por caminhos recíprocos, convergentes e divergentes que conectam áreas dispersas à áreas locais e vice-versa.
Estes caminhos são chamados projeções e é por meio deles que ocorre a integração
das funções distribuídas do cérebro. Esta característica é chamada de reentrância
e é por meio dela que uma perturbação em qualquer parte da malha que compõe o
sistema pode ser rapidamente sentida em qualquer outro lugar do sistema.
O segundo arranjo topológico é organizado não como uma malha mas como uma
cadeia de ligações paralelas e unidirecionais que ligam o córtex ao conjunto de suas
estruturas anexas (cerebelo, gânglio basal e hipocampo). O cerebelo encontra-se na
parte posterior do cérebro. Ele é organizado em finas e paralelas microzonas, muitas
das quais recebem conexões do córtex e, depois de um certo número de passos sinápticos, projeta para o tálamo, que por sua vez projeta para o córtex. Tradicionalmente
é considerado que o cerebelo ocupa-se da coordenação e sincronia de movimentos,
apesar do seu envolvimento com certos aspectos da linguagem parecer fundamental.
Outro anexo é conhecido coletivamente como gânglios basais, que consiste em
um conjunto de núcleos profundos no cérebro que recebe conexões de várias partes
do córtex e, através de uma série de passos sinápticos, projeta para o tálamo, que
por sua vez projeta para o córtex. Estes núcleos estão envolvidos no planejamento e
2.2 Grupos, Circuitos e Sistemas neuronais
27
Figura 2.4: Segundo arranjo topológico.
Fonte: Adaptado de Edelman e Tononi (2001).
execução de complexas tarefas motoras e atos cognitivos.
Há ainda outra estrutura anexada ao córtex, o hipocampo, uma alongada estrutura
que se encontra ao longo da borda mais baixa do córtex temporal do cérebro. Entradas
de muitas áreas corticais diferentes são afuniladas no hipocampo, que trata estas
entradas numa série de passos sinápticos e envia projeções de volta para várias das
mesmas áreas corticais. Acredita-se que o hipocampo colabora em muitas funções,
mas ele certamente tem como papel principal a consolidação de memórias de curto
prazo em memórias de longo prazo no córtex.
A despeito das maneiras especiais em que esses diferentes anexos corticais interagem com o córtex serem de grande importância, todos eles compartilham de um
mesmo modo de organização: longos e paralelos caminhos envolvendo múltiplas sinapses deixam o córtex cerebral, atingem os apêndices corticais passando por um
série de outros passos sinápticos e, passando ou não pelo tálamo, projetam-se no
córtex. Em síntese, estes sistemas apresentam-se adequados para a execução de
de várias rotinas motoras e cognitivas elaboradas, a maioria das quais isoladas tanto
quanto possível das outras, característica esta que garante velocidade e precisão em
sua execução.
O terceiro tipo de arranjo topológico não se assemelha nem a uma malha de conexões nem a um conjunto de cadeias paralelas, mas a um conjunto de conexões
difusas. O epicentro deste sistema é um pequeno número de neurônios que são concentrados em núcleos específicos no tronco encefálico e no hipotálamo e que recebem
seus nomes técnicos de acordo com as substâncias que liberam: locus noradrenér-
2.3 Integração neural
28
gico, núcleo dopaminérgico, núcleos serotonérgicos, entre outros. Todos estes núcleos influenciam de maneira difusa muitas partes do cérebro, senão todas. Neurônios
pertencentes à estes núcleos disparam a qualquer momento em que algo importante
ou saliente ocorra, como um barulho alto, um flash de luz ou dor repentina. O disparo
destes neurônios libera substâncias, chamadas neuromoduladores, que são capazes
de influenciar não somente a atividade neural como também a plasticidade neural (mudança na força das sinapses dos circuitos neurais produzindo respostas adaptativas).
Dada suas propriedades anatômicas únicas, suas características de descarga, seus
efeitos em neurônios alvos e sinapses e sua origem evolucionária, este conjunto de
núcleos é designado coletivamente como sistema valoracional. Inúmeras evidências
indicam que este sistema ocupa-se de sinalizar para todo o cérebro a ocorrência de
eventos importantes.
Figura 2.5: Sistema Valoracional.
Fonte: Adaptado de Edelman e Tononi (2001).
2.3 Integração neural
As ligações entre as estruturas descritas na seção anterior já proporcionaram alguns indícios de como ocorre a integração sensorial no cérebro, porém este mecanismo não é suficiente para explicar como mapas diferentes e funcionalmente segregados podem compor um estado coerente sem um controlador de alta ordem. Este é
o chamado binding problem, motivação de várias pesquisas e citado recorrentemente
na literatura.
Segundo Lewis (2005) estas pesquisas focam na integração temporal, onde a
2.3 Integração neural
29
abordagem se dá através de vários métodos de medição de correlações temporais,
como trancamento de fase (phase locking) ou sincronia de fase (relação temporal fixa
entre as oscilações de regiões independentes) obtidos a partir de dados coletados
de EEG4 , campos potenciais locais e registros da atividade de células individuais.
Sendo ainda mais claro, sincronia aqui é definida por uma janela temporal dentro da
qual resquícios de algum evento anterior alteram a resposta de eventos subseqüentes
(BUZSAKI; DRAGUHN, 2004).
Ainda de acordo com Buzsaki e Draguhn (2004), neurônios corticais dos mamíferos formam redes de vários tamanhos que apresentam oscilações dependentes do
comportamento. Estas oscilações se espalham sob uma faixa de freqüência de cinco
ordens de magnitude. Essas oscilações são preservadas filogeneticamente, sugerindo uma funcionalidade relevante. Descobertas recentes indicam que essas oscilações de rede direcionam a seleção de entradas, ligam temporalmente neurônios em
assembléias e facilitam a plasticidade sináptica, mecanismos que cooperativamente
sustentam a integração temporal e a consolidação de longo prazo da memória. Oscilações de altas freqüências são restritas a pequenas regiões enquanto redes amplas
coordenam-se através de oscilações de baixas freqüências.
Dentro deste espectro de freqüências observado no cérebro, algumas faixas foram
extensivamente estudadas, destacando-se principalmente a freqüência gama (30-80
Hz) (SETTINGS, 2000). Um dos trabalhos pioneiros que contribuiu para destacar a
importância desta faixa foi a iniciativa de Freeman (1991), que verificou que a freqüência 40Hz tem um papel chave em modelos perceptuais do bulbo olfatório de coelhos.
Recentemente inúmeros estudos demonstram que o grau de sincronia nesta faixa
corresponde ao grau de engajamento atencional ou prontidão para a ação (LEWIS,
2005). Thompson e Varela apud Lewis (2005) argumentam que esta sincronia reflete
a integração de muitas dimensões em um "ato cognitivo" unificado em detrimento de
um agrupamento de componentes referentes a processos perceptuais. Não menos
importante porém só recentemente descoberta, a faixa teta relaciona-se com processos emocionais. Oscilações síncronas na faixa teta (4-7 Hz) foram observadas na
amígdala antecipando um choque e acompanhado de aumento da pressão arterial
sugerindo medo (Paré e Collins, 2000) apud Lewis (2005).
Dada a importância e citadas algumas freqüências estudadas na literatura, Lewis
(2005) descreve alguns dos mecanismos de integração ao longo do sistema nervoso.
4 Eletroencefalografia,
técnica de registro de potenciais elétricos resultantes da atividade de grupos
de neurônios desenvolvidos no encéfalo
2.3 Integração neural
30
O primeiro mecanismo são as realimentações entre as estruturas neurais, ou simplesmente laços de retorno aninhados de auto-sincronização. O primeiro arranjo anatômico apresentado na seção anterior apresenta um ambiente propício para tal mecanismo. Através destes laços, realimentações positivas e negativas produzem fenômenos de auto-amplificação e auto-estabilização da atividade neural. Outro mecanismo
de integração é a neuromodulação - que provoca efeitos globais e estabilização através do sistema valoracional também apresentado anteriormente.
O último sistema que proporciona a integração é a plasticidade. Maturana e Varela (2004) apresentam de maneira geral como ocorre a plasticidade dos sistemas
neuronais:
As mudanças estruturais não ocorrem nas conexões que ligam grupos
de neurônios, mas sim nas características locais dessas conexões. Ou
seja, as modificações se dão no plano das ramificações finais e nas sinapses. Nesses lugares as alterações moleculares resultam em mudanças na
eficácia das interações sinápticas, que podem modificar drasticamente o
modo de operar de grandes redes neuronais.
O marco pioneiro nesta área foi o trabalho de Hebb (1949) que é reconhecido
como a primeira iniciativa no sentido de tratar explicitamente uma regra de aprendizado fisiológica para modificação sináptica.
Segundo Hebb:
Quando o axônio da célula A é próximo suficiente para excitar a célula
B e repetidamente ou persistentemente toma parte no disparo da última,
alguns processos de crescimento ou mudanças metabólicas ocorrem de
maneira que aumente a eficiência da célula A como uma das células que
provocam disparos em B.
Apesar da grande contribuição e do pioneirismo, o trabalho de Hebb só foi verificado experimentalmente na ocasião da descoberta da potencialização de longo prazo,
LTP. Neste fenômeno, freqüências particulares ou atividade constante de disparo de
neurônios pré-sinápticos produzem mudanças químicas no neurônio pós-sináptico de
maneira a alterar permanentemente a estrutura das sinapses.
Por fim, estudos mais recentes de plasticidade Hebbiana têm investigado experimentalmente regras de aprendizado onde o timing entre os disparos do neurônio pré
2.3 Integração neural
31
e pós-sináptico têm papel fundamental. O principal fruto destes trabalhos foi a descoberta do spike-timing-dependent plasticity que será estudado em detalhes na seção
4.3.
32
3
Aspectos selecionados da
modelagem de sistemas neurais
biologicamente plausíveis
É comumente considerada como a primeira iniciativa em direção à modelagem
do sistema nervoso na escala de neurônios o trabalho de McCulloch e Pitts (1943).
Com a instrumentação disponível na época, eles entenderam o funcionamento de um
neurônio como uma porta lógica. Esta visão teve grande influência nos trabalhos de
von Neumann e em sua arquitetura de computadores (ANDERSON; ROSENFELD,
1988):
It is worth mentioning that the neurons of the higher animals are (relaylike) elements in the above sense. They have all-or-none character, that is
two states: Quiescent and excited....
Following W. Pitts and W. S. McCulloch... we ignore the more complicated aspects of neuron functioning: Thresholds, temporal summation, relative inhibition, ... etc ... It can easily be seen that these simplified neuron
functions can be imitated by telegraph relay or by vacuum tubes1 (NEUMANN, 1982)2 .
Este cenário permitiu a origem da chamada metáfora do computador. Uma arquitetura de computadores foi criada tendo como inspiração os princípios que acreditavamse ser na época os que governavam a operação do cérebro, e hoje, mais de 60 anos
depois, tenta-se explicar o funcionamento deste orgão como se fosse um computador.
1É
válido mencionar que neurônios de animais superiores são elementos análogos à relés. Eles
possuem a característica tudo-ou-nada, isto é, possuem dois estados: Quiecente e excitado....
De acordo com W. Pitts e W. S. McCulloch... nós ignoramos os aspectos mais complicados do funcionamento do neurônio: limiares de disparo, integrações temporais, inibição,... etc... É fácil perceber que
as funções neuronais simplificadas podem ser mimetizadas por uma chave telegráfica ou por válvulas.
2 Este trabalho foi escrito em 1945 apesar de ter sido publicado apenas em 1982.
3 Aspectos selecionados da modelagem de sistemas neurais biologicamente plausíveis
33
Ou seja, tenta-se comparar duas coisas que possuem muito mais diferenças do que
características em comum.
O próprio Neumann (1958) apud Freeman (2007) reconhece mais tarde estas diferenças marcantes:
Thus the outward forms of our mathematics are not absolutely relevant
from the point of view of evaluating what the mathematical or logical language truly used by the central nervous system is. ... It is characterized
by less logical and arithmetical depth than what we are normally used to.
... Whatever the system is, it cannot fail to differ considerably from what we
consciously and explicitly consider as mathematics.
A despeito disto, as influências de McCulloch e Pitts e de von Neumann ainda são
visíveis e marcantes em trabalhos recentes nas áreas da neurociência e inteligência
artificial. Um claro exemplo é destacado por Larson (2006), que apresenta visões
diferentes de como o tempo é tratado na neurociência computacional:
Due to the discrete time conceptualization, computer scientists are more
comfortable explaining the function of brain systems in terms of chains of
events with definite beginnings and definite ends. Physicists, on the other
hand, are more comfortable explaining the brain in terms of dynamics,
which do not require definite beginnings or definite ends. Computer scientists care more what the consequence of an event is in the brain, whereas
physicists are more concerned with an concise account of the dynamics of
what is occurring.3
A visão dos cientistas da computação sobre processo cognitivo apresentada por
Larson (2006) é a mesma adotada nas ciências cognitivas tradicionais. Em ambos
os casos o sistema nervoso é visto como um processador simbólico, que representa
internamente um modelo de mundo e, segundo esta visão, apresenta cognição através
de manipulações internas deste modelo, sendo o processo completo organizado em
um esquema sequencial de sentir, processar e agir.
3 Em
consequência da conceitualização do tempo discreto, cientistas da computação encontram-se
mais confortáveis em explicar funções do sistema nervoso em termos de cadeias de eventos com inícios
e fins definidos. Físicos, por outro lado, explicam o cérebro em ternos da dinâmica, que não requer
inícios ou fins definidos. Cientistas da computação preocupam-se mais com as consequências de
eventos no cérebro enquanto físicos preocupam-se mais com uma contabilização concisa da dinâmica
do que está ocorrendo.
3 Aspectos selecionados da modelagem de sistemas neurais biologicamente plausíveis
34
No entanto, a cada dia cresce o número de trabalhos que compreendem a cognição como um processo dinâmico. Esta área em expansão, apesar de ser conhecida
por vários nomes, tem sido chamada de Embodied Cognition. As pesquisas nesta
linha, fortemente embasadas em evidências experimentais, têm buscado maneiras de
tratar e estudar os crescentes dados multidimensionais obtidos sem desprezar as influências externas a que são submetidos os agentes estudados. Tendo em vista esta
necessidade, pesquisadores da área têm preenchido esta lacuna através do uso da
teoria dos sistemas dinâmicos, onde a ênfase está na interação entre a dinâmica interna do agente e as dinâmicas externas do corpo e do ambiente (SPORNS, 2003).
Os princípios deste arcabouço determinam que níveis de ordem mais altos emergem
de níveis de ordem mais baixos através de processos causais bidirecionais.
Em vista disto, pode-se perceber que esta visão adequa-se à modelagem do sistema nervoso conforme exposto no capítulo 2. A seguir serão apresentados alguns
trabalhos que corroboram a adequação deste arcabouço ao fenômeno estudado.
Lewis (2005) usou a teoria dos sistemas dinâmicos para estabelecer uma ligação
entre a neurobiologia e a teoria da emoção no âmbito da psicologia.
Pesquisas experimentais recentes têm obtido sucesso no registro simultâneo da
atividade de muitos neurônios de partes diferentes do sistema nervoso enquanto o animal realiza alguma tarefa sensório-motora ou cognitiva. Como resultado têm-se obtido
grandes conjuntos de dados multidimensionais. Em vista disso, Briggman, Abarbanel
e Jr (2006) propuseram uma metodologia de modo a permitir a análise das interações
dinâmicas entre populações de neurônios.
Outro trabalho que também tem como ponto de partida uma grande massa de dados e que se beneficia da abordagem dinâmica foi a pesquisa desenvolvida por Tsien
(2007) e colaboradores. Através do registro de uma população de neurônios da área
CA1 do hipocampo de roedores, eles puderam constatar que dado um mesmo episódio traumático, o estado da população observada sempre se encontrava na mesma
região do espaço de estados.
Freeman (2005), ao investigar processos perceptuais, obteve evidências por meio
do uso de EEG, de que cada hemisfério do cérebro mantém uma rede com invariância de escala que gera e mantém um estado global caótico. Depois de décadas de
pesquisa e resultados bem consolidados, o trabalho segue em direção à adaptação
da teoria dos processos termodinâmicos distantes do equilíbrio desenvolvida por Ilya
Prigogine (FREEMAN, 2007).
3.1 Alguns modelos computacionais envolvendo sistemas biologicamente plausíveis
35
Cabe destacar que, além destes breves exemplos apresentados, há várias outras
pesquisas que adotam como princípio explicativo este arcabouço, a teoria dos sistemas dinâmicos. Estabelecida e justificada a linha adotada pelo presente trabalho, na
seção seguinte serão enumeradas algumas características de redes neurais artificiais
biologicamente plausíveis.
3.1 Alguns modelos computacionais envolvendo sistemas biologicamente plausíveis
Por conta do forte caráter interdisciplinar do trabalho, há pesquisas correlatas tanto
na área da neurociência quanto da inteligência artificial. Em determinados casos há
até a dificuldade de se estabelecer em qual área do conhecimento está o trabalho.
Um bom exemplo é a arquitetura Darwin que vem sendo desenvolvida no Neuroscience Institute (KRICHMAR; EDELMAN, 2003). A despeito do projeto contemplar a
construção de um artefato "inteligente", há também uma motivação biológica. Tal artefato pertence a uma classe chamada brain-based-devices, onde a operação da arquitetura é analisada de maneira a obter indícios da operação de um sistema nervoso
real. Tal caminho foi tomado devido a dificuldade de analisar a operação do sistema
nervoso in vivo, visto que técnicas de registro de atividade de neurônios individuais
são invasivas e portanto de conexão muito delicada. Apenas recentemente foram desenvolvidas técnicas eficientes de próteses intracranianas de maneira a permitir uma
grande redução do dano ao tecido neuronal.
Em um viés biológico, Maass, Natschläger e Markram (2002) desenvolveram toda
uma teoria relativa a computabilidade realizada por micro-circuitos neurais. As estruturas propostas, Liquid-state machines, recebem entradas contínuas e variantes
no tempo que representam estímulos aferentes e, depois de "processados" por uma
rede recorrente, obtém-se uma saída de mesma natureza, i.e., contínua e variante no
tempo, que representa uma integração temporal dos estímulos prévios. Apresentada
de maneira esquemática na figura 3.1, esta estrutura pode ser entendida e dividida
em dois blocos: rede recorrente e esparsa (que atuam como um filtro não linear LM ,
mapeando a entrada contínua em um espaço de alta dimensão, xM (t), chamado aqui
de estado líquido) e camada de saída f M , readout neurons, que pode ser treinada
usando-se métodos de regressão linear de maneira a projetar na saída o produto de
alguma operação de integração temporal específica, y(t).
3.1 Alguns modelos computacionais envolvendo sistemas biologicamente plausíveis
36
Figura 3.1: Máquina de estado liquido.
Fonte: Maass, Natschläger e Markram (2002).
A despeito da fidelidade relativa a anatomia dos grupos neuronais, i.e., a recorrência e as ligações esparsas, as Liquid-state machines pecam ao exigir uma camada
de saída treinada independentemente através de métodos de regressão. No intuito de
sanar esta deficiência, Muresan e Savin (2007) implementaram uma estrutura análoga
as Liquid-state machines onde a preocupação não era quanto a uma obtenção de uma
saída específica da rede mas a manutenção de uma dinâmica auto-sustentável.
Já na área de sistemas inteligentes, grande parte dos trabalhos concentram-se na
abordagem do problema, i.e., o surgimento de um comportamento inteligente, com
o uso de técnicas de computação evolucionária, em especial os algoritmos genéticos. Nolfi (1998) esclarece alguns pontos acerca dos problemas relacionados a este
caminho:
Se alguém deseja selecionar através de evolução artificial indivíduos
capazes de resolver determinada tarefa que requeira uma competência especifica, o caminho mais simples é selecionar indivíduos levando em conta
sua habilidade de resolver a tarefa, i.e., estabelecer um critério, fitness
function, que pontue os indivíduos de acordo com sua facilidade em resolver o problema. Entretanto, é fácil mostrar que essa simples estrategia
só funciona para tarefas simples. Com o crescimento da complexidade da
tarefa, a probabilidade de que algum indivíduo da primeira geração a complete, pelo menos em parte, diminui, ou seja, a complexidade da tarefa e a
probabilidade de termina-la tem uma relação inversa. Para tarefas complexas, todos os indivíduos da primeira geração são pontuados com o mesmo
valor nulo, e, como conseqüência, o processo de seleção não pode operar.
3.1 Alguns modelos computacionais envolvendo sistemas biologicamente plausíveis
37
Este problema é reconhecido como bootstrap problem.
Como solução para esse impasse Nolfi (1998) defende o uso de mecanismos autoorganizáveis:
uma solução desejável para o bootstrap problem poderia ser um processo auto-organizável que produz evoluções incrementais que não requerem supervisão humana. A situação ideal surge quando populações coevoluem (i.e. no caso de populações em competição com um acoplamento
ajustado, como no modelo predador-presa). Cada população através da
co-evolução produz progressivamente desafios mais complexos para a outra população. Como conseqüência as populações em competição dirigem
um a outra em direção ao aumento da complexidade produzindo uma "corrida armada" evolucionária.
Os três trabalhos apresentados a seguir representam uma evolução nesta linha de
trabalho:
Paolo (2002) sintetizou redes plásticas de neurônios pulsantes através de técnicas
evolucionárias para coordenar a navegação de um robô. Com propósito de explorar
redes de neurônios pulsantes operando com STDP como mecanismo plasticidade, ele
obteve resultados que indicam que a estrutura é bem robusta à ruidos e outros tipos
de perturbações.
Seguindo a mesma linha, Floreano et al. (2006) trabalharam na construção de
um sistema de coordenação para navegação de robôs autônomos que também utiliza
neurônios pulsantes. O circuito de neurônios foi obtido através do uso da técnica de
algoritmos genéticos, onde cada gene representa a presença ou ausência de uma ligação sináptica. A estrutura sintetizada permitiu a navegação sem colisão com sucesso,
figura 3.2.
E, por fim, Florian (2006) também propôs um mecanismo de coordenação baseado
em redes de neurônios pulsantes capaz de apresentar um comportamento cognitivo
minimalista. Porém, o agente simulado realiza uma tarefa diferente de desviar de obstáculos. O agente em questão possui um reflexo de busca-puxa-libera. Em virtude do
reflexo embutido no agente, ele interage com os objetos existentes no mundo artificial
e, mediante estas interações, apresenta uma pequena evolução no comportamento,
caracterizada pela diferenciação do tamanho relativo dos objetos com que interage e
3.1 Alguns modelos computacionais envolvendo sistemas biologicamente plausíveis
38
Figura 3.2: Robô navegando no ambiente com obstáculos.
Fonte: Floreano et al. (2006).
pela escolha, em função do contexto, de um entre três sub-comportamentos possíveis,
figura 3.3.
Figura 3.3: Morfologia do agente.
Fonte: Florian (2006).
Apesar do sucesso destas três implementações apresentadas, estes trabalhos
ainda compartilham do mesmo problema relativo a como a técnica foi empregada.
A "evolução" realizada através da técnica dos algoritmos genéticos produz como resultado agentes com comportamento adequado apenas para aquele ambiente. Uma
mudança de ambiente necessitaria inevitavelmente de outro processo de evolução.
Isso ocorre porque o critério de seleção otimiza a rede para aquela tarefa. Numa outra
perspectiva, o presente trabalho propõe a síntese da rede por blocos e um mecanismo
de acoplamento plástico entre eles de maneira a permitir o surgimento de outros reflexos.
3.2 Neurônios pulsantes
39
3.2 Neurônios pulsantes
Pense em um neurônio não somente em termos de íons e canais, como
muitos biólogos fazem, e não somente em termos de relações de entradas/saídas como muitos teóricos fazem, mas também como um sistema
dinâmico que vê a entrada através do prisma da sua própria dinâmica (IZHIKEVICH, 2007).
Reeve e Hallam (2005) realizaram um análise de modelos de redes neurais adequadas para a coordenação motora de robôs e concluíram que o realismo biológico é
desejável mas conflita com o custo computacional. Através desta análise, eles concluíram que modelos de neurônios com dinâmica interna possibilitam um repertório amplo
com um menor número de neurônios em relação às outras implementações que utilizam modelos mais tradicionais, como o de McCulloch e Pitts (1943) e modelos de
neurônios sigmoidais.
Dentre os novos modelos encontrados na literatura, uma classe que se destaca
são os neurônios pulsantes, spiking neurons. Estes modelos matemáticos apresentam uma boa concordância com as medições de neurônios in vitro e in vivo, além
de descreverem de maneira mais fiel a atividade do cérebro (GERSTNER; KISTLER,
2002).
Há uma série de modelos pertencentes a esta classe, desde os compartimentalizados (modelos que tratam de cada uma das estruturas do neurônio), até os que
tratam o neurônio como uma estrutura homogênea. Para uma ampla revisão dos modelos de neurônios pulsantes veja Gerstner e Kistler (2002), Bohte (2003), Berredo
(2005), Izhikevich (2007).
Entre os modelos de neurônios pulsantes, o que reproduz com mais detalhes as
características de um neurônio real é o modelo de Hodgkin e Huxley (1952), que foi
desenvolvido a partir de experimentos com o axônio de uma lula gigante. Este é o
modelo mais completo, visto que além de tratar da tensão de membrana, descreve
também a dinâmica das correntes iônicas. O problema com este modelo é que ele
apresenta um alto custo computacional, visto que é descrito por quatro equações diferenciais não-lineares acopladas, o que inviabiliza o seu uso em simulações de redes
com um número razoável de neurônios.
Em contrapartida, Izhikevich (2003) desenvolveu um modelo de neurônio que tem
3.3 Considerações finais
40
como mérito apresentar várias características de neurônios reais aliado a um baixo
custo computacional. Além disto, este modelo é capaz de reproduzir uma ampla gama
de fenômenos.
3.3 Considerações finais
Tendo em vista o início deste capítulo e toda a fenomenologia apresentada no
capítulo 2, conclui-se claramente que o sistema nervoso não deve ser entendido como
um computador. Neste contexto, a questão fundamental não é a que tem sido imposta
majoritariamente na literatura4 , mas sim a inversa: É possível construir um cérebro
com uma máquina de Turing? Posta a questão adequada, cabe dizer que há um
amplo debate e não há uma resposta definitiva.
Na busca de caminhos para a solução da questão imposta foi revisado neste capítulo algumas iniciativas, destacando-se os trabalhos desenvolvidos no GPSI. Tendo
em mente que na construção de mecanismos inteligentes limitações ontológicas são
inevitáveis, o desafio é então desenvolver maneiras de diminuir estas limitações e
como conseqüência aumentar o nível de autonomia segundo definição de Haselager
(2004). Nesta direção, a maneira como os algoritmos genéticos foram usados demonstra que este caminho não é uma boa solução já que não dá liberdade para o
surgimento de outros comportamentos. Numa outra perspectiva, o presente trabalho
propõe como solução a incorporação em agentes de uma estrutura sintetizada em blocos que apresentem reflexos inatos e que através de mecanismos plásticos permita o
surgimento de outros comportamentos.
Descrito o estado-da-arte, os problemas abertos e as características desejadas
nortearam a escolha de um modelo de rede adequado, o qual será estudado em detalhes no próximo capítulo.
4É
possível construir uma máquina de Turing com neurônios? (GERSTNER, 1999)
41
4
Estudo dos Modelos
matemáticos de neurônios e
mecanismos de acoplamento
neuronal
4.1 Modelo de neurônio pulsante de Izhikevich
O modelo de Izhikevich (2003) foi obtido através de metodologias da teoria das
bifurcações e da redução de ordem do modelo de Hodgkin e Huxley (1952), mais
detalhes sobre o processo encontram-se em Izhikevich (2007).
O modelo é representado por um sistema de equações diferenciais da seguinte
forma:
dv
= α v2 + β v + γ − u + I,
dt
du
= a(bv − u),
dt
(4.1)
(4.2)
com um reset auxiliar depois do pulso (after-spike reset) dado por
se v = +30mV, então
(
v ← c,
u ← u + d,
(4.3)
onde as variáveis do modelo são:
• v, expresso em mV, representa o potencial de membrana do neurônio;
• u, não mensurado fisicamente, contabiliza a ativação da corrente iônica de K+
e a inativação da corrente de Na+ , além de prover uma realimentação negativa
4.1 Modelo de neurônio pulsante de Izhikevich
42
para v;
Os parâmetros fundamentais do modelo são representados por α , β e γ e seus valores típicos, 0.04, 5, 140, foram selecionados porque são os que melhor reproduzem
a dinâmica de inicialização de um pulso de um neurônio cortical real.
O conjunto de parâmetros de ajuste é composto por:
• O parâmetro a determina a escala de tempo da variável u;
• O parâmetro b descreve a sensibilidade da variável u, além de influenciar na
bifurcação juntamente com o parâmetro I;
• Os parâmetros c e d tratam, respectivamente, dos valores impostos à v e adicionado à u após um pulso.
Os valores deste último conjunto apresentado não mudam em tempo de execução.
Eles estabelece qual tipo de neurônio deseja-se simular, sendo possível reproduzir a
dinâmica de mais de 20 tipos de neurônios reais.
Por fim, o último parâmetro é a corrente I, medida em pA. Este parâmetro é a
"entrada" do modelo de neurônio, i.e., o meio por onde o modelo recebe os estímulos
externos, sejam de outros neurônios ou de outras estruturas.
Uma descrição básica da operação deste modelo pode ser feita com o auxílio do
espaço de estados do sistema visto na figura 4.1. Porém, antes disto, é preciso estabelecer algumas definições: v-nullcline e u-nullcline são as curvas que contém todos
os estados quando dv/dt=0 e du/dt=0, respectivamente. Observando a figura pode-se
ver que quando I=0 pA a nuliclinal de v tem dois pontos em comum com a nuliclinal
de u, sendo um deles um ponto de equilíbrio estável, denotado por resting. Porém,
quando o neurônio recebe algum estímulo via o parâmetro I, o modelo matemático
pode sofrer uma bifurcação, i.e., o espaço de estados mudará qualitativamente. Isso
acontece quando I=70 pA, o ponto de equilíbrio estável desaparece e surge uma órbita periódica, denotada aqui por spiking limit cycle attractor. Atingindo o valor máximo
de v é feito o after-spike reset, que impõe para v o valor de c e adiciona a u o valor de
d. O neurônio permanece então pulsando enquanto o estímulo (i.e., o valor de I) for
suficientemente grande.
Além de ter como mérito a reprodução de tantos padrões de disparo de neurônios reais conforme já apresentado, este modelo tem algumas características bem
4.1 Modelo de neurônio pulsante de Izhikevich
43
Figura 4.1: Espaço de estados do modelo de Izhikevich.
Fonte: Izhikevich (2007).
interessantes como, por exemplo, a histerese. Esta dependência da história prévia
de evolução ocorre porque quando o neurônio pulsa a variável u não é reiniciada. O
que de fato acontece é um incremento de maneira a preservar a história. A figura
4.2 exemplifica este fato. Em decorrência disso, o modelo do neurônio não apresenta
limiar fixo assim como a maioria dos neurônios reais.
Figura 4.2: Evolução temporal do modelo de Izhikevich.
Além destes aspectos qualitativos associados ao modelo, foi realizado um estudo
quantitativo relativo à natureza do ponto de equilíbrio e também as condições necessárias para a bifurcação do modelo.
4.1 Modelo de neurônio pulsante de Izhikevich
44
No equilíbrio, i.e., quando dv/dt=0 e du/dt=0, temos:
α v2 + β v + γ − u + I = 0
(4.4)
a(bv − u) = 0
(4.5)
Isolando-se u em 4.5 e substituindo em 4.4 temos:
α v2 + (β − b)v + (γ + I) = 0
(4.6)
Os pontos de equilíbrio são:
v± =
b−β ±
p
(β − b)2 − 4α (γ + I)
2α
(4.7)
Como as transições de fase, i.e., bifurcações, tem papel fundamental na dinâmica
do modelo, é relevante destacar sob quais condições esse fenômeno ocorre. Quando
o modelo não recebe nenhum estímulo, i.e., I=0, o modelo tem 2 pontos de equilíbrio
v+ e v− como demonstrado em 4.7. É fácil perceber que o ponto de bifurcação ocorre
quando o radicando da equação 4.7 é nulo:
(β − b)2 − 4α (γ + I) = 0
Portanto, a corrente crítica, ou seja, o menor valor de um estímulo para provocar
uma bifurcação no modelo, é dada por:
I=
β 2 − 2β b + b2 − 4αγ
4α
(4.8)
Apresentadas as condições, a figura 4.3 apresenta um diagrama de bifurcação do
modelo. Estão destacados no gráfico valores típicos de b e suas correntes mínimas
para a bifurcação.
Realizou-se um estudo da estabilidade do modelo através do estudo dos autovalores associados ao sistema linear equivalente nas vizinhanças dos pontos de equilíbrio
so sistema. A matriz jacobiana que representa o sistema nas vizinhanças do ponto
(v0 , u0 ) é dada por:
4.1 Modelo de neurônio pulsante de Izhikevich
45
Figura 4.3: Diagrama de bifurcação do modelo de Izhikevich.
L=
"
2α v0 + β −1
ab
−a
#
(4.9)
Os autovalores associados à jacobiana são:
λ± =
2α v0 + β − a ±
p
(2α v0 + β − a)2 − 4 (−a(2α v0 + β ) + ab)
2
(4.10)
O conjunto de parâmetros de ajuste do modelo foram estabelecidos através das
restrições impostas pela equação 4.10 de maneira que o autovalor associado ao ponto
de equilíbrio estável, v+ , seja um nó estável ou um foco estável. No primeiro caso o
neurônio comporta-se como um integrador; na outra situação é exibido um comportamento resonador (há uma oscilação amortecida no retorno ao ponto de equilíbrio). O
ponto v− é necessariamente um ponto de equilíbrio instável.
Quanto à implementação do modelo, cabe dizer que neste trabalho as equações
referentes ao modelo de neurônio de Izhikevich foram solucionadas utilizando-se dois
métodos numéricos: o método modificado de Euler, que corresponde ao método de
Runge-Kutta de ordem dois, e o método corretor-preditor. Em cada iteração do laço
temporal do algoritmo, que tem como passo de tempo 1 ms, são executadas as se-
4.2 Sinapses
46
guintes equações:
vk+0.5 = vk + 0.5(α v2k + β vk + γ − uk + I)
(4.11)
vk+1 = vk+0.5 + 0.5(α v2k+0.5 + β vk+0.5 + γ − uk + I)
(4.12)
uk+1 = uk + a(bvk+1 − uk )
(4.13)
As equações 4.11 e 4.12 associadas à variável v correspondem à implementação
do método de Runge-Kutta de ordem dois, por isso o coeficiente 0.5 que representa
um passo de tempo de 0.5 ms, que foi usado aqui com o objetivo de obter melhor
precisão. A equação 4.13 utiliza o valor recém calculado de v, i.e., vk+1 em detrimento
de vk , com o propósito de evitar oscilações na solução, esta técnica constitui o método
corretor-preditor.
Tendo em vista que o modelo recebe estímulos via o parâmetro I, o sistema dinâmico é não autônomo e portanto depende explicitamente do tempo. Na impossibilidade de determinar analiticamente os melhores parâmetros foi utilizado como método
de ajuste um processo iterativo de maneira a determinar os parâmetros adequados
para cada situação específica.
4.2 Sinapses
Além do modelo de neurônio, o modelo de sinapse adotado tem importância fundamental na operação do sistema. O modelo de sinapse usado foi apresentado no
trabalho de Muresan e Savin (2007). A sinapse é entendida como um caminho de
condutância variável com o tempo, g(t), que, mais especificamente, decai exponencialmente com uma constante de tempo associada, τs .
dg −g
=
dt
τs
(4.14)
A cada instante que algum potencial de ação atinge alguma sinapse é imposto um
valor fixo a condutância da respectiva sinapse.
A corrente que qualquer neurônio na rede recebe como estímulo na sua versão
mais completa tem a seguinte forma:
4.2 Sinapses
47
I = ∑ Wi gi (t)(Ei −Vpos )
(4.15)
i
onde há a soma das contribuições de cada sinapse i composta por: Wi , peso associado a respectiva sinapse, que pode ser plástico ou não; gi (t), condutância variável
com o tempo; Ei que representa o potencial reverso da sinapse; e por fim, Vpos que é o
potencial de membrana do neurônio pós-sináptico, i.e., aquele que recebe o estímulo.
Por fim, com o próposito de destacar as implicações deste modelo de sinapse, a
figura 4.4 apresenta o impacto entre o acoplamento de neurônio com diferentes constantes de tempo associadas às sinapses. No primeiro gráfico da figura é apresentado
a tensão de membrana de um neurônio integrador. Este neurônio, na ocasião de seu
disparo produz estímulos direcionados aos seus pós-sinápticos (gráfico 2). Os estímulos têm características diferentes por que estão associados a sinapses com constantes
de tempos diferentes, τs = 1ms e τs = 10ms respectivamente. O último gráfico apresenta
a tensão dos neurônios pós-sinápticos.
Figura 4.4: Impacto de diferentes constantes de tempo de decaimento do estímulo
sináptico.
4.3 Spike-timing-dependent plasticity, STDP
48
4.3 Spike-timing-dependent plasticity, STDP
O Spike-timing-dependent plasticity é uma regra de plasticidade Hebbiana levantada experimentalmente por Bi e Poo (1998) e amplamente usada em simulações em
larga escala na neurociência e na construção de alguns agentes inteligentes artificiais
(PAOLO, 2002), (FLORIAN, 2006). A regra em questão trata de uma valoração ou
depreciação do peso referente à uma sinapse em função do timing entre o disparo do
neurônio pré-sináptico e pós-sináptico associados à mesma sinapse.
Figura 4.5: Função de modificação do peso sináptico através do STDP.
O algoritmo implementado foi o proposto por Song, Miller e Abbott (2000):
Cada sinapse tem uma variável LTP (long-term potencialization) e LTD (long-term
depression) associada. A cada instante que um pulso chega a alguma sinapse, a
variável LTP é incrementada com o valor A+ . A todo instante que um neurônio póssináptico dispara um potencial de ação a variável LTD é decrementada de A− . Nos
instantes de tempo onde não ocorrem nenhuma destas situações estas funções decaem exponencialmente com suas respectivas constantes de tempo.
A variável LTP é usado para reforçar as sinapses a cada momento em que um
neurônio pós-sináptico dispara: wi j (t) → wi j (t) + wmax LTP. Analogamente, LTD tem
como função depreciar as ligações sinápticas a cada instante que um neurônio présináptico disparar: wi j (t) → wi j (t) + wmax LTD.
49
5
Estruturas propostas
De acordo com a fundamentação referente ao sistema nervoso apresentada no
capítulo 2, a unidade funcional mais básica do córtex são os grupos neuronais que
se caracterizam por um comportamento coletivo síncrono. Com o propósito de implementar mecanismos que contribuam para a integração temporal entre os grupos
neuronais, alguns micro-circuitos auxiliares que desempenhem papéis simples são
fundamentais. Nesta direção serão apresentados na primeira parte deste capítulo
tanto estruturas simples mas fundamentais quanto estruturas mais sofisticados e não
menos importantes. Na seção 5.2, que constitui a segunda parte, será apresentado e
validado um mecanismo de coordenação sensório-motora para um robô simulado.
No que se refere ao algoritmo principal, cabe dizer que houve uma preocupação
em realizar uma implementação de maneira que os micro-circuitos fossem simulados
facilmente quando acoplados. O algoritmo principal foi concebido de maneira que
as características da rede, ou melhor dizendo, as características referentes a cada
sinapse (e.g., pesos associados, atrasos de condução, tempo de decaimento do estímulo, valor instantâneo da condutância) foram todos armazenados em matrizes esparsas e quadradas com dimensão do número de neurônios simulados. Todas estas
matrizes tem a forma da matriz apresentada na figura 5.1. É importante lembrar que
este fato implica em uma diminuição da complexidade de espaço do algoritmo principal.
Cada micro-circuito constitui um bloco da matriz sendo a ligação entre eles realizada por neurônios de projeção que não pertencem a nenhum dos dois grupos.
Esta sub-rede, composta pelos neurônios de projeção, é a parte "plástica" do sistema,
figura 5.1.
Ainda relativo à implementação, outra característica que foi contemplada é a possibilidade do uso de atraso de condução axonal. No modo padrão cada estímulo leva
um passo de tempo para chegar à um neurônio pós-sináptico, no entanto pode-se
5.1 Detector de Coincidências
50
Figura 5.1: Anatomia das matrizes do sistema dinâmico.
ajustar outros valores de maneira a incorporar essa característica.
O código fonte do programa principal encontra-se no anexo A.
5.1 Detector de Coincidências
O detector de coincidências tem como propósito produzir um pulso em sua saída
quando todas as suas entradas estiverem presentes em uma mesma janela de tempo.
Um micro-circuito com esta função é fundamental para a detecção de sincronia ou,
dizendo de maneira mais geral, para detecção de correlação de atividade entre outras
estruturas e, portanto, pode ser parte integrante de um mecanismo de plasticidade
Hebbiana entre grupos neuronais.
O circuito proposto é composto de uma primeira camada de neurônios inibitórios
Ii , uma segunda camada de neurônios que recebem estímulos de todas as entradas
tomadas duas a duas Ei j e, por fim, um neurônio de saída que recebe estímulos de
5.1 Detector de Coincidências
51
todos os neurônios da segunda camada S, a figura 5.2 apresenta um exemplo com
três entradas. Os neurônios de projeção N1 , N2 e N3 não são partes constituintes do
micro-circuito, apenas suas sinapses com os outros neurônios do bloco pertencem à
estrutura. Um detector de n entradas possui
n!
2(n−2)!
+ n + 1 neurônios.
As sinapses que compõe o circuito foram ajustadas de maneira que são necessários dois estímulos para que os neurônios da segunda camada Ei j pulsem e apenas
um estímulo para os neurônios inibitórios pulsem. Especificamente os parametros
impostos às sinapses foram os pesos das conexões e os tempos de decaimento do
estímulo. É relevante destacar que os valores foram obtidos através de métodos iterativos visto que não podiam ser calculados analiticamente. Isso decorre dos neurônios
receberem estímulos via a corrente I, que entra na equação diferencial como um parâmetro.
Figura 5.2: Detector de Coincidências.
No determinado instante em que algum neurônio Ni pulsa seus pós-sinápticos são
estimulados, ou seja, o neurônio Ii (inibitório) e os neurônios que contabilizam a respectiva entrada i. O neurônio inibitório tem o propósito de anular, depois da janela
5.2 Circuito sensório-motor
52
de tempo especificada, o estímulo recebido pelos neurônios da segunda camada, Ei j .
Assim sendo os neurônios da segunda camada pulsarão apenas quando suas duas
entradas pulsarem na janela de tempo especificada. O neurônio de saída pulsa caso
todas suas entradas pulsem.
5.2 Circuito sensório-motor
Esta seção refere-se a implementação de um mecanismo minimalista com o propósito de validar a adequação do modelo a incorporação em agentes. Para se realizar o experimento foi utilizado o ambiente de simulação Player/Stage (GERKEY;
T.VAUGHAN; HOWARD, 2003). Utilizou-se um robô Pioneer, figura 5.3, com quarto
sensores de distância e que possui como atuador um motor que controla angulo de
rotação e velocidade de translação. O código fonte encontra-se no anexo B.
Figura 5.3: Robô simulado e seus sensores.
5.2.1
Modelo
O circuito de coordenação sensório-motora desenvolvido é apresentado na figura
5.4. Este circuito estimula o sistema motor, que realiza os movimentos de translação
e rotação, e recebe o retorno através da estimulação provocada pelos sensores.
A interface do sistema de coordenação possui os seguintes elementos: Sensor
Lateral Esquerdo (SLE), Sensor Frontal Esquerdo (SFE), Sensor Lateral Direito (SLD),
Sensor Frontal Direito (SFD), Motor de Translação (MT ) e Motor de Rotação (MR).
Os sensores recebem sinais dos sonares laterais e frontais e estimulam os neurônios
internos NX correspondentes. O MR é estimulado pelos neurônios N7 e N8 que indicam
o valor e o sentido ângulo de rotação, respectivamente. O MT é estimulado pelo
neurônio N7 com um sinal que indica a velocidade de translação do robô.
No interior do sistema de coordenação existem nove neurônios. Os neurônios N1 ,
N2 , N3 e N4 que são do tipo regular spiking foram ajustados para que sua freqüência
de disparo diminua a medida que o robô se aproxime de algum obstáculo.
5.2 Circuito sensório-motor
53
Figura 5.4: Sistema de coordenação sensório-motora.
Os neurônios N5 , N6 , N7 operam de maneira que suas freqüências de disparos serão próximas das freqüências de disparo de seus pré-sinápticos de menor freqüência.
O neurônio N7 é estimulado com os sinais de menor freqüência dos blocos com
os quais fazem sinapses nas áreas sensoras. Sua operação é semelhante a dos
neurônios N5 e N6 , ou seja, pulsa de acordo com a menor freqüência de seus présinápticos.
O neurônio N8 tem a função de determinar qual de seus pré-sinápticos, N5 ou N6 ,
pulsa na menor freqüência. Para isso ele precisa de um terceiro neurônio N9 que atua
com um estimulação em uma freqüência fixa fazendo-o pulsar dentro de um intervalo
[a,b].
O neurônio N5 envia estímulos inibitórios que fazem N8 pulsar abaixo do intervalo
definido. Por outro lado, o neurônio N6 envia estímulos exitatórios que fazem N8 pulsa
acima do intervalo definido. A saída de N8 indica, desta maneira, o lado em que
se encontra o obstáculo mais próximo, possibilitando que o robô ajuste o ângulo de
rotação de tal maneira que evite a colisão.
As sinapses foram ajustadas de tal maneira que a corrente que cada neurônio pós-
5.2 Circuito sensório-motor
54
sináptico recebe decai com uma constante de tempo muito grande. Desta maneira
cada estímulo inibitório anula um excitatório.
5.2.2
Analise e discussão do resultados
A posição inicial do robô foi definida no canto inferior esquerdo do ambiente. Durante o deslocamento do robô foram marcados retângulos para indicar sua posição
(figura 5.5). Como estes retângulos são marcados, pelo simulador, em intervalos de
tempo constantes, eles também podem ser utilizados para se observar a velocidade.
Para uma análise da dinâmica interna, foi registrado durante todo percurso o estado
dos sensores, dos neurônios e do motor.
Figura 5.5: Trajeto percorrido pelo robô no ambiente simulado.
Para uma análise mais detalhada da velocidade e da dinâmica dos componentes
internos, foi realizado um novo experimento cujo trajeto é mostrado na figura 5.6. O
tempo gasto pelo robô no percurso apresentado foi de 15 segundos. Durante o trajeto,
as dinâmicas dos sensores, da velocidade e do ângulo de rotação ocorrem da maneira
apresentada na figura 5.7.
Quanto aos sonares, quanto menor seu nível de ativação mais próximo o robô
se encontra o objeto detectado. O sonar lateral da direita não altera seu valor durante
todo percurso devido a ausência de obstáculos nesta região. Já o sonar frontal diminui
de valor a medida que o robô se aproxima do obstáculo e volta ao seu nível máximo
aproximadamente dois segundos após o robô iniciar a rotação. No momento em que o
5.2 Circuito sensório-motor
55
Figura 5.6: Percurso utilizado para análise da dinâmica dos componentes internos.
sonar lateral da esquerda detecta o obstáculo (t=7.5 seg.) o sonar frontal da esquerda
deixa de detectá-lo. Isso ocorre devido a rotação do robô.
A menor velocidade do robô ocorre aproximadamente no intervalo de 8 a 10 segundos. Neste mesmo intervalo, o ângulo de rotação do robô é maior do que nos
outros instantes. Em outras palavras, quanto mais próximo de um obstáculo, menor
será sua velocidade e maior será o ângulo de rotação.
Para cada segundo que se observa o comportamento do robô, ocorrem 1000 iterações internas. Por este motivo, foi necessário escolher apenas o intervalo de tempo
[4.572 - 4.576] segundos para se observar a dinâmica dos elementos internos, como
mostram as figuras 5.8 e 5.9.
Na figura 5.8, os gráficos A e B mostram a dinâmica dos neurônios N1 e N2 , respectivamente. Esta dinâmica depende dos sensores com os quais estes neurônios
estão ligados. O gráfico C mostra que a correntes que estimula o neurônio N5 . O gráfico D exibe os pulsos do do último. Pode ser observado que estes pulsos acontecem
instantes após R1 atingir o nível alto de ativação.
Na figura 5.9, os gráficos A e B mostram a dinâmica dos neurônios inibitório (N5 )
e exitatório (N6 ). O neurônio N9 (gráfico C) é o neurônio de referência que pulsa na
freqüência constante. O gráfico D comprova a adequação dos ajustes das sinapses.
O gráfico E mostra como os pulsos do neurônio inibitório e exitatório afetam o neurônio
N8 . Como exemplo, considere o intervalo de [4.5734, 4.5745]. No instante 4.5734 o
disparo do neurônio N5 leva o nível de estimulação de N8 para -1. No instante 4.5737
o disparo do neurônio N6 volta a ativação da corrente para 0. No instante 4.5740 há
um pulso inibitório de N5 que anula o pulso exitatório do neurônio de referência N9 .
Como um pulso anulou o outro, não há alteração na corrente. No instante 4.5744, o
exitatório N6 pulsa. Como a corrente está no nível 0, este pulso gera um disparo, no
instante seguinte (4.5745), no neurônio N8 .
5.2 Circuito sensório-motor
56
Figura 5.7: Dinâmica dos sonares e do motor do robô.
Através da análise da rede operando pode-se concluir que o mecanismo cumpre o
seu propósito. Testou-se também o robô operando em diferentes percursos e obtevese sucesso, figura 5.10.
5.2 Circuito sensório-motor
Figura 5.8: Dinâmica dos neurônios N1 , N2 , e N5 .
Figura 5.9: Dinâmica dos neurônios N5 , N6 , N9 e N8 .
57
5.2 Circuito sensório-motor
Figura 5.10: Outro trajeto onde o robô foi testado.
58
59
6
Conclusão
O desafio de construir sistemas de coordenação de agentes inteligentes a cada
dia tem conquistado mais adeptos. Porém, poucos trabalhos são desenvolvidos numa
perspectiva fiel ao objeto de inspiração mantendo uma abordagem plausível com os
princípios fundamentais do processo cognitivo de maneira a permitir o aumento do
nível de autonomia dos agentes.
Neste trabalho foram propostos alguns circuitos com neurônios pulsantes com o
propósito de contribuir para criação de robôs autônomos, cuja estrutura e funcionamento possuem bases biológicas no funcionamento do corpo humano, mais especificamente, seu sistema nervoso. Dentre os circuitos propostos um modelo minimalista
de sistema de coordenação sensório-motora foi implementado e validado por meio da
realização de experimentos.
Para a execução deste trabalho foi feita uma pesquisa sobre a operação dos sistemas neurais reais (capítulo 2) e também foi pesquisado a maneira como estes sistemas são modelados (capítulo 3). Estes passos foram importantes porque contribuíram
por apresentar as principais dificuldades e problemas encontrados hoje na construção
de redes neurais biologicamente plausíveis para agentes artificiais.
O Capítulo 4 destinou-se ao estudo dos mecanismos usados: modelo de neurônio pulsante escolhido, modelo de sinapse adotado e mecanismo de plasticidade implementado. Baseado nestas estruturas no capítulo 5 são apresentados os microcircuitos propostos, um sistema de coordenação sensório-motora e um algoritmo genérico que permita a simulação concomitante e acoplada das estruturas propostas.
6.1 Principais contribuições deste trabalho
Este projeto contribuiu, de forma geral, com a geração de uma metodologia de
construção de sistema nervoso artificial extensível. Os constituintes propostos pos-
6.2 Dificuldades encontradas
60
suem dinâmica interna e operam em tempo real.
De uma forma específica, este projeto teve como principais contribuições:
1. Encapsulamento da complexidade inerente as redes. Um bloco depois de projetado pode ser tratado como uma caixa-preta onde o mesmo será usado de
acordo com a função dinâmica que desempenha.
2. Estabelecimento de um método de acoplamento entre os circuitos através de
plasticidade (STDP). Depois de ajustados os parâmetros e embutido os reflexos
inatos a estrutura pode desenvolver outras relações.
3. Algoritmo adequado não só para a simulação e análise dos blocos desenvolvidos e em desemvolvimento como também adequado a simulação de estruturas
criadas com outros modelos de neurônios descritos por equações polinomiais.
6.2 Dificuldades encontradas
No decorrer do trabalho, foram encontradas algumas dificuldades, dentre as quais
destacam-se:
1. O forte caráter interdisciplinar do trabalho foi um fator complicador em conseqüência do curto prazo para desenvolve-lo. Por outro lado essa perspectiva muito
enriqueceu o trabalho.
2. O ajuste do modelo de neurônio para construção das estruturas. Por ser um
sistema não autônomo no sentido matemático, a técnica para ajuste foi o uso de
métodos iterativos. Através de um algoritmo onde os parâmetros eram alterados
a cada iteração verificava-se a adequação dos valores correntes para a execução
da necessidade específica.
6.3 Perspectivas de trabalhos futuros
O presente trabalho estabelece um novo ponto de partida indicando investimentos
promissores:
6.4 Considerações finais
61
1. usar métodos heurísticos mais sofisticados para determinar os parâmetros de
um dado micro-circuito.
2. Determinar melhores condições iniciais para o circuito acoplador de maneira a
garantir o surgimento de outras correlações entre as estruturas acopladas.
3. Implementar e acoplar algumas liquid-state machines através do algoritmos construído neste trabalho.
4. Criar circuitos maiores utilizado os micro-circuitos de maneira a implementar
componentes emocionais, memória de longo prazo em agentes.
5. Implementar circuitos eletrônicos analógicos em robôs reais utilizando-se a mesma
metodologia proposta neste trabalho.
6. Implementar os micro-circuitos na última versão da arquitetura ARTÍFICE, já adequada para robôs reais utilizando-se de técnicas de engenharia de software, e.g.,
padrões de projeto.
6.4 Considerações finais
Diante dos objetivos propostos, pode-se dizer que este trabalho obteve êxito. Os
experimentos feitos demostraram que estruturas minimalistas utilizando o modelo de
Izhikevich adequam-se ao que se pretende incorporar em agentes inteligentes. Além
disso há outros blocos modelados com sua base implementada.
Desenvolver um trabalho que pretende contribuir com a arquitetura ARTÍFICE,
onde há uma forte preocupação com a plausibilidade biológica, mostrou-se ser uma
tarefa desafiadora e motivante. Trabalhar em um projeto junto com profissionais de
outras áreas, e.g., físicos, cientistas da computação e engenheiros foi, sem dúvida,
uma experiência riquíssima. Os diversos livros e artigos que estudados e utilizados
para a construção deste trabalho contribuíram não só para um crescimento do autor
com pesquisador como também para a construção de um novo indivíduo.
62
Referências Bibliográficas
ADAMS, Bryan. Evolutionary, Developmental Neural Networks for Robust Robotic
Behavior. 2005. Tese (Doutorado) — MIT, 2005.
ANDERSON, J.A. An Introduction to Neural Networks. [S.l.]: Bradford Book, 1995.
ANDERSON, J.A.; ROSENFELD, E. Neurocomputing: foundations of research. [S.l.]:
MIT Press Cambridge, MA, USA, 1988.
BERREDO, Roberto Coelho de. A Review of Spiking Neuron Models and Applications.
2005. Dissertação (Mestrado) — Universidade Federal de Minas Gerais, 2005.
BI, G.; POO, M. Synaptic Modifications in Cultured Hippocampal Neurons:
Dependence on Spike Timing, Synaptic Strength, and Postsynaptic Cell Type. Journal
of Neuroscience, Soc Neuroscience, v. 18, n. 24, p. 10464, 1998.
BOHTE, S.M. Spiking Neural Networks. 2003. Tese (Doutorado) — Academiegebouw
of Leiden University, 2003.
BORGES, Henrique Elias. Arquitetura Flexível para a Criação de Agentes de Software
Cognitivos e Situados: teoria, metodologia e ferramentas. [S.l.], 2002.
BRIGGMAN, K.L.; ABARBANEL, H.D.I.; JR, W.B.K. From crawling to cognition:
analyzing the dynamical interactions among populations of neurons. Current Opinion
in Neurobiology, Elsevier, v. 16, n. 2, p. 135–144, 2006.
BUZSAKI, G.; DRAGUHN, A. Neuronal Oscillations in Cortical Networks. Science,
American Association for the Advancement of Science, v. 304, n. 5679, p. 1926–1929,
2004.
CAMPOS, Luciana Maria de Assis. Modelagem do Processo Cognitivo-Emocional de
um Organismo Artificial numa Perspectiva Dinâmico-Interacionista. 2006. Dissertação
(Mestrado) — Centro Federal de Educação Tecnológica de Minas Gerais, 2006.
CHIEL, H.J.; BEER, R.D. The brain has a body: adaptive behavior emerges from
interactions of nervous system, body and environment. Trends in Neurosciences,
Elsevier, v. 20, n. 12, p. 553–557, 1997.
CLANCEY, W.J. Situated Cognition: On Human Knowledge and Computer
Representations. [S.l.]: Cambridge University Press, 1997.
CLARK, Andy. Being There: Putting Brain, Body, and World Together Again. [S.l.]: MIT
Press, 1998.
EDELMAN, G.M.; TONONI, G. A Universe of Consciousness: how matter becomes
imagination. [S.l.]: Basic Books, 2001.
Referências Bibliográficas
63
EDELMAN, Gerald M. Neural Darwinism: The Theory of Neuronal Group Selection.
[S.l.]: Basic Books, 1987.
FLOREANO, D.; EPARS, Y.; ZUFFEREY, J.C.; MATTIUSSI, C. Evolution of Spiking
Neural Circuits in Autonomous Mobile Robots. International Journal of Intelligent
Systems, v. 21, n. 9, p. 1005–1024, 2006.
FLORIAN, R.V. Spiking Neural Controllers for Pushing Objects Around. LECTURE
NOTES IN COMPUTER SCIENCE, Springer, v. 4095, p. 570, 2006.
FREEMAN, W.J. The physiology of perception. Scientific American, Scientific
American, v. 264, n. 2, p. 78–85, 1991.
FREEMAN, W.J. Emotion is from preparatory brain chaos; irrational action is from
premature closure. Behavioral and Brain Sciences, Cambridge Univ Press, v. 28,
n. 02, p. 204–205, 2005.
FREEMAN, W.J. My legacy: A launch pad for exploring neocortex. In: Brain Network
Dynamics Conference. [S.l.: s.n.], 2007.
FURBER, S.; TEMPLE, S. Neural systems engineering. Journal of The Royal Society
Interface, The Royal Society, v. 4, n. 13, p. 193–206, 2007.
GERKEY, Brian P.; T.VAUGHAN, Richard; HOWARD, Andrew. The player/stage
project: Tools for multi-robot and distributed sensor systems. Coimbra, Portugal, p.
317–323, 2003.
GERSTNER, Wulfram. Spiking neurons. MIT Press, Cambridge, MA, USA, p. 1–53,
1999.
GERSTNER, W.; KISTLER, W.M. Spiking Neuron Models: Single Neurons,
Populations, Plasticity. [S.l.]: Cambridge University Press, 2002.
GOMES, R.M.; BRAGA, A.P.; BORGES, H.E. A model for hierarchical associative
memories via dynamically coupled GBSB neural networks. Proceeding of Internacional
Conference in Artificial Neural Networks-ICANN, Springer, 2005.
GOMES, R.M.; BRAGA, A.P.; BORGES, H.E. Storage capacity of hierarchically
coupled associative memories. Ninth Brazilian Symposium on Neural Networks, 2006.
HASELAGER, Willem F. G. Co-evolutionary robotics and the problems of autonomy.
In: 8th Brazilian Society of Artificial Neural Networks (SBRN). [S.l.: s.n.], 2004.
HEBB, Donald O. Organization of Behaviour. [S.l.]: Wiley New York, 1949.
HODGKIN, AL; HUXLEY, AF. A quantitative description of ion currents and its
applications to conduction and excitation in nerve membranes. J. Physiol.(London),
v. 117, p. 500–544, 1952.
HUI, S.; ZAK, SH. Dynamical analysis of the brain-state-in-a-box (BSB) neural models.
IEEE Transactions on Neural Networks, v. 3, n. 1, p. 86–94, 1992.
IZHIKEVICH, E.M. Simple model of spiking neurons. IEEE Transactions on Neural
Networks, v. 14, n. 6, p. 1569–1572, 2003.
Referências Bibliográficas
64
IZHIKEVICH, E.M. Dynamical Systems in Neuroscience: The Geometry of Excitability
and Bursting. [S.l.]: The MIT Press, 2007.
KRICHMAR, JL; EDELMAN, GM. Brain-based devices: intelligent systems based on
principles ofthe nervous system. Intelligent Robots and Systems, 2003.(IROS 2003).
Proceedings. 2003 IEEE/RSJ International Conference on, v. 1, 2003.
LARSON, Stephen. Modeling Time in Computational Neuroscience. Dec 2006.
Disponível em: <http://neurodudes.com/2006/12/29/modeling-time-in-computationalneuroscience>.
LEDOUX, Joseph. Synaptic Self. How Our Brains Become Who We Are. [S.l.]:
Penguim Books, 2002.
LENT, Roberto. Cem Bilhões de Neurônios: Conceitos fundamentais de Neurociência.
[S.l.: s.n.], 2001.
LEWIS, M.D. Bridging emotion theory and neurobiology through dynamic systems
modeling. Behavioral and Brain Sciences, Cambridge Univ Press, v. 28, n. 02, p.
169–194, 2005.
MAASS, W.; NATSCHLÄGER, T.; MARKRAM, H. Real-time Computing Without Stable
States: A New Framework for Neural Computation Based on Perturbations. Neural
Computation, v. 14, n. 11, p. 2531–2560, 2002.
MATURANA, Humberto R.; VARELA, Francisco J. A Árvore do Conhecimento: as
bases biológicas da compreensão humana. 4. ed. São Paulo: Palas Athena, 2004.
MCCULLOCH, W.S.; PITTS, W. A logical calculus of the ideas immanent in nervous
activity. Bulletin of Mathematical Biology, Springer, v. 5, n. 4, p. 115–133, 1943.
MEIRELES, MRG; ALMEIDA, PEM; SIMOES, MG. A comprehensive review for
industrial applicability of artificial neural networks. IEEE Transactions on Industrial
Electronics, v. 50, n. 3, p. 585–601, 2003.
MURESAN, R.C.; SAVIN, C. Resonance or Integration? Self-Sustained Dynamics and
Excitability of Neural Microcircuits. Journal of Neurophysiology, Am Physiological Soc,
v. 97, n. 3, p. 1911, 2007.
NEUMANN, John von. The Computer and the Brain. [S.l.]: Yale University Press,
1958.
NEUMANN, John von. First Draft of a Report on the EDVAC. The Origins of Digital
Computers: Selected Papers, Springer, 1982.
NOLFI, S. Evolutionary Robotics: Exploiting the Full Power of Self-organization.
Connection Science, Taylor AND Francis, v. 10, n. 3, p. 167–184, 1998.
OLIVEIRA, Fábio Martins de. Construção de um Agente Inteligente por Cognição
Situada: framework para Interconexão de Redes Neurais Artificiais. 2006. Dissertação
(Mestrado) — Centro Federal de Educação Tecnológica de Minas Gerais, 2006.
Referências Bibliográficas
65
PAOLO, E.A. Di. Spike timing dependent plasticity for evolved robots. Adaptive
Behavior, v. 10, n. 3-4, p. 243–263, 2002.
PFEIFER, Rolf. Understanding Intelligence. [S.l.]: The MIT Press, 2001.
PIRES, Anderson Grandi. Modelagem de um Mecanismo de Percepção-em-ação
para os Agentes de Software Cognitvos Situados e Extensão da Arquitetura Artífice.
2005. Dissertação (Mestrado) — Centro Federal de Educação Tecnológica de Minas
Gerais, 2005.
REEVE, R.; HALLAM, J. An analysis of neural models for walking control. Neural
Networks, IEEE Transactions on, v. 16, n. 3, p. 733–742, 2005.
REIS, A.G.; ACEBAL, JL; GOMES, R.M.; BORGES, H.E. Space-vector structure
based synthesis for hierarchically coupled associative memories. Ninth Brazilian
Symposium on Neural Networks, 2006.
SANTOS, Bruno André. Aspectos Conceituais e Arquiteturais para a Criação de
Linhagens de Agentes de Software Cognitivos e Situados. 2003. Dissertação
(Mestrado) — Centro Federal de Educação Tecnológica de Minas Gerais, 2003.
SANTOS, Bruno André; PIRES, Anderson Grandi; BORGES, Henrique Elias;
ALMEIDA, Paulo Eduardo Maciel de. Modelagem Computacional de um Sistema
Inteligente com Base na Arquitetura para Criação de Linhagens de Agentes de
Software Cognitivos Situados. In: VII Encontro de Modelagem Computacional. Nova
Friburgo, RJ: [s.n.], 2004.
SETTINGS, M. Gamma activity as a functional correlate of cognition Special Issue.
International Journal of Psychophysiology, Elsevier, v. 38, n. 3, 2000.
SHERMAN, S.M. The neural substrates of cognition. Trends in Neurosciences,
Elsevier, v. 29, n. 6, p. 295–297, 2006.
SOARES, Alexandre Henrique Vieira. Arquitetura para criação de robôs autônomos
emocionais-cognitivos numa perspectiva situada. 2007. Em fase de conclusão.
SONG, S.; MILLER, K.D.; ABBOTT, LF. Competitive Hebbian learning through
spike-timing-dependent synaptic plasticity. Nature Neuroscience, v. 3, p. 919–926,
2000.
SPORNS, O. Embodied cognition. Handbook of brain theory and neural networks, p.
395–398, 2003.
TSIEN, J. The Memory Code. Scientific American Magazine, Scientific American,
v. 297, n. 1, p. 52–59, 2007.
YEUNG, Luk Chong. A Mechanistic Model of Calcium-Dependent Synaptic Plasticity.
2005. Tese (Doutorado) — Brown University, 2005.
66
ANEXO A -- Algoritmo principal
w=sparse(zeros(N,N));
% Matriz de pesos e conexoes
tau_est=sparse(zeros(N,N));
% Constante de tempo do decaimento do estimulo
atrasos=sparse(zeros(N,N));
% Atrasos de condução axonal
g=sparse(zeros(N,N));
% Matriz de condutancias
LTP=sparse(zeros(N,N));
LTD=sparse(zeros(N,N));
est_fut= [] ; new_est_fut = [];
% Matriz de estimulos externos
%
tempo neuronio
I_est=[
1
1
t_total 1
valor
1
0
tau
10;
1];
linha=1;
% e v de repouso
% f u de repouso
% h reset ponto fixo
for t=1:tau:t_total
% laço principal (tempo)
fired = find(v>=30);
% Verifica quais os neronios pulsaram
Anexo A -- Algoritmo principal
if ~isempty(fired)
% Verifica se algum pulsou na iteração atual
firings = [firings;t+0*fired,fired];
v(fired)=(1-h(fired))*c(fired) + h(fired)*e(fired);
u(fired)=(1-h(fired))*(u(fired) + d(fired)) + h(fired)*f(fired);
% Verifica quando o estimulo chegará nos pós
for j=1:length(fired)
for i=1:N
if (s(i,fired(j))~=0)
%
(pos), (pre), tempo que o estimulo chegara
est_fut=[est_fut ; i fired(j) (atrasos(i,fired(j))+t) t];
end;
end; % for i=1:N
end; % for j=1:length(fired)
end; % if ~isempty(fired)
for j=1:size(est_fut,1)
if(est_fut(j,4)==t)
if (s(est_fut(j,1),est_fut(j,2))==2)
% O neuronio que disparou enfraquece as sinapses onde
% ele é o pos
LTD(est_fut(j,1),est_fut(j,2))=LTD(est_fut(j,1),est_fut(j,2)) + An;
w(est_fut(j,2),:)=w(est_fut(j,2),:) + LTP(est_fut(j,2),:) * w_max;
67
Anexo A -- Algoritmo principal
end
end
if(est_fut(j,3)==t)
if (w(est_fut(j,1),est_fut(j,2))==2)
% O neuronio que disparou pontencializa as sinapses onde
% ele é o pre
LTP(est_fut(j,1),est_fut(j,2))=LTP(est_fut(j,1),est_fut(j,2)) + Ap;
w(:,est_fut(j,2)) = w(:,est_fut(j,2)) - LTD(:,est_fut(j,2)) * w_max;
else
w(est_fut(j,1),est_fut(j,2))=w(est_fut(j,1),est_fut(j,2))+w_in;
end
else
new_est_fut = [ new_est_fut; est_fut(j,1) est_fut(j,2) est_fut(j,3)];
end; % if(est_fut(j,3)==t)
end; % for j=1:size(est_fut,1)
est_fut= new_est_fut ;
new_est_fut = [];
68
Anexo A -- Algoritmo principal
psc=w.*g;
% Gera as contribuicoes de correntes dos pré
I=sum(psc,2).*(-v); % Soma as contribuicoes
while ((linha <= size(I_est,1) ) && (I_est(linha,1)==t) )
I(I_est(linha,2))=I(I_est(linha,2))+I_est(linha,3);
linha=linha+1;
end;
v=v+(tau/2)*(alfa*v.^2+beta*v+gama-u+I);
v=v+(tau/2)*(alfa*v.^2+beta*v+gama-u+I);
u= u + tau * ( a.*-u + a.*b.*v );
g=g-g./(1+tau_est);
LTP=LTP-(LTP/tau_stdp);
LTD=LTD-(LTD/tau_stdp);
end; % laço principal (tempo)
69
70
ANEXO B -- Algoritmo de coordenação do
robô
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <stddef.h>
#include <math.h>
#include <libplayerc/playerc.h>
//VARIAVEIS
# define N 9
//Numero de neuronios
# define REFLEXO 100
int corrente_saida[N]; //Corrente pos-sinaptica de cada neuronio
float Sd1=0,Sd2=0, Se1=0,Se2=0; //Sensores
float v[N], u[N]; //V e U de cada neuronio
int conexoes_sinapticas[N][N]; //conexoes entre neuronios
//colunas: qtde pre-sinapticos; estimulo p/ corpo celular que nao vai gerar
//(ou diminuir) diparo e estimulo p/ corpo celular que vai gerar (ou aumentar) disparo;
int integradores[N][3]={{0,0,0},
//0- pre-sinaptico: sensor
{0,0,0},
//1- pre-sinaptico: sensor
{0,0,0},
//2- pre-sinaptico: sensor
{0,0,0},
//3- pre-sinaptico: sensor
{2,0,50}, //4 - verificar quais valores para Subthreshold oscillations
{2,0,50}, //5
{2,0,50}, //6
{3,0,50}, //7- Subthreshold oscillations
Anexo B -- Algoritmo de coordenação do robô
{0,0,0}
//8- Subthreshold oscillations: oscilador de referencia
};
FILE *interno, *externo; //Arquivos de log
float a=0.02,b=0.2,c=-65,d=6; //Parametros das equacoes
int area_sensora_esquerda;
int area_sensora_direita;
int translacao=0, rotacao_angulo=0,rotacao_sentido=0;
int ciclo=0;
playerc_client_t *client;
playerc_position2d_t *position;
playerc_sonar_t *sonar;
//PROTOTIPOS
int dinamica_neuronio(int i, float in);
int iniciar_robo();
int identificar_regiao(int position_x, int position_y);
void gerar_log();
int testar_neuronio();
void finalizar_robo();
int iniciar_variaveis();
int diferenciador(int neuronio);
int integrador_menor_frequencia(int neuronio);
int log_integrador1=0; //registra o estado do integrador de menor frequencia
// para gerar arquivo de log
int ativacao_diferenciador=0;
int main(int argc, const char **argv)
{
int log = 1;//"1": gera arquivo de log - "0": nao arquivo de gera log
iniciar_variaveis();
if (log){ //Abre arquivo
interno=fopen("dinamica_interna.txt","a");
71
Anexo B -- Algoritmo de coordenação do robô
externo=fopen("dinamica_externa.txt","a");
if (interno==NULL || externo==NULL){
printf("Erro ao abrir arquivo\n");
return 1;
}
}
if (!(iniciar_robo())) { //Inicia robo
printf("\n\nErro ao iniciar robo.\n");
return 1;
}
for (ciclo=0;1;ciclo++){//loop principal
//Ler estimulos
while(playerc_client_read(client)==0); //Nao faz nada
Sd1=sonar->scan[4]; //Sonar varia entre 0 (perto) e 5 (longe)
Sd2=sonar->scan[7];
Se1=sonar->scan[3];
Se2=sonar->scan[0];
translacao=0;
rotacao_angulo=0;
rotacao_sentido=0;
int i,cont0=0,cont1=0,cont4=0;
for (i=0;i<REFLEXO*10;i++){//Nivel reflexo
a=0.02;b=0.2;c=-65;d=6;//Tonic spiking
//AREA SENSORA
corrente_saida[0]=dinamica_neuronio(0, ((10*Sd1)+40));
corrente_saida[1]=dinamica_neuronio(1, ((10*Sd2)+40));
corrente_saida[2]=dinamica_neuronio(2, ((10*Se1)+40));
corrente_saida[3]=dinamica_neuronio(3, ((10*Se2)+40));
a=0.05; b=0.26; c=-60; d=0; //Subthreshold oscillations
//Atualiza pre-sinapticos do neuronios 4 e 5
//Caso conexoes_sinapticas seja 1, nao pode voltar para 0.
if (conexoes_sinapticas[4][0]==0)
conexoes_sinapticas[4][0]=corrente_saida[0];
if (conexoes_sinapticas[4][1]==0)
72
Anexo B -- Algoritmo de coordenação do robô
conexoes_sinapticas[4][1]=corrente_saida[1];
log_integrador1=0;
int y;
for (y=0;y<N;y++) //Conta as conexoes_sinapticas.
log_integrador1+=conexoes_sinapticas[4][y];
////Termino do log
corrente_saida[4]=dinamica_neuronio(4,integrador_menor_frequencia(4));
if (conexoes_sinapticas[5][0]==0)
conexoes_sinapticas[5][0]=corrente_saida[2];
if (conexoes_sinapticas[5][1]==0)
conexoes_sinapticas[5][1]=corrente_saida[3];
corrente_saida[5]=dinamica_neuronio(5,integrador_menor_frequencia(5));
//AREA MOTORA
//Atualiza pre-sinapticos do neuronio 6
if (conexoes_sinapticas[6][0]==0)
conexoes_sinapticas[6][0]=corrente_saida[4];
if (conexoes_sinapticas[6][1]==0)
conexoes_sinapticas[6][1]=corrente_saida[5];
corrente_saida[6]=dinamica_neuronio(6,integrador_menor_frequencia(6));
//Atualiza oscilador pre-sinaptico do neuronio 7
int est=0;
if (i%10 == 0)
est=200;
corrente_saida[8]=dinamica_neuronio(8,est);
//Atualiza pre-sinapticos do neuronio 7
conexoes_sinapticas[7][0]=(corrente_saida[4]*-1);//Inibe (negativo)
conexoes_sinapticas[7][1]=corrente_saida[5]; //Estimula (positivo)
conexoes_sinapticas[7][8]=corrente_saida[8]; //Estimula
73
Anexo B -- Algoritmo de coordenação do robô
74
//Log do neuronio 4 que possui o integrador de menor frequencia
fprintf(interno,"\n%04d.%03d %d %d %d %d",ciclo,i,corrente_saida[0],corrente_saida[1],
log_integrador1,corrente_saida[4]);
int aux=diferenciador(7);
//corrente_saida[7]=dinamica_neuronio(7, aux);//0 ou 200
corrente_saida[7]=dinamica_neuronio(7, aux);//0 ou 200
//fprintf(stdout,"\n%d.%d %3d %3d",ciclo,i,aux,corrente_saida[7]);
//Log do neuronio 7 que possui o diferenciador (denominado no artigo como "Integrador 2")
fprintf(interno," %d %d %d %2d %d",corrente_saida[4],corrente_saida[5],corrente_saida[8],
ativacao_diferenciador,corrente_saida[7]);
translacao
+= corrente_saida[6];
rotacao_angulo+= corrente_saida[6];
rotacao_sentido+=corrente_saida[7];
}
//Reinicia valores por causa da janela de tempo
ativacao_diferenciador=0;
int m,n;
for (m=0;m<N;m++){
for (n=0;n<N;n++) //reinicia valores;
conexoes_sinapticas[m][n]=0;
}
//50 eh o valor da frequencia qdo o Tonic spiking eh estimulado com 60.
if (rotacao_sentido>110) rotacao_sentido=1; //Direita - x erro
else {
if (rotacao_sentido<90) {rotacao_sentido=-1;} //Esquerda - x erro
else rotacao_sentido=0;
}
//A variavel rotacao_angulo varia entre 10 e 20.
//Conversao: 10=>20 graus; 20=>2 graus; Rotaciona entre 2 e 20. Quanto
//mais proximo maior o angulo.
fprintf(externo,"\n%05d %2.3f %2.3f %.3f %.3f %.3f %.3f %.3f %3.3f",
Anexo B -- Algoritmo de coordenação do robô
ciclo,position->px,position->py,Sd1,Sd2,Se1,Se2,((translacao/40.0)-2.8),
(((float)(10-(rotacao_angulo/20.0)))*1.8+20)*rotacao_sentido);
if (ciclo>100)//Envia estimulo apos estabilizacao
playerc_position2d_set_cmd_vel(position,((translacao/40.0)-2.8),0,
DTOR((((float)(10-(rotacao_angulo/20.0)))*1.8+20)*rotacao_sentido),0);
if (log){fflush(interno);fflush(externo);}
} //loop principal
finalizar_robo();
if (log){fclose(interno);fclose(externo);}//Fecha arquivos
return 0;
}
int diferenciador(int neuronio){
int i;
for (i=0;i<N;i++) //Conta as conexoes_sinapticas.
{
ativacao_diferenciador+=conexoes_sinapticas[neuronio][i];
conexoes_sinapticas[neuronio][i]=0; //reinicia valor.
}
if (ativacao_diferenciador>0){
ativacao_diferenciador-=1; //decrementa pois o neuronio ira pulsar
return integradores[neuronio][2];//retorna estimulo que aumenta disparo
}
return integradores[neuronio][1]; //valor: 0
}
int integrador_menor_frequencia(int neuronio){
int i,cont=0;
for (i=0;i<N;i++) //Conta as conexoes_sinapticas.
cont+=conexoes_sinapticas[neuronio][i];
if (cont==integradores[neuronio][0])
{
75
Anexo B -- Algoritmo de coordenação do robô
for (i=0;i<N;i++) //reinicia valores;
conexoes_sinapticas[neuronio][i]=0;
return integradores[neuronio][2];//retorna estimulo que gera disparo
}
else
return integradores[neuronio][1];//retorna estimulo que NAO gera disparo
}
//Dinamica de cada neuronio
int dinamica_neuronio(int i, float corrente_entrada){
int corrente_saida=0;
v[i]+=((0.04*v[i]+5)*v[i]+140-u[i]+corrente_entrada);
u[i]+=a*(b*v[i]-u[i]);
if (v[i]>=30){
v[i] = c;
u[i]+=d;
corrente_saida=1;
}
return corrente_saida;
}
//Inicia variaveis relativas ao robo.
int iniciar_robo(){
printf("\e[H\e[2J");
client = playerc_client_create(NULL, "localhost", 6665);
if (playerc_client_connect(client) != 0)
{
fprintf(stderr, "error: %s", playerc_error_str());
return 0;
}
position = playerc_position2d_create(client, 0);
if (playerc_position2d_subscribe(position, PLAYER_OPEN_MODE) != 0)
{
fprintf(stderr, "error: %s", playerc_error_str());
76
Anexo B -- Algoritmo de coordenação do robô
return 0;
}
sonar = playerc_sonar_create(client, 0);
if (playerc_sonar_subscribe(sonar, PLAYER_OPEN_MODE) != 0)
{
fprintf(stderr, "error: %s", playerc_error_str());
return 0;
}
// Enable the robots motors
playerc_position2d_enable(position, 0);
return 1;
}
//Teste de neuronio
int testar_neuronio(){
int corrente_entrada=0, corrente_saida=0, tempo=0, tempo_do_pulso=0;
int ciclo=0;
float v=-65,u=b*-65;
for (corrente_entrada=0;corrente_entrada<100 ;corrente_entrada++){
for (tempo=0;tempo<1;tempo++){
v+=1*((0.04*v+5)*v+240-u-corrente_entrada);
u+=a*(0.2*v-u);
if (v>=30){
v = -65.0;
u+=d;
corrente_saida=98-(ciclo-tempo_do_pulso);
tempo_do_pulso=ciclo;
}
fprintf(stdout, "\nCorrente entrada: %i Ciclo: %i:
Corrente de saida: %i", corrente_entrada, ciclo, corrente_saida);
ciclo=ciclo+1;
}
}
return 0;
77
Anexo B -- Algoritmo de coordenação do robô
}
//Finaliza robo
void finalizar_robo(){
// Shutdown and tidy up
playerc_position2d_unsubscribe(position);
playerc_position2d_destroy(position);
playerc_sonar_unsubscribe(sonar);
playerc_sonar_destroy(sonar);
playerc_client_disconnect(client);
playerc_client_destroy(client);
}
int iniciar_variaveis(){
int i,j;
for (i=0;i<N;i++)
{
v[i]=-65;
u[i]=b*-65;
corrente_saida[i]=0;
for (j=0;j<N;j++)
conexoes_sinapticas[i][j]=0;
}
}
78
Download