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

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

Question

有一个数据集 D = { x 1 , x 2 , . . . , x N } D=\{x_1, x_2, ..., x_N\} D={x1,x2,...,xN}中的每个数据点是这样产生的,先从K个类别中选择一个类别,然后从该类别对应的数据产生分布中产生数据点。若K选1的对应的分布是Multinoulli分布,每个类别对应的数据产生分布是不同的高斯分布,估计数据点x对应的分布。

分析

这个问题对应的模型就是一个混合高斯模型,具体的数据产生过程如下:
在这里插入图片描述
我们引入了隐变量z, 假设模型的参数跟图中的定义一样,我们可以得到:
p ( x ∣ α , μ , Σ ) = ∑ k = 1 K α k N ( x ∣ μ k , Σ k ) , 其 中 ∑ k α k = 1 p(x | \alpha, \mu, \Sigma) = \sum_{k=1}^{K} \alpha_k \mathrm{N}(x | \mu_k, \Sigma_k), \quad \quad 其中\sum_k \alpha_k = 1 p(xα,μ,Σ)=k=1KαkN(xμk,Σk),kαk=1

这就是混合高斯模型对应的观察数据概率分布,它是一个无监督模型的聚类模型,每个类别对应的后验分量
γ k = α k N ( x ∣ μ k , Σ k ) ∑ k = 1 K α k N ( x ∣ μ k , Σ k ) \gamma_k = \frac{\alpha_k \mathrm{N}(x | \mu_k, \Sigma_k)}{\sum_{k=1}^{K} \alpha_k \mathrm{N}(x | \mu_k, \Sigma_k)} γk=k=1KαkN(xμk,Σk)αkN(xμk,Σk)

表示该点属于某个类别的概率,要想得到某个点对应的分量,我们必须先根据数据集估计出模型参数 θ = { α , μ , Σ } \theta = \{\alpha,\mu, \Sigma\} θ={αμ,Σ},这就是上面问题的目标。

求解

要估计出模型参数,对于含隐变量的无监督模型,绝大部分情况下都是用EM算法求解。

E步(E-step)

在这里插入图片描述在这里插入图片描述
其中m时数据点的维度。
E步就是在老的参数的基础上求出隐藏数据集的分布,并计算联合变量分布对数的期望。

M步 (M-step)

在这里插入图片描述
M步时最大化E步期望,获得新的参数。

Algorithm

Require: 数据集D,类别数K。
Step 1: 初始化参数α, μ, Σ;
Step 2: 执行E步,获得Eγik, Enk;
Step 3: 执行M步,更新α, μ, Σ;
Step 4: 重复E步和M步,知道F收敛或者α, μ, Σ收敛。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值