LVQ Learning Vector Quantization
Antecedentes El método  Vector Quantization  (VQ) fue originalmente desarrollado por Linde (1980) y Gray (1984).   Y como una herramienta para compresión de datos por Gersho y Gray,1992
Vector Quantization VQ Es una técnica usada para reducir la dimensionalidad de datos. Los  datos originales es un conjunto de vectores de dimensión n. Los vectores son mapeados en un conjunto mas pequeño de valores  codebook.
Vector Quantization VQ Los valores  codebook  son usados para almacenaje  o transmisión (Se pierde alguna información contenida). Los valores  codebook  son re-transladados  a valores cercanos de los datos originales (no serán exactos)
 
 
Antecedentes El algoritmo de LVQ fue adaptado por T. Kohonen en 1986 y  Kohonen et al en 1988 para reconocimiento de patrones.
Características   de LVQ
Características  de LVQ La red LVQ se considera como un clasificador supervisado. El clasificador LVQ divide el espacio de entrada en regiones disjuntas Todas las regiones de clasificación que se crean están cercanas al “optimo”.
Características  de LVQ LVQ es una técnica de aprendizaje  supervisado que usa la información de clases para mover los vectores de Voronoi W ligeramente. Mejora la calidad de clasificador de regiones de decisión.
Características  de LVQ Para clasificar un vector de entrada Pi, este debe ser comparado con todos los vectores prototipos W.  Cada región se representa por un vector prototipo W.
Características  de LVQ El vector de entrada se clasifica en la misma clase que el prototipo mas cercano  La métrica de la distancia Euclídea se usa para seleccionar el vector Wij mas cercano al de entrada Pi.
Características  de LVQ Al seleccionar aleatoriamente un vector de entrada Pi del espacio de entrada. Si la clase  etiqueta a Pi de acuerdo al vector de Voronoi W, el vector W se mueve en la dirección Pi. Si la clase  etiqueta a Pi en desacuerdo a W, el vector W se aleja de la dirección Pi.
Características  LVQ Se refuerza el “cluster” representativo (una neurona) cuando este clasifica la entrada en la clase deseada . Reforzamiento positivo: Impulsa los pesos de la neurona  hacia la entrada. Reforzamiento negativo: Aleja los pesos del vector de entrada
Arquitectura
Arquitectura LVQ Combina el aprendizaje competitivo con Supervisado No supervisado (2a. Capa)  oculta Supervisado (3a. Capa) El aprendizaje competitivo logra “clusters” Asigna una clase (o valor de salida) a cada “cluster”
Arquitectura la segunda capa (oculta) es una capa competitiva que aprende a clasificar los vectores de entrada de la misma forma que las capas competitivas. La tercera capa transforma las clases de la capa competitiva en clasificaciones objetivo (T1, T2, etc) definidas por el usuario. Consiste de tres capas  :
Arquitectura
Arquitectura   La entrada a la red no se calcula usando el producto punto de los vectores prototipo  con la entrada; sino que en vez de ello, la entrada a la red  es el negativo de la distancia euclídea entre los vectores prototipo Wij y la entrada Pi.
Arquitectura  Las primeras son conocidas como subclases (capa oculta) Las segundas son conocidas como clases objetivo ambas capas (Competitiva y lineal) tiene una neurona por clase (capa de salida).
Arquitectura   Entonces la capa competitiva (oculta) puede aprender de S1 subclases y la capa  lineal (salida) puede formar S2 clases objetivo con la restricción siguiente: S1  <  S2
Arquitectura  de LVQ
Arquitectura LVQ El clasificador LVQ consiste de: Una capa de entrada Una capa competitiva (oculta), la cual aprende a clasificar vectores de entrada en subclases.
Arquitectura LVQ Una capa de salida lineal, la cual transforma las clases de la capa competitiva en clasificaciones objetivo definidas por el usuario (capa de salida). Unicamente la neurona ganadora de la capa lineal tiene salida “1”, mientras que las otras tienen salida “0”.
Arquitectura LVQ Los vectores de peso de las neuronas de la capa oculta son los prototipos, un numero el cual es usualmente fijado antes de comenzar el entrenamiento. El numero de neuronas ocultas depende de la complejidad de la relación entra-salida y efectos significativos de los resultados de pruebas al clasificador.
Subclases Para la red LVQ la neurona ganadora en la 2a capa indica subclases al cual el vector de entrada pertenece.  Puede haber un numero diferente de neuronas (subclases) que constituyen una clase.
Subclases La 3a, capa de la red LVQ combina subclases en una sola clase. Las columnas de  W 2   representan subclases y las filas representan clases
W 2  tiene un solo 1 en cada columna, los otros elementos son ajustados a cero.  La fila en la que el uno ocurre indica la clase a la cual la subclase apropiada pertenece esta w k i  2 1 =   subclass   i is a part of class    k
• Una red competitiva de una sola capa puede crear regiones de clasificación  convexas. La segunda capa de la red LVQ puede combinar las regiones convexas para crear categorías mas complejas.
Algoritmo de aprendizaje  de LVQ
Aprendizaje LVQ LVQ combina el aprendizaje competitivo con la supervisión. Esto requiere de un conjunto entrenamiento de ejemplos del comportamiento de la red. Si el patrón de entrada es clasificado correctamente,entonces se mueve el peso ganador hacia el vector de entrada de acuerdo al regla de Kohonen.
Aprendizaje  en LVQ Si el patrón de entrada es clasificado incorrectamente entonces se mueve el peso ganador fuera del vector de entrada.
La Razón de Aprendizaje     Es deseable que     decrezca monótonamente  respecto al numero de iteraciones n.  0 <     <=1 Por ejemplo    =0.1 ,  disminuir linealmente respecto a n. Después de varias iteraciones, los  vectores de Voronoi típicamente convergen.
Aplicaciones Compresión de datos Clasificación de patrones Reconocimiento de rostros
Reconocimiento de Rostros LVQ
Ejercicios
Ejemplo 1  LVQ Entrene una red LVQ1 con los siguientes parámetros. A) Efectue 4 iteraciones en el siguiente orden: P4, P3, P2, y P1.
 
