A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Mapas Auto-Organizáveis de Kohonen Moacir P. Ponti Jr. Universidade Federal de São Carlos.

Apresentações semelhantes


Apresentação em tema: "Mapas Auto-Organizáveis de Kohonen Moacir P. Ponti Jr. Universidade Federal de São Carlos."— Transcrição da apresentação:

1 Mapas Auto-Organizáveis de Kohonen Moacir P. Ponti Jr. Universidade Federal de São Carlos

2 2 Moacir P. Ponti Jr. Sumário 1. Introdução 2. Inspiração Neurofisiológica 3. Aprendizagem Competitiva 4. Mapas Auto-Organizáveis

3 3 Moacir P. Ponti Jr. Introdução O Self-Organizing Map (SOM), ou Mapas Auto- Organizáveis foram desenvolvidos por Kohonen a partir de 1982 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 Aprendizado não-supervisionado, diferente de todas as redes neurais artificiais desenvolvidas até então Possui forte inspiração neurofisiológica Possui forte inspiração neurofisiológica É baseado em Aprendizagem Competitiva É baseado em Aprendizagem Competitiva

4 4 Moacir P. Ponti Jr. Inspiraçã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 geram Diferentes estímulos geram Regiões de excitação Regiões de excitação Organização topográfica Organização topográfica Figura: Regiões ativas durante aplicação de acupuntura no ponto LI-5 Fonte: Neuro-imaging of Acupunture Project

5 5 Moacir P. Ponti Jr. Inspiração Neurofisiológica

6 6 Moacir P. Ponti Jr. Inspiração Neurofisiológica Quando um neurônio é excitado, ao redor uma área entre 50 e 100 μm também sofre excitação 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 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 A figura ilustra a iteração lateral entre os neurônios

7 7 Moacir P. Ponti Jr. Aprendizagem Competitiva Neurônios de saída da RNA competem entre si para se tornar ativos 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 Apenas um neurônio de saída está ativo em um determinado instante Três elementos básicos: 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.

8 8 Moacir P. Ponti Jr. Aprendizagem Competitiva Em cada momento o neurônio vencedor: Em cada momento o neurônio vencedor: aprende a se especializar em agrupamentos de padrões similares aprende a se especializar em agrupamentos de padrões similares tornam-se detectores de características para classes diferentes de padrões de entrada 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 O número de unidades de entrada define a dimensionalidade dos dados

9 9 Moacir P. Ponti Jr. Aprendizagem Competitiva - Exemplo Exemplo de estrutura simples: Exemplo de estrutura simples: 1 camada de saída 1 camada de saída Totalmente conectada à entrada Totalmente conectada à entrada Pode incluir realimentação entre neurônios para inibição lateral 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 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) Conexões laterais inibitórias entre os neurônios (setas abertas em linhas tracejadas) Entradas Neurônios Saída x1x1 x2x2 x3x3 x4x4 y1y1 y2y2 y3y3

10 10 Moacir P. Ponti Jr. 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 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 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 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). O sinal de saída y k do neurônio vencedor é colocado em 1 (um) e dos outros neurônios em 0 (zero).

11 11 Moacir P. Ponti Jr. 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 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 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 O aprendizado dá-se então deslocando os pesos do neurônio vencedor, na direção da entrada

12 12 Moacir P. Ponti Jr. Aprendizagem Competitiva (Regra de Aprendizagem) A regra de aprendizagem competitiva aplica uma variação Δ ω kj ao peso ω kj, definida por: A regra de aprendizagem competitiva aplica uma variação Δ ω kj ao peso ω kj, definida por: onde α é a taxa de aprendizagem. Esta regra move o vetor de peso do neurônio vencedor em direção ao padrão de entrada Esta regra move o vetor de peso do neurônio vencedor em direção ao padrão de entrada

13 13 Moacir P. Ponti Jr. Aprendizagem Competitiva (Exemplo / Interpretação) 2 entradas (espaço 2D) 2 entradas (espaço 2D) 7 padrões de entrada 7 padrões de entrada 4 neurônios de saída 4 neurônios de saída α = 0.5 α = iterações 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 Estado Inicial da Rede

