Mapas Auto-Organizáveis de
Kohonen
Moacir P. Ponti Jr.
[email protected]
Universidade Federal de São Carlos
Sumário
1.
Introdução
2.
Inspiração Neurofisiológica
3.
Aprendizagem Competitiva
4.
Mapas Auto-Organizáveis
Moacir P. Ponti Jr.
2
Introdução

O Self-Organizing Map (SOM), ou Mapas AutoOrganizáveis foram desenvolvidos por Kohonen a
partir de 1982

Aprendizado não-supervisionado, diferente de
todas as redes neurais artificiais desenvolvidas até
então

Possui forte inspiração neurofisiológica

É baseado em Aprendizagem Competitiva
Moacir P. Ponti Jr.
3
Inspiração Neurofisiológica


Observação de imagens

Ressonância magnética (MRI)

Tomografia Computadorizada (CT)
Diferentes estímulos geram

Regiões de excitação

Organização topográfica
Figura: Regiões ativas durante aplicação de acupuntura no ponto LI-5
Fonte: Neuro-imaging of Acupunture Project
Moacir P. Ponti Jr.
4
Inspiração Neurofisiológica
Moacir P. Ponti Jr.
5
Inspiração Neurofisiológica

Quando um neurônio é excitado, ao redor uma área
entre 50 e 100 μm também sofre excitação


Ao redor, uma área sofre inibição para impedir a
propagação do sinal a áreas não relacionadas
A figura ilustra a
iteração lateral entre
os neurônios
Moacir P. Ponti Jr.
6
Aprendizagem Competitiva

Neurônios de saída da RNA competem entre si para
se tornar ativos

Apenas um neurônio de saída está ativo em um
determinado instante

Três elementos básicos:
1. Neurônios com mesma estrutura, diferente pelos
pesos, de forma que tenham respostas diferentes a
uma entrada
2. Um limite imposto sobre a força de cada neurônio
3. Mecanismo de competição entre neurônios, de forma
que um neurônio é vencedor em um dado instante.
Moacir P. Ponti Jr.
7
Aprendizagem Competitiva

Em cada momento o neurônio vencedor:



aprende a se especializar em agrupamentos de
padrões similares
tornam-se detectores de características para classes
diferentes de padrões de entrada
O número de unidades de entrada define a
dimensionalidade dos dados
Moacir P. Ponti Jr.
8
Aprendizagem Competitiva - Exemplo

Exemplo de estrutura simples:

1 camada de saída

Totalmente conectada à entrada
x1
Pode incluir realimentação entre
neurônios para inibição lateral
x2


Conexões excitadoras das
entradas para os neurônios (setas
fechadas com linhas contínuas)

Conexões laterais inibitórias
entre os neurônios (setas abertas em
y1
y2
x3
x4
Entradas
y3
Neurônios
Saída
linhas tracejadas)
Moacir P. Ponti Jr.
9
Aprendizagem Competitiva
(Neurônio Vencedor)

O neurônio vencedor é o que possui o maior campo local
induzido υk para um dado padrão de entrada x

O campo local induzido representa a ação combinada de
todas as entradas do neurônio k

A escolha do vencedor maximiza o produto interno entre
os pesos do neurônio e o sinal de entrada

O sinal de saída yk do neurônio vencedor é colocado em
1 (um) e dos outros neurônios em 0 (zero).
1 se k   j para todo j  i
yk  
caso contrario
0
Moacir P. Ponti Jr.
10
Aprendizagem Competitiva
(Pesos)

Considerando ωkj como o peso sináptico
conectando o nó de entrada j ao neurônio k, cada
neurônio tem uma quantidade de peso sináptico

kj
 1 para todok
j

Cada neurônio tem seus pesos inicializados
aleatoriamente

O aprendizado dá-se então deslocando os pesos do
neurônio vencedor, na direção da entrada
Moacir P. Ponti Jr.
11
Aprendizagem Competitiva
(Regra de Aprendizagem)

A regra de aprendizagem competitiva aplica uma
variação Δωkj ao peso ωkj, definida por:
 ( x j - kj ) se o neurôniok for o vencedor
kj  
caso contrario
0
onde α é a taxa de aprendizagem.

Esta regra move o vetor de peso do neurônio
vencedor em direção ao padrão de entrada
Moacir P. Ponti Jr.
12
Aprendizagem Competitiva
(Exemplo / Interpretação)

