Inteligência Artificial

Isaías Lima · Capítulo 22 de 45

Páginas do PDF

Inteligência Artificial

3.9 Redes de Kohonen

3.8.4 Distância euclidiana

Este outro método determina qual o vetor k de pesos está mais próximo ao vetor de entrada e utiliza a informação da distância euclidiana entre os vetores dada por ||w-x||, para tanto. O vetor w , com a menor distância euclidiana k k ganha a disputa. Assim, somente este vetor será ajustado segundo a fórmula

(3.41), sendo η o coeficiente de aprendizagem. Este método geralmente é mais utilizado que o produto escalar.

 

(3.41)

 

3.9 Redes de Kohonen

As redes de Kohonen, também conhecidas como Mapas Auto-organizáveis de Kohonen, foram propostas por Teuvo Kohonen, em 1984, e utilizam um procedimento de aprendizado não supervisionado. A arquitetura da rede é constituída de uma só camada de nós, geralmente bidimensional, ligada aos

nós da entrada (Figura 3.24). O novo conceito introduzido nessa estrutura de rede é que o comportamento de um determinado nó é diretamente afetado pelo comportamento dos nós vizinhos (vizinhança local). Cada neurônio está conectado a cada componente de entrada através de um vetor de pesos cuja dimensão é a mesma da entrada.

FIGURA 3.24 Arquitetura de uma rede de Kohonen.

 

Durante o procedimento de treinamento destas redes, os pesos são alterados

não somente nos do neurônio vencedor, mas também nos pesos dos neurônios de sua vizinhança local. Padrões que estejam próximos no espaço origina (que tenham características similares) acionarão um mesmo neurônio ou acionarão neurônios próximos na malha de Kohonen. Assim, é preciso definir quais são os modos de medir distâncias na estrutura, ou seja, definir qual a vizinhança que será afetada durante a etapa de treinamento. Duas formas comuns são por meio das distâncias de Manhatan e de Grid. Considerando dois neurônios em uma malha bidimensional N1 e N2, com coordenadas (i,j) e (k,h), as respectivas métricas são expressas por:

 

As Figuras 3.25 e 3.26 ilustram essas distâncias em duas redes com 2 x 3

neurônios ordenados pelas linhas das estruturas.

FIGURA 3.25 Distância de Manhatan em uma rede 2 × 3.

 

FIGURA 3.26 Distância de Grid em uma rede 2 × 3.

 

O algoritmo de treinamento desse tipo de rede está indicado a seguir:

1. Escolha aleatoriamente q vetores de pesos iniciais. 2. Apresente a entrada x(k) para k = 0 na primeira iteração. 3. Calcule a distância de x(k) a cada um dos q vetores de pesos W (k), j = 1...q j

e nomeie como neurônio vencedor aquele para o qual (W (k) - x(k))2 j ou||W (k) - x(k)|| é minimizado. j

4. Escolha uma vizinhança V j(n) para o neurônio vencedor i. 5. Atualize os pesos de todos os neurônios de Vi(n):

Onde η é a taxa de aprendizado, em geral decrescente ao logo do treinamento (sendo que a vizinhança V (n) também pode diminuir). i

6. Retorne ao passo 2 até que ocorra a convergência de valores.

A entrada de uma rede de Kohonen é um conjunto de vetores de padrões

Por exemplo, pode haver 10 mil padrões de clientes bancários, cada qua formado por um vetor de tamanho 5, contendo, para cada cliente, informações como: idade; imóvel próprio ou não; CEP; profissão; e renda. Na escolha de uma malha bidimensional 4 x 4, têm-se 16 neurônios na malha, cada um deles ligado ao vetor de entrada através de um vetor de pesos de tamanho 5. Ao final da fase de treinamento, pode-se atribuir 1 aos 16 neurônios da malha a cada um dos 10 mil padrões.

Outro exemplo poderia ser um vetor de 13 características de animais e

padrões de vetores correspondentes diversos, como aqueles ilustrados na tabela seguinte. A classificação de uma rede de Kohonen usando uma malha de 10 × 10 é calculada como na tabela posterior.

3.9.1 Exemplos de redes de Kohonen

Seja uma rede de Kohonen destinada a classificar quatro vetores, com quatro características cada, em dois clusters diferentes. Os vetores são: a = (1,1,0,0) b = (0,0,0,1); c = (1,0,0,0); d = (0,0,1,1).

A taxa de aprendizado η começará com 0,6 e será cortada pela metade a

