Está en la página 1de 14

UPC

UNIVERSITAT POLITECNICA DE CATALUNYA

ETSETB- DEPARTAMENT D’ENGINYERIA ELECTRONICA

Curso de Redes Neuronales Artificiales (2000-2001)

K-means

$XWRU 6HUJL %HUPHMR

5HVSRQVDEOH GHO FXUVR -RDQ &DEHVWDQ\


Títol del capítol 7

1. K-medias

1.1. Cuantificación vectorial

En el aprendizaje no supervisado se pretende construir una función F(x; D) que sea un buen estimador de
vector aleatorio X ∈ ℜ p a partir de un conjunto de entrenamiento D={xi, i=0... N-1}. Los cuantificadores
vectoriales construyen su solución (F) de forma local asignando un conjunto infinito de valores ( ℜ p ) a un
conjunto finito de K valores discretos (proceso de cuantificación), siendo K un parámetro del
cuantificador a determinar por el usuario. Estos valores discretos se denominan vectores prototipo {wi,
i=1...K} y son utilizados de la siguiente manera en un cuantificador vectorial euclidiano F :

1 x ∈ R i
y Ri =  x − w j 
K
F(x ) = ∑ g i (x )w i con g i (x ) =  x x − w i ≤ mín
i =1 0 sino  =
j 1..K 

Así F aproxima localmente x con el vector prototipo más cercano. Para determinar el conjunto de vectores
prototipo se suele minimizar el error cuadrático medio definido como

1 N −1 1 N −1 p −1
U
I emp [F(x; D)] = ∑ x i − F (x i ) 2
= ∑∑ (x ij − Fj (x i ))2
2 N i =0 2 N i =0 j= 0

La solución a dicho problema de minimización, es decir

{w }
N −1
*
, j = 1...K = arg min I U
[F(x; D)] = 1 ∑ x i − arg smin xi − ws
2

{w } {w j } =1... K
j emp
j
2 N i =0

resulta ser los centroides calculados a partir de las muestras de entrenamiento que caen en cada Rj, es
decir, los estimador de la esperanza de pertenecer a cada región de Voronoi Rj

N −1

∑ g (x )x
s =0
j s s
wj = N −1

∑ g (x )
s =0
j s

Así al minimizar IempU, los K vectores prototipo se distribuyen sobre el espacio de entrada de manera que
aproximan de forma discreta la densidad de probabilidad desconocida pX(x). Donde x es denso o disperso,
los codevectores tienden a ser densos o dispersos. La función densidad de probabilidad será bien estimada
por ese conjunto de vectores prototipo, y por consiguiente X será bien aproximada, si K es lo
suficientemente adecuado para el problema en cuestión.

En los dos siguientes apartados veremos las dos versiones del algoritmo k-medias que es el encargado de
calcular el conjunto de vectores prototipo que minimizan el funcional IUemp.

1.2. K-medias en línea

Supongamos que disponemos de un conjunto de muestras {xi, i=0...N-1} pertenecientes a un espacio de


entrada extraído de un proceso computacional a modelar por el sistema de aprendizaje. El algoritmo K-
8 Títol del llibre

medias en su versión en línea realiza descenso de gradiente en línea sobre IUemp. Este algoritmo consta de
los siguientes parámetros y pasos:

algoritmo k-medias en línea(C,K, D, alpha[n], cíclico, rlen)

C es el conjunto de vectores prototipo o codevectores


K es el número de codevectores
D es el conjunto de entrenamiento {xl, l=0...N-1}
alpha[n] es la función del tamaño de paso en función del tiempo discreto n asociado a la
ecuación iterativa
cíclico indica si vale 1 que el algoritmo muestrea cíclicamente el conjunto de muestras. Si vale 0,
el algoritmo muestra la base de datos de forma secuencial
rlen es el número de veces que el algoritmo iterativo se va ejecutar

8. n=0
2. Inicialización del conjunto de codevectores o codebook C={wj[0], j=1...K}
3. Si cíclico entonces
x[n+1]=xn mod N
sino
x[n+1]=xn
4. Calcula el codevector actual más cercano a x[n+1], wW[n], utilizando la distancia Euclideana:

