Model-based Clustering与EM算法

Model-based Clustering与K-means

Model-based clustering 是一种基于概率模型的方法,用来在数据中识别组或簇。与K-means等几何算法不同,模型基聚类假设数据来自多个不同的概率分布,并通过估计每个簇的概率分布来实现聚类。常见的方法包括高斯混合模型(GMM),其中假设每个簇服从正态分布。

模型原理

  1. 概率模型的假设
    模型基聚类假设数据来自若干个概率分布。最常见的是假设数据来自多个高斯分布,每个分布对应一个簇。基本思路是使用这些概率分布的组合来表示整个数据集。假设每个数据点来自于某个分布的概率,依据这些概率进行分簇。
  2. 高斯混合模型(GMM)
    • 目标:GMM 假设每个簇的数据点来自不同的高斯分布,每个分布由均值向量、协方差矩阵和权重来定义。
    • 参数:对于每个簇,模型会拟合一个高斯分布的参数,即均值向量μk\mu_k、协方差矩阵Σk\Sigma_k和簇的权重πk\pi_k
    • 期望最大化(EM)算法
      • E步骤(期望步骤):给定当前的参数估计,计算每个数据点属于每个簇的概率(即责任,用来表示某个数据点属于某个簇的概率)。
      • M步骤(最大化步骤):根据E步骤中的概率,重新估计高斯分布的参数(μk,Σk,πk\mu_k, \Sigma_k, \pi_k),使得似然函数最大化。
    • 迭代过程:EM算法不断交替进行E步骤和M步骤,直到收敛,即似然函数的变化低于某个阈值。

对比

  1. 基本模型

    • K-means:假设簇是球形的,通过最小化每个数据点到其所属簇的质心的距离来进行聚类。
    • GMM(模型基聚类的一种):假设簇服从高斯分布,可以处理非球形、不同方差的簇。
  2. 硬聚类 vs. 软聚类

    • K-means:硬聚类算法,即每个点只能属于一个簇。
    • GMM:软聚类算法,每个点属于不同簇的概率可以被计算出来。
  3. 簇的形状

    • K-means:假设簇的形状是球形的,所有簇有相同的方差。
    • GMM:簇可以有不同的形状和大小,因为每个簇都有自己的协方差矩阵。
  4. 算法复杂性

    • K-means:相对简单,收敛速度快。
    • GMM:由于使用EM算法,计算复杂度较高,尤其是在高维数据或簇数较多的情况下。
  5. 适用场景

    • K-means:适合处理形状相似且簇内方差相近的聚类问题,且在大数据中表现良好。
    • GMM:适合处理形状多样、簇内差异较大的聚类问题,尤其是数据可能来源于不同的分布时。

总结来说,模型基聚类如GMM更灵活,能够适应不同形状的簇,但计算代价较高;K-means更简单快捷,但在处理复杂分布时表现有限。

EM算法

EM算法(Expectation-Maximization,期望最大化算法)是一种用于寻找含有隐变量的概率模型的最大似然估计的迭代算法。它的主要目的是在数据不完全可观测或存在隐变量的情况下,优化参数估计。EM算法广泛应用于模型基聚类(如高斯混合模型GMM)、隐马尔可夫模型(HMM)、协同过滤等领域。

问题背景

在某些问题中,直接通过最大化似然函数来估计模型参数非常困难,因为数据不完整、包含缺失值或隐含的未观测变量。在GMM中,数据来自多个未知的高斯分布,无法直接确定每个数据点属于哪个分布,这就是“隐变量”。EM算法提供了一种处理这类情况的办法。

核心思想

EM算法的核心思想是先估计隐变量的分布(E步骤),再利用这些估计来更新模型的参数(M步骤)。这种迭代式的过程逐渐逼近最优的参数估计。

EM算法的结构

给定观测数据X={x1,x2,,xn}X = \{x_1, x_2, \dots, x_n\},假设我们有一些无法直接观测的隐变量Z={z1,z2,,zn}Z = \{z_1, z_2, \dots, z_n\},目标是估计模型参数θ\theta。似然函数为:

L(θX)=ZP(X,Zθ)L(\theta | X) = \sum_{Z} P(X, Z | \theta)

由于直接求解似然函数比较困难(因为涉及到隐变量ZZ的不确定性),我们通过EM算法来迭代优化。