2 entradas (espaço 2D)


7 padrões de entrada
4 neurônios de saída
 α = 0.5

7 iterações
Na Figura, os pontos pretos
representam as entradas e os
amarelos os vetores dos
pesos sinápticos dos 4
neurônios de saída
Moacir P. Ponti Jr.
Estado Inicial da Rede
13
Aprendizagem Competitiva
(Exemplo / Interpretação)
3
Entrada aleatória
Neurônio vencedor
2
2
3
Aprendizado
1
1
-1
4
como α = 0.5, o
deslocamento é
referente à metade
da distância
-2
-3
-3
-2
-1
1
2
3
Simulação das iterações da aprendizagem competitiva
Moacir P. Ponti Jr.
14
Aprendizagem Competitiva

Na aprendizagem competitiva, não há ordenação do
mapa de neurônios de saída (clusters)

No exemplo, a ordem
topológica seria:
w_1, w_2, w_3

No entanto o mapa de
saída está na ordem:
w_2, w_3, w_1
Moacir P. Ponti Jr.
15
Mapas Auto-Organizáveis

Grades neurais baseadas na aprendizagem
competitiva

Neurônios de saída da grade competem entre si para
serem ativados ou disparados

Os neurônios estão dispostos em nós de uma grade,
em geral uni- ou bidimensional

Mapas de dimensionalidade
mais alta são possíveis
porem pouco comuns
Moacir P. Ponti Jr.
16
Mapas Auto-Organizáveis

Processo de organização

Aprendizado não-supervisionado

Neurônios dispostos em grade


Vetores de peso localizam os neurônios no espaço
de entrada
Torna a rede ideal para detecção de agrupamentos
(clusters)
Moacir P. Ponti Jr.
17
Mapas Auto-Organizáveis

n
Neurônio
Vencedor
O modelo de Kohonen



Produz um mapeamento
topológico
Arranjo
bidimensional
de neurônios
Transforma um padrão
de dimensão arbitrária
em um mapa discreto
uni- ou bidimensional
Preserva a relação de
vizinhança entre os
neurônios
Moacir P. Ponti Jr.
Conexões
sinápticas
Entrada
x
18
Mapa Topológico

No caso bidimensional, dois tipos de grade são
possíveis: hexagonal ou retangular.

Na hexagonal, cada neurônio possui 6 vizinhos diretos

Na retangular, cada neurônio possui 4 vizinhos diretos
Moacir P. Ponti Jr.
19
Mapas Auto-Organizáveis (Arquitetura)

Considere um espaço vetorial de entrada com
dimensão d

Cada amostra é um sinal/padrão representado por
um vetor x = [ x1, x2, ..., xd ]

A arquitetura do SOM consiste de 2 camadas de
neurônios
 Camada de entrada composta por d neurônios

Camada de saída (ou de Kohonen) formada por N
neurônios denotados por: A = { c1, c2, ..., cN }
Moacir P. Ponti Jr.
20
Mapas Auto-Organizáveis (Arquitetura)

O vetor peso sináptico de cada neurônio da grade
tem a mesma dimensão que o espaço de entrada
 O vetor peso do neurônio j é representado por:
w = [ ωj1, ωj2, ..., ωjd ] j = 1, ..., N
este vetor indica as coordenadas de sua localização
no espaço de entrada d dimensional
Moacir P. Ponti Jr.
21
Mapas Auto-Organizáveis (Arquitetura)

Diagrama Esquemático (exemplo)

Entrada

Pesos

Neurônios
Moacir P. Ponti Jr.
22
Exemplo

Os círculos pretos representam dados (neurônios) de entrada no
espaço unidimensional. A, B, C e D são a representação dos
neurônios de saída no espaço de entrada (que coincide com o
espaço dos pesos de conexão).
(a) estado inicial dos neurônios - A, B, C e D tem pesos
desordenados
(b) estado final dos neurônios A,B,C e D, após os ajustes, os
neurônios vizinhos tem pesos similares
Moacir P. Ponti Jr.
23
SOM – Algoritmo Básico
1.
Inicialização: geralmente aleatória, pode ainda ser estimada por
análise da representação dos dados
2.
Competição: para cada padrão de entrada, calcula-se a resposta
dos neurônios de saída (grade). O neurônio com a maior resposta é
o vencedor da competição.
3.
Cooperação: o neurônio vencedor define uma vizinhança
topológica (em função da grade) de neurônios excitados
4.
Adaptação Sináptica: aprendizado em relação ao padrão de
entrada. Os pesos do neurônio vencedor, e de sua vizinhança,
ficam mais próximos do padrão de entrada.
Moacir P. Ponti Jr.
24
Inicialização

