tutorial on fuzzy c means

Upload: facundo-quiroga

Post on 06-Mar-2016

302 views

Category:

Documents


0 download

DESCRIPTION

A Tutorial on Fuzzy C Means, covering alternating optimization, comparison with K-Means and Gaussian Mixture Models, gradient derivations.

TRANSCRIPT

  • Un breve tutorial de Fuzzy C-MeansTrabajo para el curso de posgrado

    Introduccin y Fundamentos del empleo de

    Lgica Difusa en Sistemas Inteligentes

    Facundo Quiroga

    18 de octubre de 2015

    ndice1. Introduccin 1

    2. Modelo 32.1. Restricciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32.2. Objetivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

    3. Entrenamiento 53.1. Condiciones necesarias para un clustering ptimo . . . . . . . . . 6

    3.1.1. Condiciones de optimalidad obtenidas derivando respectoa los centros . . . . . . . . . . . . . . . . . . . . . . . . . 6

    3.1.2. Condiciones de optimalidad obtenidas derivando respectoa 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 125.1. K-Means . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125.2. Modelos de Mixturas Gaussianas . . . . . . . . . . . . . . . . . . 135.3. Notas finales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

    1. IntroduccinEl 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 dedatos se le asigna un grado de pertenencia a cada cluster, donde cada cluster

    1

  • est representado por su punto central, que tambin se determina a partir delconjunto de datos.

    La idea de FCM es generar un clustering basado en centroides como el dekmeans, pero considerando el hecho de que cada ejemplar puede pertenecer ams de un cluster, y esta pertenencia es fuzzy, es decir, est representada por unnmero del 0 al 1. Esto se contrasta con el clustering hard o duro generado poralgoritmos como kmeans donde la pertenencia de cada ejemplar a un conjuntode 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 tresclusters, junto con sus centros.

    Nota 1 Este tutorial asume cierto conocimiento general de algoritmos declustering hard y en particular de kmeans. Si bien no es indispensable poseer

    2

  • conocimiento de ste ltimo, es altamente recomendable leer sobre kmeansprimero y luego este tutorial, debido a que FCM esencialmente extiende kmeanscon una nocin fuzzy, y mientras los algoritmos son similares, kmeans es mssimple para comenzar.

    Nota 2 Mientras que la idea de la pertenencia fuzzy a varios clusters es lo quehace que el algoritmo sea fuzzy, en este caso los clusters estn representados porel centroide del mismo como en kmeans, lo cual es una consideracin particularde FCM y puede variar en otros algoritmos fuzzy.

    Nota 3 Un clustering fuzzy no es igual a un multi-clustering. Un clusteringfuzzy generaliza a un clustering normal o hard permitiendo que cada ejemplarpertenezca a varios clusters. Tpicamente, un multi-clustering combina variascorridas de un clustering tradicional para generar un modelo de similitudes odistancias entre ejemplares.

    Nota 4 La C en Fuzzy C-Means denota la cantidad de clusters y fue elegidade 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 algu-nas decisiones de diseo del mismo. Luego, en la seccin 3, se deriva el algoritmoclsico de entrenamiento para FCM, para el cual se ofrece una implementacinutilizando el lenguaje de programacin Julia en el captulo 4. Finalmente, laseccin 5 compara el algoritmo contra los clsicos kmeans y Modelos de mezclasgaussianas.

    2. ModeloLa entrada al algoritmo consiste en un conjunto de n ejemplos de dimensio-

    nalidad d, de modo que se organizan en una matriz X RdnEl 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 lapertenencia fuzzy de un ejemplares

    2.1. RestriccionesA la matriz de pertenencias fuzzy W se le agregan tres restricciones:

    1. Las pertenencias deben ser no-negativas

    3

  • 2. No debe suceder que haya un cluster para el cual todos los ejemplarestengan pertenencia 0

    3. Para cada ejemplo, las pertenencias a los clusters deben estar normalizadas(sumar 1)

    Estas se traducen en:

    wji 0 j = 1 . . . k, i = 1 . . . n (1)ni

    wji > 0 j = 1 . . . k (2)

    cj

    wji = 1 i = 1 . . . n (3)

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

    2.2. ObjetivoEl 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 ladistancia del centro j al ejemplar i sea chica. Si wji es chico (cercano a 0), nointeresa la distancia.

    La funcin objetivo puede ser entonces:

    E(C,W,X) =cj

    ni

    wjid2ij , (4)

    Ahora bien, si queremos suavizar el grado de fuzzyness de la solucin, podemosagregar un parmetro m > 1 para que el criterio se vuelva ms hard a medidaque m es ms grande, cambiando wji por wmji :

    E(C,W,X) =cj

    ni

    wmjid2ij , (5)

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

    4

  • 3. EntrenamientoDado que los ejemplos son fijos, el objetivo del entrenamiento es entonces

    encontrar W y C tal que:

    minimizarC,W

    E(C,W,X) (6)

    sujeto a wji 0 j = 1 . . . k, i = 1 . . . n (7)ni

    wji > 0 j = 1 . . . k (8)

    kj

    wji = 1 i = 1 . . . n (9)

    En general, este problema es difcil de resolver de manera de poder encontrarun mnimo global.

    Las dos restricciones con desigualdades impiden en principio aplicar el mtodolagrangiano para obtener el ptimo.

    Adems, mientras que las restricciones son lineales, la funcin objetivo clara-mente no lo es respecto de C y W, por ende no se puede resolver con simplex omtodos de puntos interiores; tampoco es convexa, y eso deja afuera los mtodosde programacin convexa.

    Por ende, tenemos una funcin objetivo no-lineal no-convexa con restriccionesdel tipo desigualdad que no tiene solucin analtica. Se pueden utilizar tcnicasgenerales para algoritmos no-lineales con restricciones, pero en principio stasno explotan la estructura inherente en el problema de FCM.

    El algoritmo clsico de entrenamiento del modelo FCM encuentra solucionesque son ptimos locales del problema general mediante una tcnica llamadaAlternating Optimization (AO) [3, 4].

    La idea principal de la tcnica es que si bien es difcil optimizar E para C ypara W al mismo tiempo, si dejamos fijo C es fcil encontrar el ptimo W yviceversa.

    Entonces, el algoritmo consiste en, alternativamente, dejar fijas un conjunto devariables y optimizar E respecto de las otras, hasta que se alcance la convergencia.Las restriccin de igualdad

    kj wji = 1 se incorpora optimizando el lagrangiano

    L, es decir, incorporando un trmino extra en E que represente la restriccinpara 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 Cy W justamente dentro de la regin factible, evitando tener que modelar lasrestricciones de forma explcita.

    A continuacin derivaremos E y luego L respecto de W y C para encontrar lascondiciones necesarias que debe cumplir una solucin de FCM. Luego, aplicaremosestas condiciones para obtener una instancia del mtodo AO para FCM.

    5

  • 3.1. Condiciones necesarias para un clustering ptimoIncorporando la restriccin

    kj wji = 1 a la funcin objetivo E, e introducien-

    do n variables i que colectivamente llamaremos , obtenemos el lagrangiano

    L(C,W,X,) = E(C,W,X) + L(,W) (10)

    con L(,W) =ni=1

    i(j

    wji 1) (11)

    (12)

    En el ptimo, las derivadas parciales de L respecto de cada uno de losparmetros debe ser 0. A continuacin derivamos las expresiones L

    cjy Lwji

    .

    3.1.1. Condiciones de optimalidad obtenidas derivando respecto alos centros

    Ecj

    =(k

    j=1n

    =1 wmjid

    2ji)

    cj

    =(n

    i=1 wmjid

    2ji)

    cj

    =ni=1

    wmjid2jicj

    =ni=1

    wmji(cj xi)(cj xi)t

    cj

    =ni=1

    wmji2(cj xi)

    = 2ni=1

    wmji (cj xi)

    Lcj

    =n

    i=1 i(

    j wji 1)cj

    = 0

    Entonces:

    6

  • Lcj

    = Ecj

    + Lcj

    =ni=1

    wmji (cj xi) + 0

    =ni=1

    wmji (cj xi)

    Igualando a 0:

    ni=1

    wmji (cj xi) = 0ni=1

    wmjicj ni=1

    wmjixi = 0

    ni=1

    wmjicj =ni=1

    wmjixi

    cjni=1

    wmji =ni=1

    wmjixi

    cj =n

    i=1 wmjixin

    i=1 wmji

    3.1.2. Condiciones de optimalidad obtenidas derivando respecto alas pertenencias fuzzy

    Ewji

    =(k

    j=1n

    =1 wmjid

    2ji)

    wji

    =wmjid

    2ji

    wji

    =wmjiwji

    d2ji

    = mwm1ji d2ji= md2jiwm1ji

    Lwji

    =n

    i=1 i(

    j wji 1)wji

    = i

    7

  • Entonces:

    Lwji

    = Ewji

    + Lwji

    = mwm1ji d2ji + i

    Igualando a 0:

    mwm1ji d2ji + i = 0

    mwm1ji d2ji = i

    wm1ji = i(md2ji)1

    wji = 1

    m1i (md2ji)

    1m1

    Pero esta expresin de wji depende de i. Ahora, como sabemos quek

    j wji =1, entonces si sumamos la ltima ecuacin para todo j podemos obtener unaexpresin para i:

    kj

    wji =kj

    1

    m1i (md2ji)

    1m1

    1 =kj

    1

    m1i (md2ji)

    1m1

    1 = 1

    m1i

    kj

    (md2ji) 1m1

    kj

    (md2ji) 1m1

    1 = 1m1i k

    j

    (md2ji) 1m1

    (m1) = iCon esta expresin para i, podemos obtener finalmente una expresin

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

    8

  • wji = 1

    m1i (md2ji)

    1m1

    wji =(

    kl

    (md2li) 1m1

    ) (m1)m1(md2ji)

    1m1

    wji =(

    kl

    (md2li) 1m1

    )1(md2ji)

    1m1

    wji =(md2ji)

    1m1kl (md2li)

    1m1

    wji =(d2ji)

    1m1kl (d2li)

    1m1

    3.2. Aplicacin de alternating optimization para encon-trar una solucin

    En la subseccin anterior encontramos expresiones para cj y wji:

    cj =n

    i=1 wmjixin

    i=1 wmji

    wji =(d2ji)

    1m1kl (d2li)

    1m1

    No obstante, el valor de cada una depende de las otras, por ende no se puedenobtener 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) 1m1 est normalizado con la suma de la misma

    expresin para todos los centros. Por ende, estas condiciones implican quelas restricciones de desigualdad se cumplen automticamente, y podemosobviarlas 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 , calculamosrepetidamente 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 mstpica es cerciorarse de que la matriz de asignaciones fuzzy deje de cambiar; elcambio puede cuantificarse mediante ||WtWt1|| donde || || es alguna normamatricial 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=0Inicializar cj(t) con centroidesMientras W(t)W(t+ 1) <

    wji(t+ 1) :=((d2ji(t))

    1m1kl(d2li

    (t)) 1m1

    cj(t+ 1) :=n

    i=1wmji(t+1)xin

    i=1wmji

    (t+1)t := t+1

    Fin

    Se ha demostrado [2, 4] que el algoritmo converge en un nmero finito depasos a un ptimo local.

    Al igual que kmeans, FCM requiere inicializar los centroides, y tpicamenteesto se lleva a cabo tomando k ejemplos aleatorios. Alternativamente, se puedenintercambiar las dos asignaciones del loop y comenzar con asignaciones fuzzyaleatorias (o uniformemente distribuidas) para los ejemplares.

    Por este motivo, FCM es dependiente de la inicializacin de los centroides, ypor ende en la prctica se suele utilizar una esquema de mltiples reinicios paraindependizarse de la misma.

    4. Implementacin del algoritmo en Julia

    module FuzzyCMeans

    using Distributions ,Distances

    type FuzzyCMeansConfigiterations ::Intk::Intfuzzyness :: Float64metric :: SemiMetric

    end

    type FuzzyCMeansResultsoft_clusters

    10

  • meansend

    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 weighted_centroids(c,means ,x,w)w2=w.^c.fuzzynessfor i=1: size(means ,2)

    normalizing_constant=sum(w2[i,:])means[:,i]=(x*(w2[i,:] ))/ normalizing_constant

    endend

    function update_responsibilities(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;normalizing_constant = sum(fuzzy_distance)responsibilities [:,i]= fuzzy_distanceresponsibilities [:,i]/= normalizing_constant

    endend

    function build_model(x,c:: FuzzyCMeansConfig)means=initialize_means(c,x)responsibilities=zeros(c.k,size(x,2))r=FuzzyCMeansResult(responsibilities ,means)for j=1:c.iterations

    update_responsibilities(c,r.means ,x,r.soft_clusters)weighted_centroids(c,r.means ,x,r.soft_clusters)

    endr

    end

    end

    11

  • 5. Comparacin con otros algoritmos similares5.1. K-Means

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

    minimizarC,W

    ni

    kj

    wji d2ji2 (13)

    sujeto a wji {0, 1} j = 1 . . . k, i = 1 . . . n (14)ni

    wji > 0 j = 1 . . . k (15)

    kj

    wji = 1 i = 1 . . . n (16)

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

    12

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

    5.2. Modelos de Mixturas GaussianasLos modelos de mixturas gaussianas (GMM, por Gaussian Mixture Model)

    tambin presentan un problema similar al de FCM: se busca ajustar k distri-buciones 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 sidogenerado por una de las k distribuciones, lo cual es similar a las pertenenciasfuzzy a los clusters del FCM. El modelo puede lidiar con la ambivalencia deque un mismo ejemplar puede haber sido generado por distintas distribucionessimplemente asignando probabilidades no nulas en ambos casos.

    No obstante, al dotar al problema de una estructura probabilstica los GMMbuscan maximizar la probabilidad de que esas distribuciones hayan generado elconjunto de datos, lo cual lleva a un algoritmo de entrenamiento distinto.

    La notacin estndar de GMM reemplaza los k centroides cj por k medias jde distribuciones normales multivariadas, cada una con una matriz de covarianzaj que en ocasiones puede ser fija y/o igual para las k distribuciones. Adems,se introducen k coeficientes pij , que representan la probabilidad de que un nuevoejemplar sea generado por la distribucin del modelo j. Entonces, en el casogeneral GMM tiene n k + k d2 parmetros (d es la dimensionalidad de cadaejemplo).

    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 kdistribuciones dadas por N (j ,j), con coeficiente de mezcla pij .

    minimizarM,

    ni

    kj

    P (xi|j ,j) (17)

    (18)

    El algoritmo clsico de entrenamiento no supervisado para este modeloconsta de aplicar Expectation-Maximization (EM) al logaritmo de la funcin delikelihood (para que sea ms fcil trabajar con la productoria) con el objetivo deencontrar mximos locales de dicha funcin.

    No obstante el mtodo de entrenamiento, el resultado del algoritmo es similara kmeans y a FCM ; tenemos k medias o centroides de la distribucin, yadicionalmente una matriz de covarianza que modela la distribucin de los datosalrededor de la media.

    En este contexto, la probabilidad P (xi|j ,j) se podra interpretar comola pertenencia fuzzy del ejemplar xi al cluster j, y los coeficientes pij comoel tamao de cada cluster, en trminos de cantidad efectiva de elementos. Noobstante, notar que en GMM f(x) = P (xi|j ,j) es una verdadera distribucinde probabilidad; en el modelo FCM como se normaliza W por columnas, dicha

    13

  • situacin no tiene anlogo. Si en FCM en cambio se normalizara por filas enlugar de hacerlo por columnas (o sea,

    ni wji = 1), se obtendra la variante de

    FCM llamada Probabilistic FCM.

    Figura 5: Resultado del clustering con GMM entrenado con EM . Los coloresde los ejemplos representan su cluster, y el punto negro el centro del mismo

    5.3. Notas finalesEstos tres algoritmos funcionan bien para clusters esfricos (en el caso de

    GMM con matrices de covarianza irrestrictas, tambin se puede manejar el casoelptico).

    Los grficos que se mostraron anteriormente corresponden a los resultados delos tres modelos de clustering, FCM, KMeans y GMM, a un conjunto de datoscuyos ejemplos representan pixeles de piel (codificados como tuplas (Cb,Cr) delsistema Y CbCr). A continuacin mostramos los resultados de los modelos encuatro conjuntos de datos sintticos:

    14

  • Figura 6: Resultado de los tres modelos de clustering en cuatro conjuntos dedatos sintticos.

    Se puede comprobar que los tres modelos tienen problemas para los primerosdos conjuntos de datos, pero funcionan bien para datos esfricos del tercero. Enel 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-meansclustering algorithm. Computers & Geosciences, 10(2):191203, 1984.

    [3] James C Bezdek and Richard J Hathaway. Some notes on alternatingoptimization. In Advances in Soft ComputingAFSS 2002, pages 288300.Springer, 2002.

    [4] James C Bezdek and Richard J Hathaway. Convergence of alternatingoptimization. Neural, Parallel & Scientific Computations, 11(4):351368,2003.

    15