w W [n ] = arg min x[n + 1] − w j [n ]


w j , j =1..K

(en el improbable caso de que existieran dos o más codevectores que estuvieran exactamente a la
misma distancia de la muestra de entrada, escoger como vector ganador cualquiera de ellos o bien dejar
sin actualizar ninguno de escoger otra muestra de la base de datos)
5. Actualiza únicamente el codevector ganador de la siguiente manera:

w W [n + 1] = w W [n ] + α [n ](x[n + 1] − w W [n ])
6. n=n+1
7. Si n<rlen entonces
ve al paso 3
sino
ve al paso 8
8. Fin

Existen dos posibles modos de funcionamiento del algoritmo. En el caso de que esté inmerso en un
entorno del cual continuamente el algoritmo está recibiendo muestras:

• alpha[n] debe de ser constante en relación a n para que el algoritmo pueda adaptarse continuamente
al entorno
• rlen→∞ puesto que el algoritmo se ejecuta permanentemente (o al menos donde el ciclo de vida del
entorno)
• x[n+1]=xn puesto que las muestras llegan de forma continuada: Así el algoritmo se comporta como si
muestreara de forma secuencial una base de datos de tamaño N (con N→∞ si rlen→∞).
En cambio en el caso de que dispongamos de antemano de toda la base de datos, alpha puede ser tanto
constante como variable y el muestreo puede ser cíclico o secuencial. Una función que habitualmente se
utiliza para alpha variable es la siguiente función linealmente decreciente:

Ù [n] = Ù [0] 1 − n 



 rlen 
Títol del capítol 9

1.3. K-medias en lotes (Batch K-means)

K-medias en lotes utiliza el método de optimización de Newton, que se define como:

 w 1 [n + 1]
−1 ∂I emp [F[n ]]

U

W[n + 1] =  
 = W[n ] − H[n ] ∂W[n ]
w K [n + 1]
 ∂ 2 I emp

∂ 2 I Uemp 
U

 2 
 ∂ w1 ∂w 1 ∂w K 
H=    
 ∂ 2 I emp

∂ 2 I Uemp 
U

 
 ∂w K ∂w 1 ∂ 2 w K 

La matriz Hessiana H y la derivada parcial de Iemp respecto cada codevector resultan ser:

∂I emp
U
1 N −1
= − ∑ 1(x l ∈ R j )(x l − w j )
∂w j N l= 0
∂ 2 I emp
U
 0 si i ≠ j
=
∂w i ∂w j N j N si i = j

donde Nj es el número de muestras de entrenamiento que caen en la región de Voronoi Rj. Así la ecuación
de aprendizaje es la siguiente:

N −1
w j [n + 1] = ∑ 1(x ∈ R j [n ]) x l
1
j = 1...K
N j [n ] l =0
l

Entonces el algoritmo K-medias en lotes se define como

algoritmo k-medias en lotes(C,K, D, rlen)

C es el conjunto de vectores prototipo o codevectores


K es el número de codevectores
D es el conjunto de entrenamiento {xl, l=0...N-1}
rlen es el número de veces que el algoritmo iterativo se va ejecutar

1. n=0

{ }
2. Inicializar C[0]={wj[0], j=1...K}
{
3. Calcular TR j [n ] = x i R j n [ ]} [] []
donde R j n = x x − w j n = min x − w i n
i =1..K
[]
y xi\Rj[n] son las muestras de entrenamiento que caen en la región Rj[n]
4. Aplicar la siguiente ecuación de actualización:
N −1
w j [n + 1] = ∑ 1(x ∈ R j [n ]) x l
1
j = 1...K
N j [n ] l =0
l

5. n=n+1
6. Si n<rlen entonces ve al paso 3
7. Fin
10 Títol del llibre

1.4. Simulaciones con la versión en línea

Es habitual encontrarse que las versiones en línea de los algoritmos de aprendizaje suelen ser,
computacionalmente hablando, menos eficientes que otro tipo de versiones del mismo algoritmo
puesto que en su mayor parte se basan en la técnica del descenso de gradiente. No obstante, las
versiones en línea tienen como principal ventaja el hecho de que únicamente necesitan coger a la vez
unas pocas muestras del entorno para adaptarse (habitualmente una). De esta forma pueden ser
empleados en problemas que varían con el tiempo y donde es necesario un sistema que se adapte de
forma continuada (ej. Problemas de control).

