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
[email protected]
https://lists.sourceforge.net/lists/listinfo/scikit-learn-general