EM-Algorithmus

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche

Der Expectation-Maximization-Algorithmus (kurz EM-Algorithmus, selten auch Estimation-Maximization-Algorithmus) ist ein Algorithmus der mathematischen Statistik.

EM Clustering für Old Faithful Eruptionsdaten. Das zufällige Modell (durch die Skalierung der Achsen erscheinen die Sphären flach und breit) wird an die beobachteten Daten angepasst. Gut erkennbar sind die zwei typischen Modi des Geysirs. In den ersten Iterationen ändert sich das Modell noch stark, anschließend werden die Änderungen kleiner bis zur Konvergenz. Visualisierung erzeugt mit ELKI.

Die Kernidee des EM-Algorithmus ist es, mit einem zufällig gewählten Modell zu starten, und abwechselnd die Zuordnung der Daten zu den einzelnen Teilen des Modells (Expectation-Schritt) und die Parameter des Modells an die neueste Zuordnung (Maximization-Schritt) zu verbessern.

In beiden Schritten wird dabei die Qualität des Ergebnisses verbessert: im E-Schritt werden die Punkte besser zugeordnet, im M-Schritt wird das Modell so verändert, dass es besser zu den Daten passt. Findet keine wesentliche Verbesserung mehr statt, beendet man das Verfahren.

Das Verfahren findet typischerweise nur „lokale“ Optima. Dadurch ist es oft notwendig, das Verfahren mehrfach aufzurufen und das beste so gefundene Ergebnis auszuwählen.

Mathematische Formulierung[Bearbeiten]

Funktionsweise[Bearbeiten]

Es liegen Objekte mit einer gewissen Anzahl von Eigenschaften vor. Die Eigenschaften nehmen zufällige Werte an. Einige Eigenschaften können gemessen werden, andere jedoch nicht. Formal gesehen sind die Objekte Instanzen einer mehrdimensionalen Zufallsvariablen X, die einer unbekannten Wahrscheinlichkeitsverteilung p(x) unterliegt; einige Dimensionen sind „beobachtbar“, andere sind „versteckt“. Ziel ist es, die unbekannte Wahrscheinlichkeitsverteilung zu bestimmen.

Zunächst nimmt man an, p(x) sei bis auf einige Parameter bekannt. Meist wählt man p als Mischverteilung, also als gewichtete Summe von so vielen Standardverteilungen, wie beobachtbare Eigenschaften vorliegen. Wählt man beispielsweise als Standardverteilung die Normalverteilung, so sind die unbekannten Parameter jeweils der Mittelwert \mu und die Varianz \sigma^2. Ziel ist es nun, die Parameter \Theta der vermuteten Wahrscheinlichkeitsverteilung zu bestimmen. Wählt man eine Mischverteilung, so enthält \Theta auch die Gewichtungsfaktoren der Summe.

Für gewöhnlich geht man ein solches Problem mit der Maximum-Likelihood-Methode an. Dies ist hier jedoch nicht möglich, da die gesuchten Parameter von den versteckten Eigenschaften abhängen – und diese sind unbekannt. Um trotzdem zum Ziel zu kommen, wird also eine Methode benötigt, die mit den gesuchten Endparametern die versteckten Parameter schätzt. Diese Aufgabe erfüllt der EM-Algorithmus.

Der EM-Algorithmus arbeitet iterativ und führt in jedem Durchgang zwei Schritte aus:

  1. Versteckte Parameter Y schätzen. Zunächst werden die versteckten Parameter aus den im vorherigen Durchgang bestimmten Endparametern \Theta und den beobachteten Daten X geschätzt. Dazu wird die sogenannte Q-Funktion verwendet, die einen vorläufigen Erwartungswert der gesuchten Verteilung berechnet.
  2. Endparameter \Theta bestimmen. Jetzt, wo die versteckten Parameter abgeschätzt sind, wird die Maximum-Likelihood-Methode angewandt, um die eigentlich gesuchten Parameter zu bestimmen.

Der Algorithmus endet, wenn sich die bestimmten Parameter nicht mehr wesentlich ändern.

