1. 计算每个高斯分布的责任度
责任度(Responsibility) 表示数据点 由第 k 个高斯分布生成的概率占总概率的比例。在 E步(Expectation Step) 中计算。
公式:
其中:
- : 责任度,表示数据点 属于第 k 个高斯分布的概率
- : 第 k 个高斯分布的混合权重(满足 )
- : 高斯分布的概率密度函数 (PDF)
- : 第 k 个高斯分布的均值向量
- : 第 k 个高斯分布的协方差矩阵
- K: 高斯分布的数量
2. 使用责任度更新GMM参数
在 M步(Maximization Step) 中,使用上一步计算得到的责任度 更新混合高斯模型的参数,包括 混合权重、均值 和 协方差矩阵。
(1) 更新混合权重
- : 第 k 个高斯分布的混合权重
- N: 数据点的总数
解释: 每个 代表数据点 由第 k 个分布生成的“责任”,将所有数据点的责任求和并平均即可得到新的混合权重。
(2) 更新均值
- : 第 k 个高斯分布的均值
- : 数据点 属于第 k 个高斯分布的责任
解释: 使用每个数据点对第 k 个分布的“贡献”(即 ),通过加权平均来更新均值。
(3) 更新协方差矩阵
- : 第 k 个高斯分布的协方差矩阵
- : 数据点
- : 第 k 个高斯分布的均值
- : 数据点 属于第 k 个高斯分布的责任
解释: 使用责任度加权后的平方误差,计算第 k 个高斯分布的协方差。
EM算法的完整步骤(总结)
-
初始化参数:随机初始化混合权重 、均值 和协方差矩阵 。
-
E步(Expectation Step):
计算每个数据点 属于第 k 个高斯分布的责任度 : -
M步(Maximization Step):
更新混合权重 、值 和协方差矩阵 : -
重复:
重复执行 E步 和 M步,直到参数收敛(例如,似然函数的值不再显著变化)。