Aprendizaje de cuantificación vectorial

Learning Vector Quantization (LVQ), a diferencia de la cuantificación vectorial (VQ) y los mapas autoorganizados de Kohonen (KSOM), básicamente es una red competitiva que utiliza el aprendizaje supervisado. Podemos definirlo como un proceso de clasificación de patrones donde cada unidad de salida representa una clase. Como utiliza el aprendizaje supervisado, la red recibirá un conjunto de patrones de entrenamiento con clasificación conocida junto con una distribución inicial de la clase de salida. Después de completar el proceso de entrenamiento, LVQ clasificará un vector de entrada asignándolo a la misma clase que la de la unidad de salida.

Arquitectura

La siguiente figura muestra la arquitectura de LVQ que es bastante similar a la arquitectura de KSOM. Como podemos ver, hay“n” número de unidades de entrada y “m”número de unidades de salida. Las capas están completamente interconectadas con pesos sobre ellas.

Parámetros utilizados

A continuación se muestran los parámetros utilizados en el proceso de entrenamiento LVQ, así como en el diagrama de flujo.

  • x= vector de entrenamiento (x 1 , ..., x i , ..., x n )

  • T = clase para vector de entrenamiento x

  • wj = vector de peso para jth unidad de salida

  • Cj = clase asociada con el jth unidad de salida

Algoritmo de entrenamiento

Step 1 - Inicializar vectores de referencia, que se puede hacer de la siguiente manera -

  • Step 1(a) - Del conjunto dado de vectores de entrenamiento, tome el primer "m”(Número de conglomerados) vectores de entrenamiento y utilizarlos como vectores de peso. Los vectores restantes se pueden utilizar para entrenamiento.

  • Step 1(b) - Asignar el peso inicial y la clasificación de forma aleatoria.

  • Step 1(c) - Aplicar el método de agrupación de K-means.

Step 2 - Inicializar el vector de referencia $ \ alpha $

Step 3 - Continúe con los pasos 4-9, si no se cumple la condición para detener este algoritmo.

Step 4 - Siga los pasos 5-6 para cada vector de entrada de entrenamiento x.

Step 5 - Calcular el cuadrado de la distancia euclidiana para j = 1 to m y i = 1 to n

$$ D (j) \: = \: \ Displaystyle \ sum \ limits_ {i = 1} ^ n \ Displaystyle \ sum \ limits_ {j = 1} ^ m (x_ {i} \: - \: w_ {ij }) ^ 2 $$

Step 6 - Obtén la unidad ganadora J dónde D(j) es mínimo.

Step 7 - Calcule el nuevo peso de la unidad ganadora mediante la siguiente relación -

Si T = Cj luego $ w_ {j} (nuevo) \: = \: w_ {j} (antiguo) \: + \: \ alpha [x \: - \: w_ {j} (antiguo)] $

Si T ≠ Cj luego $ w_ {j} (nuevo) \: = \: w_ {j} (antiguo) \: - \: \ alpha [x \: - \: w_ {j} (antiguo)] $

Step 8 - Reducir la tasa de aprendizaje $ \ alpha $.

Step 9- Pruebe la condición de parada. Puede ser como sigue:

  • Se alcanzó el número máximo de épocas.
  • Tasa de aprendizaje reducida a un valor insignificante.

Diagrama de flujo

Variantes

Kohonen ha desarrollado otras tres variantes, a saber, LVQ2, LVQ2.1 y LVQ3. La complejidad en estas tres variantes, debido al concepto que aprenderán tanto el ganador como el subcampeón, es más que en LVQ.

LVQ2

Como se discutió, el concepto de otras variantes de LVQ anterior, la condición de LVQ2 está formada por ventana. Esta ventana se basará en los siguientes parámetros:

  • x - el vector de entrada actual

  • yc - el vector de referencia más cercano a x

  • yr - el otro vector de referencia, que es el siguiente más cercano a x

  • dc - la distancia desde x a yc

  • dr - la distancia desde x a yr

El vector de entrada x cae por la ventana, si

$$ \ frac {d_ {c}} {d_ {r}} \:> \: 1 \: - \: \ theta \: \: y \: \: \ frac {d_ {r}} {d_ {c }} \:> \: 1 \: + \: \ theta $$

Aquí, $ \ theta $ es el número de muestras de entrenamiento.

La actualización se puede hacer con la siguiente fórmula:

$ y_ {c} (t \: + \: 1) \: = \: y_ {c} (t) \: + \: \ alpha (t) [x (t) \: - \: y_ {c} (t)] $ (belongs to different class)

$ y_ {r} (t \: + \: 1) \: = \: y_ {r} (t) \: + \: \ alpha (t) [x (t) \: - \: y_ {r} (t)] $ (belongs to same class)

Aquí $ \ alpha $ es la tasa de aprendizaje.

LVQ2.1

En LVQ2.1, tomaremos los dos vectores más cercanos, a saber yc1 y yc2 y la condición para la ventana es la siguiente:

$$ Min \ begin {bmatrix} \ frac {d_ {c1}} {d_ {c2}}, \ frac {d_ {c2}} {d_ {c1}} \ end {bmatrix} \:> \ :( 1 \ : - \: \ theta) $$

$$ Max \ begin {bmatrix} \ frac {d_ {c1}} {d_ {c2}}, \ frac {d_ {c2}} {d_ {c1}} \ end {bmatrix} \: <\ :( 1 \ : + \: \ theta) $$

La actualización se puede hacer con la siguiente fórmula:

$ y_ {c1} (t \: + \: 1) \: = \: y_ {c1} (t) \: + \: \ alpha (t) [x (t) \: - \: y_ {c1} (t)] $ (belongs to different class)

$ y_ {c2} (t \: + \: 1) \: = \: y_ {c2} (t) \: + \: \ alpha (t) [x (t) \: - \: y_ {c2} (t)] $ (belongs to same class)

Aquí, $ \ alpha $ es la tasa de aprendizaje.

LVQ3

En LVQ3, tomaremos los dos vectores más cercanos, a saber yc1 y yc2 y la condición para la ventana es la siguiente:

$$ Min \ begin {bmatrix} \ frac {d_ {c1}} {d_ {c2}}, \ frac {d_ {c2}} {d_ {c1}} \ end {bmatrix} \:> \ :( 1 \ : - \: \ theta) (1 \: + \: \ theta) $$

Aquí $ \ theta \ approx 0.2 $

La actualización se puede hacer con la siguiente fórmula:

$ y_ {c1} (t \: + \: 1) \: = \: y_ {c1} (t) \: + \: \ beta (t) [x (t) \: - \: y_ {c1} (t)] $ (belongs to different class)

$ y_ {c2} (t \: + \: 1) \: = \: y_ {c2} (t) \: + \: \ beta (t) [x (t) \: - \: y_ {c2} (t)] $ (belongs to same class)

Aquí $ \ beta $ es el múltiplo de la tasa de aprendizaje $ \ alpha $ y $\beta\:=\:m \alpha(t)$ para cada 0.1 < m < 0.5