Apa itu model campuran Gaussian?

Penulis

Joshua Noble

Data Scientist

Definisi model campuran Gaussian

Model campuran Gaussian (GMM) adalah model probabilistik yang merepresentasikan data sebagai kombinasi beberapa distribusi Gaussian, masing-masing dengan rata-rata dan variansnya sendiri, yang diberi bobot dengan koefisien campuran. GMM umumnya digunakan untuk pengelompokan dan estimasi kepadatan, karena mereka dapat menangkap distribusi multimodal yang kompleks di mana titik data secara alami dapat mengelompokkan di sekitar pusat yang berbeda daripada rata-rata tunggal.

Distribusi Gaussian tunggal, disebut juga “distribusi normal”, menggambarkan berbagai jenis fenomena alam. Distribusi tinggi siswa di ruang kelas, berat bayi yang baru lahir, dan masa pakai komponen mesin sering kali merupakan distribusi Gaussian.

Namun, distribusi Gaussian tunggal tidak cocok untuk memodelkan kumpulan data dengan beberapa klaster data atau yang memiliki kemiringan signifikan atau ekor tebal. Dalam kasus ini, GMM mungkin lebih tepat.

GMM menggunakan pembelajaran tanpa pengawasan untuk menghasilkan model probabilistik yang mengasumsikan data dihasilkan dari kombinasi beberapa distribusi Gaussian. Alih-alih mengasumsikan semua data berasal dari satu distribusi normal (satu model Gaussian), GMM mengasumsikan bahwa terdapat beberapa distribusi normal, masing-masing menunjukkan "klaster" atau "subpopulasi" yang berbeda dalam kumpulan data, dan masing-masing memiliki mean dan variansnya sendiri.

Dalam kasus siswa, bayangkan ketinggian dengan distribusi bimodal, tetapi identitas gender siswa tidak diketahui. Dalam kasus suku cadang mesin, bayangkan suku cadang tersebut mungkin berasal dari dua pemasok yang berbeda, salah satunya membuat suku cadang yang berkualitas lebih tinggi daripada yang lain. Dalam kedua kasus tersebut, akan sangat berguna untuk menghitung di subpopulasi mana sebuah titik data berada dan karakteristik dari subpopulasi tersebut.

Tren AI terbaru, dipersembahkan oleh para pakar

Dapatkan kurasi insight tentang berita AI yang paling penting dan menarik. Berlangganan buletin Think mingguan. Lihat Pernyataan Privasi IBM.

Terima kasih! Anda telah berlangganan.

Langganan Anda akan dikirimkan dalam bahasa Inggris. Anda akan menemukan tautan berhenti berlangganan di setiap buletin. Anda dapat mengelola langganan atau berhenti berlangganan di sini. Lihat Pernyataan Privasi IBM kami untuk informasi lebih lanjut.

Cara kerja model campuran Gaussian

GMM memiliki banyak aplikasi dunia nyata selain pengelompokan: segmentasi, estimasi kepadatan, deteksi anomali, dan pengenalan pola semuanya dapat diperkirakan oleh GMM.

Berikut adalah distribusi menantang yang jelas bukan Gaussian:

Distribusi non-Gaussian Distribusi non-Gaussian

Seseorang dapat mencoba menemukan persamaan kurva ini dengan menggunakan pendekatan polinomial atau perkiraan trigonometri, tetapi GMM menawarkan alternatif kuat yang tidak terlalu menuntut dari sudut komputasi. Distribusi ini sebenarnya adalah tiga distribusi Gaussian berbeda yang digabungkan:

Distribusi sebelumnya diuraikan menjadi tiga distribusi Gaussian Distribusi sebelumnya diuraikan menjadi tiga distribusi Gaussian

GMM akan menguraikan distribusi di atas menjadi tiga distribusi Gaussian yang berbeda dan menghitung parameter untuk masing-masing distribusi. Distribusi yang ditunjukkan di atas memiliki satu dimensi, tetapi GMM berfungsi untuk distribusi dimensi yang lebih tinggi juga. 2D campuran dari dua Gaussian dapat diuraikan menjadi dua distribusi berbeda.

