Você está na página 1de 66

Mapas Auto-Organizveis de

Kohonen
Moacir P. Ponti Jr.
moacirponti@gmail.com

Universidade Federal de So Carlos
2 Moacir P. Ponti Jr.
Sumrio
1. Introduo
2. Inspirao Neurofisiolgica
3. Aprendizagem Competitiva
4. Mapas Auto-Organizveis
3 Moacir P. Ponti Jr.
Introduo
O Self-Organizing Map (SOM), ou Mapas Auto-
Organizveis foram desenvolvidos por Kohonen a
partir de 1982
Aprendizado no-supervisionado, diferente de
todas as redes neurais artificiais desenvolvidas at
ento
Possui forte inspirao neurofisiolgica
baseado em Aprendizagem Competitiva

4 Moacir P. Ponti Jr.
Inspirao Neurofisiolgica
Observao de imagens
Ressonncia magntica (MRI)
Tomografia Computadorizada (CT)
Diferentes estmulos geram
Regies de excitao
Organizao topogrfica
Figura: Regies ativas durante aplicao de acupuntura no ponto LI-5
Fonte: Neuro-imaging of Acupunture Project
5 Moacir P. Ponti Jr.
Inspirao Neurofisiolgica
6 Moacir P. Ponti Jr.
Inspirao Neurofisiolgica
Quando um neurnio excitado, ao redor uma rea
entre 50 e 100 m tambm sofre excitao
Ao redor, uma rea sofre inibio para impedir a
propagao do sinal a reas no relacionadas

A figura ilustra a
iterao lateral entre
os neurnios

7 Moacir P. Ponti Jr.
Aprendizagem Competitiva
Neurnios de sada da RNA competem entre si para
se tornar ativos
Apenas um neurnio de sada est ativo em um
determinado instante
Trs elementos bsicos:
1. Neurnios com mesma estrutura, diferente pelos
pesos, de forma que tenham respostas diferentes a
uma entrada
2. Um limite imposto sobre a fora de cada neurnio
3. Mecanismo de competio entre neurnios, de forma
que um neurnio vencedor em um dado instante.
8 Moacir P. Ponti Jr.
Aprendizagem Competitiva
Em cada momento o neurnio vencedor:
aprende a se especializar em agrupamentos de
padres similares
tornam-se detectores de caractersticas para classes
diferentes de padres de entrada
O nmero de unidades de entrada define a
dimensionalidade dos dados

9 Moacir P. Ponti Jr.
Aprendizagem Competitiva - Exemplo
Exemplo de estrutura simples:
1 camada de sada
Totalmente conectada entrada
Pode incluir realimentao entre
neurnios para inibio lateral
Conexes excitadoras das
entradas para os neurnios (setas
fechadas com linhas contnuas)
Conexes laterais inibitrias
entre os neurnios (setas abertas em
linhas tracejadas)
Entradas
Neurnios
Sada
x
1
x
2
x
3
x
4
y
1
y
2
y
3
10 Moacir P. Ponti Jr.
Aprendizagem Competitiva
(Neurnio Vencedor)
O neurnio vencedor o que possui o maior campo local
induzido
k
para um dado padro de entrada x
O campo local induzido representa a ao combinada de
todas as entradas do neurnio k
A escolha do vencedor maximiza o produto interno entre
os pesos do neurnio e o sinal de entrada
O sinal de sada y
k
do neurnio vencedor colocado em
1 (um) e dos outros neurnios em 0 (zero).

= >
=
contrario caso 0
todo para se 1 i j
y
j k
k
u u
11 Moacir P. Ponti Jr.
Aprendizagem Competitiva
(Pesos)
Considerando
kj
como o peso sinptico
conectando o n de entrada j ao neurnio k, cada
neurnio tem uma quantidade de peso sinptico


Cada neurnio tem seus pesos inicializados
aleatoriamente
O aprendizado d-se ento deslocando os pesos do
neurnio vencedor, na direo da entrada
k
j
kj
todo para 1 =