14 14 Moacir P. Ponti Jr. Aprendizagem Competitiva (Exemplo / Interpretação) Simulação das iterações da aprendizagem competitiva Entrada aleatória Neurônio vencedor Aprendizado 3 como α = 0.5, o deslocamento é referente à metade da distância

15 15 Moacir P. Ponti Jr. Aprendizagem Competitiva Na aprendizagem competitiva, não há ordenação do mapa de neurônios de saída (clusters) Na aprendizagem competitiva, não há ordenação do mapa de neurônios de saída (clusters) No exemplo, a ordem topológica seria: No exemplo, a ordem topológica seria: w_1, w_2, w_3 No entanto o mapa de saída está na ordem: No entanto o mapa de saída está na ordem: w_2, w_3, w_1

16 16 Moacir P. Ponti Jr. Mapas Auto-Organizáveis Grades neurais baseadas na aprendizagem competitiva Grades neurais baseadas na aprendizagem competitiva Neurônios de saída da grade competem entre si para serem ativados ou disparados 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 Os neurônios estão dispostos em nós de uma grade, em geral uni- ou bidimensional Mapas de dimensionalidade Mapas de dimensionalidade mais alta são possíveis porem pouco comuns

17 17 Moacir P. Ponti Jr. Mapas Auto-Organizáveis Processo de organização Processo de organização Aprendizado não-supervisionado Aprendizado não-supervisionado Neurônios dispostos em grade Neurônios dispostos em grade Vetores de peso localizam os neurônios no espaço de entrada Vetores de peso localizam os neurônios no espaço de entrada Torna a rede ideal para detecção de agrupamentos Torna a rede ideal para detecção de agrupamentos(clusters)

18 18 Moacir P. Ponti Jr. O modelo de Kohonen O modelo de Kohonen Produz um mapeamento topológico Produz um mapeamento topológico Transforma um padrão de dimensão arbitrária em um mapa discreto uni- ou bidimensional 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 Preserva a relação de vizinhança entre os neurônios Mapas Auto-Organizáveis Entrada Arranjo bidimensional de neurônios Conexões sinápticas Neurônio Vencedor x

19 19 Moacir P. Ponti Jr. Mapa Topológico No caso bidimensional, dois tipos de grade são possíveis: hexagonal ou retangular. No caso bidimensional, dois tipos de grade são possíveis: hexagonal ou retangular. Na hexagonal, cada neurônio possui 6 vizinhos diretos Na hexagonal, cada neurônio possui 6 vizinhos diretos Na retangular, cada neurônio possui 4 vizinhos diretos Na retangular, cada neurônio possui 4 vizinhos diretos

20 20 Moacir P. Ponti Jr. Mapas Auto-Organizáveis (Arquitetura) Considere um espaço vetorial de entrada com dimensão d Considere um espaço vetorial de entrada com dimensão d Cada amostra é um sinal/padrão representado por um vetor x = [ x 1, x 2,..., x d ] Cada amostra é um sinal/padrão representado por um vetor x = [ x 1, x 2,..., x d ] A arquitetura do SOM consiste de 2 camadas de neurônios A arquitetura do SOM consiste de 2 camadas de neurônios Camada de entrada composta por d 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 = { c 1, c 2,..., c N } Camada de saída (ou de Kohonen) formada por N neurônios denotados por: A = { c 1, c 2,..., c N }

21 21 Moacir P. Ponti Jr. 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 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: 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 este vetor indica as coordenadas de sua localização no espaço de entrada d dimensional

22 22 Moacir P. Ponti Jr. Diagrama Esquemático (exemplo) Diagrama Esquemático (exemplo) Entrada Entrada Pesos Pesos Neurônios Neurônios Mapas Auto-Organizáveis (Arquitetura)

23 23 Moacir P. Ponti Jr.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). 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 24 Moacir P. Ponti Jr. 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.