Inicialização aleatória: mais simples e mais utilizada



nenhum estado de organização é considerado
durante as primeiras centenas de passos, os vetores
peso passam por processo de auto-organização
Inicialização linear: tenta pré-organizar o espaço

arranjo de neurônios definido ao longo de um
subespaço linear correspondente aos:
• k auto-vetores da matriz de auto-correlação de X que
possuem os maiores auto-valores

similar à análise dos componentes principais (PCA)
Moacir P. Ponti Jr.
25
Critério de Competição

O critério do melhor casamento (best matching) é
baseado na maximização do produto interno como
na aprendizagem competitiva

Isto é matematicamente equivalente a minimizar a
distância euclidiana entre w e x

O neurônio vencedor, v é escolhido por:
v  arg min x  w j , j  1,2,..., N
j
Moacir P. Ponti Jr.
26
Processo Cooperativo

Compreende a definição de uma função de
vizinhança hvj centrada no neurônio vencedor

Define uma região de neurônios cooperativos, que
terão seus pesos ajustados juntamente com o
neurônio vencedor

Há diversas formas de implementar a função de
vizinhança

Mais simples é definir um conjunto Nv(t) de níveis de
vizinhança ao redor do neurônio vencedor
Moacir P. Ponti Jr.
27
Processo Cooperativo

Então, a função de vizinhança torna-se:
1 , j  N v (t )
hvj (t )  
0 , j  N v (t )

Nv(t) é função monotônica
decrescente no tempo
 A função de vizinhança é
mapeada no espaço de saída
Figura: Exemplo de níveis de
vizinhança para uma
grade retangular de neurônios
Moacir P. Ponti Jr.
28
Processo Cooperativo

Exemplos de função de vizinhança

Tipo bolha (todos os neurônios da vizinhança serão
atualizados igualmente)
• Base Quadrada / Base Circular
v
v
Moacir P. Ponti Jr.
29
Processo Cooperativo

Inicia-se o algoritmo com alto nível de vizinhança e
esta é reduzida conforme o tempo avança

É necessário diminuir a região de vizinhança para
obter a auto-organização do mapa

Para que o algoritmo convirja é necessário que
hvj (t )  0 quando t  
Moacir P. Ponti Jr.
30
Processo Cooperativo

Exemplo de mudança no nível da vizinhança em uma
simulação de 3 iterações

Função de vizinhança quadrada tipo ‘bolha’
Iteração 1
Iteração 2
Iteração 3
v
Moacir P. Ponti Jr.
31
Processo Cooperativo

Uma função muito interessante a ser usada como
função de vizinhança é a Gaussiana, dada por:
 rv  r j
hvj (t )  exp 
 2 2 (t )





onde o termo rv  r j é a distância entre
o neurônio v vencedor e o neurônio j que
está sendo atualizado
Moacir P. Ponti Jr.
32
Processo Cooperativo

O parâmetro σ define a largura da função e deve ser
decrescente no tempo. Pode ser usada uma função
linear, mas em geral é usada a exponencial:
 t 
 (t )   (0) exp  
 1 
σ(0) é um valor inicial para σ
τ1 é uma constante de tempo do SOM
definida para que a taxa de
aprendizagem nunca decaia para zero
Moacir P. Ponti Jr.
NIter
1 
log (0)
33
Processo Competitivo

Exemplo de função de vizinhança Gaussiana


Os neurônios da
vizinhança são
atualizados de
forma ponderada
hvj
Quanto mais
afastados, menor
fica a taxa de
aprendizado
v
dvj
Moacir P. Ponti Jr.
34
Processo Cooperativo

Exemplo de função de vizinhança Gaussiana
v
v
Visão Lateral
Visão Superior
Moacir P. Ponti Jr.
35
Adaptação Sináptica

Modificação dos pesos em relação à entrada, de
forma iterativa

A equação abaixo é aplicada a todos os neurônios
da grade dentro da região de vizinhança hvj
w j (t  1)  w j (t )   (t )hvj (t )[x  w j (t )]
Vizinhança
Vetor peso Vetor peso
Taxa de
atualizado
anterior
aprendizagem
Moacir P. Ponti Jr.
Adaptação
36
Adaptação Sináptica