En este apartado vamos a utilizar un sencillo ejemplo a partir del cual estudiaremos las propiedades más
evidentes del k-medias en su versión en línea. Supongamos que disponemos de un conjunto de muestras
(digamos 500) extraídas de una variable aleatoria gaussiana bidimensional con la siguiente media y matriz
de covarianzas:
& 0 1 0
m =  , Co var =  
0 0 1

Ejecutaremos entonces el algoritmo con alpha constante situando un único codevector cuyo valor inicial
es igual a una muestra del conjunto de entrenamiento escogida aleatoriamente. Pasaremos cíclicamente el
algoritmo sobre el conjunto de entrenamiento. Empezaremos por un valor pequeño de alpha como 0.0005.
El resultado se puede observar en la figura 1. El codevector parece converger de manera exponencial
hacia la media de la nube gaussiana, concretamente hacia el valor [0.050655 -0.078301]' en 63 epochs
(63*500=31500 iteraciones!!). (Converge significa en términos prácticos que el algoritmo se encalla, es
decir, a pesar de continuar la ejecución del mismo, el valor en este caso del codevector no varía.) De
hecho, como posteriormente demostraremos matemáticamente, el algoritmo tiende a minimizar el error
medio de cuantización que se comete en asignar para cada muestra de entrada que pertenece al conjunto
de entrenamiento, el codevector más cercano a él, aplicando para el cálculo de "cercanía" la distancia
euclideana. Por lo tanto era de esperar que si únicamente disponemos de un codevector, aquel que
minimiza el error de cuantización sea un valor cercano a la esperanza de la V.A gaussiana, que en nuestro
esta situado en el origen de coordenadas. En realidad como trabajamos con un conjunto finito de datos de
entrenamiento, el algoritmo no converge hacia el origen de coordenadas sino hacia la media empírica
resultante de sumar todo el conjunto de entrenamiento y dividir por el número de muestras existentes. En
nuestro caso esta media empírica está situada en el punto [0.050367 -0.077919]'. Como vemos el
algoritmo prácticamente converge hacia este punto, aunque tarde para ello bastante iteraciones.
(Podríamos aumentar la precisión de la convergencia, disminuyendo todavía más alpha, aunque se tardaría
todavía más en llegar!!)

La causa de que la convergencia sea lenta es que el algoritmo utiliza la técnica de optimización conocida
con el nombre de descenso de gradiente. En la figura 2 se muestran las curvas de nivel (aquellos lugares
geométricos de una función cuyo valor es constante) del error medio de cuantización para el conjunto de
muestras de que disponemos en el caso de utilizar un sólo codevector. Podemos observar que el mínimo
de la función se sitúa en el origen de coordenadas. Además en la figura se ha añadido el gradiente de dicha
función en diversos puntos de plano y de nuevo la trayectoria que sigue el algoritmo y el conjunto de
datos. Visualmente se puede comprobar que la trayectoria que sigue el algoritmo coincide con el gradiente
del error medio de cuantización.

Puesto que alpha controla cuanto aumentan los codevectores por iteración, uno podría pensar que
aumentando alpha se podría conseguir disminuir el tiempo necesario para que el algoritmo converja. Esto
es así, lo que sucede es que el punto fijo, el punto en donde se encalla el algoritmo, cambia, alejándose del
origen de coordenadas. Este fenómeno se puede observar en la en la tabla 1. A medida que alpha aumenta,
aumenta también la velocidad de convergencia aunque el punto fijo de aleja cada vez más del origen de
Títol del capítol 11

coordenadas que es la solución de nuestro problema. También a medida que alpha aumenta, aumenta la
inestabilidad (Figura 3): Las trayectorias comienzan a oscilar alrededor del origen de coordenadas.
Podemos observar en detalle el ruido que se introduce en la trayectoria en la figura 4.

Figura 1. Ejecución del k-medias cíclico con k=1, alpha=0.0005.