e
12 Moacir P. Ponti Jr.
Aprendizagem Competitiva
(Regra de Aprendizagem)
A regra de aprendizagem competitiva aplica uma
variao
kj
ao peso
kj
, definida por:

= A
contrario caso 0
vencedor o for neurnio o se ) - ( k x
kj j
kj
e o
e
onde a taxa de aprendizagem.
Esta regra move o vetor de peso do neurnio
vencedor em direo ao padro de entrada
13 Moacir P. Ponti Jr.
Aprendizagem Competitiva
(Exemplo / Interpretao)
2 entradas (espao 2D)
7 padres de entrada
4 neurnios de sada
= 0.5
7 iteraes

Na Figura, os pontos pretos
representam as entradas e os
amarelos os vetores dos
pesos sinpticos dos 4
neurnios de sada
Estado Inicial da Rede
14 Moacir P. Ponti Jr.
Aprendizagem Competitiva
(Exemplo / Interpretao)
Simulao das iteraes da aprendizagem competitiva
4
2
1
Entrada aleatria
Neurnio vencedor
Aprendizado
3
como = 0.5, o
deslocamento
referente metade
da distncia
-1 1 -2 -3 2 3
1
2
3
-3
-2
-1
15 Moacir P. Ponti Jr.
Aprendizagem Competitiva
Na aprendizagem competitiva, no h ordenao do
mapa de neurnios de sada (clusters)
No exemplo, a ordem
topolgica seria:
w_1, w_2, w_3
No entanto o mapa de
sada est na ordem:
w_2, w_3, w_1
16 Moacir P. Ponti Jr.
Mapas Auto-Organizveis
Grades neurais baseadas na aprendizagem
competitiva
Neurnios de sada da grade competem entre si para
serem ativados ou disparados
Os neurnios esto dispostos em ns de uma grade,
em geral uni- ou bidimensional
Mapas de dimensionalidade
mais alta so possveis
porem pouco comuns
17 Moacir P. Ponti Jr.
Mapas Auto-Organizveis
Processo de organizao
Aprendizado no-supervisionado
Neurnios dispostos em grade
Vetores de peso localizam os neurnios no espao
de entrada
Torna a rede ideal para deteco de agrupamentos
(clusters)
18 Moacir P. Ponti Jr.
O modelo de Kohonen
Produz um mapeamento
topolgico
Transforma um padro
de dimenso arbitrria
em um mapa discreto
uni- ou bidimensional
Preserva a relao de
vizinhana entre os
neurnios
Mapas Auto-Organizveis
Entrada
Arranjo
bidimensional
de neurnios
Conexes
sinpticas
Neurnio
Vencedor
x
v
19 Moacir P. Ponti Jr.
Mapa Topolgico
No caso bidimensional, dois tipos de grade so
possveis: hexagonal ou retangular.
Na hexagonal, cada neurnio possui 6 vizinhos diretos
Na retangular, cada neurnio possui 4 vizinhos diretos
20 Moacir P. Ponti Jr.
Mapas Auto-Organizveis (Arquitetura)
Considere um espao vetorial de entrada com
dimenso d
Cada amostra um sinal/padro representado por
um vetor x = [ x
1
, x
2
, ..., x
d
]
A arquitetura do SOM consiste de 2 camadas de
neurnios
Camada de entrada composta por d neurnios
Camada de sada (ou de Kohonen) formada por N
neurnios denotados por: A = { c
1
, c
2
, ..., c
N
}
21 Moacir P. Ponti Jr.
Mapas Auto-Organizveis (Arquitetura)
O vetor peso sinptico de cada neurnio da grade
tem a mesma dimenso que o espao de entrada
O vetor peso do neurnio j representado por:
w = [
j1
,
j2
, ...,
jd
] j = 1, ..., N
este vetor indica as coordenadas de sua localizao
no espao de entrada d dimensional

22 Moacir P. Ponti Jr.
Diagrama Esquemtico (exemplo)
Entrada
Pesos
Neurnios

Mapas Auto-Organizveis (Arquitetura)
23 Moacir P. Ponti Jr.
Exemplo
Os crculos pretos representam dados (neurnios) de entrada no
espao unidimensional. A, B, C e D so a representao dos
neurnios de sada no espao de entrada (que coincide com o
espao dos pesos de conexo).
(a) estado inicial dos neurnios - A, B, C e D tem pesos
desordenados
(b) estado final dos neurnios A,B,C e D, aps os ajustes, os
neurnios vizinhos tem pesos similares
24 Moacir P. Ponti Jr.
SOM Algoritmo Bsico
1. Inicializao: geralmente aleatria, pode ainda ser estimada por
anlise da representao dos dados
2. Competio: para cada padro de entrada, calcula-se a resposta
dos neurnios de sada (grade). O neurnio com a maior resposta
o vencedor da competio.
3. Cooperao: o neurnio vencedor define uma vizinhana
topolgica (em funo da grade) de neurnios excitados
4. Adaptao Sinptica: aprendizado em relao ao padro de
entrada. Os pesos do neurnio vencedor, e de sua vizinhana,
ficam mais prximos do padro de entrada.
25 Moacir P. Ponti Jr.
Inicializao
Inicializao aleatria: mais simples e mais utilizada
nenhum estado de organizao considerado
durante as primeiras centenas de passos, os vetores
peso passam por processo de auto-organizao
Inicializao linear: tenta pr-organizar o espao
arranjo de neurnios definido ao longo de um
subespao linear correspondente aos:
k auto-vetores da matriz de auto-correlao de X que
possuem os maiores auto-valores
similar anlise dos componentes principais (PCA)
26 Moacir P. Ponti Jr.
Critrio de Competio
O critrio do melhor casamento (best matching)
baseado na maximizao do produto interno como
na aprendizagem competitiva
Isto matematicamente equivalente a minimizar a
distncia euclidiana entre w e x
O neurnio vencedor, v escolhido por:
N j v
j
j
,..., 2 , 1 , min arg = = w x
27 Moacir P. Ponti Jr.
Processo Cooperativo
Compreende a definio de uma funo de
vizinhana h
vj
centrada no neurnio vencedor
Define uma regio de neurnios cooperativos, que
tero seus pesos ajustados juntamente com o
neurnio vencedor
H diversas formas de implementar a funo de
vizinhana
Mais simples definir um conjunto N
v
(t) de nveis de
vizinhana ao redor do neurnio vencedor

28 Moacir P. Ponti Jr.
Processo Cooperativo
Ento, a funo de vizinhana torna-se:



N
v
(t) funo monotnica
decrescente no tempo
A funo de vizinhana
mapeada no espao de sada

Figura: Exemplo de nveis de
vizinhana para uma
grade retangular de neurnios

e
e
=
) ( , 0
) ( , 1
) (
t N j
t N j
t h
v
v
vj
29 Moacir P. Ponti Jr.
Processo Cooperativo
Exemplos de funo de vizinhana
Tipo bolha (todos os neurnios da vizinhana sero
atualizados igualmente)
Base Quadrada / Base Circular
v v
30 Moacir P. Ponti Jr.
Processo Cooperativo
Inicia-se o algoritmo com alto nvel de vizinhana e
esta reduzida conforme o tempo avana
necessrio diminuir a regio de vizinhana para
obter a auto-organizao do mapa
Para que o algoritmo convirja necessrio que


t t h
vj
quando 0 ) (
31 Moacir P. Ponti Jr.
v
Processo Cooperativo
Exemplo de mudana no nvel da vizinhana em uma
simulao de 3 iteraes
Funo de vizinhana quadrada tipo bolha
Iterao 1
Iterao 2
Iterao 3
32 Moacir P. Ponti Jr.
Processo Cooperativo
Uma funo muito interessante a ser usada como
funo de vizinhana a Gaussiana, dada por:
|
|
.
|

\
|

=
) ( 2
exp ) (
2
t
t h
j v
vj
o
r r
onde o termo a distncia entre
o neurnio v vencedor e o neurnio j que
est sendo atualizado
j v
r r
33 Moacir P. Ponti Jr.
Processo Cooperativo
O parmetro define a largura da funo e deve ser
decrescente no tempo. Pode ser usada uma funo
linear, mas em geral usada a exponencial:
|
|
.
|

\
|
=
1
exp ) 0 ( ) (
t
o o
t
t
) 0 ( log
1
o
t
NIter
=
(0) um valor inicial para

1
uma constante de tempo do SOM
definida para que a taxa de
aprendizagem nunca decaia para zero
34 Moacir P. Ponti Jr.
Processo Competitivo
Exemplo de funo de vizinhana Gaussiana
h
vj
d
vj
v
Os neurnios da
vizinhana so
atualizados de
forma ponderada
Quanto mais
afastados, menor
fica a taxa de
aprendizado
35 Moacir P. Ponti Jr.
Processo Cooperativo
Exemplo de funo de vizinhana Gaussiana
v
v
Viso Lateral
Viso Superior
36 Moacir P. Ponti Jr.
Adaptao Sinptica
Modificao dos pesos em relao entrada, de
forma iterativa
A equao abaixo aplicada a todos os neurnios
da grade dentro da regio de vizinhana h
vj


)] ( )[ ( ) ( ) ( ) 1 ( t t h t t t
j vj j j
w x w w + = + o
Vetor peso
atualizado
Vetor peso
anterior
Vizinhana Adaptao
Taxa de
aprendizagem
37 Moacir P. Ponti Jr.
O parmetro de aprendizagem , assim como a
funo de vizinhana deve decrescer com o tempo,
para que as adaptaes sejam cada vez mais finas
Pode ser usada uma funo linear decrescente, mas
recomendada uma funo exponencial
decrescente:


onde
2
o nmero total de iteraes
Adaptao Sinptica
( )
0
2
exp ,
t
t
o o
t
| |

=
|
\ .
38 Moacir P. Ponti Jr.
Adaptao Sinptica (Ordenao)
Assumindo uma inicializao
aleatria, necessrio duas
fases de adaptao
1. Fase de Ordenao: devido
inicializao aleatria, a grade
est desordenada
A ordenao topolgica d-se
pela movimentao da
vizinhana, o que ocorre em
geral nas primeiras 1000
iteraes

4
2
1
3
3
2
1
4
Grade desordenada
Grade ordenada
39 Moacir P. Ponti Jr.
Adaptao Sinptica (Ordenao)
Para a Fase de Ordenao, a inicializao dos
parmetros:
2
, (0) e (0) importante e depende
da aplicao
Haykin (2000) sugere os seguintes valores iniciais:

2
= 1000
(0) = 0,1
O (0), largura da funo de vizinhana, depende do
tamanho da rede. Para uma rede de 50 neurnios,
por exemplo, uma possibilidade :
(0) = 25
40 Moacir P. Ponti Jr.
Adaptao Sinptica (Convergncia)
Aps a fase de ordenao, inicia-se a adaptao aos
padres de entrada
2. Fase de Convergncia: ocorre uma sintonia fina, que
pode durar muito mais iteraes do que a fase de
ordenao
Neste momento, a funo de vizinhana dever englobar
apenas vizinhos prximos do neurnio vencedor
Pode ainda ser reduzida apenas o neurnio vencedor

41 Moacir P. Ponti Jr.
Adaptao Sinptica (Convergncia)
Para a Fase de Convergncia, a seguinte
inicializao dos parmetros:
2
, (0) e (0)
recomendada por Haykin (2000):

2
= 500 . N
(0) = 0,01
onde N o nmero de neurnios de sada
importante no permitir que chegue a zero
42 Moacir P. Ponti Jr.
Resumo
Durante o processo de aprendizagem os neurnios:
organizam-se e tornam-se ordenados entre si
especializam-se em detectar determinadas
caractersticas dos padres de entrada
O SOM , portanto, caracterizado pela:
formao de um mapa topolgico dos padres de
entrada
a localizao espacial dos neurnios na grade aps
o aprendizado so indicativas das caractersticas
estatsticas contidas nos padres de entrada
43 Moacir P. Ponti Jr.
Aplicaes
As aplicaes concentram-se principalmente em:
Organizao da representao dos dados
Reduo de dimensionalidade
Reconstruo de Superfcies
Separao de agrupamentos de dados
Segmentao de Imagens
Data Mining
Classificao de Documentos
Classificao de dados
Reconhecimento de Caracteres
Reconhecimento de Fala

44 Moacir P. Ponti Jr.
Aplicaes
Reconhecimento de Caracteres
http://fbim.fh-regensburg.de/~saj39122/begrolu/kohonen.html
45 Moacir P. Ponti Jr.
Aplicaes
Reconstruo de superfcies
Nuvem
de
Pontos
Malha 3D do
objeto
reconstrudo
MARI, J.F. Reconstruo de superfcies 3D a partir de nuvens de pontos
usando redes neurais auto-organizveis. Projeto Mestrado. 2006
46 Moacir P. Ponti Jr.
Aplicaes
Segmentao de Imagens
Imagem Original Imagem Segmentada
http://citeseer.ist.psu.edu/jiang03som.html
Y. Jiang, et.al. SOM Based Image Segmentation. Lecture Notes in Artificial
Intelligence 2639, 2003, pp.640-643
47 Moacir P. Ponti Jr.
Algoritmo
1. Selecione a topologia da rede (defina os parmetros)
2. Selecione a regio de vizinhana inicial
3. Inicialize os pesos aleatoriamente e defina o n de iteraes
4. Para cada iterao:
1. Selecione um padro de entrada
2. Encontre o neurnio vencedor (pela menor distncia)
3. Atualize os pesos do neurnio vencedor e sua vizinhana

4. Decremente a regio de vizinhana e a taxa de aprendizagem
(caso desejado)
5. Incremente o nmero da iterao
5. Fim
)] ( )[ ( ) ( ) ( ) 1 ( t t h t t t
j vj j j
w x w w + = + o
48 Moacir P. Ponti Jr.
Mapas Auto-Organizveis (Exemplo)
4 2
1
3
-1 1 -2 -3
2 3
1
2
3
-3
-2
-1
2 entradas
x1 = [ -1.0, 1.0, -2.0, 0.0]
x2 = [ -2.0, 1.0, -2.0, 2.0]
4 neurnios de sada
w1 = [ 0.0, 1.0, 0.0,-1.0 ];
w2 = [ 1.0, 0.0,-1.0, 0.0 ];

= 0.5
Decaimento para 0.3 na iterao 5
Decaimento para 0.2 na iteracao 7
Regio de vizinhana tipo bolha
Incio = nvel 1
Decaimento de 1 nvel na iterao 5
10 iteraes
49 Moacir P. Ponti Jr.
Exemplo de Implementao 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
50 Moacir P. Ponti Jr.
Exemplo de Implementao em C parte 2
// encontra o neurnio 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;
}

51 Moacir P. Ponti Jr.
Exemplo de Implementao 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]);
}
}
52 Moacir P. Ponti Jr.
Exemplo de Implementao 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 iteraao

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;
}
53 Moacir P. Ponti Jr.
Variaes do SOM
Growing Grid
Growing Cell Structures
Growing Neural Gas
54 Moacir P. Ponti Jr.
Growing Grid
Growing Grid
uma variante incremental do SOM
Inicia com apenas 4 neurnios (no caso 2D).
A grade incrementada pela insero de linhas ou
colunas completas, conforme os dados de entrada
Tem duas etapas:
1. Fase de crescimento
2. Fase de ajuste fino
55 Moacir P. Ponti Jr.
Growing Grid
Growing Grid

