Você está na página 1de 15

Un breve tutorial de Fuzzy C-Means

Trabajo para el curso de posgrado


Introduccin y Fundamentos del empleo de
Lgica Difusa en Sistemas Inteligentes

Facundo Quiroga
18 de octubre de 2015

ndice
1. Introduccin

2. Modelo
2.1. Restricciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2. Objetivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3
3
4

3. Entrenamiento
5
3.1. Condiciones necesarias para un clustering ptimo . . . . . . . . .
6
3.1.1. Condiciones de optimalidad obtenidas derivando respecto
a los centros . . . . . . . . . . . . . . . . . . . . . . . . .
6
3.1.2. Condiciones de optimalidad obtenidas derivando respecto
a las pertenencias fuzzy . . . . . . . . . . . . . . . . . . .
7
3.2. Aplicacin de alternating optimization para encontrar una solucin 9
4. Implementacin del algoritmo en Julia

10

5. Comparacin con otros algoritmos similares


12
5.1. K-Means . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
5.2. Modelos de Mixturas Gaussianas . . . . . . . . . . . . . . . . . . 13
5.3. Notas finales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

1.

Introduccin

El algoritmo Fuzzy C-Means [2, 1] tiene como objetivo generar un clustering


fuzzy de un conjunto de datos fijo, de modo que a cada ejemplo del conjunto de
datos se le asigna un grado de pertenencia a cada cluster, donde cada cluster

est representado por su punto central, que tambin se determina a partir del
conjunto de datos.
La idea de FCM es generar un clustering basado en centroides como el de
kmeans, pero considerando el hecho de que cada ejemplar puede pertenecer a
ms de un cluster, y esta pertenencia es fuzzy, es decir, est representada por un
nmero del 0 al 1. Esto se contrasta con el clustering hard o duro generado por
algoritmos como kmeans donde la pertenencia de cada ejemplar a un conjunto
de datos es binaria, y adems cada elemento puede pertenecer slo a un cluster.

Figura 1: Clusters hard de un conjunto de datos

Figura 2: Asignaciones de pertenencia fuzzy de los datos a cada uno de los tres
clusters, junto con sus centros.
Nota 1 Este tutorial asume cierto conocimiento general de algoritmos de
clustering hard y en particular de kmeans. Si bien no es indispensable poseer
2

conocimiento de ste ltimo, es altamente recomendable leer sobre kmeans


primero y luego este tutorial, debido a que FCM esencialmente extiende kmeans
con una nocin fuzzy, y mientras los algoritmos son similares, kmeans es ms
simple para comenzar.
Nota 2 Mientras que la idea de la pertenencia fuzzy a varios clusters es lo que
hace que el algoritmo sea fuzzy, en este caso los clusters estn representados por
el centroide del mismo como en kmeans, lo cual es una consideracin particular
de FCM y puede variar en otros algoritmos fuzzy.
Nota 3 Un clustering fuzzy no es igual a un multi-clustering. Un clustering
fuzzy generaliza a un clustering normal o hard permitiendo que cada ejemplar
pertenezca a varios clusters. Tpicamente, un multi-clustering combina varias
corridas de un clustering tradicional para generar un modelo de similitudes o
distancias entre ejemplares.
Nota 4 La C en Fuzzy C-Means denota la cantidad de clusters y fue elegida
de forma arbitraria; en este tutorial utilizaremos k como la cantidad de clusters,
para ser consistentes con la notacin de kmeans.
A continuacin, presentamos formalmente el modelo FCM y justificamos algunas decisiones de diseo del mismo. Luego, en la seccin 3, se deriva el algoritmo
clsico de entrenamiento para FCM, para el cual se ofrece una implementacin
utilizando el lenguaje de programacin Julia en el captulo 4. Finalmente, la
seccin 5 compara el algoritmo contra los clsicos kmeans y Modelos de mezclas
gaussianas.

2.

Modelo

La entrada al algoritmo consiste en un conjunto de n ejemplos de dimensionalidad d, de modo que se organizan en una matriz X Rdn
El modelo consta de dos grupos de variables:
1. Las k medias o centroides de los clusters, dadas por una matriz C Rdk ,
donde cada columna es un centroide.
2. Las k pertenencias fuzzy a los clusters de cada uno de los n ejemplares,
dadas por una matriz W Rkn , donde cada columna nos indica la
pertenencia fuzzy de un ejemplares

2.1.

Restricciones

A la matriz de pertenencias fuzzy W se le agregan tres restricciones:


