Saya mencoba menerapkan dan mempelajari Proses Dirichlet untuk mengelompokkan data saya (atau ketika orang belajar mesin berbicara, perkirakan kepadatannya).
Saya membaca banyak makalah di topik dan semacam mendapat ide. Tapi saya masih bingung; di sini adalah serangkaian pertanyaan,
1) Apa perbedaan antara Chinese Restaurant Model dan DP? 2) Apa perbedaan antara Model Campuran Tak Terbatas dan DP?
Untuk sepenuhnya memahami segalanya, saya telah menerapkan Chinese Restaurant Model, model Polya Urn dan Stick-breaking; Tapi sepertinya, menerapkan DP dari awal adalah hal yang sulit dilakukan! Saya bisa membaca dan menulis python, R, Matlab.
1) Apakah ada kode yang Anda rekomendasikan untuk dibaca dan diperbaiki agar sepenuhnya memahami / bekerja / mengembangkan DP? 2) Berdasarkan penelitian saya, kode, untuk Proses Dirichlet tidak mudah dibaca! sangat panjang, panjang (mungkin karena efisiensi lebih penting daripada kejelasan itu). 3) Namun, ada lebih banyak kode pada Model Campuran Tak Terbatas daripada Proses Dirichlet. Jika kedua metode ini tidak jauh dari satu sama lain, bisakah saya menggunakan IMM ?! Pada dasarnya, saya ingin membangun model baru saya, dan saya tidak ingin menemukan kembali roda.
Saya menghargai komentar Anda
- DIPERBARUI sejak banyak orang merekomendasikan tutorial Edwin Chen tentang "Model Campuran Tak Terbatas dengan Bayes Non-parametrik dan DP" ; Tutorial ini memiliki judul yang menyesatkan; Ini hanya mencakup berbagai representasi DP, spesifisitas, CPR, stick-breaking, Model Polya-Mm; dan pada akhirnya dia menggunakan Model Campuran dari scikit dan membuat beberapa histogram pada setiap cluster;
sumber
Jawaban:
Apa perbedaan antara DP dan CRP?
Chinese Restaurant Process (CRP) adalah distribusi melalui partisi bilangan bulat . Koneksi ke Proses Dirichlet (DP) ada berkat teorema De Finetti.
Teorema De Finetti: Misalkan kita memiliki proses acak yang dapat dipertukarkan tanpa batas , maka probabilitas gabungan memiliki representasi sebagai campuran:(θ1, ... ,θN) p (θ1, ... ,θN)
untuk beberapa variabel acak .G
The dipertukarkan properti berarti bahwa kita tidak peduli tentang baik indeks dari tabel (kita tidak nama tabel) dan kami tidak peduli tentang urutan pelanggan di meja tertentu. Partisi pelanggan ke dalam set yang berbeda adalah satu-satunya struktur yang kami tertarik. Ini berarti bahwa mengingat sebuah partisi kita tidak perlu mengetahui penugasan khusus pelanggan ke tabel, kita hanya perlu mengetahui jumlah pelanggan di setiap tabel.
Teorema de Finetti ini tidak membantu dalam menemukan distribusi . Hanya menyatakan bahwa itu harus ada.G
Proses Dirichlet adalah pendahuluan dari distribusi . Secara informal, Anda memasukkan distribusi probabilitas dan ketika Anda mengambil sampel darinya, Anda akan mendapatkan distribusi probabilitas setelah distribusi probabilitas.
Hubungan antara keduanya dapat dibangun dengan membuktikan bahwa jika diambil sampelnya dari Proses Dirichlet, persamaan dalam teorema De Finetti berlaku untuk tertentu .G G
Jika
kemudian
Catat itup (θ1, ... ,θN) dijelaskan oleh CRP melalui probabilitas untuk partisi tertentu. Siniz= i menunjukkan indeks tabel saya . Dannsaya adalah jumlah pelanggan di meja saya . Demi kelengkapan, ingat bahwaD P adalah:
Saya pikir jelas dari paparan ini bahwa koneksi itu ada, tetapi tidak boleh dianggap sepele. Perhatikan juga bahwa saya tidak menggambarkan CRP dalam arti distribusi bersyarat atas pelanggan individu yang masuk. Ini akan menambah langkah konseptual lain antara CRP dan DP. Saran saya: merasa bebas tentang merasa tidak nyaman dengan memahami secara langsung hubungan mereka dan mulai bermain-main dengan menggambarkan distribusi bersama dan marjinal sampai Anda mereproduksi koneksi. CRP diperoleh dengan meminggirkanG dari DP.
Untuk hubungan antara probabilitas gabungan dan deskripsi sekuensial CRP, lihat [1].
Bagaimana jika pertukaran tidak berlaku? Jika pertukaran tidak berlaku, kita tidak berbicara lagi tentang DP atau CRP, tetapi tentang Proses Dirichlet Tergantung dan Proses Restoran Cina Tergantung. Dan tentu saja, hubungan di antara mereka hilang!
Lihat [2] untuk detailnya. CRP Dependent menjelaskan pelanggan mana yang ingin duduk dengan (lajang) lainnya. Dengan mengelompokkan semua hubungan pelanggan-pelanggan, kami dapat menetapkan sebuah tabel. Dependent CRP tidak sedikit berbeda: probabilitas partisi saat mengeluarkan pelanggan juga tergantung pada pelanggan tersebut. Sebaliknya, Dependent DP sering didefinisikan oleh yang sangat marjinal ini:Gt∼ D P( α , H) . SiniH misalnya distribusi Dirichlet itu sendiri atau distribusi apa pun yang menyebabkannya Gt dan Gt′ untuk berhubungan.
Ada banyak generalisasi yang mungkin, beberapa dari mereka akan mengakui representasi atas partisi serta distribusi, seperti Proses Restoran Cina dengan dua parameter dengan Proses Pitman-Yor, atau Proses Prasmanan India dengan Proses Beta [3] . Beberapa dari mereka tidak mau.
sumber
1) Apa perbedaan antara Chinese Restaurant Model dan DP?
Tidak ada CRP adalah representasi khusus dari DP. Bergantung pada masalah Anda, Anda mungkin ingin menggunakan satu representasi di atas yang lain (CRP, Stick-breaking, dll).
2) Apa perbedaan antara Model Campuran Tak Terbatas dan DP?
DP hanya digunakan sebagai pendahuluan untuk Model Campuran Tak Terbatas. Inilah sebabnya mengapa Model Campuran Gaussian Tak Terbatas juga disebut DP-GMM. Sebenarnya makalah pertama pada subjek adalah "The Infinite Gaussian Mixture Model" (Rasmussen, 1999)
3) Implementasi
Saya sebenarnya mencoba menerapkan kertas Rasmussen untuk kasus multivarian dengan Python. (Dia menggunakan sampling Gibbs, yang lebih sederhana dari perkiraan Variational Inference). Sementara itu, saya menemukan:
Posting yang sangat bagus oleh Edwin Chen: Infinite Mixture Models dengan Nonparametric Bayes dan Prosesch Dirichlet
Pengantar IGMM oleh Frank Wood / Gentle Introduction to Infinite Gaussian Mixture Modelling
Upaya untuk mengimplementasikan IGMM oleh Michael Mander: Menerapkan GMM Infinite . Dia melaporkan beberapa masalah dalam kasus multivariat. Tapi ini adalah pada tahun 2005. Saya tidak yakin apakah itu sudah usang dan masalahnya diselesaikan dalam posting Chen atau dalam lebih baru kertas Rasmussen Dirichlet Proses Gaussian Mixture Models: Pilihan Distribusi Basis (. Saat ini saya melihat ini)
sumber
Saya berjuang dengan hal yang sama. Melalui forum ini saya menemukan beberapa petunjuk:
http://scikit-learn.org/stable/modules/generated/sklearn.mixture.DPGMM.html
http://statistic-research.com/dirichlet-process-infinite-mixture-models-and-clustering/
Yang pertama adalah implementasi scikit-belajar dari campuran tak terbatas Gaussi multivarian (jangan ditunda oleh
n_components
parameter, meskipun saya tidak yakin mengapa itu ada di sana ...).Yang terakhir berisi beberapa kode dalam R dan memodelkan hal-hal dalam mode K-means (saya mendapatkan kesan), tetapi tanpa menentukan K (tentu saja ;-)).
Jika Anda menemukan paket / deskripsi bermanfaat lainnya, silakan kirim!
Tom
sumber
dirichletClusters
, jadi saya pikir mungkin saya salah. Tapi saya juga tidak melihat DP di dalamnya ...Kode yang sangat dimengerti oleh Jacob Eisenstein tersedia untuk Matlab di https://github.com/jacobeisenstein/DPMM . Ini didasarkan pada Disertasi "Model Grafis untuk Pengenalan dan Pelacakan Objek Visual" oleh EB Sudderth.
sumber