Memahami dan Menerapkan model Proses Dirichlet


11

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;

Saya tidak mengerti apa yang menyesatkan judul tulisan Chen. Dia menggunakan DP-GMM dari scikit, ya.
Anne van Rossum

Halaman Yee Whye Teh: stats.ox.ac.uk/~teh/npbayes.html memiliki beberapa tutorial yang bagus selain implementasi matlab dari sampler Gibbs yang runtuh untuk Dirichlet Process Mixture Model (DPMM).
Vadim Smolyakov

Jawaban:


5

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)

p(θ1,,θN)=dP(G)i=1NG(θi)

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 .GG

Jika

GDP(α,H)

kemudian

p({θ(z=0)0,,θ(z=0)n0},,{θ(z=k)0,,θ(z=k)nk})=αkΓ(α)Γ(α+n)i=0kΓ(ni)

Catat itu p(θ1,,θN)dijelaskan oleh CRP melalui probabilitas untuk partisi tertentu. Siniz=i menunjukkan indeks tabel i. Danni adalah jumlah pelanggan di meja i. Demi kelengkapan, ingat bahwaDP adalah:

{G(A1),,G(Ak)}Dirichlet(αH(A1),,αH(Ak))

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:GtDP(α,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.

  • [1] : Tutorial Model Bayesian Nonparametric (2011) Gershman dan Blei
  • [2] : Proses Restoran Tiongkok Jarak Jauh (2011) Blei dan Frazier
  • [3] : Proses Beta Hirarkis dan Proses Prasmanan India (2007) Thibaux dan Jordan

Bisakah Anda menjelaskan lebih lanjut tentang apa θ(z=i)ni adalah dan bagaimana persamaan itu αkΓ(α)Γ(α+n)i=0kΓ(ni)diturunkan?
Daeyoung Lim

Itu adalah ni parameter cluster i. Derivasi ini dapat Anda temukan di math.stackexchange.com/questions/709959/… dan dapat diperoleh dengan mengintegrasikan senyawa N-kategori-dirichlet. Perpanjangan proses yang dapat Anda baca di blog saya di annevanrossum.com/blog/2015/03/03/sampling-of-dirichlet-process . Ini menggunakan kertas teknologi Neal dan saya pikir itu adalah derivasi paling rinci yang dapat Anda temukan online.
Anne van Rossum

2

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:


1

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_componentsparameter, 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


terima kasih lakukan balasannya. Saya melihat ke tautan kedua Anda dan bagi saya ia belum menggunakan DP dalam contohnya. Bagaimanapun, ini adalah semacam k-means. Mari terus perbarui posting ini dengan meletakkan paket / deskripsi yang bermanfaat.
user4581

Aku berpikir hal yang sama. Dalam kode, dia memang merujuk dirichletClusters, jadi saya pikir mungkin saya salah. Tapi saya juga tidak melihat DP di dalamnya ...
Tom

Lihat video ceramah ini oleh Teh sendiri: videolectures.net/mlss09uk_teh_nbm Sekitar menit ke-43 ada beberapa persamaan yang menurut saya sangat membantu!
Tom

untuk memperbarui Anda, ada paket R, yang disebut LANGSUNG. memiliki implementasi DP yang sangat jelas! Saya mulai membaca kode dan mendidik diri saya sendiri! Saya sarankan Anda untuk melihatnya
user4581

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.