B) Grafique los pesos y iniciales y los finales después de la 1a. Epoca. No olvide graficar los patrones de entrada. Dibuje la red neuronal resultante. Escriba el código en Matlab/ NNT para resolver el problema
Ejemplo 2  LVQ Entrene una red LVQ1 con los siguientes parámetros (XOR). A) Efectue 4 iteraciones en el siguiente orden: P1, P2, P3, y P4.
 
B) Grafique los pesos y iniciales y los finales después de la 1a. Epoca. No olvide graficar los patrones de entrada. Dibuje la red neuronal resultante. Escriba el código en Matlab/ NNT para resolver el problema
Después de una iteración
Regiones de Decisión Finales
Limitaciones  de LVQ1 A) Neuronas Muertas Wi no se actualiza nunca B) Wi no alcanza la regió n de clasificación  de Pi. Solución: Usar algoritmo  LVQ2
Variantes   de LVQ
Existen diferentes variantes al algoritmo básico de  LVQ (LVQ1, LVQ2 y LVQ3). Las diferentes variantes de LVQ descritas en  [ Kohonen , 1995 , McDermott , 1990 , Makino  et al., 1992 ] las cuales tienen propiedades ligeramente diferentes.
Por ejemplo  LVQ2  [ Kohonen  et al., 1996b ], la cual es eficiente para sintonia fina de las fronteras de decisión entre las clases en competencia. LVQ3  [ Kohonen  et al., 1996b ] la cual agrega un termino de estabilidad a LVQ2 para mejorar su comportamiento a largo plazo.
Simulación en  Matlab / NNT
Funciones de LVQ initlvq  para inicializar simulvq   para simular trainlvq   para entrenar la red plotvec   para graficar los vectores de entrada.
Initlvq:   Regresa los pesos W1 para la capa competitiva con S1 neuronas y los pesos W2 para una capa de S2 neuronas lineales donde S2 es el numero de filas T. Cada columna de T debe tener todos “0s” excepto  por un solo “1”.
Sintaxis de initlvq [W1,W2] = initlvq (P,S1,T); donde: P es el vector de entradas T es el vector objetivo S1 es el numero de neuronas en la capa  oculta.
trainlvq Esta función regresa matrices de pesos nuevos para una red LVQ de capas competitivas y lineales  (W1,W2) y después de entrenar los pesos originales en los vectores de entrada P y los vectores objetivo asociados T usando parámetros de entrenamiento tp. Tp(1)  actualización de display = 25  Tp(2)  No. Max. de presentaciones = 100 Tp(3)  Razón de aprendizaje = 25 Nota: NaN, se utiliza para los valores  que tiene por omisión
Sintaxis trainlvq [W1,W2] = trainlvq(W1,W2,P,T,tp); donde: W1 es el peso de la capa competitiva W2 es el peso de la capa lineal P es el vector de entradas T es el vector de valores objetivo tp son parámetros de entrenamiento
simulvq La función anterior toma un matriz de vectores de entrada P, la matriz de vectores W y un vector de umbral b de una capa lineal y regresa la salidas de la capa.
Sintaxis de simulvq a = simulvq (P, W1,W2); donde: W1 es el peso de la capa competitiva W2 es el peso de la capa lineal P es el vector de entradas.
Función simulvq Ejemplo: P= [-1  2  3  2 ...; 2 -1  1 -3 ...]; T= [0 0 0 1 ...; 1 1 1 0 ...]; [W,b]= initlvq (p,7,T); a= simulvq ([1; -1], W1, W2);
learnlvq La función anterior regresa la actualización de la matriz de pesos para la capa competitiva oculta de una red LVQ En LVQ la neurona ganadora de la capa competitiva es actualizada con la regla instar si esta neurona tiene un objetivo 1. De otra forma los cambios sugeridos por la regla instar son restados de los pesos de la neurona ganadora.
Sintaxis learnlvq   dW = learnlvq (W,P,a,T,lr); W =  W +dW donde: W es la matriz de pesos original de la capa competitiva P es el vector de entradas  a es el vector de salida de la capa competitiva. T es el vector de valores objetivos lr es la razón de aprendizaje
Código para el Ejemplo 1 P=[0 0 1 1; 0 1 0 1]; T=[1 0 0 1; 0 1 1 0]; [W1,W2]= initlvq(P,4,T); [W1,W2]= trainlvq(W1,W2,P,T,[10 100  0.5]); a = simulvq(P, W1,W2);
Resumen  de LVQ
Resumen LVQ es un método para el entrenamiento de de capas competitivas de una manera supervisada. Una capa competitiva automáticamente  aprenderá a clasificar automáticamente vectores de entrada. Sin embargo, las clases que la capa competitiva encuentra dependen únicamente de los vectores de entrada.
Resumen Si dos vectores de entrada son muy similares, la capa competitiva probablemente los colocara en la misma clase. No existe mecanismo en el diseño de una capa competitiva para dictar si cualquiera de los vectores de entrada están la misma clase o no.
Resumen La redes LVQ aprenden a clasificar vectores de entrada en clases seleccionadas por el usuario
Bibliografía
Referencias: T. Kohonen, Self-Organization and Associative Memory, 2nd. Edition, Berlin. Springer- Verlag, 1987.
Dudas ???
Hasta la próxima !!!
APENDICE
Learning of the  LVQ Net
 