alpha punto fijo epochs


0.0005 [0.050655 -0.078301]' 63
0.005 [0.052756 -0.083249]' 6
0.05 [0.081969 -0.086159]' 1
0.5 [-0.035331 -0.498855]' 1
0.99 [-0.486020 -1.250637]' 1
1.55 [0.812157 -3.382718]' 1
1.99 [10.302406 -20.463701]' 4
2.1 - -

Tabla 1. Punto fijo alcanzado por el k-medias con k=1 para diversos valores de alpha. Se muestra además el número de
epochs necesarios para alcanzar dicho punto. Para valores de alpha superiores a 2, el algoritmo es numéricamente inestable
por lo que no existen puntos fijos.

Para el caso concreto alpha=1, este ruido o desorden se hace notoriamente evidente puesto que el
codevector toma en cada iteración el valor de la muestra de entrenamiento escogida. Este ruido tiene que
ver con el hecho de que a medida de que alpha aumenta el algoritmo deja de seguir la dirección del
gradiente y puede oscilar en zonas cóncavas de la función error. Estas zonas cóncavas se corresponden
12 Títol del llibre

con los mínimos locales de la función y en nuestro caso está en el origen. Finalmente comentar que para
valores de alpha cercanos a dos, el sistema empieza a desestabilizarse tendiendo de manera incontrolada
hacia puntos fijos muy alejados del origen. En el caso de valores de alpha superiores a dos, el algoritmo es
numéricamente inestable por lo que no existen puntos fijos.

Si en lugar de un único vector situamos ahora 5 vectores sobre el espacio de entrada y ejecutamos el k-
medias, los vectores tienden a representar discretamente el conjunto de muestras de entrenamiento. Si
alpha es lo suficientemente pequeña, podemos observar como se sitúan alrededor del centro de manera
regular (Figura 5).

Figura 2. Descenso de gradiente del k-medias a través del error medio de cuantización.
Títol del capítol 13

Figura 3. Influencia de alpha en la convergencia y estabilidad del algoritmo. Se muestran todos los valores iteración a
iteración obtenidos por el algoritmo. El símbolo O marca el valor inicial del codevector, mientras que * su valor final.

Figura 4. Detalle del ruido introducido en la trayectoria para el caso alpha=0.05. Al igual que en la figura anterior se
muestran los valores iteración a iteración.

Conclusiones de las simulaciones

En relación a los objetivos computaciones del algoritmo podemos decir lo siguiente:

• El algoritmo tiende a minimizar (localmente) el error medio de cuantización que se comete al asignar
cada muestra de entrenamiento al codevector más cercano a él, utilizando como media de cercanía la
distancia euclidiana. Así el algoritmo sitúa sobre el espacio de entrada más codevectores en regiones
de mayor densidad de muestras y menos en aquellas regiones donde hay menor número de ellas. Por
ello, el k-medias permite (en principio) modelar discretamente la función densidad de probabilidad
asociada a las muestras de entrenamiento (siempre y cuando el número de muestras de entrenamiento
sea lo suficientemente significativo).

En relación al método de optimización empleado por el algoritmo:

• Las trayectorias de los codevectores siguen las direcciones marcadas por el gradiente de la función de
error, siempre y cuando alpha sea lo suficientemente pequeña (p.e. <0.001). Debido a esto, la
convergencia del algoritmo hacia los puntos fijos es exponencial, lo que supone en la práctica una
convergencia lenta.
14 Títol del llibre

Figura 5. k-medias con k=5, con alpha=0.005. El símbolo O marca el valor inicial de los codevectores, mientras que *
indica su valor final. Al igual que en el caso anterior únicamente si alpha es lo suficientemente pequeña, la solución ofrecida
por el algoritmo nos muestra una representación discreta del conjunto de entrenamiento. Sino, los puntos fijos se alejan de
la solución óptima a medida que alpha aumenta.

En relación a como alpha afecta a la solución alcanzada por el algoritmo:

