On 04/06/15 20:38, Sturla Molden wrote:

> Component-wise EM (aka CEM2) is a better way of avoiding the singularity
> disease, though.

The traditional EM for a GMM proceeds like this:

while True:

    global_estep(clusters)

    for c in clusters:
        mstep(c)

This is inherently unstable. Several clusters can become
near-singular in the M-step before there is an E-step
to redistribute the weights. You can get a "cascade of
singularities" where the whole GMM basically dies. Even
if you bias the diagonal of the covariance you still
have the basic algorithmic problem.

CEM2 proceeds like this:

while True:
    for c in clusters:
        estep(c)
        mstep(c)

This improves stability enormously. When a cluster becomes
singular, the memberships are immediately redistributed.
Therefore you will not get a "cascade of singularities"
where the whole GMM basically dies.


Sturla


------------------------------------------------------------------------------
_______________________________________________
Scikit-learn-general mailing list
Scikit-learn-general@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/scikit-learn-general

Reply via email to