Gaussian 2 dimensi dibuat menggunakan Plot Kontur Gaussian 2 dimensi dibuat menggunakan Plot Kontur

 

Ketika digunakan sebagai algoritma pengelompokan, setiap Gaussian dalam model campuran memiliki tiga parameter utama:

  • Vektor rata-rata (μ): pusat klaster. Dalam distribusi 1D, ini akan menjadi vektor bernilai tunggal. Dalam distribusi n-dimensi, ini akan menjadi vektor bernilai n.

  • Matriks kovarians (Σ): ini adalah sebaran/bentuk Gaussian itu sendiri. Dalam distribusi 1D, ini akan menjadi nilai tunggal, dalam distribusi n-dimensi akan menjadi matriks n x n.

  • Bobot campuran (π): ini adalah probabilitas bahwa titik data yang dipilih secara acak dihasilkan oleh komponen. Ini sebenarnya bukan fitur dari distribusi Gaussian itu sendiri, tetapi lebih kepada modelnya, karena menggabungkan distribusi Gaussian yang berbeda untuk menunjukkan data yang sesuai.

 

Mixture of Experts | 12 Desember, episode 85

Decoding AI: Rangkuman Berita Mingguan

Bergabunglah dengan panel insinyur, peneliti, pemimpin produk, dan sosok kelas dunia lainnya selagi mereka mengupas tuntas tentang AI untuk menghadirkan berita dan insight terbaru seputar AI.

Memodelkan GMM

Tujuan dari GMM adalah untuk memperkirakan parameter dari setiap distribusi Gaussian dalam model dan di distribusi Gaussian yang mana setiap titik data berada. Variabel laten, sering disebut sebagai z, adalah komponen Gaussian yang mana, dari semua komponen yang diidentifikasi dalam model, yang menghasilkan titik data tertentu. Variabel ini “laten” karena merupakan variabel tersembunyi (atau tidak teramati) yang dapat dipelajari dari model.

Untuk setiap titik xn, terdapat  zn  (di mana n adalah jumlah komponen) yaitu Gaussian yang menghasilkan  xi  (i dalam hal ini adalah jumlah titik data).  zn  tidak pernah diamati dalam data, hanya titik  xi . Selain itu, komponen Gaussian yang menghasilkan  xi , tidak dapat diamati. Sebaliknya, algoritma maksimalisasi harapan model menyimpulkan distribusi nilai z yang mungkin.

Setiap komponen Gaussian diberi bobot oleh koefisien campuran, yang menunjukkan estimasi seberapa besar setiap distribusi memengaruhi lokasi titik data tertentu. Dalam skenario pengelompokan, bobot campuran mencerminkan ukuran relatif dari setiap klaster. GMM menyatakan: untuk menemukan probabilitas x, bayangkan bahwa yang pertama secara acak memilih satu Gaussian menurut  πk , kemudian mengambil x dari Gaussian tersebut. Jadi  p(x) adalah campuran dari kepadatan komponen. Jika x dekat dengan beberapa rata-rata  μk , beberapa Gaussian dapat menetapkannya dengan probabilitas tinggi dan kontribusi mereka bertambah. Model lengkap adalah jumlah tertimbang dari distribusi probabilitas Gaussian ini.

Secara matematis, fungsi kerapatan probabilitas titik data  x  di bawah GMM dengan komponen K adalah:

 p(x)=k=1KπkN(xμk,Σk)

Untuk memecahnya:

 πk  adalah bobot campuran untuk komponen k campuran, yang merupakan estimasi seberapa besar kontribusi Gaussian k terhadap titik data.

 N(xμk,Σk) : adalah distribusi Gaussian dengan:

  •  μk  vektor rata-rata, yang dapat dianggap sebagai pusat Gaussian  k
     
  •  Σk matriks kovarians, yang menunjukkan “penyebaran dan orientasi” Gaussian  k     

Kepadatan probabilitas total pada  x  adalah  p(x)  yang merupakan jumlah tertimbang dari semua Gaussian.

Maksimalisasi ekspektasi