• Si alpha es lo suficientemente pequeña, existe una convergencia hacia la media en torno a cada región
donde cada codevector domina sobre el resto. Ello permite como hemos visto modelar discretamente,
la función densidad de probabilidad asociada a las muestras de entrenamiento ya que se minimiza el
error medio de cuantización.
• Si alpha aumenta indiscriminadamente (por debajo de un valor límite, que es 2), la velocidad de
convergencia aumenta aunque los puntos fijos del algoritmo iterativo a pesar de ser todavía estables
varían: ya no se converge hacia a la media. Además se puede observar que el ruido del algoritmo
aumenta en torno al punto fijo, a medida que alpha aumenta. Es decir, el algoritmo tiende a no seguir
el gradiente a medida que alpha aumenta. Este fenómeno se hace evidente en las zonas cóncavas de la
función de error donde el algoritmo comienza a oscilar hasta que finalmente converge en un punto
desviado del óptimo.
• Si alpha aumenta por encima de 2, el algoritmo es numéricamente inestable. Es decir, existe un punto
de bifurcación o de cambio de estabilidad en el sistema dinámico discreto descrito por el algoritmo
iterativo para alpha=2. Para ese valor de alpha, los puntos fijos pasan a ser inestables.
Títol del capítol 15

Anexo: Ejemplo de aplicación del k-medias en línea. Adaptación continua en procesos


estocásticos no estacionarios.

Veamos un sencillo ejemplo ilustrativo aplicado al k-medias en un entorno no estacionario.


Supongamos que nuestro entorno se modela como un proceso estocástico discreto gaussiano cuyos
momentos son los siguientes:

& k / 5
m= 
1 0
, Co var =  
k / 5 0 1

siendo k el tiempo discreto asociado al entorno. Supongamos que la relación entre el tiempo discreto
del entorno k y el del algoritmo de aprendizaje n es la siguiente:

k = n mod 250

De esta manera el algoritmo de aprendizaje puede muestrear hasta un máximo de 250 veces antes de
que la estadística del proceso discreto cambie.

Disponemos de 250 muestras para cada instante en k (ver figura Anexo-1). Aplicamos entonces el
algoritmo 1-medias para diferentes valores de alpha utilizando un muestreo del entorno sequencial (ya
que no disponemos nunca de un conjunto fijo de muestras sino que estas van cambiando con el
tiempo). Los resultados se pueden observar en la figura Anexo-2:

• Si alpha es demasiado pequeño el algoritmo se engancha al proceso no estacionario aunque es


incapaz de seguirlo a la misma velocidad con que varía.
• Si alpha aumenta el algoritmo ya es capaz de seguir el proceso y converge instante a instante hacia
la media temporal del proceso.
• Si alpha aumenta demasiado, el algoritmo empieza a tener problemas y aunque se engancha al
proceso ya no es capaz de seguir su media.
16 Títol del llibre

Figura Anexo-1. Aspecto de las muestras procedentes del entorno en dos instante diferentes de tiempo.

Figura Anexo-2. Resultados de aplicar de forma continuada el algoritmo 1-medias sobre el entorno de entrada no
estacionario entre los instantes k=0 y k=10. Las muestras marcadas con puntos son las correspondientes al proceso en el
instante k=0. Las marcadas con + son las muestras del proceso en k=10.
Títol del capítol 17

Referencias.

(Baxter, 1998) "The Canonical Distortion Measure for Vector Quantization and Function Approximation"
en (Thrun, 1998)

(Bezdek, 1981) James C. Bezdek. "Pattern Recognition with Fuzzy Objective Function Algorithms",
Plenum Press: New York, 1981, pp. 65-85.

(Bezdek, 1992) James C.Bezdek, Sankar K. Pal (Eds.) "Fuzzy Models for Pattern Recognition", IEEE
Press: New York, 1992, Capítulo 2. Análisis de Clusters.

(Bottou, 199?) Leon Bottou, Yoshua Bengio. "Convergence Properties of the K-means Algorithms",
Advances in Neural Information Processing Systems 5?, 199?

(Carpenter, 1988) Gail A. Carpenter, Stephen Grossberg. "The ART of Adaptive Pattern Recognition by a
Self-Organizing Neural Network", IEEE magazine, 1988