1. Las pertenencias deben ser no-negativas

2. No debe suceder que haya un cluster para el cual todos los ejemplares
tengan pertenencia 0
3. Para cada ejemplo, las pertenencias a los clusters deben estar normalizadas
(sumar 1)
Estas se traducen en:

n
X
i
c
X

wji 0

j = 1 . . . k, i = 1 . . . n

(1)

wji > 0

j = 1...k

(2)

wji = 1

i = 1...n

(3)

Nota Mientras que la primera restriccin tiene sentido en general, las otras
dos no son fundamentales. De hecho, FCM sin la tercer restriccin y con una
equivalente por columnas en lugar de filas se denomina Probabilistic-FCM
(PFCM), y la segunda se puede obviar con un esquema adaptativo para encontrar
k.

2.2.

Objetivo

El modelo se entrena para minimizar el criterio de error estndar E(C, W, X),


que intenta capturar la idea de que las distancias de cada ejemplar a un cluster,
pesadas por la pertenencia del ejemplar al cluster, deben ser pequeas.
Sea dij = ||cj xi || la distancia entre el centro j y el ejemplar i, donde || ||
es la norma eucldea. Entonces, si wji es grande (cercano a 1) lo ideal es que la
distancia del centro j al ejemplar i sea chica. Si wji es chico (cercano a 0), no
interesa la distancia.
La funcin objetivo puede ser entonces:

E(C, W, X) =

c X
n
X
j

wji d2ij ,

(4)

Ahora bien, si queremos suavizar el grado de fuzzyness de la solucin, podemos


agregar un parmetro m > 1 para que el criterio se vuelva ms hard a medida
m
que m es ms grande, cambiando wji por wji
:

E(C, W, X) =

c X
n
X
j

m 2
wji
dij ,

(5)

m
m
Dado que 0 wji 1, entonces wji
wji ; si m es muy grande, wji
 wji
m
y wji h 0, por ende todos los pesos se hacen muy chicos y similares, y entonces
el algoritmo bsicamente se degenera en kmeans.

3.

Entrenamiento

Dado que los ejemplos son fijos, el objetivo del entrenamiento es entonces
encontrar W y C tal que:

minimizar

E(C, W, X)

sujeto a

wji 0
n
X
wji > 0

C,W

(6)
j = 1 . . . k, i = 1 . . . n

(7)

j = 1...k

(8)

i = 1...n

(9)

i
k
X

wji = 1

En general, este problema es difcil de resolver de manera de poder encontrar


un mnimo global.
Las dos restricciones con desigualdades impiden en principio aplicar el mtodo
lagrangiano para obtener el ptimo.
Adems, mientras que las restricciones son lineales, la funcin objetivo claramente no lo es respecto de C y W, por ende no se puede resolver con simplex o
mtodos de puntos interiores; tampoco es convexa, y eso deja afuera los mtodos
de programacin convexa.
Por ende, tenemos una funcin objetivo no-lineal no-convexa con restricciones
del tipo desigualdad que no tiene solucin analtica. Se pueden utilizar tcnicas
generales para algoritmos no-lineales con restricciones, pero en principio stas
no explotan la estructura inherente en el problema de FCM.
El algoritmo clsico de entrenamiento del modelo FCM encuentra soluciones
que son ptimos locales del problema general mediante una tcnica llamada
Alternating Optimization (AO) [3, 4].
La idea principal de la tcnica es que si bien es difcil optimizar E para C y
para W al mismo tiempo, si dejamos fijo C es fcil encontrar el ptimo W y
viceversa.
Entonces, el algoritmo consiste en, alternativamente, dejar fijas un conjunto de
variables y optimizar E respecto
Pk de las otras, hasta que se alcance la convergencia.
Las restriccin de igualdad j wji = 1 se incorpora optimizando el lagrangiano
L, es decir, incorporando un trmino extra en E que represente la restriccin
para formar L y luego optimizar L.
Si bien este esquema en principio ignora las restricciones de desigualdad,
afortunadamente la forma del algoritmo resultante mantiene las variables C
y W justamente dentro de la regin factible, evitando tener que modelar las
restricciones de forma explcita.
A continuacin derivaremos E y luego L respecto de W y C para encontrar las
condiciones necesarias que debe cumplir una solucin de FCM. Luego, aplicaremos
estas condiciones para obtener una instancia del mtodo AO para FCM.

3.1.

Condiciones necesarias para un clustering ptimo

