mapas auto-organizáveis de kohonen moacir p. ponti jr. [email protected] universidade federal...
TRANSCRIPT
Mapas Auto-Organizáveis de Mapas Auto-Organizáveis de KohonenKohonen
Moacir P. Ponti Jr. Moacir P. Ponti Jr.
[email protected]@gmail.com
Universidade Federal de São CarlosUniversidade Federal de São Carlos
22Moacir P. Ponti Jr.
SumárioSumário
1.1. IntroduçãoIntrodução
2.2. Inspiração NeurofisiológicaInspiração Neurofisiológica
3.3. Aprendizagem CompetitivaAprendizagem Competitiva
4.4. Mapas Auto-OrganizáveisMapas Auto-Organizáveis
33Moacir P. Ponti Jr.
IntroduçãoIntrodução
O O Self-Organizing Map Self-Organizing Map (SOM), ou Mapas Auto-(SOM), ou Mapas Auto-
Organizáveis foram desenvolvidos por Kohonen a Organizáveis foram desenvolvidos por Kohonen a
partir de 1982partir de 1982
Aprendizado Aprendizado não-supervisionadonão-supervisionado, diferente de , diferente de
todas as redes neurais artificiais desenvolvidas até todas as redes neurais artificiais desenvolvidas até
então então
Possui forte inspiração neurofisiológicaPossui forte inspiração neurofisiológica
É baseado em Aprendizagem CompetitivaÉ baseado em Aprendizagem Competitiva
44Moacir P. Ponti Jr.
Inspiração NeurofisiológicaInspiração Neurofisiológica
Observação de imagens Observação de imagens Ressonância magnética (MRI)Ressonância magnética (MRI)
Tomografia Computadorizada (CT)Tomografia Computadorizada (CT)
Diferentes estímulos geramDiferentes estímulos geram Regiões de excitaçãoRegiões de excitação
Organização topográficaOrganização topográfica
Figura: Regiões ativas durante aplicação de acupuntura no ponto LI-5Fonte: Neuro-imaging of Acupunture Project
55Moacir P. Ponti Jr.
Inspiração NeurofisiológicaInspiração Neurofisiológica
66Moacir P. Ponti Jr.
Inspiração NeurofisiológicaInspiração Neurofisiológica
Quando um neurônio é excitado, ao redor uma área Quando um neurônio é excitado, ao redor uma área
entre 50 e 100 entre 50 e 100 μμmm também sofre excitaçãotambém sofre excitação
Ao redor, uma área sofre inibição para impedir a Ao redor, uma área sofre inibição para impedir a
propagação do sinal a áreas não relacionadaspropagação do sinal a áreas não relacionadas A figura ilustra a A figura ilustra a
iteração lateral entre iteração lateral entre
os neurôniosos neurônios
77Moacir P. Ponti Jr.
Aprendizagem CompetitivaAprendizagem Competitiva
Neurônios de saída da RNA competem entre si para Neurônios de saída da RNA competem entre si para se tornar ativosse tornar ativos
Apenas um neurônio de saída está ativo em um Apenas um neurônio de saída está ativo em um determinado instantedeterminado instante
Três elementos básicos:Três elementos básicos:1.1. Neurônios com mesma estrutura, diferente pelos Neurônios com mesma estrutura, diferente pelos
pesos,pesos, de forma que tenham de forma que tenham respostas diferentesrespostas diferentes a a uma entradauma entrada
2.2. Um Um limitelimite imposto sobre a força de cada neurônio imposto sobre a força de cada neurônio
3.3. Mecanismo de competição entre neurônios, de forma Mecanismo de competição entre neurônios, de forma que um neurônio é vencedor em um dado instante.que um neurônio é vencedor em um dado instante.
88Moacir P. Ponti Jr.
Aprendizagem CompetitivaAprendizagem Competitiva
Em cada momento o neurônio vencedor:Em cada momento o neurônio vencedor: aprende a se especializar em agrupamentos de aprende a se especializar em agrupamentos de
padrões similarespadrões similares
tornam-se tornam-se detectores de característicasdetectores de características para classes para classes
diferentes de padrões de entradadiferentes de padrões de entrada
O número de unidades de entrada define a O número de unidades de entrada define a
dimensionalidade dos dadosdimensionalidade dos dados
99Moacir P. Ponti Jr.
Aprendizagem Competitiva - ExemploAprendizagem Competitiva - Exemplo
Exemplo de estrutura simples:Exemplo de estrutura simples: 1 camada de saída1 camada de saída Totalmente conectada à entradaTotalmente conectada à entrada Pode incluir realimentação entre Pode incluir realimentação entre
neurônios para inibição lateral neurônios para inibição lateral
Conexões excitadoras das Conexões excitadoras das entradas para os neurônios entradas para os neurônios (setas (setas fechadas com linhas contínuas)fechadas com linhas contínuas)
Conexões laterais inibitórias Conexões laterais inibitórias entre os neurôniosentre os neurônios (setas abertas em (setas abertas em linhas tracejadas)linhas tracejadas)
EntradasNeurônios
Saída
x1
x2
x3
x4
y1
y2
y3
1010Moacir P. Ponti Jr.
Aprendizagem Competitiva Aprendizagem Competitiva (Neurônio Vencedor)(Neurônio Vencedor)
O neurônio vencedor é o que possui o maior campo local O neurônio vencedor é o que possui o maior campo local
induzido induzido υυkk para um dado padrão de entrada para um dado padrão de entrada xx
O campo local induzido representa a ação combinada de O campo local induzido representa a ação combinada de todas as entradas do neurônio todas as entradas do neurônio k k
A escolha do vencedor maximiza o produto interno entre A escolha do vencedor maximiza o produto interno entre os pesos do neurônio e o sinal de entrada os pesos do neurônio e o sinal de entrada
O sinal de saída O sinal de saída yyk k do neurônio vencedor é colocado em do neurônio vencedor é colocado em
1 (um) e dos outros neurônios em 0 (zero).1 (um) e dos outros neurônios em 0 (zero).
contrario caso 0
todopara se 1 ijy jk
k
1111Moacir P. Ponti Jr.
Aprendizagem Competitiva Aprendizagem Competitiva (Pesos)(Pesos)
Considerando Considerando ωωkjkj como o peso sináptico como o peso sináptico
conectando o nó de entrada conectando o nó de entrada jj ao neurônio ao neurônio kk, cada , cada
neurônio tem uma quantidade de peso sinápticoneurônio tem uma quantidade de peso sináptico
Cada neurônio tem seus pesos inicializados Cada neurônio tem seus pesos inicializados aleatoriamentealeatoriamente
O aprendizado dá-se então deslocando os pesos do O aprendizado dá-se então deslocando os pesos do neurônio vencedor, na direção da entradaneurônio vencedor, na direção da entrada
kj
kj todopara 1
1212Moacir P. Ponti Jr.
Aprendizagem Competitiva Aprendizagem Competitiva (Regra de Aprendizagem)(Regra de Aprendizagem)
A regra de aprendizagem competitiva aplica uma A regra de aprendizagem competitiva aplica uma
variação variação ΔΔωωkjkj ao peso ao peso ωωkjkj, definida por: , definida por:
contrario caso 0
vencedorofor neurônio o se )-( kx kjjkj
onde onde αα é a taxa de aprendizagem.é a taxa de aprendizagem.
Esta regra move o vetor de peso do neurônio Esta regra move o vetor de peso do neurônio
vencedor em direção ao padrão de entradavencedor em direção ao padrão de entrada
1313Moacir P. Ponti Jr.
Aprendizagem Competitiva Aprendizagem Competitiva (Exemplo / Interpretação)(Exemplo / Interpretação)
2 entradas (espaço 2D)2 entradas (espaço 2D) 7 padrões de entrada7 padrões de entrada
4 neurônios de saída 4 neurônios de saída
αα = 0.5= 0.5 7 iterações7 iterações
Na Figura, os pontos pretos Na Figura, os pontos pretos
representam as entradas e os representam as entradas e os
amarelos os vetores dos amarelos os vetores dos
pesos sinápticos dos 4 pesos sinápticos dos 4
neurônios de saídaneurônios de saída Estado Inicial da Rede
1414Moacir P. Ponti Jr.
Aprendizagem Competitiva Aprendizagem Competitiva (Exemplo / Interpretação)(Exemplo / Interpretação)
Simulação das iterações da aprendizagem competitiva
4
2
1
Entrada aleatória
Neurônio vencedor
Aprendizado
3como como αα = 0.5, o = 0.5, o
deslocamento é deslocamento é
referente à metade referente à metade
da distânciada distância
-1 1-2-3 2 3
1
2
3
-3
-2
-1
1515Moacir P. Ponti Jr.
Aprendizagem Competitiva Aprendizagem Competitiva
Na aprendizagem competitiva, não há ordenação do Na aprendizagem competitiva, não há ordenação do
mapa de neurônios de saída (clusters)mapa de neurônios de saída (clusters)
No exemplo, a ordem No exemplo, a ordem
topológica seria: topológica seria:
w_1, w_2, w_3w_1, w_2, w_3
No entanto o mapa de No entanto o mapa de
saída está na ordem:saída está na ordem:
w_2, w_3, w_1w_2, w_3, w_1
1616Moacir P. Ponti Jr.
Mapas Auto-OrganizáveisMapas Auto-Organizáveis
Grades neurais baseadas na aprendizagem Grades neurais baseadas na aprendizagem
competitivacompetitiva
Neurônios de saída da grade competem entre si para Neurônios de saída da grade competem entre si para
serem ativados ou disparadosserem ativados ou disparados
Os neurônios estão dispostos em nós de uma grade, Os neurônios estão dispostos em nós de uma grade,
em geral uni- ou bidimensionalem geral uni- ou bidimensional Mapas de dimensionalidade Mapas de dimensionalidade
mais alta são possíveis mais alta são possíveis
porem pouco comunsporem pouco comuns
1717Moacir P. Ponti Jr.
Mapas Auto-OrganizáveisMapas Auto-Organizáveis
Processo de organizaçãoProcesso de organização
Aprendizado não-supervisionado Aprendizado não-supervisionado
Neurônios dispostos em gradeNeurônios dispostos em grade Vetores de peso localizam os neurônios no espaço Vetores de peso localizam os neurônios no espaço
de entradade entrada
Torna a rede ideal para detecção de agrupamentosTorna a rede ideal para detecção de agrupamentos
(clusters)(clusters)
1818Moacir P. Ponti Jr.
O modelo de KohonenO modelo de Kohonen Produz um mapeamento Produz um mapeamento
topológico topológico
Transforma um padrão Transforma um padrão
de dimensão arbitrária de dimensão arbitrária
em um mapa discreto em um mapa discreto
uni- ou bidimensionaluni- ou bidimensional
Preserva a relação de Preserva a relação de
vizinhança entre os vizinhança entre os
neurôniosneurônios
Mapas Auto-OrganizáveisMapas Auto-Organizáveis
Entrada
Arranjo bidimensional de neurônios
Conexões sinápticas
Neurônio Vencedor
x
1919Moacir P. Ponti Jr.
Mapa TopológicoMapa Topológico No caso bidimensional, dois tipos de grade são No caso bidimensional, dois tipos de grade são
possíveis: hexagonal ou retangular.possíveis: hexagonal ou retangular. Na hexagonal, cada neurônio possui 6 vizinhos diretosNa hexagonal, cada neurônio possui 6 vizinhos diretos
Na retangular, cada neurônio possui 4 vizinhos diretosNa retangular, cada neurônio possui 4 vizinhos diretos
2020Moacir P. Ponti Jr.
Mapas Auto-Organizáveis (Arquitetura)Mapas Auto-Organizáveis (Arquitetura)
Considere um espaço vetorial de entrada com Considere um espaço vetorial de entrada com
dimensão dimensão dd
Cada amostra é um sinal/padrão representado por Cada amostra é um sinal/padrão representado por
um vetor um vetor xx = [ = [ xx11,, x x22,, ... ...,, x xdd ] ]
A arquitetura do SOM consiste de 2 camadas de A arquitetura do SOM consiste de 2 camadas de
neurôniosneurônios Camada de entrada composta por Camada de entrada composta por dd neurônios neurônios
Camada de saída (ou de Kohonen) formada por Camada de saída (ou de Kohonen) formada por NN
neurônios denotados por: neurônios denotados por: AA = { = { cc11,, c c22,, ... ...,, c cNN } }
2121Moacir P. Ponti Jr.
Mapas Auto-Organizáveis (Arquitetura)Mapas Auto-Organizáveis (Arquitetura)
O vetor peso sináptico de cada neurônio da grade O vetor peso sináptico de cada neurônio da grade
tem a mesma dimensão que o espaço de entradatem a mesma dimensão que o espaço de entrada O vetor peso do neurônio O vetor peso do neurônio jj é representado por: é representado por:
ww = [ = [ ωωj1j1,, ωωj2j2,, ... ...,, ωωjdjd ] ] j = 1, ..., Nj = 1, ..., N
este vetor indica as coordenadas de sua localização este vetor indica as coordenadas de sua localização
no espaço de entrada no espaço de entrada dd dimensional dimensional
2222Moacir P. Ponti Jr.
Diagrama Esquemático (exemplo)Diagrama Esquemático (exemplo) EntradaEntrada
PesosPesos
NeurôniosNeurônios
Mapas Auto-Organizáveis (Arquitetura)Mapas Auto-Organizáveis (Arquitetura)
2323Moacir P. Ponti Jr.
ExemploExemplo Os círculos pretos representam dados (neurônios) de entrada no 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 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 neurônios de saída no espaço de entrada (que coincide com o
espaço dos pesos de conexão).espaço dos pesos de conexão).
(a) estado inicial dos neurônios - A, B, C e D tem pesos (a) estado inicial dos neurônios - A, B, C e D tem pesos
desordenadosdesordenados
(b) estado final dos neurônios A,B,C e D, após os ajustes, os (b) estado final dos neurônios A,B,C e D, após os ajustes, os
neurônios vizinhos tem pesos similaresneurônios vizinhos tem pesos similares
2424Moacir P. Ponti Jr.
SOM – Algoritmo BásicoSOM – Algoritmo Básico
1.1. Inicialização: Inicialização: geralmente aleatória, pode ainda ser estimada por geralmente aleatória, pode ainda ser estimada por
análise da representação dos dadosanálise da representação dos dados
2.2. Competição:Competição: para cada padrão de entrada, calcula-se a resposta para cada padrão de entrada, calcula-se a resposta
dos neurônios de saída (grade). O neurônio com a maior resposta é dos neurônios de saída (grade). O neurônio com a maior resposta é
o vencedor da competição.o vencedor da competição.
3.3. Cooperação: Cooperação: o neurônio vencedor define uma vizinhança o neurônio vencedor define uma vizinhança
topológica (em função da grade) de neurônios excitadostopológica (em função da grade) de neurônios excitados
4.4. Adaptação SinápticaAdaptação Sináptica: aprendizado em relação ao padrão de : aprendizado em relação ao padrão de
entrada. Os pesos do neurônio vencedor, e de sua vizinhança, entrada. Os pesos do neurônio vencedor, e de sua vizinhança,
ficam mais próximos do padrão de entrada.ficam mais próximos do padrão de entrada.
2525Moacir P. Ponti Jr.
InicializaçãoInicialização
Inicialização aleatóriaInicialização aleatória: : mais simples e mais utilizadamais simples e mais utilizada nenhum estado de organização é consideradonenhum estado de organização é considerado
durante as primeiras centenas de passos, os vetores durante as primeiras centenas de passos, os vetores
peso passam por processo de auto-organizaçãopeso passam por processo de auto-organização
Inicialização linearInicialização linear: tenta pré-organizar o espaço: tenta pré-organizar o espaço arranjo de neurônios definido ao longo de um arranjo de neurônios definido ao longo de um
subespaço linear correspondente aos:subespaço linear correspondente aos:
• kk auto-vetores da matriz de auto-correlação de auto-vetores da matriz de auto-correlação de XX que que
possuem os maiores auto-valorespossuem os maiores auto-valores
similar à análise dos componentes principais (PCA)similar à análise dos componentes principais (PCA)
2626Moacir P. Ponti Jr.
Critério de CompetiçãoCritério de Competição
O critério do melhor casamento (O critério do melhor casamento (best matchingbest matching) é ) é
baseado na maximização do produto interno como baseado na maximização do produto interno como
na aprendizagem competitivana aprendizagem competitiva
Isto é matematicamente equivalente a minimizar a Isto é matematicamente equivalente a minimizar a
distância euclidiana entre distância euclidiana entre ww ee xx
O neurônio vencedor, O neurônio vencedor, v v é escolhido por:é escolhido por:
Njv jj
,...,2,1 , minarg wx
2727Moacir P. Ponti Jr.
Processo CooperativoProcesso Cooperativo
Compreende a definição de uma função de Compreende a definição de uma função de
vizinhança vizinhança hhvjvj centrada no neurônio vencedor centrada no neurônio vencedor
Define uma região de neurônios cooperativos, que Define uma região de neurônios cooperativos, que
terão seus pesos ajustados juntamente com o terão seus pesos ajustados juntamente com o
neurônio vencedorneurônio vencedor
Há diversas formas de implementar a função de Há diversas formas de implementar a função de
vizinhançavizinhança Mais simples é definir um conjunto Mais simples é definir um conjunto NNvv(t)(t) de níveis de de níveis de
vizinhança ao redor do neurônio vencedorvizinhança ao redor do neurônio vencedor
2828Moacir P. Ponti Jr.
Processo CooperativoProcesso Cooperativo
Então, a função de vizinhança torna-se:Então, a função de vizinhança torna-se:
NNvv(t) (t) é função monotônica é função monotônica
decrescente no tempodecrescente no tempo A função de vizinhança é A função de vizinhança é
mapeada no espaço de saídamapeada no espaço de saída
Figura: Exemplo de níveis de Figura: Exemplo de níveis de
vizinhança para uma vizinhança para uma
grade retangular de neurôniosgrade retangular de neurônios
)( , 0
)( , 1)(
tNj
tNjth
v
vvj
2929Moacir P. Ponti Jr.
Processo CooperativoProcesso Cooperativo
Exemplos de função de vizinhançaExemplos de função de vizinhança Tipo bolha (todos os neurônios da vizinhança serão Tipo bolha (todos os neurônios da vizinhança serão
atualizados igualmente)atualizados igualmente)
• Base Quadrada / Base CircularBase Quadrada / Base Circular
vv
3030Moacir P. Ponti Jr.
Processo CooperativoProcesso Cooperativo
Inicia-se o algoritmo com alto nível de vizinhança e Inicia-se o algoritmo com alto nível de vizinhança e
esta é reduzida conforme o tempo avançaesta é reduzida conforme o tempo avança
É necessário diminuir a região de vizinhança para É necessário diminuir a região de vizinhança para
obter a auto-organização do mapaobter a auto-organização do mapa
Para que o algoritmo convirja é necessário quePara que o algoritmo convirja é necessário que
tthvj quando 0)(
3131Moacir P. Ponti Jr.
v
Processo CooperativoProcesso Cooperativo
Exemplo de mudança no nível da vizinhança em Exemplo de mudança no nível da vizinhança em
uma simulação de 3 iteraçõesuma simulação de 3 iterações Função de vizinhança quadrada tipo ‘bolha’Função de vizinhança quadrada tipo ‘bolha’
Iteração 1
Iteração 2
Iteração 3
3232Moacir P. Ponti Jr.
Processo CooperativoProcesso Cooperativo
Uma função muito interessante a ser usada como Uma função muito interessante a ser usada como
função de vizinhança é a Gaussiana, dada por: função de vizinhança é a Gaussiana, dada por:
)(2exp)(
2 tth
jv
vj rr
onde o termo é a distância entre o neurônio onde o termo é a distância entre o neurônio vv
vencedor e o neurônio vencedor e o neurônio j j que está sendo atualizadoque está sendo atualizado
jv rr
3333Moacir P. Ponti Jr.
Processo CooperativoProcesso Cooperativo
O parâmetro O parâmetro σσ define a largura da função e deve ser define a largura da função e deve ser
decrescente no tempo. Pode ser usada uma função decrescente no tempo. Pode ser usada uma função
linear, mas em geral é usada a exponencial:linear, mas em geral é usada a exponencial:
1
exp)0()(
tt
)0(log1 NIter
σσ(0)(0) é um valor inicial para é um valor inicial para σσ
ττ11 é uma constante de tempo do SOM é uma constante de tempo do SOM
definida para que a taxa de definida para que a taxa de aprendizagem nunca decaia para zeroaprendizagem nunca decaia para zero
3434Moacir P. Ponti Jr.
Processo CompetitivoProcesso Competitivo
Exemplo de função de vizinhança GaussianaExemplo de função de vizinhança Gaussiana
hhvjvj
ddvjvj
v
Os neurônios da Os neurônios da
vizinhança são vizinhança são
atualizados de atualizados de
forma ponderadaforma ponderada
Quanto mais Quanto mais
afastados, menor afastados, menor
fica a taxa de fica a taxa de
aprendizadoaprendizado
3535Moacir P. Ponti Jr.
Processo CooperativoProcesso Cooperativo
Exemplo de função de vizinhança GaussianaExemplo de função de vizinhança Gaussiana
v
v
Visão Lateral Visão Superior
3636Moacir P. Ponti Jr.
Adaptação SinápticaAdaptação Sináptica
Modificação dos pesos em relação à entrada, de Modificação dos pesos em relação à entrada, de
forma iterativaforma iterativa
A equação abaixo é aplicada a todos os neurônios A equação abaixo é aplicada a todos os neurônios
da grade dentro da região de vizinhança da grade dentro da região de vizinhança hhvjvj
)]()[()()()1( tthttt jvjjj wxww
Vetor peso atualizado
Vetor peso anterior
Vizinhança Adaptação
Taxa de aprendizagem
3737Moacir P. Ponti Jr.
O parâmetro de aprendizagem O parâmetro de aprendizagem αα , assim como a , assim como a
função de vizinhança deve decrescer com o tempo, função de vizinhança deve decrescer com o tempo,
para que as adaptações sejam cada vez mais “finas”para que as adaptações sejam cada vez mais “finas”
Pode ser usada uma função linear decrescente, mas Pode ser usada uma função linear decrescente, mas
é recomendada uma função exponencial é recomendada uma função exponencial
decrescente:decrescente:
onde onde ττ22 é o número total de iterações é o número total de iterações
Adaptação SinápticaAdaptação Sináptica
02
exp ,t
t
3838Moacir P. Ponti Jr.
Adaptação Sináptica (Ordenação)Adaptação Sináptica (Ordenação)
Assumindo uma inicialização Assumindo uma inicialização
aleatória, é necessário duas aleatória, é necessário duas
fases de adaptaçãofases de adaptação
1.1. Fase de OrdenaçãoFase de Ordenação: devido à : devido à
inicialização aleatória, a grade inicialização aleatória, a grade
está desordenadaestá desordenada
• A ordenação topológica dá-se A ordenação topológica dá-se
pela movimentação da pela movimentação da
vizinhança, o que ocorre em vizinhança, o que ocorre em
geral nas primeiras 1000 geral nas primeiras 1000
iteraçõesiterações
4 2
1
3
3 2
1
4
Grade desordenada
Grade ordenada
3939Moacir P. Ponti Jr.
Adaptação Sináptica (Ordenação)Adaptação Sináptica (Ordenação)
Para a Para a Fase deFase de OrdenaçãoOrdenação, a inicialização dos , a inicialização dos parâmetros: parâmetros: ττ22 , , αα(0)(0) ee σσ(0)(0) é importante e depende é importante e depende
da aplicaçãoda aplicação
Haykin (2000) sugere os seguintes valores iniciais:Haykin (2000) sugere os seguintes valores iniciais:
ττ22 = 1000 = 1000
αα(0)(0) = 0,1= 0,1
O O σσ(0)(0), largura da função de vizinhança, depende do , largura da função de vizinhança, depende do tamanho da rede. Para uma rede de 50 neurônios, tamanho da rede. Para uma rede de 50 neurônios, por exemplo, uma possibilidade é:por exemplo, uma possibilidade é:
σσ(0)(0) = 25= 25
4040Moacir P. Ponti Jr.
Adaptação Sináptica (Convergência)Adaptação Sináptica (Convergência)
Após a fase de ordenação, inicia-se a adaptação aos Após a fase de ordenação, inicia-se a adaptação aos
padrões de entradapadrões de entrada
2.2. Fase de ConvergênciaFase de Convergência: ocorre uma “sintonia fina”, que : ocorre uma “sintonia fina”, que
pode durar muito mais iterações do que a fase de pode durar muito mais iterações do que a fase de
ordenaçãoordenação
• Neste momento, a função de vizinhança deverá englobar Neste momento, a função de vizinhança deverá englobar
apenas vizinhos próximos do neurônio vencedorapenas vizinhos próximos do neurônio vencedor
• Pode ainda ser reduzida à apenas o neurônio vencedorPode ainda ser reduzida à apenas o neurônio vencedor
4141Moacir P. Ponti Jr.
Adaptação Sináptica (Convergência)Adaptação Sináptica (Convergência)
Para a Para a Fase deFase de ConvergênciaConvergência, a seguinte , a seguinte
inicialização dos parâmetros: inicialização dos parâmetros: ττ22 , , αα(0)(0) ee σσ(0)(0) é é
recomendada por Haykin (2000):recomendada por Haykin (2000):
ττ22 = 500 . = 500 . NN
αα(0)(0) = 0,01= 0,01
onde onde N N é o número de neurônios de saídaé o número de neurônios de saída
é importante não permitir que é importante não permitir que αα chegue a zero chegue a zero
4242Moacir P. Ponti Jr.
ResumoResumo
Durante o processo de aprendizagem os neurônios:Durante o processo de aprendizagem os neurônios: organizam-se e tornam-se ordenados entre siorganizam-se e tornam-se ordenados entre si
especializam-se em detectar determinadas especializam-se em detectar determinadas
características dos padrões de entradacaracterísticas dos padrões de entrada
O SOM é, portanto, caracterizado pela:O SOM é, portanto, caracterizado pela: formação de um formação de um mapa topológicomapa topológico dos padrões de dos padrões de
entradaentrada
a a localização espaciallocalização espacial dos neurônios na grade após o dos neurônios na grade após o
aprendizado são aprendizado são indicativas das características indicativas das características
estatísticas estatísticas contidas nos padrões de entradacontidas nos padrões de entrada
4343Moacir P. Ponti Jr.
AplicaçõesAplicações
As aplicações concentram-se principalmente em:As aplicações concentram-se principalmente em: Organização da representação dos dadosOrganização da representação dos dados
• Redução de dimensionalidadeRedução de dimensionalidade
• Reconstrução de SuperfíciesReconstrução de Superfícies
Separação de agrupamentos de dadosSeparação de agrupamentos de dados• Segmentação de ImagensSegmentação de Imagens
• Data MiningData Mining
• Classificação de DocumentosClassificação de Documentos
Classificação de dadosClassificação de dados• Reconhecimento de CaracteresReconhecimento de Caracteres
• Reconhecimento de FalaReconhecimento de Fala
4444Moacir P. Ponti Jr.
AplicaçõesAplicações
Reconhecimento de CaracteresReconhecimento de Caracteres
http://fbim.fh-regensburg.de/~saj39122/begrolu/kohonen.html
4545Moacir P. Ponti Jr.
AplicaçõesAplicações Reconstrução de superfíciesReconstruçã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
4646Moacir P. Ponti Jr.
AplicaçõesAplicações
Segmentação de ImagensSegmentação 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
4747Moacir P. Ponti Jr.
AlgoritmoAlgoritmo
1.1. Selecione a topologia da rede (defina os parâmetros)Selecione a topologia da rede (defina os parâmetros)
2.2. Selecione a região de vizinhança inicialSelecione a região de vizinhança inicial
3.3. Inicialize os pesos aleatoriamente e defina o nº de iteraçõesInicialize os pesos aleatoriamente e defina o nº de iterações
4.4. Para cada iteração:Para cada iteração:
1.1. Selecione um padrão de entradaSelecione um padrão de entrada
2.2. Encontre o neurônio vencedor (pela menor distância)Encontre o neurônio vencedor (pela menor distância)
3.3. Atualize os pesos do neurônio vencedor e sua vizinhançaAtualize os pesos do neurônio vencedor e sua vizinhança
4.4. Decremente a região de vizinhança e a taxa de aprendizagem Decremente a região de vizinhança e a taxa de aprendizagem
(caso desejado)(caso desejado)
5.5. Incremente o número da iteraçãoIncremente o número da iteração
5.5. FimFim
)]()[()()()1( tthttt jvjjj wxww
4848Moacir P. Ponti Jr.
Mapas Auto-Organizáveis (Exemplo)Mapas Auto-Organizáveis (Exemplo)
4 2
1
3
-1 1-2-3 2 3
1
2
3
-3
-2
-1
2 entradas2 entradas
x1 = [ -1.0, 1.0, -2.0, 0.0] x1 = [ -1.0, 1.0, -2.0, 0.0]
x2 = [ -2.0, 1.0, -2.0, 2.0]x2 = [ -2.0, 1.0, -2.0, 2.0]
4 neurônios de saída 4 neurônios de saída w1 = [ 0.0, 1.0, 0.0,-1.0 ]; w1 = [ 0.0, 1.0, 0.0,-1.0 ]; w2 = [ 1.0, 0.0,-1.0, 0.0 ]; w2 = [ 1.0, 0.0,-1.0, 0.0 ];
αα = 0.5= 0.5 Decaimento para 0.3 na iteração 5Decaimento para 0.3 na iteração 5
Decaimento para 0.2 na iteracao 7Decaimento para 0.2 na iteracao 7
Região de vizinhança tipo ‘bolha’Região de vizinhança tipo ‘bolha’ Início = nível 1Início = nível 1
Decaimento de 1 nível na iteração 5Decaimento de 1 nível na iteração 5
10 iterações10 iterações
4949Moacir P. Ponti Jr.
Exemplo de Implementação em C – parte 1Exemplo de Implementação em C – parte 1
// dados de entrada// dados de entrada
float x1[12] = {-3,-2, 1,-2,-2, 0, 1,-1,-2.5,-2.0, 0,-3.5};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};float x2[12] = { 1,-2, 1, 2,-2, 2, 2,-3, 1.5,-2.5, 1, 2.0};
// estado inicial dos vetores de peso// estado inicial dos vetores de peso
float w1[4] = { 0, 1, 0,-1};float w1[4] = { 0, 1, 0,-1};
float w2[4] = { 1, 0,-1, 0};float w2[4] = { 1, 0,-1, 0};
// espaco de saida// espaco de saida
float S1[4] = { 0, 1, 1, 0};float S1[4] = { 0, 1, 1, 0};
float S2[4] = { 1, 1, 0, 0};float S2[4] = { 1, 1, 0, 0};
int iX = 0; int iX = 0; // entrada atual// entrada atual
int iter = 1; int iter = 1; // iteracao atual// iteracao atual
int fConv = 90; int fConv = 90; // delimita iteracao da fase de convergencia// delimita iteracao da fase de convergencia
int nD = 12; int nD = 12; // numero de dados// numero de dados
5050Moacir P. Ponti Jr.
Exemplo de Implementação em C – parte 2Exemplo de Implementação em C – parte 2
// encontra o neurônio vencedor pelo calculo da menor distancia// encontra o neurônio vencedor pelo calculo da menor distancia
// wV = neuronio vencedor// wV = neuronio vencedor
wV = 0; wV = 0; // indice do neuronio vencedor// indice do neuronio vencedor
float dist[4] = { 0, 0, 0, 0 }; float dist[4] = { 0, 0, 0, 0 }; // vetor de distancias// vetor de distancias
for (int j=0; j<nN; j++)for (int j=0; j<nN; j++)
{{
// calcula distancia euclidiana// calcula distancia euclidiana
dist[j]= sqrt( (pow(x1[at]-w1[j],2)) + (pow(x2[at]-w2[j],2)) );dist[j]= sqrt( (pow(x1[at]-w1[j],2)) + (pow(x2[at]-w2[j],2)) );
// verifica a menor distancia// verifica a menor distancia
if (dist[j] <= dist[wV])if (dist[j] <= dist[wV])
wV = j;wV = j;
}}
5151Moacir P. Ponti Jr.
Exemplo de Implementação em C – parte 3Exemplo de Implementação em C – parte 3
// verifica entre todos os neuronios, // verifica entre todos os neuronios,
// quais estao na regiao de vizinhanca ( wV = neuronio vencedor )// quais estao na regiao de vizinhanca ( wV = neuronio vencedor )
for (int j=0; j<nN; j++)for (int j=0; j<nN; j++)
{{
// verifica se esta na regiao de vizinhanca// verifica se esta na regiao de vizinhanca
// note que o calculo e feito no espaco de saida (S)// 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)) );distviz = sqrt( (pow(S1[wV]-S1[j],2)) + (pow(S2[wV]-S2[j],2)) );
// se estiver dentro do raio (funcao de vizinhanca circular),// se estiver dentro do raio (funcao de vizinhanca circular),
// atualiza o vetor de peso// atualiza o vetor de peso
if (distviz <= raio)if (distviz <= raio)
{{
w1[j] = w1[j]+alpha*(x1[act]-w1[j]);w1[j] = w1[j]+alpha*(x1[act]-w1[j]);
w2[j] = w2[j]+alpha*(x2[act]-w2[j]);w2[j] = w2[j]+alpha*(x2[act]-w2[j]);
}}
}}
5252Moacir P. Ponti Jr.
Exemplo de Implementação em C – parte 4Exemplo de Implementação em C – parte 4
// escolhe nova entrada aleatoria entre 0 e nD (entre os dados)// escolhe nova entrada aleatoria entre 0 e nD (entre os dados)act = (int)(nD * rand() / (RAND_MAX + 1.0));act = (int)(nD * rand() / (RAND_MAX + 1.0));iter++; iter++; // incrementa iteraçao// incrementa iteraçao
if (iter == fConv)if (iter == fConv) // quando entra na fase de Convergencia // quando entra na fase de Convergencia{ alpha = 0.25; { alpha = 0.25; // atualiza parametros// atualiza parametros raio = 0.5; raio = 0.5; }}
// a cada duas iteracoes decrementa taxa de aprendizagem// a cada duas iteracoes decrementa taxa de aprendizagemif (iter % 2 == 0) if (iter % 2 == 0) {{ if (iter < fConv) if (iter < fConv) // decremento na fase de Ordenacao// decremento na fase de Ordenacao alpha-= 0.01;alpha-= 0.01; if (iter >= fConv) if (iter >= fConv) // decremento na fase de Convergencia// decremento na fase de Convergencia alpha-= 0.001;alpha-= 0.001; if (alpha <=0) if (alpha <=0) // protecao para alpha <= 0// protecao para alpha <= 0 alpha-= 0.0005;alpha-= 0.0005;}}
5353Moacir P. Ponti Jr.
Variações do SOMVariações do SOM
Growing GridGrowing Grid
Growing Cell StructuresGrowing Cell Structures
Growing Neural GasGrowing Neural Gas
5454Moacir P. Ponti Jr.
Growing GridGrowing Grid
Growing GridGrowing Grid É uma variante incremental do SOMÉ uma variante incremental do SOM
Inicia com apenas 4 neurônios (no caso 2D). Inicia com apenas 4 neurônios (no caso 2D).
A grade é incrementada pela inserção de linhas ou A grade é incrementada pela inserção de linhas ou
colunas completas, conforme os dados de entradacolunas completas, conforme os dados de entrada
Tem duas etapas:Tem duas etapas:
1.1. Fase de crescimentoFase de crescimento
2.2. Fase de ajuste finoFase de ajuste fino
5555Moacir P. Ponti Jr.
Growing GridGrowing Grid
Growing GridGrowing Grid
5656Moacir P. Ponti Jr.
Growing Cell StructuresGrowing Cell Structures
Growing Cell Structures (GCS)Growing Cell Structures (GCS) Também é incremental, no entanto:Também é incremental, no entanto:
• Não tem estrutura topológica regularNão tem estrutura topológica regular
A dimensionalidade é restritaA dimensionalidade é restrita
• A dimensionalidade da rede definida no início é mantidaA dimensionalidade da rede definida no início é mantida
• Isso permite a rede realizar a redução da dimensionalidadeIsso permite a rede realizar a redução da dimensionalidade
O número de neurônios iniciais é o número da O número de neurônios iniciais é o número da
dimensão + 1 dimensão + 1
No caso 2D, as conexões formam triângulosNo caso 2D, as conexões formam triângulos
No caso 3D, as conexões formam tetraedrosNo caso 3D, as conexões formam tetraedros
5757Moacir P. Ponti Jr.
Growing Cell StructuresGrowing Cell Structures
Topologia Inicial do Growing Cell Structures(a) Unidimensional (b) Bidimensional (c) Tridimensional
5858Moacir P. Ponti Jr.
Growing Cell StructuresGrowing Cell Structures
O algoritmo do GCS é similar ao utilizado pelo O algoritmo do GCS é similar ao utilizado pelo
SOM, exceto por duas importantes diferenças:SOM, exceto por duas importantes diferenças:
1.1. A taxa de aprendizagem é mantida constante durante A taxa de aprendizagem é mantida constante durante
todo o processo de treinamentotodo o processo de treinamento
2.2. Apenas o neurônio vencedor e sua vizinhança Apenas o neurônio vencedor e sua vizinhança
topológica direta são atualizadostopológica direta são atualizados
5959Moacir P. Ponti Jr.
Growing Cell StructuresGrowing Cell Structures
Exemplo de aprendizadoExemplo de aprendizado
6060Moacir P. Ponti Jr.
Growing Neural GasGrowing Neural Gas
Pode ser visto como uma variação do Growing Cell Pode ser visto como uma variação do Growing Cell
StructuresStructures
Diferenças quanto à dimensionalidade: Diferenças quanto à dimensionalidade: A dimensionalidade da rede não é restritaA dimensionalidade da rede não é restrita
Dimensionalidade definida no início é incrementadaDimensionalidade definida no início é incrementada
Portanto não ocorre redução de dimensionalidadePortanto não ocorre redução de dimensionalidade
6161Moacir P. Ponti Jr.
Growing Neural GasGrowing Neural Gas
Quanto à topologia da rede:Quanto à topologia da rede: Inicia com dois neurônios independente da Inicia com dois neurônios independente da
dimensionalidadedimensionalidade
A topologia da rede reflete a topologia do espaço de A topologia da rede reflete a topologia do espaço de
entradaentrada
As conexões no espaço de saída são dinâmicas As conexões no espaço de saída são dinâmicas
(podem ser criadas e destruídas durante o (podem ser criadas e destruídas durante o
treinamento)treinamento)
6262Moacir P. Ponti Jr.
Growing Neural GasGrowing Neural Gas
Quanto ao aprendizado:Quanto ao aprendizado: Há 2 neurônios vencedores, o primeiro e o segundo.Há 2 neurônios vencedores, o primeiro e o segundo.
Numa iteração ambos são atualizados e uma conexão Numa iteração ambos são atualizados e uma conexão
entre eles é criadaentre eles é criada
• Esta conexão tem um tempo de vidaEsta conexão tem um tempo de vida
• Caso não se torne ativa por um número de iterações Caso não se torne ativa por um número de iterações
determinado, a conexão é destruídadeterminado, a conexão é destruída
6363Moacir P. Ponti Jr.
Growing Neural GasGrowing Neural Gas
Início com 2 neurônios Inclusão usando interpolação entre os neurônios mais ativos
Organização topológica
6464Moacir P. Ponti Jr.
Growing Neural GasGrowing 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
6565Moacir P. Ponti Jr.
ReferênciasReferências
HAYKIN, S. Mapas Auto-Organizáveis (capítulo 9). Em: HAYKIN, S. HAYKIN, S. Mapas Auto-Organizáveis (capítulo 9). Em: HAYKIN, S. Redes Redes NeuraisNeurais: princípios e prática. 2000: princípios e prática. 2000
KOHONEN, T. Self-organized formation of topologically correct feature KOHONEN, T. Self-organized formation of topologically correct feature maps. maps. Biological CyberneticsBiological Cybernetics, 43:59-69. 1982., 43:59-69. 1982.
PSYCH CENTRAL. PSYCH CENTRAL. Self-Organizing MapSelf-Organizing Map. Disponível em: . Disponível em: http://psychcentral.com/psypsych/Self-organizing_maphttp://psychcentral.com/psypsych/Self-organizing_map. Acesso em: 29/05/2006. Acesso em: 29/05/2006
HYNNINEN, J. HYNNINEN, J. Interactive Self-Organizing Map demonstrationsInteractive Self-Organizing Map demonstrations. Disponível . Disponível em: em: http://www.cis.hut.fi/research/javasomdemo/index.htmlhttp://www.cis.hut.fi/research/javasomdemo/index.html. Acesso em: . Acesso em: 25/05/200625/05/2006
FROHLICH, J. FROHLICH, J. 3D Kohonen Feature Map. Disponível em: 3D Kohonen Feature Map. Disponível em: http://fbim.fh-regensburg.de/~saj39122/jfroehl/diplom/e-sample-applet.htmlhttp://fbim.fh-regensburg.de/~saj39122/jfroehl/diplom/e-sample-applet.html. Acesso em: 31/05/2006.. Acesso em: 31/05/2006.
6666Moacir P. Ponti Jr.
Outros sites interessantesOutros sites interessantes
Sistema de busca baseado no SOM: Sistema de busca baseado no SOM: http://www.gnod.net/http://www.gnod.net/
Livro de redes neurais em Java + SOM: Livro de redes neurais em Java + SOM:
http://www.heatonresearch.com/articles/series/1/http://www.heatonresearch.com/articles/series/1/
Applet SOM 3D: Applet SOM 3D:
http://fbim.fh-regensburg.de/~saj39122/jfroehl/diplom/e-samplehttp://fbim.fh-regensburg.de/~saj39122/jfroehl/diplom/e-sample-applet.html-applet.html
Applet DemoGNG 1.5 com diversas variações do SOM e Applet DemoGNG 1.5 com diversas variações do SOM e
muitos recursos: muitos recursos: http:http://www.neuroinformatik//www.neuroinformatik..ruhr-uni-bochumruhr-uni-bochum..
de/ini/VDM/research/gsn/DemoGNG/GG_2de/ini/VDM/research/gsn/DemoGNG/GG_2..htmlhtml