Warum gibt k-means nicht das globale Minimum an?

16

Ich habe gelesen, dass der k-means-Algorithmus nur zu einem lokalen Minimum und nicht zu einem globalen Minimum konvergiert. Warum ist das? Ich kann mir logischerweise vorstellen, wie sich die Initialisierung auf das endgültige Clustering auswirken könnte, und es besteht die Möglichkeit eines suboptimalen Clusterings, aber ich habe nichts gefunden, was dies mathematisch beweisen könnte.

Warum ist k-ein iterativer Prozess? Können wir die Zielfunktion nicht nur teilweise von den Zentroiden unterscheiden, sie mit Null gleichsetzen, um die Zentroiden zu finden, die diese Funktion minimieren? Warum müssen wir den Gradientenabstieg verwenden, um Schritt für Schritt das Minimum zu erreichen?

Prateek Kulkarni
quelle
4
Wenn eine glatte Funktion mehrere lokale Minima hat, ist jedes von ihnen notwendigerweise ein kritischer Punkt (an dem alle partiellen Ableitungen verschwinden), sodass Ihr Algorithmus korrekt ist, aber normalerweise ist es nutzlos: Sie können eine schrecklich komplizierte Gleichung mit einer großen Zahl erhalten von Lösungen (sogar unendlich viele). Aber es gibt noch ein anderes Problem: Woher wissen Sie, dass die Zielfunktion von k-means überhaupt überall differenzierbar ist?
Whuber
1
Ich glaube, wenn ich die objektive Funktion in Bezug auf einen Schwerpunkt teilweise differenziere, verschwinden die Punkte im Cluster eines anderen Schwerpunkts in der Ableitung. Der Schwerpunkt, den wir erhalten können, minimiert also nur die Summe der quadratischen Abstände nur des bestimmten Clusters.
Prateek Kulkarni
3
Das ist teilweise so, erklärt aber nicht wirklich das Verhalten. Wichtiger ist die Tatsache, dass die Zuweisung von Punkten zu Zentroiden den großen Teil dessen ausmacht, was k-means tut. (Sobald die Zuweisung erfolgt ist, können die Schwerpunkte leicht berechnet werden und es bleibt nichts mehr zu tun.) Diese Zuweisung ist diskret : Sie kann überhaupt nicht unterschieden werden. Darüber hinaus ist es kombinatorisch komplex: Es gibt Möglichkeiten , Clustern Punkte zuzuweisen . In der Tat ist es völlig unnötig, den Gradientenabstieg zu verwenden, um die Zentroide zu finden. n kO(nk)nk
Whuber
Ich stimme zu, der Zuordnungsteil kann nicht direkt in die mathematische Form gebracht werden. Nur durch diesen isolierten Schritt können wir die Zentroide bewegen, um die Funktion zu minimieren. So betrachte ich den Gradientenabstieg: Wenn wir uns bei einer schlechten Initialisierung in der Nähe der lokalen Minima befinden, werden Sie durch den Gradientenabstieg auf die lokalen Minima heruntergezogen. Wenn Sie durch eine gute Initialisierung in der Nähe der globalen Minima sind, werden Sie die globalen Minima heruntergezogen. Die Zuordnung dieser Bewegung zu Cluster-Zuordnungen ist jedoch verwischt.
Prateek Kulkarni
Die Nichtdifferenzierbarkeit wird überbewertet: Leon Bottou hat einige Arbeiten zur Schätzung von K-Means mit stochastischem Gefälle an sehr großen Datensätzen mit einigem Erfolg durchgeführt. Die Nichtdifferenzierbarkeit ist dort aufgrund der vielen Datenpunkte kein so großes Problem wie bei vielen Problemen. (zB Faltungsnetzwerke sind auch lokal nicht differenzierbar, funktionieren aber trotzdem hervorragend, so wie viele neuronale Netzarchitekturen mit der gleichgerichteten linearen Übertragungsfunktion). Der wahre Grund hierfür sind die multiplen Minima.
Bayerj

Antworten:

10

Sie können k-means als eine spezielle Version des EM-Algorithmus sehen, die ein wenig helfen kann.