Pk
Incorporando la restriccin j wji = 1 a la funcin objetivo E, e introduciendo n variables i que colectivamente llamaremos , obtenemos el lagrangiano
L(C, W, X, ) = E(C, W, X) + L(, W)
n
X
X
con L(, W) =
i (
wji 1)
i=1

(10)
(11)

(12)
En el ptimo, las derivadas parciales de L respecto de cada uno de los
L
L
parmetros debe ser 0. A continuacin derivamos las expresiones
y
.
cj
wji
3.1.1.

Condiciones de optimalidad obtenidas derivando respecto a


los centros

Pk Pn
m 2
( j=1 =1 wji
dji )
E
=
cj
cj
Pn
m 2
( i=1 wji
dji )
=
cj
n
X
d2ji
m
wji
=
cj
i=1
=

n
X

m
wji

i=1

n
X

(cj xi )(cj xi )t
cj

m
wji
2(cj xi )

i=1
n
X

=2

m
wji
(cj xi )

i=1

L
=
cj

Pn

i=1

P
i ( j wji 1)
cj

Entonces:

=0

L
E
L
=
+
cj
cj
cj
n
X
m
=
wji
(cj xi ) + 0
i=1

n
X

m
wji
(cj xi )

i=1

Igualando a 0:
n
X

m
wji
(cj xi ) = 0

i=1
n
X

m
wji
cj

n
X

m
wji
xi = 0

i=1

i=1

n
X

m
wji
cj =

n
X

m
wji
=

i=1

cj =
3.1.2.

m
wji
xi

i=1

i=1

cj

n
X

n
X

m
wji
xi

i=1
Pn
m
wji
xi
Pi=1
n
m
w
i=1 ji

Condiciones de optimalidad obtenidas derivando respecto a


las pertenencias fuzzy
Pk Pn
m 2
( j=1 =1 wji
dji )
E
=
wji
wji
m 2
wji
dji
wji
m
wji
=
d2
wji ji

m1 2
= mwji
dji
m1
= md2ji wji

L
=
wji

Pn

i=1

P
i ( j wji 1)
wji
7

= i

Entonces:
L
E
L
m1 2
=
+
= mwji
dji + i
wji
wji
wji
Igualando a 0:
m1 2
mwji
dji + i = 0
m1 2
mwji
dji = i
m1
wji
= i (md2ji )1
1

wji = im1 (md2ji )

1
m1

Pk
Pero esta expresin de wji depende de i . Ahora, como sabemos que j wji =
1, entonces si sumamos la ltima ecuacin para todo j podemos obtener una
expresin para i :
k
X

wji =

k
X

im1 (md2ji )

1
m1

1=

k
X

im1 (md2ji )

1
m1

j
1

1 = im1

k
X

(md2ji )

1
m1

1
k
1
X
1
(md2ji ) m1 = im1
j

(m1)

k
X
1

(md2ji ) m1
= i
j

Con esta expresin para i , podemos obtener finalmente una expresin


para wji (notar que cambiamos el subndice de la sumatoria de j a l porque j
ya denota el ndice de wji respecto del cual estamos derivando):

1
m1

wji = im1 (md2ji )


wji =

k
X

(md2li ) m1

! (m1)
m1

1
m1

(md2ji )

wji =

k
X

(md2li ) m1

!1
(md2ji )

1
m1

(md2ji ) m1
wji =
1
Pk
2 m1
l (mdli )

(d2ji ) m1
wji =
Pk 2 1
m1
l (dli )

3.2.

Aplicacin de alternating optimization para encontrar una solucin

En la subseccin anterior encontramos expresiones para cj y wji :


Pn
m
wji
xi
cj = Pi=1
n
m
w
i=1 ji

(d2ji ) m1
wji =
Pk 2 1
m1
l (dli )
No obstante, el valor de cada una depende de las otras, por ende no se pueden
obtener su valor ptimo directamente.
Es importante notar dos cosas:
1. Por la ecuacin anterior, 0 < wji , ya que d2ji > 0, y wji < 1, ya que

el denominador (d2ji ) m1 est normalizado con la suma de la misma


expresin para todos los centros. Por ende, estas condiciones implican que
las restricciones de desigualdad se cumplen automticamente, y podemos
obviarlas en nuestro esquema de optimizacin
2. Si supisemos el valor de los cj podramos calcular los wji y viceversa.
Por estos motivo, podemos aplicar un esquema de optimizacin alternativa,
similar al de kmeans, en donde en base a un valor inicial de cj , calculamos
repetidamente el mejor valor para wji y luego cj hasta que el algoritmo converja.
9