EM算法的两个主要步骤是E步骤(期望步骤)和M步骤(最大化步骤):

E 步骤(Expectation, 期望步骤):

在给定当前参数theta(t)theta^{(t)}的情况下,计算隐变量的条件概率分布,也就是对隐变量的期望值。这一步通过计算对数似然函数的期望值来更新隐变量的估计。

具体来说,我们计算完全数据对数似然的期望,即Q(θθ(t))Q(\theta | \theta^{(t)}),其表达式为:

Q(θθ(t))=EZX,θ(t)[logP(X,Zθ)Q(\theta | \theta^{(t)}) = \mathbb{E}_{Z|X,\theta^{(t)}} [ \log P(X,Z|\theta)

这一步实际上是在更新隐变量ZZ的分布,也就是在当前参数下,推断每个观测数据点可能来自的隐变量的概率。

M 步骤(Maximization, 最大化步骤):

在给定隐变量的条件概率分布后,优化参数θ\theta,即最大化 E 步骤中的期望Q(θθ(t))Q(\theta | \theta^{(t)}),来得到新的参数估计:

θ(t+1)=argmaxθQ(θθ(t))\theta^{(t+1)} = \arg \max_{\theta} Q(\theta | \theta^{(t)})

这一步就是通过最大化E步骤中得到的期望来更新模型参数。

迭代过程:

EM算法不断在 E 步骤和 M 步骤之间交替进行,直到模型参数收敛,即参数的变化量非常小或似然函数值变化小于某个预设阈值。

总结

EM算法通过迭代的方式,先计算隐变量的期望(E 步骤),再最大化参数(M 步骤),逐渐优化模型的参数。该算法在含有隐变量或部分数据缺失的问题中,特别是概率模型的最大似然估计中,具有广泛应用。不过,由于容易收敛到局部最优解以及速度较慢,通常需要结合其他方法(如多次随机初始化)来提升效果。

高斯混合模型(GMM)中的 EM 算法

高斯混合模型是 EM 算法的经典应用。假设数据点由KK个高斯分布组成,目标是通过 EM 算法来估计每个高斯分布的参数,包括均值μk\mu_k、协方差矩阵Σk\Sigma_k和每个分布的权重πk\pi_k

  1. 初始化

    • 初始化各高斯分布的参数θ(0)={μk(0),Σk(0),πk(0)}\theta^{(0)} = \{\mu_k^{(0)}, \Sigma_k^{(0)}, \pi_k^{(0)}\},通常通过随机选取或者其他算法(比如K-means)来完成。
  2. E 步骤
    计算每个数据点xix_i属于第kk个高斯分布的后验概率(责任),表示为γik\gamma_{ik}

γik=πk(t)N(xiμk(t),Σk(t))j=1Kπj(t)N(xiμj(t),Σj(t)) \gamma_{ik} = \frac{\pi_k^{(t)} \mathcal{N}(x_i | \mu_k^{(t)}, \Sigma_k^{(t)})}{\sum_{j=1}^{K} \pi_j^{(t)} \mathcal{N}(x_i | \mu_j^{(t)}, \Sigma_j^{(t)})}

其中,N(xiμk,Σk)\mathcal{N}(x_i | \mu_k, \Sigma_k)是高斯分布的概率密度函数。

  1. M 步骤
    更新参数μk,Σk,πk\mu_k, \Sigma_k, \pi_k
    • 均值μk\mu_k

μk(t+1)=i=1nγikxii=1nγik \mu_k^{(t+1)} = \frac{\sum_{i=1}^{n} \gamma_{ik} x_i}{\sum_{i=1}^{n} \gamma_{ik}}

  • 协方差矩阵Σk\Sigma_k

Σk(t+1)=i=1nγik(xiμk(t+1))(xiμk(t+1))Ti=1nγik \Sigma_k^{(t+1)} = \frac{\sum_{i=1}^{n} \gamma_{ik} (x_i - \mu_k^{(t+1)})(x_i - \mu_k^{(t+1)})^T}{\sum_{i=1}^{n} \gamma_{ik}}

  • 混合权重πk\pi_k

πk(t+1)=1ni=1nγik \pi_k^{(t+1)} = \frac{1}{n} \sum_{i=1}^{n} \gamma_{ik}

  1. 迭代
    重复 E 步骤和 M 步骤,直到参数θ\theta收敛。