GMM paling sering dilatih menggunakan algoritma ekspektasi-maksimisasi (EM), yang secara berulang menetapkan probabilitas untuk setiap Gaussian yang disebut E-step dan memperbarui parameter setiap Gaussian yang disebut M-step.

EM adalah cara yang ampuh untuk memperkirakan parameter ketika algoritma seperti estimasi kemungkinan maksimum (MLE) sulit digunakan, misalnya, dalam kasus GMM. Di GMM, model hampir selalu dilatih menggunakan fungsi log-kemungkinan. Log-kemungkinan tersebut bersifat nonlinier dan sulit untuk dimaksimalkan secara analitis, yang berarti bahwa MLE tidak dapat memaksimalkan secara langsung. Selain itu, GMM memiliki variabel laten (bobot campuran) yang tidak dapat diamati secara langsung dalam data dan MLE tidak akan menemukannya ketika melakukan permutasi label.

Pendekatan lain, penurunan gradien stokastik (SGD), mensyaratkan bahwa fungsi objektif yang mendasarinya dapat dibedakan, yang mungkin tidak selalu dapat dilakukan. Selain itu, tidak seperti EM, SGD tidak dapat dengan mudah diparalelkan dan memerlukan sumber daya komputasi yang signifikan untuk data besar. Paralelisasi EM menggunakan pendekatan seperti map-reduce adalah pengoptimalan yang efisien.

EM terdiri dari empat langkah:

 1. Inisialisasi

Algoritma EM dimulai dengan nilai parameter awal yang diacak dan mengasumsikan bahwa data yang diamati berasal dari model yang dapat diperkirakan. Banyak implementasi GMM yang memungkinkan para praktisi untuk memilih berbagai inisialisasi seperti menetapkan tanggung jawab awal menggunakan K-mean, nilai acak, atau pengambilan sampel dari data pelatihan.

2. E-Step (langkah ekspektasi)

Kami menghitung probabilitas posterior, yang merupakan "penetapan lunak" dari titik data ke komponen. Mengingat tebakan parameter saat ini, ini pada dasarnya menanyakan “berapa banyak setiap Gaussian 'memiliki' setiap titik data?”

Pertama, probabilitas posterior setiap variabel laten dihitung berdasarkan data yang diamati. Probabilitas bahwa zi=k , yaitu bahwa  xi  termasuk dalam komponen k-th, dapat dihitung menggunakan aturan Bayes:

 P(Zi=kxi;θ)=p(xiZi=k;θ)P(Zi=k;θ)p(xi;θ)

Selanjutnya, log-kemungkinan dari data yang diamati dihitung menggunakan perkiraan parameter saat ini. Log-kemungkinan yang diharapkan sehubungan dengan distribusi variabel laten sekarang dapat ditulis sebagai berikut:

 Q(θ,θold)=i=1nk=1Kγ(zik)log[wkN(xi;μk,Σk)]

Fungsi Q adalah jumlah tertimbang dari log-kemungkinan dari semua titik data di bawah setiap komponen Gaussian, dengan bobot sebagai tanggung jawab. Log-kemungkinan menghitung seberapa besar kemungkinannya dengan nilai estimasi untuk setiap komponen Gaussian, bahwa titik data dapat muncul dari distribusi tersebut. Ini berbeda dengan kemungkinan data yang diamati di bawah model campuran secara keseluruhan. Sebaliknya, fungsi Q ini menunjukkan log-kemungkinan yang diharapkan dari data yang diamati dan estimasi distribusi variabel laten.

3. Langkah M (langkah maksimalisasi)

M-Step memperbarui tiga nilai berbeda untuk setiap distribusi Gaussian:

  • Pembaruan rata-rata biasanya ditunjukkan sebagai  μknew 

  • Memperbarui matriks kovarians, biasanya ditunjukkan sebagai  Σknew 

  • Memperbarui berat campuran, biasanya ditunjukkan sebagai  wknew

Langkah selanjutnya adalah memperbarui parameter model dengan memaksimalkan log-kemungkinan model yang menghasilkan data. Semakin baik modelnya, semakin tinggi nilai ini.

 μknew=i=1nγ(zik)xii=1nγ(zik)

