Mengapa k-means tidak memberikan minimum global?


17

Saya membaca bahwa algoritma k-means hanya konvergen ke minimum lokal dan bukan ke minimum global. Kenapa ini? Saya secara logis dapat memikirkan bagaimana inisialisasi dapat mempengaruhi pengelompokan akhir dan ada kemungkinan pengelompokan sub-optimal, tetapi saya tidak menemukan apa pun yang secara matematis akan membuktikannya.

Juga, mengapa k-berarti proses berulang? Tidak bisakah kita hanya mendiferensiasikan sebagian fungsi obyektif ke centroid, menyamakannya dengan nol untuk menemukan centroid yang meminimalkan fungsi ini? Mengapa kita harus menggunakan gradient descent untuk mencapai minimum langkah demi langkah?


4
Ketika fungsi yang mulus memiliki beberapa minimum lokal, maka masing-masing dari mereka akan menjadi titik kritis (di mana semua turunan parsial lenyap), jadi algoritme Anda benar tetapi biasanya tidak berguna: Anda bisa mendapatkan persamaan yang sangat rumit dengan jumlah besar solusi (bahkan tak terhingga banyaknya). Tapi ada masalah lain: bagaimana Anda tahu fungsi objektif k-means bahkan dapat dibedakan di mana-mana?
Whuber

1
Saya percaya bahwa ketika saya sebagian membedakan fungsi obyektif sehubungan dengan satu centroid, titik-titik dalam cluster centroid lain lenyap dalam turunan. Jadi, centroid yang bisa kita dapatkan hanya akan meminimalkan jumlah jarak kuadrat dari hanya cluster tertentu.
Prateek Kulkarni

3
Itu sebagian, tetapi tidak benar-benar menjelaskan perilaku. Yang lebih penting adalah fakta bahwa penugasan poin ke centroid adalah bagian besar dari apa yang dilakukan k-means. (Setelah tugas dibuat, centroid mudah dihitung dan tidak ada yang tersisa untuk dilakukan.) Tugas itu terpisah : itu bukan sesuatu yang dapat dibedakan sama sekali. Selain itu, itu combinatorially kompleks: ada cara untuk menetapkan n poin ke k cluster. Memang, sama sekali tidak perlu menggunakan gradient descent untuk menemukan centroid. O(nk)nk
whuber

Saya setuju, bagian penugasan tidak bisa langsung dimasukkan ke dalam bentuk matematika. Hanya dengan langkah terisolasi ini kita dapat memindahkan centroid untuk meminimalkan fungsi. Inilah cara saya melihat gradient descent: Jika, dengan inisialisasi yang buruk, kami berada di dekat minima lokal, gradient descent akan menyeret Anda ke bawah ke minima lokal. Jika Anda mendekati minimum global dengan inisialisasi yang baik, itu akan menyeret Anda turun minimum global. Tapi bagaimana gerakan ini memetakan ke tugas-tugas cluster adalah kabur.
Prateek Kulkarni

Non-diferensiabilitas ini dinilai terlalu tinggi: Leon Bottou telah melakukan beberapa pekerjaan dalam memperkirakan K-Means dengan penurunan gradien stokastik pada set data yang sangat besar dengan beberapa keberhasilan. Non-diferensiabilitas tidak menimbulkan masalah besar di sana seperti dalam banyak masalah karena banyak titik data. (misalnya jaringan konvolusional juga tidak dapat dibedakan secara lokal tetapi berfungsi dengan baik, demikian juga banyak arsitektur jaringan syaraf dengan fungsi transfer linear yang diperbaiki). Alasan sebenarnya di sini adalah multi minimum.
bayerj

Jawaban:


10

Anda dapat melihat k-means sebagai versi khusus dari algoritma EM, yang mungkin sedikit membantu.

Katakanlah Anda memperkirakan distribusi normal multivariat untuk setiap cluster dengan matriks kovarians yang tetap pada matriks identitas untuk semua, tetapi variabel rata-rata mana i adalah indeks cluster. Jelas, jika parameter { μ i } diketahui, Anda dapat menetapkan setiap titik p kluster kemungkinan maksimumnya (mis. Μ i yang jaraknya ke p dalam minimal). Algoritma EM untuk masalah ini hampir setara dengan k-means.μii{μi}pμip

Sebaliknya, jika Anda tahu titik mana yang termasuk kelompok mana, Anda dapat memperkirakan optimal . Bentuk solusi tertutup untuk ini (yang menemukan optimum global) pada dasarnya mengatakan bahwa untuk menemukan model kemungkinan maksimum { μ i } Anda mengintegrasikan seluruh tugas yang mungkin dari poin ke cluster. Karena bahkan dengan hanya tiga puluh poin dan dua kelompok, ada sekitar satu miliar penugasan yang mungkin, ini tidak mungkin untuk dihitung.μi{μ^i}

Sebagai gantinya, kita dapat menebak beberapa parameter tersembunyi (atau parameter model) dan mengulangi dua langkah (dengan kemungkinan berakhir pada maksimum lokal). Jika Anda mengijinkan masing-masing cluster untuk mengambil sebagian tanggung jawab untuk sebuah poin, Anda berakhir dengan EM, jika Anda hanya menetapkan cluster optimal, Anda mendapatkan k-means.

