Modelos, Control y Sistema de Visión

Central     Modelos     Control     Visión     Aplicaciones     Mapa del sitio     Publicaciones     Sobre el autor      
Mapas autoorganizados
 

Los mapas autoorganizados es un tipo de red neuronal que permite clasificar los grupos representativos de una serie de datos de entrada, por lo que la función resultante se obtiene de aplicar el aprendizaje no supervisado.

 

La estructura de este tipo de red es similar a las redes de aprendizaje competitivo, distinguiéndose por la forma de adaptar los parámetros: no sólo se adaptan los parámetros que definen a la neurona ganadora, también se adaptan los parámetros de las neuronas que pertenecen a una vecindad de la misma.

 

Los pasos fundamentales para entrenar una red de mapas autoorganizados son los siguientes:

[1] Definir las condiciones iniciales:

  • Número de grupos o clusters.

  • Valores iniciales de los parámetros a adaptar.
  • Método usado para medir las distancias entre las neuronas.
  • Vecindad entre las neuronas que serán adaptadas.

  • Factor de aprendizaje (puede incorporarse el factor de olvido).

  • Número de épocas o iteraciones (criterio de parada).

 

[2] Ejecutar, para el número de épocas definidas:

  1. Aplicar una muestra de la matriz de datos de entrada.

  2. Calcular la salida de la red.

  3. Seleccionar la neurona que devuelve el mayor valor (neurona ganadora).

  4. Actualizar los parámetros de la neurona seleccionada en 3 y su vecindad.

 

Para determinar la pertenencia o no a la vecindad de la neurona ganadora se utiliza una medida de las distancias entre las neuronas. Por ejemplo, la siguiente figura muestra las neuronas vecinas a una neurona ganadora, cuya distancia es menor a un radio r. El método más general para determinar la distancia es la norma euclídea, aunque existen otras formas para medir distancias.

 

 

  

Como los parámetros que se adaptan son aquellos que pertenecen a la neurona ganadora (y su vecindad), entonces se puede redefinir el método de aprendizaje  de las redes competitivas utilizando:

 

                                                  (1)

 

donde se ha incorporado el término , que cumple:

 

                                                                          (2)

 

donde d representa la distancia entre la neurona ganadora y el resto de neuronas.

 

Nótese en la anterior expresión como las neuronas que pertenecen a la vecindad de la neurona ganadora (d menor que r) se actualizan usando la regla de aprendizaje de Kohonen, tal y como se describe en los fundamentos de las redes de aprendizaje competitivo. Adicionalmente, nótese como no se adaptan los parámetros para d mayor que r.

 

Basado en el principio anterior, se puede realizar una adaptación gradual en dependencia de la proximidad de las neuronas que pertenecen a la vecindad.  Por ejemplo, si se desea aplicar una adaptación superior a las neuronas más lejanas a la neurona ganadora podría utilizarse:

 

                                                             (3)

 

En la siguiente figura se han definido 49 neuronas (7x7) distribuidas en una topología cuadrada. Cuando se define la vecindad 1, se refiere a las 8 neuronas que se encuentran en el entorno de la neurona central. Cuando se define vecindad 2, se refiere a las 24 neuronas que se encuentran en el entorno de la neurona central.

 

 

 

La anterior descripción es válida cuando se definen las condiciones iniciales. Cuando se comienzan a adaptar los parámetros, entonces las distancias entre las neuronas de una vecindad cambian, por lo que es necesario recalcular el radio que define a la vecindad 1, que sería el radio de la neurona más próxima a la ganadora. Una vez conocido este parámetro, se conoce el radio que definen a las neuronas que pertenecen a cierta vecindad. Por ejemplo, si se ha definido vecindad 3 y el radio de vecindad 1 es 1.4, entonces la vecindad la definen todas las neuronas cuya distancia con respecto a la ganadora es 3*1.4.

 


Utilización del Toolbox de redes neuronales:

 

%Supóngase que se pretende obtener cinco clusters de la siguiente matriz de datos:

>> x=[0 0 0 1 1 1 2 3 4 5 5 5 6 6 6 7 7 7 8 9 10 11 11 11 12 12 12];
>> y=[1 2 3 1.5 2 2.5 2 2 2 1.5 2 2.5 2 4 6 3 4 5 4 4 4 3 4 5 2 4 6];
>> z=[x; y];

 

%Se debe definir una red neuronal de mapas autoorganizados (newsom), para lo que se necesitan:

%vector de entrada(z), número de neuronas (), topología (haxagonal), método de medir distancias

%(norma euclídea), factor de aprendizaje en la fase de ordenación (0.8),

%número de iteraciones en la fase de ordenación (150), factor de aprendizaje en la fase de ajuste (0.1), % vecindad(1) 

>>clasificador = newsom(z,[2 3],'hextop','linkdist',0.8,150,0.1,2);

 

% Se verifican los valores iniciales de los parámetros de la red

>> clasificador.IW{1}
ans =
6.0000 3.5000
6.0000 3.5000
6.0000 3.5000
6.0000 3.5000
6.0000 3.5000

 

%Se entrena la red: Para cada época, las muestras de entrada se presentarán una a una en orden

% aleatorio, actualizándose el valor de los pesos cada vez que se presente una muestra

>> calsificador = train(clasificador,z);

 

% Se obtienen los grupos resultantes

>> v=clasificador.IW{1}

v =

    2.0295    2.0542
    3.8027    2.6023
    5.8134    3.0283
    6.2750    3.6947
   10.1636    3.6976
    8.6289    3.8941

 

% Se visualizan las neuronas o grupos

>> plot(z(1,:),z(2,:),'*')
>> hold on
>> plotsom(clasificador.iw{1,1},clasificador.layers{1}.distances)

 

 

Referencias:

 

Mathworks: "Neural Network Toolbox". 2008.