La convergencia del algoritmo puede medirse de varias maneras, pero la ms


tpica es cerciorarse de que la matriz de asignaciones fuzzy deje de cambiar; el
cambio puede cuantificarse mediante ||Wt Wt1 || donde || || es alguna norma
matricial y t el nmero de iteracin del algoritmo.
Figura 3: Algoritmo de entrenamiento clsico de FCM. El ndice (t) o
(t+1) indica el nmero de iteracin
t =0
Inicializar cj (t) con centroides
Mientras W(t) W(t + 1) < 
wji (t + 1) :=

((d2ji (t)) m1
Pk 2 1
(d (t)) m1
l

li

Pn m
wji (t+1)xi
cj (t + 1) := Pi=1
n
wm (t+1)
i=1

ji

t := t +1
Fin
Se ha demostrado [2, 4] que el algoritmo converge en un nmero finito de
pasos a un ptimo local.
Al igual que kmeans, FCM requiere inicializar los centroides, y tpicamente
esto se lleva a cabo tomando k ejemplos aleatorios. Alternativamente, se pueden
intercambiar las dos asignaciones del loop y comenzar con asignaciones fuzzy
aleatorias (o uniformemente distribuidas) para los ejemplares.
Por este motivo, FCM es dependiente de la inicializacin de los centroides, y
por ende en la prctica se suele utilizar una esquema de mltiples reinicios para
independizarse de la misma.

4.

Implementacin del algoritmo en Julia

module FuzzyCMeans
using Distributions , Distances
type Fuz zyCMea nsConf ig
iterations :: Int
k :: Int
fuzzyness :: Float64
metric :: SemiMetric
end
type Fuz zyCMea nsResu lt
soft_clusters

10

means
end
function initialize_means (c , x )
indices = Distributions . sample (1: size (x ,2) , c .k , replace = false )
means = copy ( x [: , indices ])
means + rand ( size ( means ))*100
end
function we ig ht ed _c en tr oi ds (c , means ,x , w )
w2 = w .^ c . fuzzyness
for i =1: size ( means ,2)
n o r m a l i z i n g _ c o n s t a n t = sum ( w2 [i ,:])
means [: , i ]=( x *( w2 [i ,:] ))/ n o r m a l i z i n g _ c o n s t a n t
end
end
function u p d a t e _ r e s p o n s i b i l i t i e s (c , means ,x , responsibilities )
d = pairwise ( c . metric , means , x )
exponent =1/(1 - c . fuzzyness )
for i =1: size (x ,2)
fuzzy_distance = d [: , i ].^ exponent ;
n o r m a l i z i n g _ c o n s t a n t = sum ( fuzzy_distance )
responsibilities [: , i ]= fuzzy_distance
responsibilities [: , i ]/= n o r m a l i z i n g _ c o n s t a n t
end
end
function build_model (x , c :: Fuz zyCMea nsCon fig )
means = initialize_means (c , x )
responsibilities = zeros ( c .k , size (x ,2))
r = Fuzzy CMeans Resul t ( responsibilities , means )
for j =1: c . iterations
u p d a t e _ r e s p o n s i b i l i t i e s (c , r . means ,x , r . soft_clusters )
we ig ht ed _c en tr oi ds (c , r . means ,x , r . soft_clusters )
end
r
end
end

11

5.
5.1.

Comparacin con otros algoritmos similares


K-Means

Fuzzy C-Means puede verse como una relajacin de kmeans en donde las
asignaciones fuzzy pasan a ser binarias y adems cada ejemplo pertenece a un
cluster solamente. El problema equivalente es entonces similar al de FCM, pero
cambia la restriccin que indica el dominio de los wji :

minimizar
C,W

sujeto a

n X
k
X
i

wji d2ji 2

(13)

wji {0, 1}
n
X
wji > 0

j = 1 . . . k, i = 1 . . . n

(14)

j = 1...k

(15)

i = 1...n

(16)

i
k
X

wji = 1

Dado que ahora los wji pertenecen a un conjunto discreto, el problema tiene
una cantidad de soluciones finita, pero es NP-hard, y por ende se suelen utilizar
algoritmos de entrenamiento como el de Lloyd para encontrar una solucin.

12

Figura 4: Resultado del clustering con kmeans. Los colores de los ejemplos
representan su cluster, y el punto negro el centro del mismo

5.2.

Modelos de Mixturas Gaussianas

Los modelos de mixturas gaussianas (GMM, por Gaussian Mixture Model)


tambin presentan un problema similar al de FCM: se busca ajustar k distribuciones normales multivariadas (con k centros distintos) al conjunto de datos.
Cada distribucin se interpreta como generadora de un cluster distinto. Entonces,
con el modelo se puede determinar la probabilidad de que un ejemplar haya sido
generado por una de las k distribuciones, lo cual es similar a las pertenencias
fuzzy a los clusters del FCM. El modelo puede lidiar con la ambivalencia de
que un mismo ejemplar puede haber sido generado por distintas distribuciones
simplemente asignando probabilidades no nulas en ambos casos.
No obstante, al dotar al problema de una estructura probabilstica los GMM
buscan maximizar la probabilidad de que esas distribuciones hayan generado el
conjunto de datos, lo cual lleva a un algoritmo de entrenamiento distinto.
La notacin estndar de GMM reemplaza los k centroides cj por k medias j
de distribuciones normales multivariadas, cada una con una matriz de covarianza
j que en ocasiones puede ser fija y/o igual para las k distribuciones. Adems,
se introducen k coeficientes j , que representan la probabilidad de que un nuevo
ejemplar sea generado por la distribucin del modelo j. Entonces, en el caso
general GMM tiene n k + k d2 parmetros (d es la dimensionalidad de cada
ejemplo).
El problema de clsico de GMM plantea la necesidad de optimizar el likelihood
(la verosimilitud) de que el conjunto de datos X haya sido generado por las k
distribuciones dadas por N (j , j ), con coeficiente de mezcla j .

minimizar
M,

n X
k
Y
i

P (xi |j , j )

(17)

(18)
El algoritmo clsico de entrenamiento no supervisado para este modelo
consta de aplicar Expectation-Maximization (EM) al logaritmo de la funcin de
likelihood (para que sea ms fcil trabajar con la productoria) con el objetivo de
encontrar mximos locales de dicha funcin.
No obstante el mtodo de entrenamiento, el resultado del algoritmo es similar
a kmeans y a F CM ; tenemos k medias o centroides de la distribucin, y
adicionalmente una matriz de covarianza que modela la distribucin de los datos
alrededor de la media.
En este contexto, la probabilidad P (xi |j , j ) se podra interpretar como
la pertenencia fuzzy del ejemplar xi al cluster j, y los coeficientes j como
el tamao de cada cluster, en trminos de cantidad efectiva de elementos. No
obstante, notar que en GMM f (x) = P (xi |j , j ) es una verdadera distribucin
de probabilidad; en el modelo FCM como se normaliza W por columnas, dicha
13

situacin no tiene anlogo. Si en FCM


cambio se normalizara por filas en
Pen
n
lugar de hacerlo por columnas (o sea, i wji = 1), se obtendra la variante de
FCM llamada Probabilistic FCM.

Figura 5: Resultado del clustering con GM M entrenado con EM . Los colores


de los ejemplos representan su cluster, y el punto negro el centro del mismo

5.3.

Notas finales

Estos tres algoritmos funcionan bien para clusters esfricos (en el caso de
GMM con matrices de covarianza irrestrictas, tambin se puede manejar el caso
elptico).
Los grficos que se mostraron anteriormente corresponden a los resultados de
los tres modelos de clustering, FCM, KMeans y GMM, a un conjunto de datos
cuyos ejemplos representan pixeles de piel (codificados como tuplas (Cb, Cr) del
sistema Y CbCr). A continuacin mostramos los resultados de los modelos en
cuatro conjuntos de datos sintticos:

14

Figura 6: Resultado de los tres modelos de clustering en cuatro conjuntos de


datos sintticos.
Se puede comprobar que los tres modelos tienen problemas para los primeros
dos conjuntos de datos, pero funcionan bien para datos esfricos del tercero. En
el ltimo, compuesto de ruido aleatorio, los tres ofrecen un resultado semejante.

Referencias
[1] James C Bezdek. Pattern recognition with fuzzy objective function algorithms.
Springer Science & Business Media, 2013.
[2] James C Bezdek, Robert Ehrlich, and William Full. Fcm: The fuzzy c-means
clustering algorithm. Computers & Geosciences, 10(2):191203, 1984.
[3] James C Bezdek and Richard J Hathaway. Some notes on alternating
optimization. In Advances in Soft ComputingAFSS 2002, pages 288300.
Springer, 2002.
[4] James C Bezdek and Richard J Hathaway. Convergence of alternating
optimization. Neural, Parallel & Scientific Computations, 11(4):351368,
2003.

15

Você também pode gostar