56 Moacir P. Ponti Jr.
Growing Cell Structures
Growing Cell Structures (GCS)
Tambm incremental, no entanto:
No tem estrutura topolgica regular
A dimensionalidade restrita
A dimensionalidade da rede definida no incio mantida
Isso permite a rede realizar a reduo da dimensionalidade
O nmero de neurnios iniciais o nmero da
dimenso + 1
No caso 2D, as conexes formam tringulos
No caso 3D, as conexes formam tetraedros

57 Moacir P. Ponti Jr.
Growing Cell Structures
Topologia Inicial do Growing Cell Structures
(a) Unidimensional (b) Bidimensional (c) Tridimensional
58 Moacir P. Ponti Jr.
Growing Cell Structures
O algoritmo do GCS similar ao utilizado pelo
SOM, exceto por duas importantes diferenas:
1. A taxa de aprendizagem mantida constante durante
todo o processo de treinamento
2. Apenas o neurnio vencedor e sua vizinhana
topolgica direta so atualizados
59 Moacir P. Ponti Jr.
Growing Cell Structures
Exemplo de aprendizado
60 Moacir P. Ponti Jr.
Growing Neural Gas
Pode ser visto como uma variao do Growing Cell
Structures
Diferenas quanto dimensionalidade:
A dimensionalidade da rede no restrita
Dimensionalidade definida no incio incrementada
Portanto no ocorre reduo de dimensionalidade

