« Clasificación Supervi… « || Inicio || » Ejercicios Aprendizaj… »

Mapas Auto-Organizados

Última modificación: 23 de Abril de 2017, y ha tenido 1574 vistas

Etiquetas utilizadas: || || ||


Los Self Organizing Maps (Mapas Auto-Organizados), o SOM, fueron inventados en 1982 por Teuvo Kohonen, profesor de la Academia de Finlandia, y proporcionan una forma de representar datos multidimensionales (vectores) en espacios de dimensión inferior, normalmente, en 2D. Este proceso de reducir la dimensionalidad de vectores es una técnica de compresión de datos conocida como Cuantización Vectorial. Además, la técnica de Kohonen crea una red que almacena información de forma que las relaciones topológicas del conjunto de entrenamiento se mantienen.

Un ejemplo habitual que se usa para mostrar cómo funcionan los SOM se basa en la proyección de colores (asociados a vectores 3D formados a partir de, por ejemplo, sus 3 componentes RGB) en un espacio 2D. La siguiente figura muestra un SOM entrenado para reconocer los 8 colores que aparecen a su derecha. En la representación 2D se agrupan colores similares en regiones adyacentes.

Uno de los aspectos más interesantes de los SOM es que aprenden a clasificar sin supervisión, lo que implica que no necesitamos un objetivo que aproximar, sino que genera la distribución a partir de la similitud entre los vectores.

Arquitectura en red

En general, el algoritmo SOM considera una arquitectura en 2 capas: por una parte tenemos una capa de nodos de aprendizaje, de la que nos importa la relación geométrica que hay entre ellos y que serán los que finalmente contendrán la información acerca de la representación resultante, junto con una capa de nodos de entrada, donde se representarán los vectores originales durante el proceso de entrenamiento. Además, todos los elementos de la primera capa están conectados con todos los elementos de la segunda capa. La siguiente figura muestra una posible arquitectura 2D para un entrenamiento SOM, la red de aprendizaje viene representada por los nodos rojos, y los vectores de entrenamiento vienen representados en verde. Como en muchos sistemas similares, la idea del algoritmo consistirá en encontrar los pesos adecuados de las conexiones entre ambas capaz para dar una "representación" adecuada de los datos de entrada en la estructura geométrica de los nodos de aprendizaje.

En realidad, como no nos importa la representación geométrica ni topológica de los nodos de entrada, es común que solo se de una representación en la que aperecen los nodos de aprendizaje y los pesos asociados a cada uno de ellos se muestran como un vector de pesos (cada elemento de este vector es el peso de la conexión con el correspondiente nodo de entrada). De esta forma, si la capa de entrada tiene tamaño \(n\) (que es la dimensión del espacio original), cada nodo de aprendizaje tendrá un vector de pesos, \(W\), de dimensión \(n\). 

Algoritmo de Aprendizaje

A grandes rasgos, ya que no hay vector objetivo al que aproximarse, lo que se hace es que, en aquellas zonas en las que la red tiene nodos con pesos que coinciden con vectores de entrenamiento, el resto de nodos de su entorno tienden a aproximarse también a ese mismo vector. De esta forma, partiendo de una dstribución de pesos inicial (normalmente aleatorios), el SOM tiende a aproximarse a una distribución de pesos estable. Cada una de estas zonas que se estabiliza se convierte en un clasificador de propiedades, de forma que la red se convierte en una salida que representa una aplicación de clasificación. Una vez estabilizada la red, cualquier vector nuevo estimulará la zona de la red que tiene pesos similares.

De forma más detallada, los pasos que se siguen para el proceso de entrenamiento son:

  1. Cada nodo se inicializa con un peso (aleatorio). Normalmente, vectores en \([0,1]^n\),

  2. Se selecciona al azar un vector del conjunto de entrenamiento.

  3. Se calcula el nodo de la red que tiene el peso más similar al vector anterior, que notaremos como Best Matching Unit (BMU). Para ello, simplemente se calculan las distancias euclídeas entre los vectores \(W\) de cada nodo y el vector de entrenamiento (por motivos de eficiencia, no se aplica la raíz cuadrada al cálculo de la distancia euclídea, cosa que no afecta para calcular el mínimo).

  4. Se calcula el radio del entorno de BMU. Este radio comenzará siendo grande (como para cubrir la red completa) y se va reduciendo en cada iteración.

  5. Cada nodo del entorno de BMU ajusta su peso para parecerse al vector de entrenamiento seleccionado en el paso 2, de forma que los nodos más cercanos al BMU se vean más modificados.

  6. Repetir desde el paso 2 (el número de iteraciones que se considere necesario).

La fórmula que establece el radio en función de la iteración (que hace que vaya disminuyendo, pero no linealmente) es:

$$r(t)=r_0 e^{-\frac{t}{\lambda