teuvo redes organizing organizativos mapas kohonen ejemplo autoorganizados machine-learning neural-network som self-organizing-maps

machine learning - redes - ¿Cómo hago una matriz U?



self organizing maps python (2)

¿Cómo se construye exactamente una matriz U para visualizar un self-organizing-map ? Más específicamente, supongamos que tengo una cuadrícula de salida de 3x3 nodos (que ya han sido entrenados), ¿cómo construyo una matriz U a partir de esto? Puede, por ejemplo, suponer que las neuronas (y entradas) tienen dimensión 4.

He encontrado varios recursos en la web, pero no están claros o son contradictorios. Por ejemplo, el papel original está lleno de errores tipográficos.


El artículo original citado en la pregunta dice:

Una aplicación ingenua del algoritmo de Kohonen, aunque la preservación de la topología de los datos de entrada no puede mostrar los grupos inherentes a los datos de entrada.

En primer lugar, eso es cierto; en segundo lugar, es un profundo malentendido de la SOM; en tercer lugar, también es un malentendido sobre el propósito de calcular el SOM.

Simplemente tome el espacio de color RGB como ejemplo: ¿hay 3 colores (RGB), o 6 (RGBCMY), o 8 (+ BW), o más? ¿Cómo definiría eso independientemente del propósito, es decir, inherente a los datos en sí?

Mi recomendación sería no utilizar los estimadores de máxima verosimilitud de los límites de los conglomerados, ni siquiera los primitivos, como la matriz U, porque el argumento subyacente ya es erróneo. Independientemente del método que utilice para determinar el clúster, heredaría ese defecto. Más precisamente, la determinación de los límites de los clusters no es interesante en absoluto, y está perdiendo información con respecto a la verdadera intención de construir un SOM. Entonces, ¿por qué construimos SOM''s a partir de datos? Comencemos con algunos conceptos básicos:

  1. Cualquier SOM es un modelo representativo de un espacio de datos, ya que reduce la dimensionalidad de este último. Como es un modelo, se puede utilizar como herramienta de diagnóstico y como herramienta predictiva. Sin embargo, ambos casos no están justificados por alguna objetividad universal. En cambio, los modelos dependen en gran medida del propósito y del riesgo asociado de errores aceptado.
  2. Supongamos por un momento que la U-Matriz (o similar) sería razonable. Así que determinamos algunos grupos en el mapa. No es solo una cuestión de cómo justificar el criterio para ello (fuera del propósito en sí mismo), también es problemático porque cualquier cálculo posterior destruye cierta información (es un modelo sobre un modelo).
  3. Lo único interesante en un SOM es la precisión misma del error de clasificación, no una estimación de este. Por lo tanto, la estimación del modelo en términos de validación y robustez es lo único que es interesante.
  4. Cualquier predicción tiene un propósito y la aceptación de la predicción es una función de la precisión, que a su vez se puede expresar mediante el error de clasificación. Tenga en cuenta que el error de clasificación se puede determinar para modelos de 2 clases así como para modelos de varias clases. Si no tiene un propósito, no debe hacer nada con sus datos.
  5. Inversamente, el concepto de "número de agrupaciones" depende completamente del criterio "divergencia permitida dentro de las agrupaciones", por lo que enmascara lo más importante de la estructura de los datos. También depende del riesgo y la estructura de riesgo (en términos de errores de tipo I / II) que está dispuesto a asumir.
  6. Entonces, ¿cómo podríamos determinar las clases de números en un SOM? Si no hay un razonamiento externo disponible, la única forma viable sería una verificación a posteriori de la bondad del ajuste. En una SOM dada, imponga diferentes números de clases y mida las desviaciones en términos de costos de clasificación errónea, luego elija (subjetivamente) la más agradable (utilizando algunas heurísticas sofisticadas, como la máquina de afeitar de Occam)

En conjunto, la matriz U simula objetividad donde no puede haber objetividad. Es un grave malentendido de modelar por completo. En mi opinión, una de las mayores ventajas de la SOM es que todos los parámetros que implica son accesibles y están abiertos para su parametrización. Los enfoques como la matriz U destruyen eso, al ignorar esta transparencia y cerrarla nuevamente con un razonamiento estadístico opaco.


Una matriz U es una representación visual de las distancias entre las neuronas en el espacio de dimensión de datos de entrada. Es decir, se calcula la distancia entre las neuronas adyacentes, utilizando su vector entrenado. Si su dimensión de entrada era 4, entonces cada neurona en el mapa entrenado también corresponde a un vector de 4 dimensiones. Digamos que tienes un mapa hexagonal de 3x3.

La matriz U será una matriz de 5x5 con elementos interpolados para cada conexión entre dos neuronas como esta

Los elementos {x, y} son la distancia entre la neurona x y y, y los valores en los elementos {x} son la media de los valores circundantes. Por ejemplo, {4,5} = distancia (4,5) y {4} = media ({1,4}, {2,4}, {4,5}, {4,7}). Para el cálculo de la distancia, utiliza el vector tridimensional entrenado de cada neurona y la fórmula de distancia que usó para el entrenamiento del mapa (generalmente la distancia euclidiana). Entonces, los valores de la matriz U son solo números (no vectores). Luego, puede asignar un color gris claro al mayor de estos valores y un gris oscuro al más pequeño y los demás valores a los tonos de gris correspondientes. Puede usar estos colores para pintar las células de la matriz U y tener una representación visualizada de las distancias entre las neuronas.

Echa un vistazo también a este artículo web .