61 Moacir P. Ponti Jr.
Growing Neural Gas
Quanto topologia da rede:
Inicia com dois neurnios independente da
dimensionalidade
A topologia da rede reflete a topologia do espao de
entrada
As conexes no espao de sada so dinmicas
(podem ser criadas e destrudas durante o
treinamento)

62 Moacir P. Ponti Jr.
Growing Neural Gas
Quanto ao aprendizado:
H 2 neurnios vencedores, o primeiro e o segundo.
Numa iterao ambos so atualizados e uma conexo
entre eles criada
Esta conexo tem um tempo de vida
Caso no se torne ativa por um nmero de iteraes
determinado, a conexo destruda
63 Moacir P. Ponti Jr.
Growing Neural Gas
Incio com 2 neurnios
Incluso usando
interpolao entre os
neurnios mais ativos
Organizao topolgica
64 Moacir P. Ponti Jr.
Growing Neural Gas
Aps 1000 iteraes,
mais neurnios so
includos conforme as
novas entradas
Aps 25000 iteraes, j possvel observar que
as conexes so criadas e destrudas conforme a
atividade dos neurnios que participam da
conexo
65 Moacir P. Ponti Jr.
Referncias
HAYKIN, S. Mapas Auto-Organizveis (captulo 9). Em: HAYKIN, S. Redes
Neurais: princpios e prtica. 2000
KOHONEN, T. Self-organized formation of topologically correct feature
maps. Biological Cybernetics, 43:59-69. 1982.
PSYCH CENTRAL. Self-Organizing Map. Disponvel em:
http://psychcentral.com/psypsych/Self-organizing_map. Acesso em: 29/05/2006
HYNNINEN, J. Interactive Self-Organizing Map demonstrations. Disponvel
em: http://www.cis.hut.fi/research/javasomdemo/index.html. Acesso em:
25/05/2006
FROHLICH, J. 3D Kohonen Feature Map. Disponvel em: http://fbim.fh-
regensburg.de/~saj39122/jfroehl/diplom/e-sample-applet.html. Acesso em:
31/05/2006.
66 Moacir P. Ponti Jr.
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.fh-
regensburg.de/~saj39122/jfroehl/diplom/e-sample-applet.html
Applet DemoGNG 1.5 com diversas variaes do SOM e
muitos recursos: http://www.neuroinformatik.ruhr-uni-
bochum.de/ini/VDM/research/gsn/DemoGNG/GG_2.html

Você também pode gostar