O parâmetro de aprendizagem α , assim como a
função de vizinhança deve decrescer com o tempo,
para que as adaptações sejam cada vez mais “finas”

Pode ser usada uma função linear decrescente, mas
é recomendada uma função exponencial
decrescente:
 t 
  t   0 exp    ,
 2 
onde τ2 é o número total de iterações
Moacir P. Ponti Jr.
37
Adaptação Sináptica (Ordenação)
Grade desordenada

Assumindo uma inicialização
aleatória, é necessário duas
fases de adaptação
1.
1
4
Fase de Ordenação: devido à
inicialização aleatória, a grade
está desordenada
• A ordenação topológica dá-se
pela movimentação da
vizinhança, o que ocorre em
geral nas primeiras 1000
iterações
2
3
Grade ordenada
1
3
2
4
Moacir P. Ponti Jr.
38
Adaptação Sináptica (Ordenação)

Para a Fase de Ordenação, a inicialização dos
parâmetros: τ2 , α(0) e σ(0) é importante e depende
da aplicação

Haykin (2000) sugere os seguintes valores iniciais:
τ2 = 1000
α(0) = 0,1

O σ(0), largura da função de vizinhança, depende do
tamanho da rede. Para uma rede de 50 neurônios,
por exemplo, uma possibilidade é:
σ(0) = 25
Moacir P. Ponti Jr.
39
Adaptação Sináptica (Convergência)

Após a fase de ordenação, inicia-se a adaptação aos
padrões de entrada
2.
Fase de Convergência: ocorre uma “sintonia fina”, que
pode durar muito mais iterações do que a fase de
ordenação
•
Neste momento, a função de vizinhança deverá englobar
apenas vizinhos próximos do neurônio vencedor
•
Pode ainda ser reduzida à apenas o neurônio vencedor
Moacir P. Ponti Jr.
40
Adaptação Sináptica (Convergência)

Para a Fase de Convergência, a seguinte
inicialização dos parâmetros: τ2 , α(0) e σ(0) é
recomendada por Haykin (2000):
τ2 = 500 . N
α(0) = 0,01
onde N é o número de neurônios de saída
é importante não permitir que α chegue a zero
Moacir P. Ponti Jr.
41
Resumo

Durante o processo de aprendizagem os neurônios:



organizam-se e tornam-se ordenados entre si
especializam-se em detectar determinadas
características dos padrões de entrada
O SOM é, portanto, caracterizado pela:


formação de um mapa topológico dos padrões de
entrada
a localização espacial dos neurônios na grade após
o aprendizado são indicativas das características
estatísticas contidas nos padrões de entrada
Moacir P. Ponti Jr.
42
Aplicações

As aplicações concentram-se principalmente em:

Organização da representação dos dados
• Redução de dimensionalidade
• Reconstrução de Superfícies

Separação de agrupamentos de dados
• Segmentação de Imagens
• Data Mining
• Classificação de Documentos

Classificação de dados
• Reconhecimento de Caracteres
• Reconhecimento de Fala
Moacir P. Ponti Jr.
43
Aplicações

Reconhecimento de Caracteres
http://fbim.fh-regensburg.de/~saj39122/begrolu/kohonen.html
Moacir P. Ponti Jr.
44
Aplicações

Reconstrução de superfícies
Nuvem
de
Pontos
Malha 3D do
objeto
reconstruído
MARI, J.F. Reconstrução de superfícies 3D a partir de nuvens de pontos
usando redes neurais auto-organizáveis.
Projeto Mestrado. 2006
Moacir P. Ponti Jr.
45
Aplicações

Segmentação de Imagens
Imagem Original
Imagem Segmentada
Y. Jiang, et.al. SOM Based Image Segmentation. Lecture Notes in Artificial
Intelligence 2639, 2003, pp.640-643
http://citeseer.ist.psu.edu/jiang03som.html
Moacir P. Ponti Jr.
46
Algoritmo
1.
Selecione a topologia da rede (defina os parâmetros)
2.
Selecione a região de vizinhança inicial
3.
Inicialize os pesos aleatoriamente e defina o nº de iterações
4.
Para cada iteração:
1.
Selecione um padrão de entrada
2.
Encontre o neurônio vencedor (pela menor distância)
3.
Atualize os pesos do neurônio vencedor e sua vizinhança
w j (t  1)  w j (t )   (t )hvj (t )[x  w j (t )]
5.
4.
Decremente a região de vizinhança e a taxa de aprendizagem
(caso desejado)
5.
Incremente o número da iteração
Fim
Moacir P. Ponti Jr.
47
Mapas Auto-Organizáveis (Exemplo)