25 25 Moacir P. Ponti Jr. Inicialização Inicialização aleatória : mais simples e mais utilizada Inicialização aleatória : mais simples e mais utilizada nenhum estado de organização é considerado nenhum estado de organização é considerado durante as primeiras centenas de passos, os vetores peso passam por processo de auto-organização 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 Inicialização linear : tenta pré-organizar o espaço arranjo de neurônios definido ao longo de um subespaço linear correspondente aos: 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-valoresk auto-vetores da matriz de auto-correlação de X que possuem os maiores auto-valores similar à análise dos componentes principais (PCA) similar à análise dos componentes principais (PCA)

26 26 Moacir P. Ponti Jr. Critério de Competição O critério do melhor casamento (best matching) é baseado na maximização do produto interno como na aprendizagem competitiva 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 Isto é matematicamente equivalente a minimizar a distância euclidiana entre w e x O neurônio vencedor, v é escolhido por: O neurônio vencedor, v é escolhido por:

27 27 Moacir P. Ponti Jr. Processo Cooperativo Compreende a definição de uma função de vizinhança h vj centrada no neurônio vencedor 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 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 Há diversas formas de implementar a função de vizinhança Mais simples é definir um conjunto N v (t) de níveis de vizinhança ao redor do neurônio vencedor Mais simples é definir um conjunto N v (t) de níveis de vizinhança ao redor do neurônio vencedor

28 28 Moacir P. Ponti Jr. Processo Cooperativo Então, a função de vizinhança torna-se: Então, a função de vizinhança torna-se: N v (t) é função monotônica N v (t) é função monotônica decrescente no tempo A função de vizinhança é 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

29 29 Moacir P. Ponti Jr. Processo Cooperativo Exemplos de função de vizinhança Exemplos de função de vizinhança Tipo bolha (todos os neurônios da vizinhança serão atualizados igualmente) Tipo bolha (todos os neurônios da vizinhança serão atualizados igualmente) Base Quadrada / Base CircularBase Quadrada / Base Circular vv

30 30 Moacir P. Ponti Jr. Processo Cooperativo Inicia-se o algoritmo com alto nível de vizinhança e esta é reduzida conforme o tempo avança 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 É 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 Para que o algoritmo convirja é necessário que

31 31 Moacir P. Ponti Jr. v Processo Cooperativo Exemplo de mudança no nível da vizinhança em uma simulação de 3 iterações 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 Função de vizinhança quadrada tipo bolha Iteração 1 Iteração 2 Iteração 3

32 32 Moacir P. Ponti Jr. Processo Cooperativo Uma função muito interessante a ser usada como função de vizinhança é a Gaussiana, dada por: Uma função muito interessante a ser usada como função de vizinhança é a Gaussiana, dada por: onde o termo é a distância entre o neurônio v vencedor e o neurônio j que está sendo atualizado

33 33 Moacir P. Ponti Jr. 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: 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) é um valor inicial para σ τ 1 é uma constante de tempo do SOM definida para que a taxa de aprendizagem nunca decaia para zero

34 34 Moacir P. Ponti Jr. Processo Competitivo Exemplo de função de vizinhança Gaussiana Exemplo de função de vizinhança Gaussiana h vj d vj v Os neurônios da vizinhança são atualizados de forma ponderada Os neurônios da vizinhança são atualizados de forma ponderada Quanto mais afastados, menor fica a taxa de aprendizado Quanto mais afastados, menor fica a taxa de aprendizado

35 35 Moacir P. Ponti Jr. Processo Cooperativo Exemplo de função de vizinhança Gaussiana Exemplo de função de vizinhança Gaussiana v v Visão Lateral Visão Superior

36 36 Moacir P. Ponti Jr. Adaptação Sináptica Modificação dos pesos em relação à entrada, de forma iterativa 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 A equação abaixo é aplicada a todos os neurônios da grade dentro da região de vizinhança h vj Vetor peso atualizado Vetor peso anterior VizinhançaAdaptação Taxa de aprendizagem

37 37 Moacir P. Ponti Jr. 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 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: Pode ser usada uma função linear decrescente, mas é recomendada uma função exponencial decrescente: onde τ 2 é o número total de iterações Adaptação Sináptica

38 38 Moacir P. Ponti Jr. Adaptação Sináptica (Ordenação) Assumindo uma inicialização aleatória, é necessário duas fases de adaptaçã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çõesA ordenação topológica dá-se pela movimentação da vizinhança, o que ocorre em geral nas primeiras 1000 iterações Grade desordenada Grade ordenada

