• Nenhum resultado encontrado

Mapas Auto-Organizáveis de Kohonen. Lucas Cambuim

N/A
N/A
Protected

Academic year: 2021

Share "Mapas Auto-Organizáveis de Kohonen. Lucas Cambuim"

Copied!
55
0
0

Texto

(1)

Mapas Auto-Organizáveis de

Kohonen

(2)

Sumário

1. Introdução

2. Inspiração Neurofisiológica 3. Aprendizagem Competitiva 4. Mapas Auto-Organizáveis

(3)

Introdução

• O Self-Organizing Map (SOM), ou Mapas Auto-Organizá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

(4)

Inspiração Neurofisiológica

• Estudos neurobiológicos indicam que diferentes entradas

sensoriais (motoras, visuais, auditivas, etc.) são mapeadas em

áreas correspondentes no córtex cerebral.

• 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

(5)
(6)

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

(7)

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, mas diferente pelos valores de pesos, têm 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.

(8)

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

(9)

Aprendizagem Competitiva - Exemplo

• Exemplo de estrutura simples:

• 1 camada de saída

• Totalmente conectada à entrada

• Pode incluir realimentação entre neurônios para inibição lateral

• 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 linhas tracejadas)

Entradas Neurônios Saída x1 x2 x3 x4 y1 y2 y3

(10)

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

y

k

do neurônio vencedor é colocado em 1 (um)

e dos outros neurônios em 0 (zero).

(11)

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

• 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

k

j

kj

1

para

todo

(12)

Aprendizagem Competitiva

(Regra de Aprendizagem)

• A regra de aprendizagem competitiva aplica uma variação Δ

ω

kj

ao peso

ω

kj

, definida por:

contrario

caso

0

vencedor

o

for

neurônio

o

se

)

-(

x

j kj

k

kj

onde

α

é a taxa de aprendizagem.

Esta regra move o vetor de peso do neurônio

vencedor em direção ao padrão de entrada

(13)

Aprendizagem Competitiva

(Exemplo / Interpretação)

• Entradas com 2

características (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

(14)

Aprendizagem Competitiva

(Exemplo / Interpretação)

Simulação das iterações da aprendizagem competitiva

4 2 1 Entrada aleatória Neurônio vencedor Aprendizado 3 como α = 0.5, o deslocamento é referente à metade da distância -1 1 -2 -3 2 3 1 2 3 -3 -2 -1

(15)

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

(16)

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

(17)

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

(18)

Mapas Auto-Organizáveis

• O modelo de Kohonen

• Produz um mapeamento topológico • 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

Entrada Arranjo bidimensional de neurônios Conexões sinápticas Neurônio Vencedor x n

(19)

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

(20)

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:

(21)

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

(22)

Mapas Auto-Organizáveis (Arquitetura)

• Diagrama Esquemático (exemplo)

• Entrada

• Pesos

(23)

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

(24)

Mapas de Kohonen (resumo)

• Um tipo particular de mapa auto-organizável. Essa

rede tem uma estrutura feed-forward com apenas

duas camadas.

• O vetor de pesos para um cluster serve como

exemplar dos padrões de entrada associado com

esse cluster.

• Padrões de entrada são comparados com todos os

neurônios, e o mais próximo é considerado o

neurônio vencedor.

• Os pesos do neurônio vencedor são atualizados para

aproximar-se mais do padrão de dados que

(25)

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.

(26)

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

(27)

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:

N

j

v

j j

,

1

,

2

,...,

min

arg

x

w

(28)

Processo Cooperativo

•Compreende a definição de uma função de

vizinhança h

vj

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 N

v

(t)

de níveis

(29)

Processo Cooperativo

• Então, a função de vizinhança torna-se:

• N

v

(t)

é função monotônica decrescente no tempo

• A função de vizinhança é mapeada no espaço de saída

)

(

,

0

)

(

,

1

)

(

t

N

j

t

N

j

t

h

v v vj

Figura: Exemplo de níveis de vizinhança para uma

(30)

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

(31)

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

t

t

(32)

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’

v

Iteração 1

Iteração 2

(33)

Processo Cooperativo

• Uma função muito interessante a ser usada como função de vizinhança é a Gaussiana, dada por:

j v

r

r 

)

(

2

exp

)

(

2

t

t

h

vj v j

r

r

onde o termo é a distância entre o

neurônio

v

vencedor e o neurônio

j

que está sendo

atualizado

(34)

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: ) 0 ( log 1    NIter





1

exp

)

0

(

)

(

t

t

σ

(0)

é um valor inicial para

σ

τ

1

é uma constante de tempo do SOM

definida para que a taxa de

(35)

Processo Competitivo

• Exemplo de função de vizinhança Gaussiana

hvj

dvj

v

Os neurônios da vizinhança

são atualizados de forma

ponderada

Quanto mais afastados,

menor fica a taxa de

(36)

Processo Cooperativo

• Exemplo de função de vizinhança Gaussiana

v

v

(37)

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 h

vj

)]

(

)[

(

)

(

)

(

)

1

(

t

j

t

t

h

vj

t

j

t

j

w

x

w

w

Vetor peso atualizado Vetor peso anterior Vizinhança Adaptação Taxa de aprendizagem

(38)

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:

onde

τ

2 é o número total de iterações

 

0 2

exp

t

,

t

(39)

Adaptação Sináptica (Ordenação)

• Assumindo uma

inicialização aleatória, é

necessário duas fases de

adaptação

1.

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

4 2 1 3 3 2 1 4 Grade desordenada Grade ordenada

(40)

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 é:

(41)

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

(42)

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

(43)

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

(44)

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

(45)

Aplicações

• Reconhecimento de Caracteres

(46)

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

(47)

Aplicações

• Segmentaçã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

(48)

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

4. Decremente a região de vizinhança e a taxa de aprendizagem (caso desejado)

5. Incremente o número da iteração

5. Fim )] ( )[ ( ) ( ) ( ) 1 (t j t t hvj t j t j w x w w   

(49)

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 2 1 3 -1 1 -2 -3 2 3 1 2 3 -3 -2 -1  4 neurônios de saída 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 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

(50)

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

(51)

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;

(52)

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]); } }

(53)

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; }

(54)

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.fh-regensburg.de/~saj39122/jfroehl/diplom/e-sample-applet.html. Acesso em:

(55)

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 variações do SOM e

muitos recursos:

Referências

Documentos relacionados

The paper investigates the hypothesis that a stricter patent regime induces patenting activity after accounting for other determinants of patenting like R&amp;D and

Os estudos que analisaram o efeito da ingestão de proteínas na performance, através de protocolos de testes físicos (METTLER; MITCHELL; TIPTON, 2010; LONGLAND et al., 2016; HOFFMAN

O projeto se destina preferencialmente às/aos estudantes de graduações da área da saúde, mas compreende que estudantes de graduação de outras áreas, estudantes de ensino

Na composição das carteiras será atribuído um peso para cada empresa de acordo com seu Market Cap diário, para que, assim como nos principais índices

Dentre as limitações do estudo ressalta-se: o perfil de pacientes estudados, visto que a população com predominância foi acima de 75 anos de idade; o período estudado; uma

Não obstante o emprego, pelo ADMINISTRADOR, de plena diligência, da boa prática de gestão do FUNDO, da manutenção sistemas de monitoramento de risco, e da

Levando em conta este último fator, objetivou-se com este trabalho realizar um estudo comparativo entre dois métodos (método de Soxhlet -SX e de Bligh &amp; Dyer -BD) para