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.
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.
Dapatkan kurasi insight tentang berita AI yang paling penting dan menarik. Berlangganan buletin Think mingguan. Lihat Pernyataan Privasi IBM.
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:
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:
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.
Ketika digunakan sebagai algoritma pengelompokan, setiap Gaussian dalam model campuran memiliki tiga parameter utama:
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 (di mana n adalah jumlah komponen) yaitu Gaussian yang menghasilkan (i dalam hal ini adalah jumlah titik data). tidak pernah diamati dalam data, hanya titik . Selain itu, komponen Gaussian yang menghasilkan , 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 , kemudian mengambil x dari Gaussian tersebut. Jadi adalah campuran dari kepadatan komponen. Jika x dekat dengan beberapa rata-rata , 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 di bawah GMM dengan komponen K adalah:
Untuk memecahnya:
adalah bobot campuran untuk komponen k campuran, yang merupakan estimasi seberapa besar kontribusi Gaussian k terhadap titik data.
: adalah distribusi Gaussian dengan:
Kepadatan probabilitas total pada adalah yang merupakan jumlah tertimbang dari semua Gaussian.
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:
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.
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:
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:
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.
M-Step memperbarui tiga nilai berbeda untuk setiap distribusi Gaussian:
Langkah selanjutnya adalah memperbarui parameter model dengan memaksimalkan log-kemungkinan model yang menghasilkan data. Semakin baik modelnya, semakin tinggi nilai ini.
Artinya, rata-rata baru dari komponen -th adalah rata-rata tertimbang dari semua titik data, dengan bobot sebagai probabilitas bahwa semua titik ini termasuk dalam komponen .
Ini menunjukkan bagaimana kovarians baru dari komponen 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:
Bobot baru dari komponen -th adalah probabilitas total dari titik-titik yang termasuk dalam komponen ini, dinormalisasi oleh jumlah titik .
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.
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.
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.
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.
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.
Gunakan AI di bisnis Anda dalam perpaduan antara keahlian AI terdepan di industri dari IBM dan portofolio solusi Anda.
Temukan kembali alur kerja dan operasi yang penting dengan menambahkan AI untuk memaksimalkan pengalaman, pengambilan keputusan secara real-time, dan nilai bisnis.
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.
Gunakan AI di bisnis Anda dalam perpaduan antara keahlian AI terdepan di industri dari IBM dan portofolio solusi Anda.
Temukan kembali alur kerja dan operasi yang penting dengan menambahkan AI untuk memaksimalkan pengalaman, pengambilan keputusan secara real-time, dan nilai bisnis.