Artinya, rata-rata baru dari komponen k -th adalah rata-rata tertimbang dari semua titik data, dengan bobot sebagai probabilitas bahwa semua titik ini termasuk dalam komponen k .

 Σknew=i=1nγ(zik)(xi-μknew)(xi-μknew)i=1nγ(zik)

Ini menunjukkan bagaimana kovarians baru dari komponen  k  adalah rata-rata tertimbang dari deviasi kuadrat setiap titik data dari rata-rata komponen, di mana bobotnya adalah probabilitas dari titik-titik yang ditetapkan pada komponen tersebut.

Terakhir, M-Step memperbarui bobot campuran:

 wknew=1ni=1nγ(zik)

Bobot baru dari komponen k -th adalah probabilitas total dari titik-titik yang termasuk dalam komponen ini, dinormalisasi oleh jumlah titik n .

4. Konvergensi

Terakhir, EM memeriksa bahwa parameter model stabil dan memusat. Jika perubahan dalam log-kemungkinan atau parameter berada di bawah ambang batas yang ditetapkan, algoritma akan berhenti. Jika tidak, EM akan mengulangi iterasi langkah 2 dan 3 sampai konvergensi tercapai.

Singkatnya, algoritma EM terdiri dari dua langkah yang diulang secara iteratif. Pertama, E-step menghitung bobot campuran semua Gaussian untuk setiap titik data. Kemudian M-step menggunakan bobot campuran yang diperbarui tersebut untuk memperkirakan kembali parameter untuk setiap Gaussian. EM kemudian membandingkan perubahan dalam log-kemungkinan dan jika berada di bawah ambang batas yang ditetapkan, mengasumsikan konvergensi dan berhenti melakukan iterasi.

Membandingkan GMM

GMM sangat efisien tetapi bergantung pada asumsi Gaussian. Agar GMM menunjukkan data dengan baik, klaster harus berbentuk elips dan kepadatan di seluruh klaster halus. Klaster yang tidak berbentuk elips atau data dengan bagian yang sangat padat dan jarang mungkin tidak ditunjukkan dengan baik oleh GMM.

Ketika digunakan untuk pengelompokan, GMM mirip dengan pengelompokan k-mean tetapi memiliki beberapa perbedaan utama. Pertama, tidak seperti k-mean yang menetapkan setiap titik ke satu klaster, GMM memberikan probabilitas titik data termasuk dalam setiap klaster. Ini disebut "pengelompokan lunak." Karena klaster dapat berbentuk elips dan tumpang tindih, GMM sering kali lebih fleksibel dan memungkinkan lebih banyak ketidakpastian dalam batas klaster.

GMM tidak berfungsi dengan baik untuk data biner atau kategori, tetapi pendekatan serupa menggunakan distribusi Bernoulli atau distribusi multinomial dapat memodelkan data dengan baik. Sebaliknya, semua model tersebut tidak akan memodelkan data yang terdiri dari variabel kontinu di mana GMM sering kali memodelkan data dengan baik.

Karena GMM mencoba memperkirakan parameter distribusi Gaussian, beberapa data akan lebih baik dimodelkan dengan menggunakan metode nonparametrik seperti estimasi densitas kernel (KDE). KDE tidak membuat asumsi apa pun tentang distribusi klaster atau subpopulasi, melainkan memperkirakan kepadatan pada kernel lokal kecil pada setiap titik data. Pendekatan ini berguna ketika data Anda terdiri dari distribusi kompleks tanpa mengasumsikan bentuk tertentu.

Perpanjangan dari GMM adalah variational autoencoder (VAE), yang merupakan model generatif yang mempelajari distribusi laten fleksibel. Dalam VAE, tujuan keseluruhannya sama, tetapi VAE tidak menggunakan EM. VAE menggunakan kerangka kerja encoder-decoder probabilistik untuk mempelajari representasi laten dengan cara yang sama seperti GMM menetapkan bobot campuran untuk setiap titik data. Perbedaan utamanya adalah bahwa EM mengharuskan probabilitas posterior dapat dihitung yang tidak berlaku pada VAE, membuatnya jauh lebih fleksibel. Komprominya adalah bahwa VAE sering kali lebih kompleks dan memakan waktu untuk melatih.
 