Angenommen, Sie schätzen eine multivariate Normalverteilung für jeden Cluster, wobei die Kovarianzmatrix für alle, aber den variablen Mittelwert an die Identitätsmatrix gebunden ist, wobei i der Index des Clusters ist. Wenn die Parameter { μ i } bekannt sind, können Sie jedem Punkt p seinen Maximum-Likelihood-Cluster zuweisen (dh den μ i, für den der Abstand zu p minimal ist). Der EM-Algorithmus für dieses Problem ist fast äquivalent zu k-means.μichich{μich}pμichp

Umgekehrt können Sie, wenn Sie wissen, welche Punkte zu welchem ​​Cluster gehören, das optimale schätzen . Die geschlossene Form Lösung dieses Problems (der ein globales Optimum findet) sagt im Grunde , dass die Maximum - Likelihood - Modelle finden { μ i } Sie alle möglichen Zuordnungen von Punkten zu Clustern integrieren über. Da es bereits mit dreißig Punkten und zwei Clustern etwa eine Milliarde solcher möglichen Zuordnungen gibt, ist dies nicht kalkulierbar.μich{μ^ich}

Stattdessen können wir die versteckten Parameter (oder die Modellparameter) erraten und die beiden Schritte durchlaufen (mit der Möglichkeit, in einem lokalen Maximum zu landen). Wenn Sie jedem Cluster erlauben, eine Teilverantwortung für einen Punkt zu übernehmen, erhalten Sie EM. Wenn Sie nur den optimalen Cluster zuweisen, erhalten Sie k-means.

Zusammenfassung: In probabilistischer Hinsicht gibt es eine globale Lösung, für die Sie jedoch alle möglichen Cluster durchlaufen müssen. Wenn Sie eine objektive Funktion haben, gilt dies natürlich auch. Sie könnten alle Lösungen durchlaufen und die Zielfunktion maximieren, aber die Anzahl der Iterationen ist in Bezug auf die Größe Ihrer Daten exponentiell.

Peter
quelle
Gut gesagt! Ich werde dies als Antwort markieren!
Prateek Kulkarni
4

Dies ist das Problem, das Sie lösen möchten:

Mindestxich=1nj=1kxichj||pich-cj||2unterliegen:j=1kxichj=1ichcj ist der Schwerpunkt von Cluster jxichj{0,1}ich,j

Die Binärvariable gibt an, ob Punkt dem Cluster zugeordnet ist oder nicht . Die Symbole und bezeichnen die Koordinaten des ten Punkts bzw. des Schwerpunkts des ten Clusters. Sie befinden sich beide in , wobei die Dimensionalität von Datenpunkten ist. i j p i c j i j R d dxichjichjpichcjichjRdd

Die erste Gruppe von Bedingungen besagt, dass jeder Punkt genau einem Cluster zugeordnet werden sollte. Die zweite Gruppe von Bedingungen (die wir nicht mathematisch definiert haben) besagt, dass die Koordinaten des Schwerpunkts des Clusters tatsächlich von den Werten der Variablen abhängen . Wir können diese Einschränkung zum Beispiel folgendermaßen ausdrücken: x i j c j = i x i j p i jjxichj

cj=ichxichjpichjichxichj

Anstatt sich jedoch mit diesen nichtlinearen Einschränkungen zu befassen, lösen wir in K-Means (ungefähr) ein anderes Problem, das die gleiche optimale Lösung hat wie unser ursprüngliches Problem:

Mindestxich=1nj=1kxichj||pich-yj||2unterliegen:j=1kxichj=1ichxichj{0,1}ich,jyjRdj

Anstatt den Abstand zu Zentroiden zu minimieren, minimieren wir den Abstand zu einer beliebigen Anzahl von Punkten, um eine bessere Lösung zu erzielen. Es stellt sich heraus, dass diese Punkte genau die Schwerpunkte sind.

Um dieses Problem zu lösen, wiederholen wir die Schritte 2-3 dieses Algorithmus bis zur Konvergenz:

  1. Variablen einige Werte zuyj
  2. Korrigieren Sie die Werte für die Variablen und finden Sie die optimalen Werte für die Variablen .yjxichj
  3. Korrigieren Sie die Werte der Variablen und ermitteln Sie die optimalen Werte für die Variablen .xichjyj

