🔮 GMM 高斯混合模型 · iPAS 常考
GMM 高斯混合模型:用「機率」分群,還能畫出橢圓
GMM 假設資料是好幾座鐘形山丘(高斯分布)疊出來的。它不逼每個點二選一,而是給「70% 像 A 群、30% 像 B 群」這種機率——這叫軟分群,靠 EM 演算法求解。
軟分群高斯分布EM 演算法共變異橢圓AIC · BIC 選 K
🌄 一、先用白話講:GMM 在做什麼?
把資料想成「好幾座鐘形山丘疊在一起」,每座山丘就是一群。
GMM 全名高斯混合模型(Gaussian Mixture Model)。它假設所有資料點,是由 K 個高斯分布(常態分布、鐘形曲線)混合而成。每座「鐘形山丘」代表一群,山頂最密、越往外越稀。
🧍 生活比喻:一群人的身高
一個班的身高分布,其實是「男生一座鐘形 + 女生一座鐘形」疊起來的。中間 168 公分的人,可能是高個女生、也可能是矮個男生——K-means 會逼你二選一,GMM 則說「這人 65% 像男生群、35% 像女生群」。這種「給機率、不硬分」就是軟分群(soft clustering)。
⚖️ 二、和 K-means 比一比
GMM 常被當成「K-means 的進階版」,差別主要在這幾點:
| 比較 | K-means | GMM |
| 分群方式 | 硬分群:一點只屬一群 | 軟分群:給每群一個機率 |
| 群的形狀 | 只能球形(圓) | 可橢圓、可旋轉(靠共變異 Σ) |
| 判斷依據 | 到中心的距離 | 機率密度(離哪座山丘的機率高) |
| 群大小 | 假設差不多大 | 可不同大小、不同權重 |
| 要先定群數? | 要(k) | 要(成分數 K) |
🧠 一句話
其實 K-means 可看成 GMM 的特例:當每群都強制為「正圓、硬分配」時,GMM 就退化成 K-means。GMM 多了「橢圓形狀 + 機率歸屬」的彈性。
🎛️ 三、每座高斯山丘的三個參數
μ 均值(中心)山丘的頂點在哪、群的中心位置。
Σ 共變異矩陣(形狀)決定山丘是圓是扁、橢圓的胖瘦與旋轉方向。這是 GMM 比 K-means 強的關鍵。
π 混合係數(份量)這群佔整體的「權重」,所有群的 π 加起來=1。
🔄 四、求解神器:EM 演算法
這是個「雞生蛋」難題:不知道每點屬於哪群,也不知道每群長什麼形狀。EM 就用「先猜、再互相修正」的方式逼近答案。
E
E-Step(期望步驟 · 軟分類)
先固定各高斯的形狀,算每個點屬於各群的「責任機率 γ」(Responsibility)。
$$ \gamma(z_{nk}) = \frac{\pi_k\, N(x_n \mid \mu_k, \Sigma_k)}{\sum_{j=1}^{K} \pi_j\, N(x_n \mid \mu_j, \Sigma_j)} $$
白話:看這個點離哪座山丘近,給出機率(例如 70% 紅、30% 藍)。
M
M-Step(最大化步驟 · 更新參數)
用剛算出的責任機率當權重,回頭更新每群的中心 μ、形狀 Σ、份量 π。
$$ \mu_k^{new} = \frac{1}{N_k} \sum_{n=1}^{N} \gamma(z_{nk})\, x_n $$
$$ \Sigma_k^{new} = \frac{1}{N_k} \sum_{n=1}^{N} \gamma(z_{nk})\,(x_n - \mu_k^{new})(x_n - \mu_k^{new})^T $$
白話:依點的權重把中心移過去,再依分散程度把圓圈拉成橢圓。
♻️ 反覆到收斂
E → M → E → M……每一輪整體的「對數似然(log-likelihood)」都會上升,直到幾乎不再變化,就停。和 K-means 的「指派→更新中心」其實是同一種精神。
🎮 五、動手玩:看橢圓一步步貼合資料
依序點 ①→②→③,或直接按「自動執行」。看那三個橢圓(高斯)如何從亂猜的大圓,慢慢縮放、旋轉、貼合三團資料;點的顏色=它責任機率最高的那群。
迭代次數: 0
狀態: 請生成數據
🗺️ 怎麼看
① 生成三團(含傾斜的橢圓團);② 初始化會丟出三個亂放的大圓;③ 每按一次 Step 跑一輪 EM——橢圓會移動、縮放、旋轉去貼合資料,點會依「最像哪群」變色。注意它如何學出傾斜的橢圓,這正是 K-means 做不到的。
🔢 六、要分成幾群(成分數 K)?
💪 用 AIC / BIC 挑
和 K-means 一樣要先決定群數。GMM 因為是機率模型,可用
AIC 或
BIC:兩者都在「擬合得多好」與「模型多複雜(參數多寡)」間取捨,
挑使 AIC/BIC 最小的 K。BIC 對複雜度懲罰較重、偏好較精簡的模型。詳見
AIC / BIC。
⚠️ 七、限制與陷阱
對初始值敏感可能收斂到局部最佳,結果隨起點而異 → 用多次隨機初始化取最好的。
要先指定 K成分數設錯,分群就走樣。
非高斯資料擬合差資料形狀嚴重不是鐘形(如環狀),GMM 會吃力 → 改用 DBSCAN 等。
可能退化崩塌某群塌縮到單點(共變異趨近 0)→ 加正規化避免。
🛠️ 八、實務都用在哪?
📌 GMM 的舞台
重疊的群(邊界模糊、需要機率歸屬)、密度估計(描述資料整體分布)、異常偵測(機率密度極低的點視為異常)、以及語音辨識、影像分割等。凡是「要的不只是分到哪群,還要有多確定」的場景,就適合 GMM。
🧪 九、觀念自我檢測
先想再點開。
Q1. GMM 和 K-means 最大的差別?
GMM 是軟分群(給每群機率)且能學橢圓形狀;K-means 是硬分群、只能球形。
Q2. EM 演算法的兩個步驟在做什麼?
E-step:固定形狀,算每點屬各群的責任機率;M-step:用責任當權重,更新各群的 μ、Σ、π。反覆到收斂。
Q3. 共變異矩陣 Σ 決定了什麼?
群的形狀——是圓還是橢圓、胖瘦,以及旋轉方向。這是 GMM 比 K-means 有彈性的關鍵。
Q4. 怎麼決定成分數 K?
常用 AIC/BIC,挑使資訊準則最小的 K,在擬合度與複雜度間取捨。
✅ 十、30 秒重點整理
GMM=K 座高斯混合每座鐘形山丘是一群。
軟分群給機率,不硬分;可學橢圓。
三參數μ 中心、Σ 形狀、π 份量。
EM 求解E 算責任、M 更新參數,循環收斂。
選 K 用 AIC/BIC最小者佳。
限制初始值敏感、需定 K、非高斯吃力。
📝 iPAS 考點提醒
高斯混合模型(GMM)是軟分群與密度估計法,iPAS 中級科目三考點。重點:假設資料由多個高斯分布混合而成,用 EM 演算法估計,並給每點屬於各群的機率(軟歸屬)。易混點:K-means 是硬分群(每點只屬一群)、GMM 是軟分群(機率),且能描述橢圓形群(K-means 只球狀);需先指定群數。情境:重疊群、要機率歸屬或做密度估計。
想練情境題與詳解 → AI 學習與考證地圖
❓ 常見問題
GMM 是什麼?
高斯混合模型,假設資料由多個高斯分布混合而成;每個高斯代表一群,用機率描述每筆資料屬於各群的程度,屬軟分群。
GMM 和 K-means 差在哪?
K-means 是硬分群(一點只屬一群)、假設球形且大小相近;GMM 是軟分群(給機率)、可學橢圓形狀(含共變異),更有彈性。
GMM 怎麼訓練?
用 EM 演算法:E 步算每點屬各高斯的責任機率,M 步用這些機率更新各高斯的均值、共變異與權重,反覆到收斂。
怎麼決定要幾個成分?
常用 AIC 或 BIC,在擬合度與模型複雜度間取捨,挑使資訊準則最小的成分數。
GMM 的限制?
對初始值敏感、可能收斂到局部最佳(用多次初始化緩解);成分數需先指定;資料嚴重非高斯時擬合不佳。