Gaussian Mixture Models, step by step


Dataset
Components (k)
Shape
Run

k-means-এর মতো একই দুটি ধাপ — তবে soft। k-means জিজ্ঞেস করে “কোন centroid সবচেয়ে কাছে?” এবং প্রতিটি পয়েন্টকে একটি বেছে নিতেই হয়। একটি mixture model জিজ্ঞেস করে “এই পয়েন্টটি component j থেকে আসার সম্ভাবনা কতটুকু?” আর উত্তরটি হলো কতগুলো ভগ্নাংশ যাদের যোগফল 1, যাদের বলা হয় responsibilitiesE-step প্রতিটি পয়েন্টের জন্য সেই ভগ্নাংশগুলো আবার হিসাব করে; M-step প্রতিটি component — তার weight, তার mean এবং তার covariance — সব পয়েন্ট ব্যবহার করে আবার fit করে, যেখানে প্রতিটি পয়েন্টের ওজন হয় ওই component সেটির কতটুকু মালিক তার ভিত্তিতে। পুরো অ্যালগরিদম এটুকুই। দুটি ধাপ: Expectation এবং Maximization।

যা চেষ্টা করে দেখার মতো:
1. Overlapping, k = 2। চালান, তারপর দুটি blob-এর মাঝের অংশটিতে তাকান: ওই পয়েন্টগুলো চিরকাল ঘোলাটেই থেকে যায়, কারণ সেগুলো সত্যিই দ্ব্যর্থক এবং model সেটাই বলছে। পয়েন্টগুলোর মাত্র 64% কখনো কোনো এক দিকে 90%-এর বেশি প্রতিশ্রুতিবদ্ধ হয় — Three blobs-এ সেই সংখ্যাটি 100%k-means-এর কাছে এই পার্থক্য প্রকাশ করার কোনো উপায় নেই: তাকে প্রত্যেকটিকেই কোনো এক দিকে তুলে দিতে হয়। mixture model ব্যবহারের পুরো কারণই এটি: অনিশ্চয়তাটুকুও উত্তরের অংশ

2. Elongated, k = 2। Full দিয়ে দুটি ellipse হেলে গিয়ে সিগারগুলোর দৈর্ঘ্য বরাবর শুয়ে পড়ে, আর প্রতিটি পয়েন্ট সঠিকটিতেই পড়ে। এবার Circular চেপে আবার চালান: গোল হতে বাধ্য হওয়ায় component-গুলো দুটি সিগারকে আলাদা করা বন্ধ করে দিয়ে সেগুলোর আড়াআড়ি কাটতে শুরু করে — মাত্র প্রায় 65% পয়েন্ট সঠিক গ্রুপে পড়ে, আর log-likelihood −1962 থেকে নেমে −2102 হয়। এটাই মোদ্দা কথা: k-means আসলে একটি mixture model, যার component-গুলো বৃত্তাকার ও সমান আকারের এবং assignment কঠোরk-means-এর তুলনায় GMM যা কিছু বাড়তি দেয়, সবই ওই একটি শব্দে — covariance।