Learning Vector Quantization LVQ

4,059
-1

Published on

Published in: Education, Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
4,059
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
241
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Learning Vector Quantization LVQ

  1. 1. LVQ Learning Vector Quantization
  2. 2. Antecedentes <ul><li>El método Vector Quantization (VQ) fue originalmente desarrollado por Linde (1980) y Gray (1984). </li></ul><ul><li>Y como una herramienta para compresión de datos por Gersho y Gray,1992 </li></ul>
  3. 3. Vector Quantization VQ <ul><li>Es una técnica usada para reducir la dimensionalidad de datos. </li></ul><ul><li>Los datos originales es un conjunto de vectores de dimensión n. </li></ul><ul><li>Los vectores son mapeados en un conjunto mas pequeño de valores codebook. </li></ul>
  4. 4. Vector Quantization VQ <ul><li>Los valores codebook son usados para almacenaje o transmisión (Se pierde alguna información contenida). </li></ul><ul><li>Los valores codebook son re-transladados a valores cercanos de los datos originales (no serán exactos) </li></ul>
  5. 7. Antecedentes <ul><li>El algoritmo de LVQ fue adaptado por T. Kohonen en 1986 y Kohonen et al en 1988 para reconocimiento de patrones. </li></ul>
  6. 8. Características de LVQ
  7. 9. Características de LVQ <ul><li>La red LVQ se considera como un clasificador supervisado. </li></ul><ul><li>El clasificador LVQ divide el espacio de entrada en regiones disjuntas </li></ul><ul><li>Todas las regiones de clasificación que se crean están cercanas al “optimo”. </li></ul>
  8. 10. Características de LVQ <ul><li>LVQ es una técnica de aprendizaje supervisado que usa la información de clases para mover los vectores de Voronoi W ligeramente. </li></ul><ul><li>Mejora la calidad de clasificador de regiones de decisión. </li></ul>
  9. 11. Características de LVQ <ul><li>Para clasificar un vector de entrada Pi, este debe ser comparado con todos los vectores prototipos W. </li></ul><ul><li>Cada región se representa por un vector prototipo W. </li></ul>
  10. 12. Características de LVQ <ul><li>El vector de entrada se clasifica en la misma clase que el prototipo mas cercano </li></ul><ul><li>La métrica de la distancia Euclídea se usa para seleccionar el vector Wij mas cercano al de entrada Pi. </li></ul>
  11. 13. Características de LVQ <ul><li>Al seleccionar aleatoriamente un vector de entrada Pi del espacio de entrada. </li></ul><ul><li>Si la clase etiqueta a Pi de acuerdo al vector de Voronoi W, el vector W se mueve en la dirección Pi. </li></ul><ul><li>Si la clase etiqueta a Pi en desacuerdo a W, el vector W se aleja de la dirección Pi. </li></ul>
  12. 14. Características LVQ <ul><li>Se refuerza el “cluster” representativo (una neurona) cuando este clasifica la entrada en la clase deseada . </li></ul><ul><ul><li>Reforzamiento positivo: Impulsa los pesos de la neurona hacia la entrada. </li></ul></ul><ul><ul><li>Reforzamiento negativo: Aleja los pesos del vector de entrada </li></ul></ul>
  13. 15. Arquitectura
  14. 16. Arquitectura LVQ <ul><li>Combina el aprendizaje competitivo con Supervisado </li></ul><ul><ul><li>No supervisado (2a. Capa) oculta </li></ul></ul><ul><ul><li>Supervisado (3a. Capa) </li></ul></ul><ul><li>El aprendizaje competitivo logra “clusters” </li></ul><ul><li>Asigna una clase (o valor de salida) a cada “cluster” </li></ul>
  15. 17. Arquitectura <ul><ul><li>la segunda capa (oculta) es una capa competitiva que aprende a clasificar los vectores de entrada de la misma forma que las capas competitivas. </li></ul></ul><ul><ul><li>La tercera capa transforma las clases de la capa competitiva en clasificaciones objetivo (T1, T2, etc) definidas por el usuario. </li></ul></ul>Consiste de tres capas :
  16. 18. Arquitectura
  17. 19. Arquitectura <ul><li>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. </li></ul>
  18. 20. Arquitectura <ul><li>Las primeras son conocidas como subclases (capa oculta) </li></ul><ul><li>Las segundas son conocidas como clases objetivo ambas capas (Competitiva y lineal) tiene una neurona por clase (capa de salida). </li></ul>
  19. 21. Arquitectura <ul><li>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: </li></ul><ul><li>S1 < S2 </li></ul>
  20. 22. Arquitectura de LVQ
  21. 23. Arquitectura LVQ <ul><li>El clasificador LVQ consiste de: </li></ul><ul><ul><li>Una capa de entrada </li></ul></ul><ul><ul><li>Una capa competitiva (oculta), la cual aprende a clasificar vectores de entrada en subclases. </li></ul></ul>
  22. 24. Arquitectura LVQ <ul><ul><li>Una capa de salida lineal, la cual transforma las clases de la capa competitiva en clasificaciones objetivo definidas por el usuario (capa de salida). </li></ul></ul><ul><ul><li>Unicamente la neurona ganadora de la capa lineal tiene salida “1”, mientras que las otras tienen salida “0”. </li></ul></ul>
  23. 25. Arquitectura LVQ <ul><li>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. </li></ul><ul><li>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. </li></ul>
  24. 26. Subclases <ul><li>Para la red LVQ la neurona ganadora en la 2a capa indica subclases al cual el vector de entrada pertenece. </li></ul><ul><li>Puede haber un numero diferente de neuronas (subclases) que constituyen una clase. </li></ul>
  25. 27. Subclases <ul><li>La 3a, capa de la red LVQ combina subclases en una sola clase. </li></ul><ul><li>Las columnas de W 2 representan subclases y las filas representan clases </li></ul>
  26. 28. <ul><li>W 2 tiene un solo 1 en cada columna, los otros elementos son ajustados a cero. </li></ul><ul><li>La fila en la que el uno ocurre indica la clase a la cual la subclase apropiada pertenece esta </li></ul>w k i  2 1 =   subclass i is a part of class  k
  27. 29. • 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.
  28. 30. Algoritmo de aprendizaje de LVQ
  29. 31. Aprendizaje LVQ <ul><li>LVQ combina el aprendizaje competitivo con la supervisión. Esto requiere de un conjunto entrenamiento de ejemplos del comportamiento de la red. </li></ul><ul><li>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. </li></ul>
  30. 32. Aprendizaje en LVQ <ul><li>Si el patrón de entrada es clasificado incorrectamente entonces se mueve el peso ganador fuera del vector de entrada. </li></ul>
  31. 33. La Razón de Aprendizaje   <ul><li>Es deseable que  decrezca monótonamente respecto al numero de iteraciones n. 0 <  <=1 </li></ul><ul><li>Por ejemplo   =0.1 , disminuir linealmente respecto a n. </li></ul><ul><li>Después de varias iteraciones, los vectores de Voronoi típicamente convergen. </li></ul>
  32. 34. Aplicaciones <ul><li>Compresión de datos </li></ul><ul><li>Clasificación de patrones </li></ul><ul><li>Reconocimiento de rostros </li></ul>
  33. 35. Reconocimiento de Rostros LVQ
  34. 36. Ejercicios
  35. 37. Ejemplo 1 LVQ <ul><li>Entrene una red LVQ1 con los siguientes parámetros. </li></ul><ul><li>A) Efectue 4 iteraciones en el siguiente orden: P4, P3, P2, y P1. </li></ul>
  36. 39. <ul><li>B) Grafique los pesos y iniciales y los finales después de la 1a. Epoca. No olvide graficar los patrones de entrada. </li></ul><ul><li>Dibuje la red neuronal resultante. </li></ul><ul><li>Escriba el código en Matlab/ NNT para resolver el problema </li></ul>
  37. 40. Ejemplo 2 LVQ <ul><li>Entrene una red LVQ1 con los siguientes parámetros (XOR). </li></ul><ul><li>A) Efectue 4 iteraciones en el siguiente orden: P1, P2, P3, y P4. </li></ul>
  38. 42. <ul><li>B) Grafique los pesos y iniciales y los finales después de la 1a. Epoca. No olvide graficar los patrones de entrada. </li></ul><ul><li>Dibuje la red neuronal resultante. </li></ul><ul><li>Escriba el código en Matlab/ NNT para resolver el problema </li></ul>
  39. 43. Después de una iteración
  40. 44. Regiones de Decisión Finales
  41. 45. Limitaciones de LVQ1 <ul><li>A) Neuronas Muertas </li></ul><ul><ul><li>Wi no se actualiza nunca </li></ul></ul><ul><li>B) Wi no alcanza la regió n de clasificación de Pi. </li></ul><ul><li>Solución: Usar algoritmo LVQ2 </li></ul>
  42. 46. Variantes de LVQ
  43. 47. <ul><li>Existen diferentes variantes al algoritmo básico de LVQ (LVQ1, LVQ2 y LVQ3). </li></ul><ul><li>Las diferentes variantes de LVQ descritas en [ Kohonen , 1995 , McDermott , 1990 , Makino et al., 1992 ] las cuales tienen propiedades ligeramente diferentes. </li></ul>
  44. 48. <ul><li>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. </li></ul><ul><li>LVQ3 [ Kohonen et al., 1996b ] la cual agrega un termino de estabilidad a LVQ2 para mejorar su comportamiento a largo plazo. </li></ul>
  45. 49. Simulación en Matlab / NNT
  46. 50. Funciones de LVQ <ul><li>initlvq para inicializar </li></ul><ul><li>simulvq para simular </li></ul><ul><li>trainlvq para entrenar la red </li></ul><ul><li>plotvec para graficar los vectores de entrada. </li></ul>
  47. 51. <ul><li>Initlvq: </li></ul><ul><li>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. </li></ul><ul><li>Cada columna de T debe tener todos “0s” excepto por un solo “1”. </li></ul>
  48. 52. Sintaxis de initlvq <ul><li>[W1,W2] = initlvq (P,S1,T); </li></ul><ul><li>donde: </li></ul><ul><li>P es el vector de entradas </li></ul><ul><li>T es el vector objetivo </li></ul><ul><li>S1 es el numero de neuronas en la capa oculta. </li></ul>
  49. 53. <ul><li>trainlvq </li></ul><ul><li>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. </li></ul><ul><li>Tp(1) actualización de display = 25 </li></ul><ul><li>Tp(2) No. Max. de presentaciones = 100 </li></ul><ul><li>Tp(3) Razón de aprendizaje = 25 </li></ul><ul><li>Nota: NaN, se utiliza para los valores que tiene por omisión </li></ul>
  50. 54. Sintaxis trainlvq <ul><li>[W1,W2] = trainlvq(W1,W2,P,T,tp); </li></ul><ul><li>donde: </li></ul><ul><li>W1 es el peso de la capa competitiva </li></ul><ul><li>W2 es el peso de la capa lineal </li></ul><ul><li>P es el vector de entradas </li></ul><ul><li>T es el vector de valores objetivo </li></ul><ul><li>tp son parámetros de entrenamiento </li></ul>
  51. 55. <ul><li>simulvq </li></ul><ul><li>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. </li></ul>
  52. 56. Sintaxis de simulvq <ul><li>a = simulvq (P, W1,W2); </li></ul><ul><li>donde: </li></ul><ul><li>W1 es el peso de la capa competitiva </li></ul><ul><li>W2 es el peso de la capa lineal </li></ul><ul><li>P es el vector de entradas. </li></ul>
  53. 57. Función simulvq <ul><li>Ejemplo: </li></ul><ul><li>P= [-1 2 3 2 ...; </li></ul><ul><li>2 -1 1 -3 ...]; </li></ul><ul><li>T= [0 0 0 1 ...; </li></ul><ul><li>1 1 1 0 ...]; </li></ul><ul><li>[W,b]= initlvq (p,7,T); </li></ul><ul><li>a= simulvq ([1; -1], W1, W2); </li></ul>
  54. 58. <ul><li>learnlvq </li></ul><ul><li>La función anterior regresa la actualización de la matriz de pesos para la capa competitiva oculta de una red LVQ </li></ul><ul><li>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. </li></ul>
  55. 59. Sintaxis learnlvq <ul><li> dW = learnlvq (W,P,a,T,lr); </li></ul><ul><li>W = W +dW </li></ul><ul><li>donde: </li></ul><ul><li>W es la matriz de pesos original de la capa competitiva </li></ul><ul><li>P es el vector de entradas </li></ul><ul><li>a es el vector de salida de la capa competitiva. </li></ul><ul><li>T es el vector de valores objetivos </li></ul><ul><li>lr es la razón de aprendizaje </li></ul>
  56. 60. Código para el Ejemplo 1 <ul><li>P=[0 0 1 1; </li></ul><ul><li>0 1 0 1]; </li></ul><ul><li>T=[1 0 0 1; </li></ul><ul><li>0 1 1 0]; </li></ul><ul><li>[W1,W2]= initlvq(P,4,T); </li></ul><ul><li>[W1,W2]= trainlvq(W1,W2,P,T,[10 100 0.5]); </li></ul><ul><li>a = simulvq(P, W1,W2); </li></ul>
  57. 61. Resumen de LVQ
  58. 62. Resumen <ul><li>LVQ es un método para el entrenamiento de de capas competitivas de una manera supervisada. </li></ul><ul><li>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. </li></ul>
  59. 63. Resumen <ul><li>Si dos vectores de entrada son muy similares, la capa competitiva probablemente los colocara en la misma clase. </li></ul><ul><li>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. </li></ul>
  60. 64. Resumen <ul><li>La redes LVQ aprenden a clasificar vectores de entrada en clases seleccionadas por el usuario </li></ul>
  61. 65. Bibliografía
  62. 66. Referencias: <ul><li>T. Kohonen, Self-Organization and Associative Memory, 2nd. Edition, Berlin. Springer- Verlag, 1987. </li></ul>
  63. 67. Dudas ???
  64. 68. Hasta la próxima !!!
  65. 69. APENDICE
  66. 70. Learning of the LVQ Net
  67. 72. Training the LVQ Network <ul><li>Step 1 : Initialization: </li></ul><ul><li> Initialize the weight vectors. </li></ul><ul><li>The weight vectors may be initialized randomly. </li></ul><ul><li>Also initialize the learning rate </li></ul><ul><li>Step 2: For each vector in the training set follow steps 2a and 2b. </li></ul>
  68. 73. LVQ Training Step 2a
  69. 74. Training LVQ <ul><li>Step 3: Adjust the learning rate: </li></ul><ul><li>The learning rate is reduced as a function of iteration. </li></ul><ul><li>Step 4: Check for termination: Exit if termination conditions are met. Otherwise go to step 2. </li></ul>
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×