(Duda, 1973) R. O. Duda and P. E. Hart. "Pattern Classification and Scene Analysis", John Wiley
Interscience, 1973, pp. 225-228

(Gersho, 1992) Allen Gersho, Robert M. Gray. "Vector Quantization and Signal Compresion", Kluwer
Academic Publishers: Boston, 1992, capítulos 10,11,12

(Gray, 1984) Robert M. Gray, "Vector Quantization", IEEE Acoustics, Speech and Signal Processing
Magazine, Vol. 1 No. 2, April 1984

(Gray, 1997) Robert M. Gray, Richard A. Olshen. "Vector Quantization and Density estimation",
Technical Report, Department of Electrical Engineering, Stanford University, 1997

(Gray, 1998) Robert M. Gray, David L. Neuhoff. "Cuantization", Technical Report, Department of
Electrical Engineering, Stanford University, June 1998

(Karayiannis, 1996a) Nicolaos B. Karayiannis, James C. Bezdek, Nikhil R. Pal, Richard J. Hathaway,
"Repairs to GLVQ: A New Familiy of Competitive Learning Schemes", IEEE Transactions on Neural
Networks, Vol. 7, No. 5, September 1996

(Karayiannis, 1996b) Nicolaos B. Karayiannis. "Fuzzy Algorithms for Learning Vector Quantization",
IEEE Transactions on Neural Networks, Vol. 7, No. 5, September 1996

(Karayiannis, 1997) Nicolaos B. Karayiannis. "A Methodology for Constructing Fuzzy Algorithms for
Learning Vector Quantization", IEEE Transactions on Neural Networks, Vol. 8, No. 3, May 1997

(Kosko, 1991) Bart Kosko. "Stochastic Competitive Learning", IEEE Transactions on Neural Networks,
Vol. 2, No. 5, September 1991

(Kosko, 1992) Bart Kosko. "Neural Networks and fuzzy Systems: A Dynamical Systems Approach to
Machine Intelligence", Prentice-Hall, 1992

(Kosmatopoulos, 1996) Elias B. Kosmatopoulos, Manolis A. Christodoulou. "Convergence Properties of


a Class of Learning Vector Quantization Algorithms", IEEE Transactions on Image Processing, Vol. 5,
No. 2, February 1996
18 Títol del llibre

(MacQueen, 1967) J. MacQueen. "Some methods for classification and analysis of multivariate
observations", Proceeding of the 5th Berkeley Symposium on Mathematics, Statistics and Probability,
Vol. 1, pp. 281-296, University of California Press: LA, 1967

(Mitchell, 1997) Tom M. Mitchell. "Machine Learning", McGraw-Hill: New York, 1997, pp. 191-196

(Thrun, 1998) Thrun, Sebastian & Pratt, Lorien. (Eds.) "Learning to Learn", Kluwer Academic
Press:Boston, 1998

(Oehler, 1995) Karen L. Oehler, Robert M. Gray. "Combining Image Compresion and Classification
using Vector Quantization", IEEE Trans. on PAMI, Vol. 17, No. 5, May, 1995

(Perlmutter, 1996) Keren O. Perlmutter, Sharon M. Perlmutter, Robert M. Gray, Richard A. Olshen,
Karen L. Oehler. "Bayes Risk Weeighted Vector Quantization with Posterior Estimation for IMage
Compresion and Classification", IEEE Trans. on Image Processing, Vol. 5, No. 2, February, 1996

(Pal, 1993) Nikhil R. Pal, James C. Bezdek, Eric C. Tsao. "Generalized Clustering Networks and
Kohonen's Self-Organizing Schemes", IEEE Transactions on Neural Networks, Vol. 4, No. 4, July 1993

(Yair, 1992) Eyal Yair, Kenneth Zeger, Allen Gersho. "Competitive Learning and Soft Competition for
Vector Quantizer Design", IEEE Transactions on Signal Processing, Vol. 40, No. 2, February 1992

(Xu, 1993) Lei Xu, Adam Krzyzak, Erkki Oja. "Rival Penalized Competitive Learning for Clustering
Analysis, RBF Net, and Curve Detection", IEEE Transactions on Neural Networks, Vol.4, No. 4, July
1993

También podría gustarte