Jadi, ringkasan eksekutif: dalam istilah probabilistik, ada solusi global, tetapi mengharuskan Anda untuk mengulangi semua kemungkinan pengelompokan. Jelas jika Anda memiliki fungsi objektif, hal yang sama berlaku. Anda bisa mengulangi semua solusi dan memaksimalkan fungsi objektif, tetapi jumlah iterasi eksponensial dalam ukuran data Anda.


Bagus! Saya akan menandai ini sebagai jawabannya!
Prateek Kulkarni

4

Ini adalah masalah yang ingin Anda pecahkan:

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

Variabel biner menunjukkan apakah titik i ditugaskan ke cluster j . Simbol p i dan c j menunjukkan koordinat titik ke- i dan centroid dari cluster ke- j . Mereka berdua berada di R d , di mana d adalah dimensi dari titik data.xijijpicjijRdd

Kelompok kendala pertama mengatakan bahwa setiap titik harus ditugaskan tepat satu cluster. Kelompok kedua kendala (yang kami belum didefinisikan secara matematis) mengatakan bahwa koordinat centroid cluster sebenarnya tergantung pada nilai-nilai x i j variabel. Kita bisa misalnya mengungkapkan kendala ini sebagai berikut: c j = Σ i x i j p i jjxij

cj=ixijpijixij

Namun, alih-alih menangani kendala non-linear ini, dalam K-Means kita (kurang-lebih) menyelesaikan masalah yang berbeda yang memiliki solusi optimal yang sama dengan masalah asli kita:

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

Alih-alih meminimalkan jarak ke centroid, kami meminimalkan jarak ke sembarang titik yang akan memberikan solusi yang lebih baik. Ternyata titik-titik ini tepat merupakan pusat massa.

Sekarang untuk menyelesaikan masalah ini, kita mengulangi langkah 2-3 dari algoritma ini, hingga konvergensi:

  1. Menetapkan beberapa nilai untuk variabelyj
  2. Memperbaiki nilai-nilai untuk variabel dan menemukan nilai-nilai optimal untuk x i j variabel.yjxij
  3. Memperbaiki nilai-nilai variabel, dan menemukan nilai-nilai optimal untuk y j variabel.xijyj

Di setiap langkah, fungsi tujuan meningkat (atau tetap sama ketika algoritma bertemu), karena solusi yang ditemukan pada langkah sebelumnya adalah di ruang pencarian langkah saat ini. Namun, karena kami memperbaiki beberapa variabel di setiap langkah, ini adalah prosedur pencarian lokal yang tidak menjamin optimalitas.

Untungnya, masalah optimasi dalam langkah 2 dan 3 dapat diselesaikan dalam bentuk tertutup. Jika kita tahu (yaitu jika kita tahu ke cluster mana setiap titik ditugaskan), nilai terbaik untuk yxijyjyjxijyj


2

Contoh sederhana mungkin membantu ..

Mari kita mendefinisikan set poin yang akan dikelompokkan sebagai A = {1,2,3,4}.

Katakanlah Anda mencoba menemukan 2 klaster yang sesuai untuk A (2-berarti). Ada (setidaknya) dua pengaturan berbeda yang memenuhi kondisi stasioner k-means.

Pengaturan 1:

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

Di sini tujuannya adalah 2. Sebenarnya ini adalah titik pelana (coba center1 = 1 + epsilondan center1 = 1 - epsilon)

Pengaturan 1:

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

di sini tujuannya adalah 1/4.

Jika k-means akan diinisialisasi sebagai pengaturan pertama maka itu akan macet .. dan itu tidak berarti minimum global.

Anda dapat menggunakan varian dari contoh sebelumnya untuk membuat dua minimum lokal yang berbeda. Untuk A = {1,2,3,4,5}, pengaturan cluster1={1,2}dan cluster2={3,4,5}akan menghasilkan nilai objektif yang sama dengan cluster1={1,2,3}dancluster2={4,5}

Akhirnya, apa yang akan terjadi jika Anda memilih

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

[Ini sebelum @Peter menjawab]
Setelah diskusi kecil (di bagian komentar), saya merasa saya harus menjawab pertanyaan saya sendiri.

Saya percaya bahwa ketika saya sebagian membedakan fungsi obyektif sehubungan dengan satu centroid, titik-titik dalam cluster centroid lain lenyap dalam turunan. Jadi, centroid yang bisa kita dapatkan hanya akan meminimalkan jumlah jarak kuadrat dari hanya cluster tertentu.

@whuber menambahkan:

Itu sebagian, tetapi tidak benar-benar menjelaskan perilaku. Yang lebih penting adalah fakta bahwa penugasan poin ke centroid adalah bagian besar dari apa yang dilakukan k-means. (Setelah tugas dibuat, centroid dengan mudah dihitung dan tidak ada yang tersisa untuk dilakukan.) Tugas itu terpisah: itu bukan sesuatu yang dapat dibedakan sama sekali.

Akan luar biasa jika ada yang menambahkan.


0

Semua orang telah menjelaskan semuanya, tetapi saya ingin menambahkan bahwa jika data sampel tidak didistribusikan sebagai distribusi Gaussian, maka data tersebut dapat menempel ke minimum lokal. Dalam algoritme K-means kami sebenarnya berusaha untuk mendapatkannya.


Daripada Gaussian, saya pikir Anda maksud "unimodal"
Peter Leopold
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.