高斯混合模型(GMM)的期望最大化(EM)算法求解过程
字数 1360 2025-11-05 08:30:59
高斯混合模型(GMM)的期望最大化(EM)算法求解过程
题目描述
高斯混合模型(GMM)是一种用多个高斯分布的加权和来描述数据分布的生成式模型,常用于聚类和密度估计。假设观测数据由K个高斯分布生成,但每个数据点具体来自哪个分布未知(隐变量)。目标是估计GMM的参数:每个高斯分布的权重、均值和协方差矩阵。期望最大化(EM)算法通过迭代优化解决此问题,分为E步(求隐变量的期望)和M步(最大化似然函数)。
解题过程
-
模型定义
- 设GMM有K个高斯分布,参数为θ = {π₁, μ₁, Σ₁, ..., π_K, μ_K, Σ_K},其中π_k是第k个分布的权重(满足∑π_k = 1),μ_k和Σ_k为均值和协方差。
- 数据X = {x₁, ..., x_N},隐变量Z = {z₁, ..., z_N},z_i表示x_i所属的分布类别(z_i ∈ {1, ..., K})。
- 联合概率分布为:
P(x_i, z_i | θ) = π_{z_i} · N(x_i | μ_{z_i}, Σ_{z_i}),
其中N(·)为多元高斯分布密度函数。
-
EM算法框架
EM算法通过迭代以下两步优化对数似然函数L(θ) = ∑_{i=1}^N log P(x_i | θ):- E步:基于当前参数θ^t,计算隐变量Z的后验分布P(Z | X, θ^t)。
- M步:基于E步的结果,更新θ^{t+1} = argmax_θ E_{Z|X,θ^t} [log P(X, Z | θ)]。
-
E步:求隐变量后验(响应度)
- 计算每个数据点x_i属于第k个分布的后验概率(响应度)γ_{ik}:
γ_{ik} = P(z_i = k | x_i, θ^t) = [π_k^t · N(x_i | μ_k^t, Σ_k^t)] / [∑_{j=1}^K π_j^t · N(x_i | μ_j^t, Σ_j^t)]。 - 响应度γ_{ik}满足∑{k=1}^K γ{ik} = 1,表示x_i对第k个分布的“归属程度”。
- 计算每个数据点x_i属于第k个分布的后验概率(响应度)γ_{ik}:
-
M步:更新模型参数
- 基于γ_{ik},更新权重、均值和协方差:
- 权重π_k:π_k^{t+1} = (1/N) ∑{i=1}^N γ{ik}。
- 均值μ_k:μ_k^{t+1} = (∑{i=1}^N γ{ik} x_i) / (∑{i=1}^N γ{ik})。
- 协方差Σ_k:Σ_k^{t+1} = (∑{i=1}^N γ{ik} (x_i - μ_k^{t+1})(x_i - μ_k^{t+1})^T) / (∑{i=1}^N γ{ik})。
- 更新后的参数使期望似然函数增大,且权重自动满足归一化约束。
- 基于γ_{ik},更新权重、均值和协方差:
-
迭代与收敛
- 重复E步和M步,直到对数似然L(θ)的变化小于阈值或达到最大迭代次数。
- 最终得到GMM的参数估计,同时隐变量γ_{ik}可用于软聚类(每个点属于各类的概率)。
关键点
- EM算法通过引入隐变量将优化问题转化为可迭代求解的凸问题。
- E步计算响应度实质是“软分配”,M步更新参数类似加权最大似然估计。
- 需注意初始化参数(如用K-means中心作为初始均值)以避免局部最优。