2 entradas
x1 = [ -1.0,
1.0, -2.0, 0.0]
x2 = [ -2.0,
1.0, -2.0, 2.0]
4 neurônios de saída
w1 = [ 0.0, 1.0, 0.0,-1.0 ];
w2 = [ 1.0, 0.0,-1.0, 0.0 ];
-3
-2
1
-1
2
3
3
2


α = 0.5

Decaimento para 0.3 na iteração 5

Decaimento para 0.2 na iteracao 7
Região de vizinhança tipo ‘bolha’

Início = nível 1

Decaimento de 1 nível na iteração 5
1
1
4
2
3
-1
-2
-3

10 iterações
Moacir P. Ponti Jr.
48
Exemplo de Implementação em C – parte 1
// dados de entrada
float x1[12] = {-3,-2, 1,-2,-2, 0, 1,-1,-2.5,-2.0, 0,-3.5};
float x2[12] = { 1,-2, 1, 2,-2, 2, 2,-3, 1.5,-2.5, 1, 2.0};
// estado inicial dos vetores de peso
float w1[4] = { 0, 1, 0,-1};
float w2[4] = { 1, 0,-1, 0};
// espaco de saida
float S1[4] = { 0, 1, 1, 0};
float S2[4] = { 1, 1, 0, 0};
int iX = 0;
// entrada atual
int iter = 1;
// iteracao atual
int fConv = 90; // delimita iteracao da fase de convergencia
int nD = 12;
// numero de dados
Moacir P. Ponti Jr.
49
Exemplo de Implementação em C – parte 2
// encontra o neurônio vencedor pelo calculo da menor distancia
// wV = neuronio vencedor
wV = 0; // indice do neuronio vencedor
float dist[4] = { 0, 0, 0, 0 }; // vetor de distancias
for (int j=0; j<nN; j++)
{
// calcula distancia euclidiana
dist[j]= sqrt( (pow(x1[at]-w1[j],2)) + (pow(x2[at]-w2[j],2)) );
// verifica a menor distancia
if (dist[j] <= dist[wV])
wV = j;
}
Moacir P. Ponti Jr.
50
Exemplo de Implementação em C – parte 3
// verifica entre todos os neuronios,
// quais estao na regiao de vizinhanca ( wV = neuronio vencedor )
for (int j=0; j<nN; j++)
{
// verifica se esta na regiao de vizinhanca
// note que o calculo e feito no espaco de saida (S)
distviz = sqrt( (pow(S1[wV]-S1[j],2)) + (pow(S2[wV]-S2[j],2)) );
// se estiver dentro do raio (funcao de vizinhanca circular),
// atualiza o vetor de peso
if (distviz <= raio)
{
w1[j] = w1[j]+alpha*(x1[act]-w1[j]);
w2[j] = w2[j]+alpha*(x2[act]-w2[j]);
}
}
Moacir P. Ponti Jr.
51
Exemplo de Implementação em C – parte 4
// escolhe nova entrada aleatoria entre 0 e nD (entre os dados)
act = (int)(nD * rand() / (RAND_MAX + 1.0));
iter++; // incrementa iteraçao
if (iter == fConv) // quando entra na fase de Convergencia
{ alpha = 0.25;
// atualiza parametros
raio = 0.5;
}
// a cada duas iteracoes decrementa taxa de aprendizagem
if (iter % 2 == 0)
{
if (iter < fConv)
// decremento na fase de Ordenacao
alpha-= 0.01;
if (iter >= fConv) // decremento na fase de Convergencia
alpha-= 0.001;
if (alpha <=0)
// protecao para alpha <= 0
alpha-= 0.0005;
}
Moacir P. Ponti Jr.
52
Variações do SOM

Growing Grid

Growing Cell Structures

Growing Neural Gas
Moacir P. Ponti Jr.
53
Growing Grid

Growing Grid

É uma variante incremental do SOM

Inicia com apenas 4 neurônios (no caso 2D).


