CS229 Lecture notes
Andrew Ng
Mixtures of Gaussians and the EM algorithm
In this set of notes, we discuss the EM (Expectation-Maximization) algorithm for density estimation.
Suppose that we are given a training set {x(1), . . . , x(n)} as usual. Since we are in the unsupervised learning setting, these points do not come with any labels.
(i) (i) We wish to model the data by specifying a joint distribution p(x , z ) =
p(x(i)|z(i))p(z(i)). Here, z(i) ∼ Multinomial(φ) (where φj ≥ 0, kj=1 φj = 1, and the parameter φj gives p(z(i) = j)), and x(i)|z(i) = j ∼ N(μj,Σj). We
let k denote the number of values that the z(i)’s can take on. Thus, our model posits that each x(i) was generated by randomly choosing z(i) from {1,…,k}, and then x(i) was drawn from one of k Gaussians depending on z(i). This is called the mixture of Gaussians model. Also, note that the z(i)’s are latent random variables, meaning that they’re hidden/unobserved. This is what will make our estimation problem difficult.
The parameters of our model are thus φ, μ and Σ. To estimate them, we can write down the likelihood of our data:
n
i=1 n
i=1
l(φ, μ, Σ)
= =
log p(x(i); φ, μ, Σ)
k z(i)=1
log
p(x(i)|z(i); μ, Σ)p(z(i); φ).
However, if we set to zero the derivatives of this formula with respect to the parameters and try to solve, we’ll find that it is not possible to find the maximum likelihood estimates of the parameters in closed form. (Try this yourself at home.)
The random variables z(i) indicate which of the k Gaussians each x(i) had come from. Note that if we knew what the z(i)’s were, the maximum
1
2
likelihood problem would have been easy. Specifically, we could then write down the likelihood as
n
l(φ, μ, Σ) =
Maximizing this with respect to φ, μ and Σ gives the parameters:
1 n
φj = n 1{z(i) = j},
i=1
log p(x(i)|z(i); μ, Σ) + log p(z(i); φ).
i=1
ni=1 1{z(i) = j}x(i)
μj =ni=11{z(i)=j},
ni=1 1{z(i) = j}(x(i) − μj)(x(i) − μj)T
Σj = ni=11{z(i)=j} .
Indeed, we see that if the z(i)’s were known, then maximum likelihood estimation becomes nearly identical to what we had when estimating the parameters of the Gaussian discriminant analysis model, except that here the z(i)’s playing the role of the class labels.1
However, in our density estimation problem, the z(i)’s are not known. What can we do?
The EM algorithm is an iterative algorithm that has two main steps. Applied to our problem, in the E-step, it tries to “guess” the values of the z(i)’s. In the M-step, it updates the parameters of our model based on our guesses. Since in the M-step we are pretending that the guesses in the first part were correct, the maximization becomes easy. Here’s the algorithm:
Repeat until convergence: { (E-step) For each i, j, set
w(i) :=p(z(i) =j|x(i);φ,μ,Σ) j
1There are other minor differences in the formulas here from what we’d obtained in PS1 with Gaussian discriminant analysis, first because we’ve generalized the z(i)’s to be multinomial rather than Bernoulli, and second because here we are using a different Σj for each Gaussian.
(M-step) Update the parameters:
i=1 j
n w(i)(x(i) −μj)(x(i) −μj)T Σj := i=1 j n w(i)
1 n nj
φj :=
μ := i=1 j ,
i=1
j n w(i)
w(i),
n w(i)x(i)
3
}
In the E-step, we calculate the posterior probability of our parameters the z(i)’s, given the x(i) and using the current setting of our parameters. I.e., using Bayes rule, we obtain:
p(z(i) = j|x(i); φ, μ, Σ) = p(x(i)|z(i) = j; μ, Σ)p(z(i) = j; φ) kl=1 p(x(i)|z(i) = l; μ, Σ)p(z(i) = l; φ)
Here, p(x(i)|z(i) = j;μ,Σ) is given by evaluating the density of a Gaussian
with mean μj and covariance Σj at x(i); p(z(i) = j;φ) is given by φj, and so
on. The values w(i) calculated in the E-step represent our “soft” guesses2 for j
the values of z(i).
Also, you should contrast the updates in the M-step with the formulas we
had when the z(i)’s were known exactly. They are identical, except that in-
stead of the indicator functions “1{z(i) = j}” indicating from which Gaussian
each datapoint had come, we now instead have the w(i)’s. j
The EM-algorithm is also reminiscent of the K-means clustering algo-
rithm, except that instead of the “hard” cluster assignments c(i), we instead
have the “soft” assignments w(i). Similar to K-means, it is also susceptible j
to local optima, so reinitializing at several different initial parameters may be a good idea.
It’s clear that the EM algorithm has a very natural interpretation of repeatedly trying to guess the unknown z(i)’s; but how did it come about, and can we make any guarantees about it, such as regarding its convergence? In the next set of notes, we will describe a more general view of EM, one
2The term “soft” refers to our guesses being probabilities and taking values in [0,1]; in contrast, a “hard” guess is one that represents a single best guess (such as taking values in {0,1} or {1,…,k}).
i=1 j
4
that will allow us to easily apply it to other estimation problems in which there are also latent variables, and which will allow us to give a convergence guarantee.