Perché k-mean non fornisce il minimo globale?


17

Ho letto che l'algoritmo k-mean converge solo in un minimo locale e non in un minimo globale. Perchè è questo? Posso logicamente pensare a come l'inizializzazione possa influenzare il clustering finale e c'è una possibilità di clustering non ottimale, ma non ho trovato nulla che lo dimostrasse matematicamente.

Inoltre, perché k-significa un processo iterativo? Non possiamo semplicemente differenziare parzialmente la funzione oggettiva rispetto ai centroidi, equipararla a zero per trovare i centroidi che minimizzano questa funzione? Perché dobbiamo usare la discesa gradiente per raggiungere il minimo passo dopo passo?


4
Quando una funzione smooth ha più minimi locali, necessariamente ognuno di essi sarà un punto critico (dove svaniscono tutte le derivate parziali), quindi il tuo algoritmo è corretto ma in genere è inutile: puoi ottenere un'equazione orribilmente complicata con un numero enorme di soluzioni (anche infinitamente molte). Ma c'è un altro problema: come fai a sapere che la funzione obiettivo k-mean è persino differenziabile ovunque?
whuber

1
Credo che quando differenzio parzialmente la funzione oggettiva rispetto a un centroide, i punti nel cluster di un altro centroide svaniscono nella derivata. Quindi, il centroide che possiamo ottenere minimizzerà solo la somma delle distanze quadrate del solo cluster particolare.
Prateek Kulkarni,

3
In parte è tutto, ma non spiega davvero il comportamento. Di maggiore importanza è il fatto che l' assegnazione di punti ai centroidi sia la parte principale di ciò che k-mean sta facendo. (Una volta assegnato il compito, i centroidi vengono calcolati facilmente e non c'è più niente da fare.) Il compito è discreto : non è qualcosa che può essere differenziato. Inoltre, è combinatoriamente complesso: ci sono modi per assegnare punti a cluster. In effetti, è del tutto superfluo utilizzare la discesa gradiente per trovare i centroidi. n kO(nk)nK
whuber

Sono d'accordo, la parte del compito non può essere direttamente inserita nella forma matematica. Solo con questo passaggio isolato possiamo spostare i centroidi per ridurre al minimo la funzione. Ecco come guardo la discesa del gradiente: se, per inizializzazione errata, siamo vicini ai minimi locali, la discesa del gradiente ti trascinerà verso il basso sui minimi locali. Se ti avvicini ai minimi globali con una buona inizializzazione, ti trascinerà verso il basso i minimi globali. Ma come questo movimento si sta mappando alle assegnazioni dei cluster è sfocato.
Prateek Kulkarni,

La non differenziabilità è sopravvalutata: Leon Bottou ha svolto alcuni lavori sulla stima dei K-medie con discesa graduale stocastica su set di dati molto grandi con un discreto successo. La non differenziabilità non pone un problema così grande lì come in molti problemi a causa dei numerosi punti dati. (ad es. le reti convoluzionali sono anche localmente non differenziabili ma funzionano comunque alla grande, così come molte architetture di reti neurali con la funzione di trasferimento lineare rettificato). La vera ragione qui è i minimi multipli.
Bayerj,

Risposte:


10

Puoi vedere k-mean come una versione speciale dell'algoritmo EM, che può aiutare un po '.

Supponiamo che stiate stimando una distribuzione normale multivariata per ciascun cluster con la matrice di covarianza fissata alla matrice identità per tutti, ma media variabile dove i è l'indice del cluster. Chiaramente, se i parametri { μ i } sono noti, è possibile assegnare a ciascun punto p il suo cluster di massima probabilità (cioè il μ i per il quale la distanza da p in minima). L'algoritmo EM per questo problema è quasi equivalente a k-medie.μioio{μio}pμiop

Al contrario, se sai quali punti appartengono a quale cluster, puoi stimare il ottimale . La soluzione in forma chiusa a questo (che trova un ottimo globale) in pratica dice che per trovare i modelli di massima verosimiglianza { μ i } di integrare su tutte le possibili assegnazioni di punti ai cluster. Poiché anche con solo trenta punti e due cluster, ci sono circa un miliardo di incarichi possibili, questo è impossibile da calcolare.μio{μ^io}

Invece, possiamo ipotizzare i parametri nascosti (o i parametri del modello) e ripetere i due passaggi (con la possibilità di finire con un massimo locale). Se si consente a ciascun cluster di assumersi una parziale responsabilità per un punto, si finisce con EM, se si assegna semplicemente il cluster ottimale, si ottiene k-medie.