Bewiesenermaßen konvergiert die Folge der bestimmten \Theta, das heißt, der Algorithmus terminiert auf jeden Fall. Allerdings bildet das Ergebnis meist nur ein lokales Optimum, welches zwar gut, aber nicht optimal ist. Es ist daher nötig den Algorithmus viele Male mit unterschiedlichen Startwerten zu wiederholen, um ein möglichst optimales Endergebnis zu finden.

Formulierung als Zufallsexperiment[Bearbeiten]

Rein formal wird beim EM-Algorithmus angenommen, dass die Werte der beobachteten stochastischen Größe auf folgende Art und Weise zustandekommen: Wähle zuerst eine der eingehenden Zufallsvariablen aus und übernimm deren Wert als Endergebnis. Das bedeutet, dass genau ein Gewicht den Wert eins annimmt und alle anderen null sind. Bei der Approximation der Gewichte durch den EM-Algorithmus ist dies normalerweise aber nicht mehr der Fall. Die Wahrscheinlichkeitsdichte eines Zielwertes lässt sich bei Normalverteilungsannahme und konstanter Varianz der einzelnen Zufallsvariablen darstellen als: p(y_i|h)= \frac{1}{\sqrt{2\pi^2}\sigma} e^{- \frac{1}{2\sigma^2} \sum_{j=1}^{n} w_{ij}(y_i-\mu_j)^2}

Dabei besitzen die verwendeten Bezeichnungen folgende Bedeutungen:

  • w_{ij}: Gewicht der j-ten Zufallsvariable für den i-ten Wert der Zielgröße
  • n: Anzahl der Gewichte
  • y_i: Wert der i-ten Zielgröße
  • h: Stichprobe
  • \mu_j: Erwartungswert der j-ten Zufallsvariable
  • \sigma^2: Varianz

EM-Clustering[Bearbeiten]

Das EM-Clustering ist ein Verfahren zur Clusteranalyse, das die Daten mit einem „Mixture of Gaussians“-Modell – also als Überlagerung von Normalverteilungen – repräsentiert. Dieses Modell wird zufällig oder heuristisch initialisiert und anschließend mit dem allgemeinen EM-Prinzip verfeinert.

Das EM-Clustering besteht aus mehreren Iterationen der Schritte Expectation und Maximization.

  • Im Initialisierungs-Schritt muss das \mu frei gewählt werden. Nimm dazu an, dass genau eine beliebige Zufallsvariable (genau eine beliebige Trainingsinstanz y_k) diesem Erwartungswert \mu entspricht, d.h. setze \mu_{1,\mathrm{appr}}=y_k.
  • Im Expectation-Schritt werden die Erwartungswerte der Gewichte berechnet unter der Annahme, dass die Erwartungswerte der eingehenden Zufallsvariablen den im Maximization-Schritt berechneten entsprechen. Dies ist allerdings nur möglich, falls es sich nicht um die erste Iteration handelt.
    Die Erwartungswerte lassen sich darstellen als E[w_{ij}]=p(X_j=y_i |\mu _j = \mu _{j,\mathrm{appr}})/ \sum _{k=1}^n p(X_k=y_i|\mu_k = \mu_{k,\mathrm{appr}})
  • Im Maximization-Schritt werden die Erwartungswerte der Wahrscheinlichkeitsverteilungen der einzelnen Zufallsvariablen bestimmt, bei denen die Wahrscheinlichkeit für das Eintreffen des Stichprobenergebnisses maximiert wird. Dies geschieht unter der Annahme, dass die exakten Werte der Gewichte jeweils ihren Erwartungswerten entsprechen (Maximum-Likelihood-Algorithmus). Die auf diese Weise geschätzten Erwartungswerte ergeben sich bei Normalverteilungsannahme durch \mu_{j,\mathrm{appr}}=\frac{1}{n} \sum_{i=1}^n E[w_{ij}] y_i
  • Durch Wiederholung der Expectation- und Maximization-Schritte werden die Parameter ihren tatsächlichen Werten weiter angenähert.

Vorteile des EM-Clusterings[Bearbeiten]