Training the LVQ Network Step 1 : Initialization:  Initialize the weight vectors.  The weight vectors may be  initialized randomly. Also initialize the learning rate Step 2: For each vector  in the training set follow steps 2a and 2b.
LVQ Training Step 2a
Training LVQ Step 3:   Adjust the learning rate:  The learning rate is reduced as a function of iteration. Step 4:   Check for termination: Exit if  termination conditions are met. Otherwise go to step 2.

Learning Vector Quantization LVQ

  • 1.
    LVQ Learning VectorQuantization
  • 2.
    Antecedentes El método Vector Quantization (VQ) fue originalmente desarrollado por Linde (1980) y Gray (1984). Y como una herramienta para compresión de datos por Gersho y Gray,1992
  • 3.
    Vector Quantization VQEs una técnica usada para reducir la dimensionalidad de datos. Los datos originales es un conjunto de vectores de dimensión n. Los vectores son mapeados en un conjunto mas pequeño de valores codebook.
  • 4.
    Vector Quantization VQLos valores codebook son usados para almacenaje o transmisión (Se pierde alguna información contenida). Los valores codebook son re-transladados a valores cercanos de los datos originales (no serán exactos)
  • 5.
  • 6.
  • 7.
    Antecedentes El algoritmode LVQ fue adaptado por T. Kohonen en 1986 y Kohonen et al en 1988 para reconocimiento de patrones.
  • 8.
  • 9.
    Características deLVQ La red LVQ se considera como un clasificador supervisado. El clasificador LVQ divide el espacio de entrada en regiones disjuntas Todas las regiones de clasificación que se crean están cercanas al “optimo”.
  • 10.
    Características deLVQ LVQ es una técnica de aprendizaje supervisado que usa la información de clases para mover los vectores de Voronoi W ligeramente. Mejora la calidad de clasificador de regiones de decisión.
  • 11.
    Características deLVQ Para clasificar un vector de entrada Pi, este debe ser comparado con todos los vectores prototipos W. Cada región se representa por un vector prototipo W.
  • 12.
    Características deLVQ El vector de entrada se clasifica en la misma clase que el prototipo mas cercano La métrica de la distancia Euclídea se usa para seleccionar el vector Wij mas cercano al de entrada Pi.
  • 13.
    Características deLVQ Al seleccionar aleatoriamente un vector de entrada Pi del espacio de entrada. Si la clase etiqueta a Pi de acuerdo al vector de Voronoi W, el vector W se mueve en la dirección Pi. Si la clase etiqueta a Pi en desacuerdo a W, el vector W se aleja de la dirección Pi.
  • 14.
    Características LVQSe refuerza el “cluster” representativo (una neurona) cuando este clasifica la entrada en la clase deseada . Reforzamiento positivo: Impulsa los pesos de la neurona hacia la entrada. Reforzamiento negativo: Aleja los pesos del vector de entrada
  • 15.
  • 16.
    Arquitectura LVQ Combinael aprendizaje competitivo con Supervisado No supervisado (2a. Capa) oculta Supervisado (3a. Capa) El aprendizaje competitivo logra “clusters” Asigna una clase (o valor de salida) a cada “cluster”
  • 17.
    Arquitectura la segundacapa (oculta) es una capa competitiva que aprende a clasificar los vectores de entrada de la misma forma que las capas competitivas. La tercera capa transforma las clases de la capa competitiva en clasificaciones objetivo (T1, T2, etc) definidas por el usuario. Consiste de tres capas :
  • 18.
  • 19.
    Arquitectura La entrada a la red no se calcula usando el producto punto de los vectores prototipo con la entrada; sino que en vez de ello, la entrada a la red es el negativo de la distancia euclídea entre los vectores prototipo Wij y la entrada Pi.
  • 20.
    Arquitectura Lasprimeras son conocidas como subclases (capa oculta) Las segundas son conocidas como clases objetivo ambas capas (Competitiva y lineal) tiene una neurona por clase (capa de salida).
  • 21.
    Arquitectura Entonces la capa competitiva (oculta) puede aprender de S1 subclases y la capa lineal (salida) puede formar S2 clases objetivo con la restricción siguiente: S1 < S2
  • 22.
  • 23.
    Arquitectura LVQ Elclasificador LVQ consiste de: Una capa de entrada Una capa competitiva (oculta), la cual aprende a clasificar vectores de entrada en subclases.
  • 24.
    Arquitectura LVQ Unacapa de salida lineal, la cual transforma las clases de la capa competitiva en clasificaciones objetivo definidas por el usuario (capa de salida). Unicamente la neurona ganadora de la capa lineal tiene salida “1”, mientras que las otras tienen salida “0”.
  • 25.
    Arquitectura LVQ Losvectores de peso de las neuronas de la capa oculta son los prototipos, un numero el cual es usualmente fijado antes de comenzar el entrenamiento. El numero de neuronas ocultas depende de la complejidad de la relación entra-salida y efectos significativos de los resultados de pruebas al clasificador.
  • 26.
    Subclases Para lared LVQ la neurona ganadora en la 2a capa indica subclases al cual el vector de entrada pertenece. Puede haber un numero diferente de neuronas (subclases) que constituyen una clase.
  • 27.
    Subclases La 3a,capa de la red LVQ combina subclases en una sola clase. Las columnas de W 2 representan subclases y las filas representan clases
  • 28.
    W 2 tiene un solo 1 en cada columna, los otros elementos son ajustados a cero. La fila en la que el uno ocurre indica la clase a la cual la subclase apropiada pertenece esta w k i  2 1 =   subclass i is a part of class  k
  • 29.
    • Una redcompetitiva de una sola capa puede crear regiones de clasificación convexas. La segunda capa de la red LVQ puede combinar las regiones convexas para crear categorías mas complejas.
  • 30.
  • 31.
    Aprendizaje LVQ LVQcombina el aprendizaje competitivo con la supervisión. Esto requiere de un conjunto entrenamiento de ejemplos del comportamiento de la red. Si el patrón de entrada es clasificado correctamente,entonces se mueve el peso ganador hacia el vector de entrada de acuerdo al regla de Kohonen.
  • 32.
    Aprendizaje enLVQ Si el patrón de entrada es clasificado incorrectamente entonces se mueve el peso ganador fuera del vector de entrada.
  • 33.
    La Razón deAprendizaje   Es deseable que  decrezca monótonamente respecto al numero de iteraciones n. 0 <  <=1 Por ejemplo   =0.1 , disminuir linealmente respecto a n. Después de varias iteraciones, los vectores de Voronoi típicamente convergen.
  • 34.
    Aplicaciones Compresión dedatos Clasificación de patrones Reconocimiento de rostros
  • 35.
  • 36.
  • 37.
    Ejemplo 1 LVQ Entrene una red LVQ1 con los siguientes parámetros. A) Efectue 4 iteraciones en el siguiente orden: P4, P3, P2, y P1.
  • 38.
  • 39.
    B) Grafique lospesos y iniciales y los finales después de la 1a. Epoca. No olvide graficar los patrones de entrada. Dibuje la red neuronal resultante. Escriba el código en Matlab/ NNT para resolver el problema
  • 40.
    Ejemplo 2 LVQ Entrene una red LVQ1 con los siguientes parámetros (XOR). A) Efectue 4 iteraciones en el siguiente orden: P1, P2, P3, y P4.
  • 41.
  • 42.
    B) Grafique lospesos y iniciales y los finales después de la 1a. Epoca. No olvide graficar los patrones de entrada. Dibuje la red neuronal resultante. Escriba el código en Matlab/ NNT para resolver el problema
  • 43.
    Después de unaiteración
  • 44.
  • 45.
    Limitaciones deLVQ1 A) Neuronas Muertas Wi no se actualiza nunca B) Wi no alcanza la regió n de clasificación de Pi. Solución: Usar algoritmo LVQ2
  • 46.
    Variantes de LVQ
  • 47.
    Existen diferentes variantesal algoritmo básico de LVQ (LVQ1, LVQ2 y LVQ3). Las diferentes variantes de LVQ descritas en [ Kohonen , 1995 , McDermott , 1990 , Makino et al., 1992 ] las cuales tienen propiedades ligeramente diferentes.
  • 48.
    Por ejemplo LVQ2 [ Kohonen et al., 1996b ], la cual es eficiente para sintonia fina de las fronteras de decisión entre las clases en competencia. LVQ3 [ Kohonen et al., 1996b ] la cual agrega un termino de estabilidad a LVQ2 para mejorar su comportamiento a largo plazo.
  • 49.
    Simulación en Matlab / NNT
  • 50.
    Funciones de LVQinitlvq para inicializar simulvq para simular trainlvq para entrenar la red plotvec para graficar los vectores de entrada.
  • 51.
    Initlvq: Regresa los pesos W1 para la capa competitiva con S1 neuronas y los pesos W2 para una capa de S2 neuronas lineales donde S2 es el numero de filas T. Cada columna de T debe tener todos “0s” excepto por un solo “1”.
  • 52.
    Sintaxis de initlvq[W1,W2] = initlvq (P,S1,T); donde: P es el vector de entradas T es el vector objetivo S1 es el numero de neuronas en la capa oculta.
  • 53.
    trainlvq Esta funciónregresa matrices de pesos nuevos para una red LVQ de capas competitivas y lineales (W1,W2) y después de entrenar los pesos originales en los vectores de entrada P y los vectores objetivo asociados T usando parámetros de entrenamiento tp. Tp(1) actualización de display = 25 Tp(2) No. Max. de presentaciones = 100 Tp(3) Razón de aprendizaje = 25 Nota: NaN, se utiliza para los valores que tiene por omisión
  • 54.
    Sintaxis trainlvq [W1,W2]= trainlvq(W1,W2,P,T,tp); donde: W1 es el peso de la capa competitiva W2 es el peso de la capa lineal P es el vector de entradas T es el vector de valores objetivo tp son parámetros de entrenamiento
  • 55.
    simulvq La funciónanterior toma un matriz de vectores de entrada P, la matriz de vectores W y un vector de umbral b de una capa lineal y regresa la salidas de la capa.
  • 56.
    Sintaxis de simulvqa = simulvq (P, W1,W2); donde: W1 es el peso de la capa competitiva W2 es el peso de la capa lineal P es el vector de entradas.
  • 57.
    Función simulvq Ejemplo:P= [-1 2 3 2 ...; 2 -1 1 -3 ...]; T= [0 0 0 1 ...; 1 1 1 0 ...]; [W,b]= initlvq (p,7,T); a= simulvq ([1; -1], W1, W2);
  • 58.
    learnlvq La funciónanterior regresa la actualización de la matriz de pesos para la capa competitiva oculta de una red LVQ En LVQ la neurona ganadora de la capa competitiva es actualizada con la regla instar si esta neurona tiene un objetivo 1. De otra forma los cambios sugeridos por la regla instar son restados de los pesos de la neurona ganadora.
  • 59.
    Sintaxis learnlvq dW = learnlvq (W,P,a,T,lr); W = W +dW donde: W es la matriz de pesos original de la capa competitiva P es el vector de entradas a es el vector de salida de la capa competitiva. T es el vector de valores objetivos lr es la razón de aprendizaje
  • 60.
    Código para elEjemplo 1 P=[0 0 1 1; 0 1 0 1]; T=[1 0 0 1; 0 1 1 0]; [W1,W2]= initlvq(P,4,T); [W1,W2]= trainlvq(W1,W2,P,T,[10 100 0.5]); a = simulvq(P, W1,W2);
  • 61.
  • 62.
    Resumen LVQ esun método para el entrenamiento de de capas competitivas de una manera supervisada. Una capa competitiva automáticamente aprenderá a clasificar automáticamente vectores de entrada. Sin embargo, las clases que la capa competitiva encuentra dependen únicamente de los vectores de entrada.
  • 63.
    Resumen Si dosvectores de entrada son muy similares, la capa competitiva probablemente los colocara en la misma clase. No existe mecanismo en el diseño de una capa competitiva para dictar si cualquiera de los vectores de entrada están la misma clase o no.
  • 64.
    Resumen La redesLVQ aprenden a clasificar vectores de entrada en clases seleccionadas por el usuario
  • 65.
  • 66.
    Referencias: T. Kohonen,Self-Organization and Associative Memory, 2nd. Edition, Berlin. Springer- Verlag, 1987.
  • 67.
  • 68.
  • 69.
  • 70.
  • 71.
  • 72.
    Training the LVQNetwork Step 1 : Initialization: Initialize the weight vectors. The weight vectors may be initialized randomly. Also initialize the learning rate Step 2: For each vector in the training set follow steps 2a and 2b.
  • 73.
  • 74.
    Training LVQ Step3: Adjust the learning rate: The learning rate is reduced as a function of iteration. Step 4: Check for termination: Exit if termination conditions are met. Otherwise go to step 2.