Quindi, riassunto esecutivo: in termini probabilistici, esiste una soluzione globale, ma richiede di scorrere su tutti i cluster possibili. Chiaramente se hai una funzione oggettiva, lo stesso vale. È possibile iterare su tutte le soluzioni e massimizzare la funzione obiettiva, ma il numero di iterazioni è esponenziale nella dimensione dei dati.


Ben messo! Lo segnerò come risposta!
Prateek Kulkarni,

4

Questo è il problema che vuoi risolvere:

minxi=1nj=1kxij||picj||2subject to:j=1kxij=1icj is the centroid of cluster jxij{0,1}i,j

La variabile binaria indica se il punto i è assegnato o meno al cluster j . I simboli p i e c j indicano rispettivamente le coordinate dell'i e del punto e centroide del j cluster. Si trovano entrambi in R d , dove d è la dimensionalità dei punti dati.xijijpicjijRdd

Il primo gruppo di vincoli afferma che ogni punto dovrebbe essere assegnato esattamente a un cluster. Il secondo gruppo di vincoli (che non abbiamo definito matematicamente) afferma che le coordinate del centroide del cluster dipendono effettivamente dai valori delle variabili x i j . Possiamo ad esempio esprimere questo vincolo come segue: c j = i x i j p i jjxij

cj=ixijpijixij

Tuttavia, invece di affrontare questi vincoli non lineari, in K-Means (approssimativamente) risolviamo un problema diverso che ha la stessa soluzione ottimale del nostro problema originale:

minxi=1nj=1kxij||piyj||2subject to:j=1kxij=1ixij{0,1}i,jyjRdj

Invece di ridurre al minimo la distanza dai centroidi, riduciamo al minimo la distanza a qualsiasi set di punti che fornirà una soluzione migliore. Si scopre che questi punti sono esattamente i centroidi.

Ora per risolvere questo problema, ripetiamo i passaggi 2-3 di questo algoritmo, fino alla convergenza:

  1. Assegna alcuni valori alle variabili yj
  2. yjxij
  3. xijyj

In ogni passaggio la funzione obiettivo migliora (o rimane invariata quando l'algoritmo converge), poiché la soluzione trovata nel passaggio precedente è nello spazio di ricerca del passaggio corrente. Tuttavia, poiché stiamo correggendo alcune delle variabili in ogni passaggio, questa è una procedura di ricerca locale che non garantisce l'ottimalità.

xijyjyjxijyj


2

Un semplice esempio potrebbe aiutare ..

Definiamo l'insieme di punti da raggruppare come A = {1,2,3,4}.

Supponiamo che tu stia cercando di trovare 2 cluster appropriati per A (2 mezzi). Esistono (almeno) due diverse impostazioni che soddisfano la condizione stazionaria di k-medie.

Impostazione 1:

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

Qui l'obiettivo è 2. In realtà questo è un punto di sella (prova center1 = 1 + epsilone center1 = 1 - epsilon)

Impostazione 1:

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

qui l'obiettivo è 1/4.

Se k-mean fosse inizializzato come prima impostazione, sarebbe bloccato ... e questo non è affatto un minimo globale.

È possibile utilizzare una variante dell'esempio precedente per creare due diversi minimi locali. Per A = {1,2,3,4,5}, l'impostazione cluster1={1,2}e cluster2={3,4,5}porterebbe allo stesso valore oggettivo di cluster1={1,2,3}ecluster2={4,5}

Infine, cosa succederebbe se scegliessi

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}

?


0

[Questo era prima della risposta di @Peter]
Dopo una piccola discussione (nella sezione commenti), sento di dover rispondere alla mia domanda.

Credo che quando differenzio parzialmente la funzione oggettiva rispetto a un centroide, i punti nel cluster di un altro centroide svaniscono nella derivata. Quindi, il centroide che possiamo ottenere minimizzerà solo la somma delle distanze quadrate del solo cluster particolare.

@whuber aggiunge:

In parte è tutto, ma non spiega davvero il comportamento. Di maggiore importanza è il fatto che l'assegnazione di punti ai centroidi sia la parte principale di ciò che k-mean sta facendo. (Una volta assegnato il compito, i centroidi vengono calcolati facilmente e non c'è più niente da fare.) Il compito è discreto: non è qualcosa che può essere differenziato.

Sarebbe fantastico se qualcuno avesse altro da aggiungere.


0

Tutti hanno spiegato tutto, ma vorrei aggiungere che se i dati di un campione non vengono distribuiti come una distribuzione gaussiana, possono rimanere bloccati a minimi locali. Nell'algoritmo K-mean stiamo effettivamente cercando di ottenerlo.


Piuttosto che gaussiano, penso che intendi "unimodale"
Peter Leopold
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.