Vergleich k-Means und EM auf einem künstlichen Datensatz, visualisiert mit ELKI. Durch Verwendung von Varianzen kann EM die unterschiedlichen Normalverteilungen akkurat beschreiben, während k-Means die Daten in ungünstige Voronoi-Zellen aufteilt. Die Clusterzentren sind durch größere, blassere Symbole gekennzeichnet.
  • Mathematisches Modell der Daten mit Normalverteilungen
  • Erlaubt Cluster unterschiedlicher Größe (im Gegensatz zu k-Means)
  • Kann korrelierte Cluster erkennen und repräsentieren durch die Kovarianzmatrix
  • Kann mit unvollständigen Beobachtungen umgehen

K-Means als EM-Verfahren[Bearbeiten]

Hauptartikel: k-Means-Algorithmus

Auch der k-Means-Algorithmus kann als EM-Algorithmus verstanden werden, der die Daten als Voronoi-Zellen modelliert.

Eine EM-Variante des k-Means-Algorithmus sieht wie folgt aus:

  • Im Initialisierungs-Schritt werden die Clusterzentren \mu_i zufällig oder mit einer Heuristik gewählt.
  • Im Expectation-Schritt werden Datenobjekte ihrem nächsten Clusterzentrum zugeordnet, d.h. E[w_{ij}]=\begin{cases}
1, & \text{wenn }||\mu_i - X_j|| = \min_i{||\mu_i - X_j||}\\
0, & \text{andernfalls}
\end{cases}
  • Im Maximization-Schritt werden die Clusterzentren neu berechnet als Mittelwert der ihnen zugeordneten Datenpunkte:
    \mu_j=\frac{1}{\sum_i^n E[w_{ij}]} \sum_{i=1}^n E[w_{ij}] y_i

Weitere Instanzen des EM-Algorithmus[Bearbeiten]

Beweis für den Maximization-Schritt bei Normalverteilungsannahme[Bearbeiten]

Bewiesen werden soll: \mathrm{maxarg}_{\mu_k}\prod_{i=1}^m P\left( y|h \right) 
=^? \frac{1}{m} \sum_{i=1}^{m} \frac{1}{2\sigma ^2} E[w_{ik}] y_i

Anstatt P(y|h) zu maximieren, kann auch \ln P(y|h) maximiert werden, da der Logarithmus eine streng monoton steigende Funktion ist.

\mathrm{maxarg}_{\mu} \ln \prod_{i=1}^m P(y|h) 
= \mathrm{maxarg}_{\mu} \left( \sum_{i=1}^m
\left( \ln \frac{1}{\sqrt{2\pi^2}} 
- \sum_{j=1}^n \frac{1}{2\sigma ^2} E[w_{ij}] (y_i-\mu_j)^2 \right) \right)

= \mathrm{maxarg}_{\mu} \left( m \ln \frac{1}{\sqrt{2\pi^2}} 
- \frac{1}{2\sigma^2} \sum_{i=1}^m \sum_{j=1}^n E[w_{ij}] (y_i-\mu_j)^2 \right)

Der Minuend ist eine Konstante, deswegen ist es ausreichend, den Subtrahend zu minimieren:

\mathrm{minarg}_{\mu} \left( \frac{1}{2\sigma^2} \sum_{i=1}^m \sum_{j=1}^n E \left[w_{ij} \right] \left(y_i-\mu_j \right)^2 \right)= \mathrm{minarg}_{\mu} \left(\sum_{i=1}^m \sum_{j=1}^n E[w_{ij}] (y_i-\mu_j)^2 \right)

Eine quadratische Summe ergibt stets einen nichtnegativen Wert. Daher ist das absolute Minimum durch 0 beschränkt und somit auch ein lokales Minimum. Man setze die 1. Ableitung für diesen Term t nach jedem \mu_k auf 0:

\frac{\mathrm{d}t}{\mathrm{d}\mu_k} = -2\sum_{i=1}^m E \left[w_{ik} \right] \left(y_i-\mu_k \right) = 0,

denn die Ableitung aller Summanden der Summe über j sind 0, außer für j=k. Folglich:

\sum_{i=1}^m E[w_{ik}] y_i= m\mu_k \quad \Rightarrow \quad
\mu_k=\frac{1}{m} \sum_{i=1}^m E\left[w_{ik} \right] y_i

q.e.d.

Literatur[Bearbeiten]