Contoh penggunaan GMM

Penjelas ini sangat berfokus pada pengelompokan karena memberikan pengantar intuitif tentang GMM, tetapi ada skenario lain di mana GMM dapat membantu. Rekayasa fitur, deteksi anomali, dan estimasi kepadatan, semuanya adalah tugas umum di mana GMM dapat bekerja dengan efektif.

Rekayasa fitur: meskipun beberapa algoritma machine learning seperti XGBoost dapat memungkinkan model untuk mempelajari berbagai distribusi fitur input, ada juga yang lebih ketat dalam persyaratannya. Regresi linier dan logistik, analisis diskriminan linier (LDA), dan distribusi Gaussian multivariat biasanya mengharapkan fitur terdistribusi secara normal dan mungkin tidak berfungsi dengan baik jika datanya multimodal. Ada alasan analitis dan visual lain yang berguna untuk menangani multimodalitas dan GMM dapat membantu.

Klasifikasi tanpa pengawasan: GMM bekerja mirip dengan algoritma K-mean tetapi memungkinkan penentuan probabilistik keanggotaan kelas, tidak seperti K-mean di mana output adalah metrik biner. Hal ini dapat sangat bermanfaat pada contoh penggunaan yang memerlukan ambang batas khusus untuk kategorisasi atau yang memerlukan output probabilistik.

Deteksi anomali: Distribusi Gaussian multivariat dapat digunakan untuk mengidentifikasi titik data yang memiliki probabilitas rendah untuk mengikuti satu atau lebih distribusi Gaussian. Dengan cara ini, GMM dapat membantu menemukan dua jenis anomali data: anomali yang merupakan outlier dari suatu populasi (misalnya, kesalahan dalam entri data) dan anomali yang membentuk kelompoknya sendiri (seperti perilaku penipuan kartu kredit).

GMM adalah model yang cocok untuk berbagai tugas yang dapat dilatih dengan cepat dan dioptimalkan dengan mudah. Meskipun memiliki beberapa keterbatasan dalam hal jenis data yang cocok untuk ditangani, namun dapat bermanfaat dalam berbagai macam tugas machine learning dan ilmu data.

Menerapkan GMM

Dalam Python, seseorang dapat menggunakan scikit-learn pustaka untuk membuat GMM dengan cepat:

from sklearn.datasets import make_blobs
from sklearn.mixture import GaussianMixture
from sklearn.metrics import accuracy_score

# create some clusters
X, y = make_blobs(n_samples=400, centers=3, cluster_std=0.75, random_state=0)

# fit the GMM
gmm = GaussianMixture(n_components=3).fit(X)

Memvisualisasikan hasil pengelompokan GMM:

# predict the labels themselves
labels = gmm.predict(X)

# print the accuracy
print(f" Accuracy is {accuracy_score(y, labels)}")

# scatterplot the X values
plt.scatter(X[:, 0], X[:, 1], c=labels, s=40, cmap='viridis')

Dalam R, paket yang disebut mclust yang merupakan singkatan dari pengelompokan berbasis model, dapat digunakan untuk membuat GMM.

# Install and load the 'mclust' package
library(mclust)

# create a matrix of data from normal distributions
data <- rbind(matrix(c(rnorm(50, mean = 0, sd = 1), rnorm(50, mean = 1, sd = 1.25)), ncol=2),
              matrix(c(rnorm(50, mean = 4, sd = 1), rnorm(50, mean = 2, sd = 1.25)), ncol = 2),
              matrix(c(rnorm(50, mean = 8, sd = 1.25), rnorm(50, mean = 4, sd = 0.75)), ncol = 2))

# Perform GMM clustering, G represents the number of expected clusters
gmm_model <- Mclust(data, G = 3)  

# Get the cluster assignments
cluster_assignments <- predict(gmm_model)$classification

# Visualize the results
plot(data, col = cluster_assignments, main = "GMM Clustering Results")
points(gmm_model$parameters$mean, col = 1:3)

