1. El algoritmo EM para las estimacion de parametros en mezclas gaussianas con
aplicacion a clustering y clasificaron supervisada.
Edgar Acuna.
Septiembre 17 del 2006
Una mezcla de distribuciones con K componentes tiene la forma
f ( x) = π 1 f1 ( x) + ......... + π K f K ( x)
donde cada componente es una función de probabilidad (Poisson, Binomial, etc) o una
funcion de densidad (Normal, Exponencial, Gamma, etc). Notar que
π 1 + .... + π K = 1.
De todas las mezclas la mas usada es la mezcla de densidades normales, llamada también
una Mezcla Gaussiana , que tiene la forma general
K exp(−( x − µi ) 2 / 2σ i2 )
f ( x) = ∑ π i (1)
i =1 σ i 2π
en esta mezcla habria que estimar 3K parámetros( K medias, K varianzas y K
coeficientes). Como la suma de los coeficientes da 1. el numero de parámetros a estimar
se puede reducir a 3K-1.
1. Estimacion de parámetros en una mezcla Gaussiana con dos componentes. (caso
Unidimensional)
En este caso la mezcla es de la forma
e − ( x − µ ) / 2σ e − ( x − µ ) / 2σ
2 2 2 2
1 1 2 2
fY ( y ) = (1 − π ) +π
σ 1 2π σ 2π
sean θ1=(µ1,σ ) , θ2=(µ2,σ ) y θ=(π,θ1,θ2) vectores de parámetros. Entonces, la
2 2
1 2
mezcla anterior se puede escribir como
fY ( y,θ ) = (1 − π ) N ( y,θ1 ) + πN ( y,θ 2 )
donde N representa a la función de densidad Normal o gaussiana. Notar que el vector de
parámetros θ contiene 5 parametrso que deben ser estimados usando una muestra
aleatoria de tamaño n de la mezcla gaussiana.
Sea y1,y2,…..yn la muestra aleatoria tomada de la distribución de Y. El metodo mas usado
para estimar el vector de parámetros θ es el Maximum Likelihood (ML) (maxima
2. verosimilitud. Aquí se maximiza con respecto a θ, la función de verosimilitud definida
por
n
L(θ/Y)=f(y1,θ)f(y2,θ)……f(yn,θ)= ∏ f ( yi , θ ) (2)
i =1
Alguna gente usa solo la notación L(θ) y otros L(θ;y), pero en EM se prefiere la notación
(2). Frecuentemente es mas facil trabajar con Log(L(θ/Y)), que debido a la monoticidad
del la funcion Logaritmica, preserva el maximo. Así
n n
log( L(θ / Y )) = log[∏ f ( yi ,θ ) = ∑ log f ( yi ,θ )
i =1 i =1
En el caso de la mezcla gaussiana con dos componentes, se tendrá
n
log( L(θ / Y )) = ∑ log[(1 − π ) N ( yi ,θ1 ) + πN ( yi ,θ 2 )] (3)
i =1
( y − µ1 ) 2
donde log( N ( y ,θ 1 )) = − − .5 log(σ 12 ) − .5 log(2π ) , similarmente para
2σ 12
log(N(y,θ2)). Habria que maximizar (3) con respecto a θ=(π,θ1,θ2) =(π,µ1,σ ,µ2,σ ),
2 2
1 2
hallando las respectivas derivadas parciales, pero la presencia de la funcion logaritmo
hace que esto sea complicado. La alternativa mas usada es el algoritmo EM introducido
por Dempster, Laird, and Rubi (1977).
Notar que la variable aleatoria Y correspondiente a la mezcla Gausiana puede ser
obtenida como Y=(1-T)*Y1+T*Y2 , donde Y1~N(µ1,σ ) , Y2~N(µ2,σ ) y T es una
2 2
1 2
variable aleatoria que asume los valores 0 y 1 con P[T=1]=π. Pero notar que los valores
de T no son observados en la muestra.
El algoritmo EM se basa en el siguiente hecho: Log(L(θ/Y) es complicado de resolver,
pero log(L(θ/Y,T) si se puede resolver. Y es llamada la data observada, T es llamada la
data no observada y Z=(Y,T) es llamada la data completa. Consideremos que para la i-
esima observación yi de la muestra, Ti=1 si dicha observación es extraída de la población
Y2 y Ti=0 si la observación es extraída de la población Y1. Entonces la función de
verosimilitud correspondiente, puede ser escrita de la forma
n Ti
L(θ / Y , T ) = ∏ [ N ( yi ,θ1 )] [ N ( yi ,θ 2 )]
1−Ti
(4)
i =1
Tomando logaritmos se tendría
n
LogL(θ / Y , T ) = ∑ (1 − Ti ) log( N ( yi ,θ1 )) + Ti log( N ( yi ,θ 2 )) (5)
i =1
3. La ecuación (5) si puede ser maximizada mas fácilmente que la ecuación (3). Pero el
proceso debe ser iterativo, porque en cada paso el valor de Ti depende de los valores de π,
θ1 y θ2.
El paso E (calculo del valor esperado)
Notar que si en (4) tomamos valor esperado condicionado a (θ,Y), resulta
n
E[Q(θ ) / Y ,θ ] = ∑ (1 − E (Ti / θ , Y )) log( N ( yi ,θ1 )) + E (Ti / θ , Y ) log( N ( yi ,θ2 ))
i =1
donde Q(θ)=log(L(θ)/Y,T). Pero,
E(Ti/θ,Y)=0*P[Ti=0/θ,Y]+1*P[Ti=1/θ,Y]
= P[Ti=1/θ,Y]=Prob(caer en Y2)/Prob(caer Y1 o Y2)
Consideremos ahora el proceso iterativo, que comienza considerando π(0)=.5,
µ1( 0 ) = random( yi ), µ20 ) = random( yi ),σ12 = S 2 ,σ 22 = S 2 ) , donde S2 es la varianza
(
muestral. Luego en el m-esimo paso,
π ( m ) N ( yi ,θ2( m ) )
γ ( m)
= E[Ti / θ (m)
,Y ] =
(1 − π ( m ) ) N ( yi ,θ1( m ) ) + π ( m ) N ( yi ,θ2( m ) )
i
Estos valores son llamados las responsabilidades y se usan para asignar las observaciones
a un cluster. Asi al acabar el proceso iterativo si γi≥.5 se asigna la observación al cluster 2
de lo contrario iria al cluster 1.
Luego lo que habría que maximizar se reduce a
n
Q(θ / θ (m)
) = ∑ (1 − γ i( m ) ) log( N ( yi ,θ1 )) + γ i( m ) log( N ( yi ,θ 2 ) (6)
i =1
Alguna gente prefiere la notación Q(θ,θ(m)). Aquí termina la etapa E,
La etapa M (Maximización)
Aquí se maximiza la expresión (6) con respecto a θ=(π,θ1,θ2) =(π,µ1,σ ,µ2,σ ), esto
2 2
1 2
implica calcula derivadas parciales de Q con respecto a π,µ1,σ ,µ2,σ e igualarlas a 0.
2 2
1 2
Así derivando Q con respecto a µ1 se obtiene.
∂Q n 2( yi − µ1 )
= ∑ (1 − γ i( m ) ) = 0 , lo cual produce
∂µ1 i=1 2σ 12
4. n n
∑ (1 − γ i ) yi ∑ γ i yi
(m) (m)
µ1( m+1) =
ˆ i =1
n . Similarmente, µ 2( m+1) =
ˆ i =1
n
∑ (1 − γ i ) ∑γ i
(m) (m)
i =1 i =1
Derivando ahora con respecto a σ 1 se obtiene que
2
n n
∂Q ∑ (1 − γ )( yi − µ ∑ (1 − γ i )
( m +1) 2
ˆ i
(m)
i ) (m)
= i =1
− i =1
= 0 , de donde resulta
∂σ 12
2σ 14 2σ 1
2
n
∑ (1 − γ i )( yi − µ1 )
ˆ ( m+1) 2
(m)
σ 12 ( m+1) = i =1
n . Similarmente,
∑ (1 − γ
(n)
i )
i =1
n
∑ γ i ( yi − µ 2 )
ˆ ( m+1) 2
(m)
σ 22 ( m+1) = i =1
n .
∑γ
(n)
i
i =1
n
∑γ i
(m)
Finalmente, por definición del γi, se tiene que
π ( m+1) = γ ( m ) =
ˆ i =1 .
n
El algoritmo se repite hasta que π(m), µ1 µ 2( m ) ,σ
(m)
,σ
2( m) 2( m)
1 , 2 no cambie mucho con
respecto al paso anterior. Habria que establecer un nivel de tolerancia pequeño.
2. Estimacion de parámetros en una mezcla Gaussiana con K componentes. (caso
Unidimensional)
La funcion de densidad esta dada en la ecuación (1). Aquí introducimos K variables
aleatorias Tj (j=1…K) tal que Tj= 1 si la observación es extraida de la población Yj, y
K −1
Tj=0 en otro caso, y P[Tj=1]=πj. Notar que π K = 1 − ∑π i .
i =1
Luego, Y=T1Y1+……….TKYK. La función de log likelihood, condicionada a la data
completa, similar a la ecuación 5 puede se escrita como
5. n K
LogL(θ / Y , T ) = ∑ ∑ Tij log( N ( yi ,θ j )) (7)
i =1 j =1
donde Tij=1 si la i-ésima observación yi cae en la componente j y Tij=0 en otro caso.
Paso E.
Aquí las Tij que aparecen en la ecuación (7) deben ser sustituidas iterativamente por
π (j m ) N ( yi ,θ j( m ) )
ˆ
γ (m)
ij = E[Tij / θ (m)
,Y ] = K . Los valores iniciales de los
∑ π l N ( yi , θ l )
ˆ (m) (m)
l =1
1
parámetros son los mismos que antes, excepto que π =
(0)
j
para j=1….K.
K
Luego habría que maximizar la función
n K
Q(θ / θ ( m ) ) = ∑ ∑ γ ij( m ) log( N ( yi ,θ j )) (8)
i =1 j =1
Paso M:
Derivando parcialmente (8) con respecto a µ j y σ 2 para j=1,…,K, se obtiene
j
n n
∑γ ∑ γ ij ( yi − µ j )
ˆ ( m+1) 2
(m) (m)
ij yi
µ (j m+1) =
ˆ i =1
n y σ 2 ( m+1) =
j
i =1
n y
∑γ ∑γ
(m) (n)
ij ij
i =1 i =1
n
∑ γ ij
(m)
π (j m+1) = γ j( m ) =
ˆ i =1
n
3. Caso Multivariado.
Consideremos que tomamos p variables distribuidas conjuntamente con una normal
Multivariada con vector de media µ y matriz de covarianza Σ. Esto es que la función de
densidad del vector aleatorio x tiene función de densidad
exp[−( x − µ )' Σ −1 ( x − µ ) / 2]
f ( x) =
| Σ |1/ 2 (2π ) p / 2
6. y se escribe x~NMp(µ, Σ) Existen muchas estructuras que se pueden considerar para Σ.
Entre ellas que sea una matriz diagonal con una constante. Es decir, Σ=σ2I, o que sea
solamente diagonal con diferente entradas en ella.
Sea la variable aleatoria Y que se distribuye como una mezcla de K Gaussianas
multivariadas. Esto es,
f ( y ) = π 1 NM ( µ1 , Σ1 ) + ................ + π K NM ( µ K , Σ K )
K
donde ∑π l = 1
l =1
Introduciendo el mismo tipo de variables Tj como en el caso 2, se obtiene
n K
LogL(θ / Y , T ) = ∑ ∑ Tij log( NM ( yi ,θ j )) (9)
i =1 j =1
donde θ j = (µ j , Σ j ) para j=1,….K.
Paso E.
Aquí las Tij que aparecen en la ecuación (9) deben ser sustituidas iterativamente por
π (j m ) NM ( yi , θ j( m ) )
ˆ
γ (m)
ij = E[Tij / θ (m)
,Y ] = K . Los valores iniciales para las k
∑ π l NM ( yi , θl )
ˆ (m) (m)
l =1
medias µj son k observaciones de las yi’s elegidas al azar. Los valores iniciales de las
matrices de covarianza depende de la estructura que se halla decidido para la matriz. El
1
programa mclust de R considera 6 tipos distintos de estructuras. También, π (j 0 ) =
K
para j=1….K.
Luego habría que maximizar la función
n K
Q(θ / θ ( m ) ) = ∑ ∑ γ ij( m ) log( NM ( yi ,θ j )) (10)
i =1 j =1
Paso M.
Derivando parcialmente (10) con respecto a µj y Σ j para j=1,…,K, se obtiene
7. n n
∑ γ ij yi ∑ γ ij ( yi − µ j )' ( yi − µ j )
ˆ ( m+1) ˆ ( m+1)
(m) (m)
µ (j m+1) =
ˆ i =1
n y Σ (jm+1) = i =1
n y
∑γ p∑ γ
(m) (n)
ij ij
i =1 i =1
n
∑ γ ij
(m)
π (j m+1) = γ j( m ) =
ˆ i =1
n
Aplicación a Clustering
La aplicación de mezclas Gaussianas a clustering es bien directa. Lo unico que hay que
tomar en cuenta es que una vez que se consigue la convergencia los valores
π (j m ) NM ( yi , θ j( m ) )
ˆ
γ (m)
ij
= E[Tij / θ (m)
,Y ] = K
∑ π l NM ( yi , θl )
ˆ (m) (m)
l =1
indicaran a que cluster es asignada la observación yi. Como el denominador es el mismo
para todos los clusteres solo basta usar el numerador. La observacion i-esima es asignado
al cluster j* si γij* es mayor que todos los γij. En caso de empate se asigna a un cluster
dado aleatoriamente.
El problema del numero optimo de clusters puede ser decidido de acuerdo a varios
criterios. El programa mclust de R usa el criterio de información bayesiana (BIC), pero
tambien esta el criterio de Akaike (AIC) y el criterio de información mutua entre otros.
Aplicación a clasificación supervisada.
Aquí la aplicación de mezclas Gaussianas no es tan directa. Primero que nada hay que
considerar que la distribución de las variables predictoras por clases se puede modelar
como una mezcla gaussiana con K componentes. Es decir P(x/Clase j) es una mezcla
guassiana. Puede darse el caso de que la clase 1 se modele óptimamente como una
mezcla de 3 gaussianas y la clase 2 como una mezcla de 5 gaussianas. Es decir existe un
sinnumero de combinaciones. Una vez que uno modela cada clase tiene que multiplicar
por la prior πj que es estimada por el numero de observaciones a cada clase. Finalmente
se asigna la observación i a la clase j* tal que
P(Cj*/x) ∝ P(Cj*)P(x/Clase Cj*) sea la mayor de todas.
Estas son llamadas las probabilidades posteriores.
Notar que aplicar Gaussian mixtures para clasificacion supervisada es bastante pesada y
frecuentemente se hace bastante suposiciones acerca de la matriz de covarianza.