In jedem Schritt verbessert sich die Zielfunktion (oder bleibt dieselbe, wenn der Algorithmus konvergiert), da sich die im vorherigen Schritt gefundene Lösung im Suchraum des aktuellen Schritts befindet. Da wir jedoch einige der Variablen in jedem Schritt korrigieren, handelt es sich um ein lokales Suchverfahren, das keine Optimalität garantiert.

Glücklicherweise können die Optimierungsprobleme in Schritt 2 und 3 in geschlossener Form gelöst werden. Wenn wir (dh, wenn wir wissen, welchem ​​Cluster jeder Punkt zugeordnet ist), sind die Schwerpunkte der Cluster die besten Werte für Variablen. Wenn wir Werte für , ist es offensichtlich die beste Wahl für , jeden Punkt dem nächsten . xichjyjyjxichjyj

Behrouz Babaki
quelle
2

Ein einfaches Beispiel könnte helfen ..

Definieren wir die Menge der zu gruppierenden Punkte als A = {1,2,3,4}.

Angenommen, Sie suchen nach 2 geeigneten Clustern für A (2 Mittelwerte). Es gibt (mindestens) zwei verschiedene Einstellungen, die die stationäre Bedingung von k-means erfüllen.

Einstellung 1:

Center1 = 1, Cluster1 = {1}
Center2 = 3, Cluster1 = {2,3,4}

Hier ist das Ziel 2. In der Tat ist dies ein Sattelpunkt (versuchen center1 = 1 + epsilonund center1 = 1 - epsilon)

Einstellung 1:

Center1 = 1.5, Cluster1 = {1,2}
Center2 = 3.5, Cluster1 = {3,4}

hier ist das Ziel 1/4.

Wenn k-means als erste Einstellung initialisiert würde, würde es stecken bleiben, und das ist keineswegs ein globales Minimum.

Sie können eine Variante des vorherigen Beispiels verwenden, um zwei verschiedene lokale Minima zu erstellen. Für A = {1,2,3,4,5}, Einstellung cluster1={1,2}und cluster2={3,4,5}würde Ergebnisse in dem gleichen objektiven Wert wie cluster1={1,2,3}undcluster2={4,5}

Schließlich, was würde passieren, wenn Sie sich entscheiden

A = {1,2,3,4,6}
center1={2.5} cluster1={1,2,3,4} and 
center1={6} cluster1={6}

vs

center1={2} cluster1={1,2,3} and 
center1={5} cluster1={4,6}

?

user25611
quelle
0

[Dies war, bevor @Peter geantwortet hat]
Nach einer kleinen Diskussion (im Kommentarbereich) habe ich das Gefühl, meine eigene Frage beantworten zu müssen.

Ich glaube, wenn ich die objektive Funktion in Bezug auf einen Schwerpunkt teilweise differenziere, verschwinden die Punkte im Cluster eines anderen Schwerpunkts in der Ableitung. Der Schwerpunkt, den wir erhalten können, minimiert also nur die Summe der quadratischen Abstände nur des bestimmten Clusters.

@whuber fügt hinzu:

Das ist teilweise so, erklärt aber nicht wirklich das Verhalten. Wichtiger ist die Tatsache, dass die Zuweisung von Punkten zu Zentroiden den großen Teil dessen ausmacht, was k-means tut. (Sobald die Zuweisung erfolgt ist, können die Schwerpunkte leicht berechnet werden, und es bleibt nichts mehr zu tun.) Diese Zuweisung ist diskret: Sie kann überhaupt nicht unterschieden werden.

Es wäre fantastisch, wenn jemand mehr hinzufügen könnte.

Prateek Kulkarni
quelle
0

Jeder hat alles erklärt, aber ich möchte hinzufügen, dass wenn Beispieldaten nicht als Gauß-Verteilung verteilt werden, sie sich an ein lokales Minimum halten können. Im K-Means-Algorithmus versuchen wir tatsächlich, das zu bekommen.

Forscher
quelle
Peter Leopold