Escolar Documentos
Profissional Documentos
Cultura Documentos
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
1.
Introduccin
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 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
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
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
E(C, W, X) =
c X
n
X
j
wji d2ij ,
(4)
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
3.1.
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.
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
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
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
1
m1
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.
(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
((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.
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.
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.
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
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
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