39 39 Moacir P. Ponti Jr. 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 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: 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 é: 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

40 40 Moacir P. Ponti Jr. Adaptação Sináptica (Convergência) Após a fase de ordenação, inicia-se a adaptação aos padrões de entrada 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 vencedorNeste 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 vencedorPode ainda ser reduzida à apenas o neurônio vencedor

41 41 Moacir P. Ponti Jr. 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): 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

42 42 Moacir P. Ponti Jr. Resumo Durante o processo de aprendizagem os neurônios: Durante o processo de aprendizagem os neurônios: organizam-se e tornam-se ordenados entre si organizam-se e tornam-se ordenados entre si especializam-se em detectar determinadas características dos padrões de entrada especializam-se em detectar determinadas características dos padrões de entrada O SOM é, portanto, caracterizado pela: O SOM é, portanto, caracterizado pela: formação de um mapa topológico dos padrões de entrada 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 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

43 43 Moacir P. Ponti Jr. Aplicações As aplicações concentram-se principalmente em: As aplicações concentram-se principalmente em: Organização da representação dos dados Organizaçã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 dados Separaçã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 dados Classificação de dados Reconhecimento de CaracteresReconhecimento de Caracteres Reconhecimento de FalaReconhecimento de Fala

44 44 Moacir P. Ponti Jr. Aplicações Reconhecimento de Caracteres Reconhecimento de Caracteres

45 45 Moacir P. Ponti Jr. Aplicações Reconstrução de superfícies 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

46 46 Moacir P. Ponti Jr. Aplicações Segmentação de Imagens Segmentação de Imagens Imagem OriginalImagem Segmentada Y. Jiang, et.al. SOM Based Image Segmentation. Lecture Notes in Artificial Intelligence 2639, 2003, pp

47 47 Moacir P. Ponti Jr. 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

48 48 Moacir P. Ponti Jr. Mapas Auto-Organizáveis (Exemplo) entradas 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 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 5 Decaimento para 0.3 na iteração 5 Decaimento para 0.2 na iteracao 7 Decaimento para 0.2 na iteracao 7 Região de vizinhança tipo bolha Região de vizinhança tipo bolha Início = nível 1 Início = nível 1 Decaimento de 1 nível na iteração 5 Decaimento de 1 nível na iteração 5 10 iterações 10 iterações

49 49 Moacir P. Ponti Jr. 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

50 50 Moacir P. Ponti Jr. 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

51 51 Moacir P. Ponti Jr. 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

52 52 Moacir P. Ponti Jr. 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; raio = 0.5;} // a cada duas iteracoes decrementa taxa de aprendizagem if (iter % 2 == 0) { if (iter < fConv) // decremento na fase de Ordenacao if (iter < fConv) // decremento na fase de Ordenacao alpha-= 0.01; alpha-= 0.01; if (iter >= fConv) // decremento na fase de Convergencia if (iter >= fConv) // decremento na fase de Convergencia alpha-= 0.001; alpha-= 0.001; if (alpha <=0) // protecao para alpha <= 0 if (alpha <=0) // protecao para alpha <= 0 alpha-= ; alpha-= ;}

53 53 Moacir P. Ponti Jr. Variações do SOM Growing Grid Growing Grid Growing Cell Structures Growing Cell Structures Growing Neural Gas Growing Neural Gas

54 54 Moacir P. Ponti Jr. Growing Grid Growing Grid Growing 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 colunas completas, conforme os dados de entrada A grade é incrementada pela inserção de linhas ou colunas completas, conforme os dados de entrada Tem duas etapas: Tem duas etapas: 1.Fase de crescimento 2.Fase de ajuste fino

55 55 Moacir P. Ponti Jr. Growing Grid Growing Grid Growing Grid

56 56 Moacir P. Ponti Jr. Growing 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 é restrita A 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 dimensão + 1 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 2D, as conexões formam triângulos No caso 3D, as conexões formam tetraedros No caso 3D, as conexões formam tetraedros