Dalam Python dan R, pengembang perlu mengatur hiperparameter yang menentukan jumlah klaster sebagai parameter untuk GMM. Dalam hal KNN, strategi yang umum digunakan untuk memilih jumlah klaster ini adalah melatih model untuk jumlah klaster yang berbeda dan membandingkannya. Metrik yang paling sering digunakan untuk membandingkan model adalah:

Koefisien siluet: Ini ditentukan untuk setiap sampel dan terdiri dari dua skor: jarak rata-rata antara sampel dan semua titik lain dalam klaster yang sama dan jarak rata-rata antara sampel dan semua titik lain dalam klaster terdekat berikutnya.

Jensen-Shannon: Metode ini mengukur divergensi antara distribusi dan paling sering dihitung dengan terlebih dahulu menghitung divergensi Kullback-Leibler, rata-rata rasio log-kemungkinan atas sampel, kemudian mencari rata-rata dari dua nilai divergensi KL yang dihasilkan. Konsep kesamaan distribusi ditunjukkan oleh metrik Jensen-Shannon (JS). Semakin kecil jarak JS antara dua GMM, semakin banyak GMM yang setuju dengan cara memodelkan data.

Kriteria informasi Bayesian (BIC): memberikan estimasi seberapa baik model memprediksi data yang diseimbangkan oleh jumlah parameter yang ada di dalam model. Jika K terlalu kecil, maka nilai log-kemungkinan model akan rendah dan nilai BIC besar. Jika K terlalu besar, maka kemungkinannya akan tinggi tetapi penalti terhadap nilai yang lebih besar (dan dengan demikian overfitting) juga akan menghasilkan nilai BIC yang lebih besar.

Kriteria informasi Akaike (AIC)
: cara kerjanya sangat mirip dengan BIC, tetapi menghitung penalti yang lebih kecil untuk jumlah parameter.

Solusi terkait
IBM watsonx.ai

Latih, validasi, lakukan tuning, dan terapkan AI generatif, model dasar, dan kemampuan machine learning dengan IBM watsonx.ai, studio perusahaan generasi berikutnya untuk pembangun AI. Bangun aplikasi AI dalam waktu singkat, dengan sedikit data.

Temukan watsonx.ai
Solusi kecerdasan buatan (AI)

Gunakan AI di bisnis Anda dalam perpaduan antara keahlian AI terdepan di industri dari IBM dan portofolio solusi Anda.

Jelajahi solusi AI
Konsultasi dan layanan AI

Temukan kembali alur kerja dan operasi yang penting dengan menambahkan AI untuk memaksimalkan pengalaman, pengambilan keputusan secara real-time, dan nilai bisnis.

Jelajahi layanan AI
Ambil langkah selanjutnya

Dapatkan akses satu atap ke kemampuan yang mencakup siklus hidup pengembangan AI. Hasilkan solusi AI yang kuat dengan antarmuka ramah pengguna, alur kerja yang efisien, serta akses ke API dan SDK berstandar industri.

Jelajahi watsonx.ai Pesan demo langsung
Solusi terkait
IBM watsonx.ai

Latih, validasi, lakukan tuning, dan terapkan AI generatif, model dasar, dan kemampuan machine learning dengan IBM watsonx.ai, studio perusahaan generasi berikutnya untuk pembangun AI. Bangun aplikasi AI dalam waktu singkat, dengan sedikit data.

Temukan watsonx.ai
Solusi kecerdasan buatan (AI)

Gunakan AI di bisnis Anda dalam perpaduan antara keahlian AI terdepan di industri dari IBM dan portofolio solusi Anda.

Jelajahi solusi AI
Konsultasi dan layanan AI

Temukan kembali alur kerja dan operasi yang penting dengan menambahkan AI untuk memaksimalkan pengalaman, pengambilan keputusan secara real-time, dan nilai bisnis.

Jelajahi layanan AI
Ambil langkah selanjutnya

Jelajahi perpustakaan model dasar IBM dalam portofolio IBM watsonx untuk menskalakan AI generatif untuk bisnis Anda dengan penuh percaya diri.

Jelajahi watsonx.ai Jelajahi solusi AI