cada iteração, isto é, η(t + 1) = η(t)/2.

O treinamento se encerrará quando a taxa de treinamento cair abaixo de

0,01 ou o erro médio para os quatro vetores cair também abaixo de 0,01 (estes critérios são arbitrários). Como queremos classificar em dois clusters este problema, vamos usar, para efeito de simplificação dos cálculos correspondentes, uma arquitetura bem simples, com apenas dois nós e uma vizinhança de raio zero (onde somente o nó vencedor terá seus pesos alterados para cada padrão apresentado).

A figura seguinte ilustra a estrutura da rede em questão.

Os pesos são inicializados aleatoriamente com os valores W = (0,2 0,6 0,5 1

 

0,9) e W = (0,8 0,4 0,7 0,3), definindo a matriz de pesos abaixo. 2

 

Calculando as distâncias dos vetores de entrada aos vetores de pesos de

cada nó, tem-se para o vetor a = (1,1,0,0):

 

Assim, o vetor que está mais próximo do nó 2 é, portanto, o nó vencedor

Atualizando os pesos do nó vencedor, temos:

Os novos valores dos pesos resultantes são, portanto: W = (0,2 0,6 0,5 0,9) e W = (0,92 0,76 0,28 0,12), definindo a nova matriz 1 2

W.

 

Para o vetor b = (0,0,0,1), têm-se:

 

Para este caso, o vetor b está mais próximo do nó 1, que é, portanto, o nó

vencedor. Atualizando os pesos do nó vencedor, têm-se:

Os novos valores dos pesos são, portanto: W 1 = (0,08 0,24 0,20 0,96) e W

= (0,92 0,74 0,28 0,12), definindo a matriz de pesos atual.

 

Para o vetor c = (1,0,0,0), tem-se: D = 1,86; D = 0,67. O nó 2 será o 1 2

vencedor e os novos pesos serão W = (0,08 0,24 0,20 0,96) e W = (0,968 1 2 0,304 0,112 0,048), com a nova matriz W.

 

Para o vetor d = (0,0,1,1), têm-se: D1 = 0,70; D2 = 2,72. O nó 1 será o

vencedor e os novos pesos serão W1 = (0,032 0,096 0,680 0,984) e W2 = (0,968 0,304 0,112 0,048), com a matriz de pesos.

No ciclo seguinte, a taxa de treinamento η será de 0,6 / 2 = 0,3. A aplicação do segundo ciclo de treinamento resulta em: W = (0,016 0,047 1

 

0,630 0,999) e W2 = (0,980 0,360 0,155 0,024).

 

Após 100 épocas de treinamento, o algoritmo converge para W1 = (0,0 0,0

0,5 1,0) e W2 = (1,0 0,5 0,0 0,0).

 

Com esses pesos a rede classifica os vetores a e b no cluster 1 e c e d no

cluster 2 do problema em questão.

Seja agora uma rede simples para classificar veículos. Nesse exemplo

simplificado será considerada a vizinhança sendo o próprio neurônio utilizando-se duas iterações e fazendo η = 0,8 fixo. Como características serão usados o número de rodas do veículo e a existência ou não de motor nele (como numa bicicleta, por exemplo). O valor unitário indica a existência de motor, enquanto um valor nulo indica a ausência. Os padrões de entrada para os dois veículos usados no treinamento estão ilustrados abaixo.

 

Rodas Motor

Bicicleta 2 0

Carro 4 1

Como há duas características, a camada de entrada da rede consistirá de

dois neurônios, e na camada de saída serão utilizados quatro neurônios. A figura a seguir ilustra a estrutura da rede considerada neste problema.

 

Os pesos são inicializados aleatoriamente em:

Primeira iteração: apresentadas as características da bicicleta {2,0} e

calculando as distâncias correspondentes, têm-se:

 

O neurônio vencedor é o segundo (d2). Ajustando seu peso, têm-se:

 

Apresentadas as características do automóvel {4,1} e calculando as

distâncias correspondentes, têm-se:

 

O neurônio vencedor é o d . Ajustando seu peso, têm-se: 4

Segunda iteração: apresentadas as características da bicicleta {2,0} e

calculando as distâncias, têm-se:

 

Novamente o neurônio vencedor é o segundo (d ). Ajustando seu peso, têm 2

se:

 

Apresentado as características do automóvel {4,1} e calculando as

distâncias associadas, têm-se:

 

Novamente o neurônio vencedor é o d . Ajustando seu peso, têm-se: 4