57 57 Moacir P. Ponti Jr. Growing Cell Structures Topologia Inicial do Growing Cell Structures (a) Unidimensional (b) Bidimensional (c) Tridimensional

58 58 Moacir P. Ponti Jr. Growing Cell Structures O algoritmo do GCS é similar ao utilizado pelo SOM, exceto por duas importantes diferenças: 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

59 59 Moacir P. Ponti Jr. Growing Cell Structures Exemplo de aprendizado Exemplo de aprendizado

60 60 Moacir P. Ponti Jr. Growing Neural Gas Pode ser visto como uma variação do Growing Cell Structures Pode ser visto como uma variação do Growing Cell Structures Diferenças quanto à dimensionalidade: Diferenças quanto à dimensionalidade: A dimensionalidade da rede não é restrita A dimensionalidade da rede não é restrita Dimensionalidade definida no início é incrementada Dimensionalidade definida no início é incrementada Portanto não ocorre redução de dimensionalidade Portanto não ocorre redução de dimensionalidade

61 61 Moacir P. Ponti Jr. Growing Neural Gas Quanto à topologia da rede: Quanto à topologia da rede: Inicia com dois neurônios independente da dimensionalidade Inicia com dois neurônios independente da dimensionalidade A topologia da rede reflete a topologia do espaço de entrada 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) As conexões no espaço de saída são dinâmicas (podem ser criadas e destruídas durante o treinamento)

62 62 Moacir P. Ponti Jr. Growing 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 entre eles é criada Numa iteração ambos são atualizados e uma conexão entre 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 determinado, a conexão é destruídaCaso não se torne ativa por um número de iterações determinado, a conexão é destruída

63 63 Moacir P. Ponti Jr. Growing Neural Gas Início com 2 neurônios Inclusão usando interpolação entre os neurônios mais ativos Organização topológica

64 64 Moacir P. Ponti Jr. Growing Neural Gas Após 1000 iterações, mais neurônios são incluídos conforme as novas entradas Após 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

65 65 Moacir P. Ponti Jr. Referências HAYKIN, S. Mapas Auto-Organizáveis (capítulo 9). Em: HAYKIN, S. Redes Neurais: princípios e prática KOHONEN, T. Self-organized formation of topologically correct feature maps. Biological Cybernetics, 43: PSYCH CENTRAL. Self-Organizing Map. Disponível em: Acesso em: 29/05/2006 HYNNINEN, J. Interactive Self-Organizing Map demonstrations. Disponível em: Acesso em: 25/05/2006 FROHLICH, J. 3D Kohonen Feature Map. Disponível em: regensburg.de/~saj39122/jfroehl/diplom/e-sample-applet.html. Acesso em: 31/05/ regensburg.de/~saj39122/jfroehl/diplom/e-sample-applet.htmlhttp://fbim.fh- regensburg.de/~saj39122/jfroehl/diplom/e-sample-applet.html

66 66 Moacir P. Ponti Jr. Outros sites interessantes Sistema de busca baseado no SOM: Sistema de busca baseado no SOM: Livro de redes neurais em Java + SOM: Livro de redes neurais em Java + SOM: Applet SOM 3D: regensburg.de/~saj39122/jfroehl/diplom/e-sample-applet.html Applet SOM 3D: regensburg.de/~saj39122/jfroehl/diplom/e-sample-applet.htmlhttp://fbim.fh- regensburg.de/~saj39122/jfroehl/diplom/e-sample-applet.htmlhttp://fbim.fh- regensburg.de/~saj39122/jfroehl/diplom/e-sample-applet.html Applet DemoGNG 1.5 com diversas variações do SOM e muitos recursos: bochum.de/ini/VDM/research/gsn/DemoGNG/GG_2.html Applet DemoGNG 1.5 com diversas variações do SOM e muitos recursos: bochum.de/ini/VDM/research/gsn/DemoGNG/GG_2.html bochum.de/ini/VDM/research/gsn/DemoGNG/GG_2.html bochum.de/ini/VDM/research/gsn/DemoGNG/GG_2.html


Carregar ppt "Mapas Auto-Organizáveis de Kohonen Moacir P. Ponti Jr. Universidade Federal de São Carlos."

Apresentações semelhantes


Anúncios Google