A grade é incrementada pela inserção de linhas ou
colunas completas, conforme os dados de entrada
Tem duas etapas:
1. Fase de crescimento
2. Fase de ajuste fino
Moacir P. Ponti Jr.
54
Growing Grid

Growing Grid
Moacir P. Ponti Jr.
55
Growing Cell Structures

Growing Cell Structures (GCS)

Também é incremental, no entanto:
• Não tem estrutura topológica regular

A dimensionalidade é restrita
• A dimensionalidade da rede definida no início é mantida
• Isso permite a rede realizar a redução da dimensionalidade

O número de neurônios iniciais é o número da
dimensão + 1

No caso 2D, as conexões formam triângulos

No caso 3D, as conexões formam tetraedros
Moacir P. Ponti Jr.
56
Growing Cell Structures
Topologia Inicial do Growing Cell Structures
(a) Unidimensional (b) Bidimensional (c) Tridimensional
Moacir P. Ponti Jr.
57
Growing Cell Structures

O algoritmo do GCS é similar ao utilizado pelo
SOM, exceto por duas importantes diferenças:
1.
A taxa de aprendizagem é mantida constante durante
todo o processo de treinamento
2.
Apenas o neurônio vencedor e sua vizinhança
topológica direta são atualizados
Moacir P. Ponti Jr.
58
Growing Cell Structures

Exemplo de aprendizado
Moacir P. Ponti Jr.
59
Growing Neural Gas

Pode ser visto como uma variação do Growing Cell
Structures

Diferenças quanto à dimensionalidade:

A dimensionalidade da rede não é restrita

Dimensionalidade definida no início é incrementada

Portanto não ocorre redução de dimensionalidade
Moacir P. Ponti Jr.
60
Growing Neural Gas

Quanto à topologia da rede:



Inicia com dois neurônios independente da
dimensionalidade
A topologia da rede reflete a topologia do espaço de
entrada
As conexões no espaço de saída são dinâmicas
(podem ser criadas e destruídas durante o
treinamento)
Moacir P. Ponti Jr.
61
Growing Neural Gas

Quanto ao aprendizado:


Há 2 neurônios vencedores, o primeiro e o segundo.
Numa iteração ambos são atualizados e uma conexão
entre eles é criada
• Esta conexão tem um tempo de vida
• Caso não se torne ativa por um número de iterações
determinado, a conexão é destruída
Moacir P. Ponti Jr.
62
Growing Neural Gas
Início com 2 neurônios
Inclusão usando
interpolação entre os
neurônios mais ativos
Moacir P. Ponti Jr.
Organização topológica
63
Growing Neural Gas
Após 1000 iterações,
mais neurônios são
incluídos conforme as
novas entradas
Após 25000 iterações, já é possível observar que
as conexões são criadas e destruídas conforme a
atividade dos neurônios que participam da
conexão
Moacir P. Ponti Jr.
64
Referências
HAYKIN, S. Mapas Auto-Organizáveis (capítulo 9). Em: HAYKIN, S. Redes
Neurais: princípios e prática. 2000
KOHONEN, T. Self-organized formation of topologically correct feature
maps. Biological Cybernetics, 43:59-69. 1982.
PSYCH CENTRAL. Self-Organizing Map. Disponível em:
http://psychcentral.com/psypsych/Self-organizing_map. Acesso em: 29/05/2006
HYNNINEN, J. Interactive Self-Organizing Map demonstrations. Disponível
em: http://www.cis.hut.fi/research/javasomdemo/index.html. Acesso em:
25/05/2006
FROHLICH, J. 3D Kohonen Feature Map. Disponível em: http://fbim.fhregensburg.de/~saj39122/jfroehl/diplom/e-sample-applet.html. Acesso em:
31/05/2006.
Moacir P. Ponti Jr.
65
Outros sites interessantes

Sistema de busca baseado no SOM: http://www.gnod.net/

Livro de redes neurais em Java + SOM:
http://www.heatonresearch.com/articles/series/1/

Applet SOM 3D: http://fbim.fhregensburg.de/~saj39122/jfroehl/diplom/e-sample-applet.html

Applet DemoGNG 1.5 com diversas variações do SOM e
muitos recursos: http://www.neuroinformatik.ruhr-unibochum.de/ini/VDM/research/gsn/DemoGNG/GG_2.html
Moacir P. Ponti Jr.
66
Download

x 2 - Universidade Federal de São Carlos