$$ \alpha N(\mu_1,\sigma_1^2)+(1-\alpha)N(\mu_2,\sigma_2^2)$$
详细计算结果表格:
观测数据 \(x=(x_{ 1},\cdots,x_{ N})\), 假设数据服从如下两个正态分布的混合分布:
$$
f(x \mid \mu, \sigma, \alpha)=\alpha_1 \mathcal{N}\left(x \mid \mu_1, \sigma_1^2\right)+\alpha_2 \mathcal{N}\left(X \mid \mu_2, \sigma_2^2\right),
$$
其中
- \(\alpha_{k}\) = 混合权重, \(\alpha_1+\alpha_2=1\).
- \(\mathcal{N}(x|\mu_{k},\sigma_{k}^2)\) = 参数为 \(\mu_{k}\) 和 \(\sigma_{k}^2\)的正态密度函数.
- \(\mu_{k}\) = 第 \(k\)个部分的均值.
- \(\sigma_{k}^{2}\) = 第 \(k\)个部分的方差.
EM算法包含三步:
- 初始估计: 这里我们使用硬分类(kmeans)方法, 将数据分为两类, 然后对每类数据分别估计正态分布参数
- \(\mu_{k} = \frac{\sum_{i}^{N_{k}}x_{i,k}}{N_{k}}\)
- \(\sigma_{k}^{2} = \frac{\sum_{i}^{N_{k}}(x_{i,k} - \mu_{k})^2}{N_{k}}\)
- \(\alpha_{k} = \frac{N_{k}}{N}\)
- 期望步 (E-step): 在期望步中我们计算每个点属于两个类的概率
$$P(x_{i} \in k_{j} | x_{i}) = \frac{P(x_{i} | x_{i} \in k_{j})P(k_{j})}{P(x_{i})}$$其中
- \(P(x_{i} | x_{i} \in k_{j}) = \mathcal{N}(x_{i}|\mu_{k_{j}},\sigma_{k_{j}}^{2})\)
- \(P(k_{j}) = \alpha_{k_{j}}\)
- \(P(x_{i}) = \sum_{k=1}^{K}\alpha_k\mathcal{N}(x_{i}|\mu_{k},\sigma_{k}^{2})\)
- 最大化 (M-step): 重新估计所有参数
- \(\mu_{k} = \frac{\sum_{i}^{N}P(x_{i} \in k_{j} | x_{i})x_{i}}{\sum_{i}^{N}P(x_{i} \in k_{j} | x_{i})}\)
- \(\sigma_{k}^{2} = \frac{\sum_{i}^{N}P(x_{i} \in k_{j} | x_{i})(x_{i} - \mu_{k})^2}{\sum_{i}^{N}P(x_{i} \in k_{j} | x_{i})}\)
- \(\alpha_{k} = \frac{\sum_{i}^{N}P(x_{i} \in k_{j} | x_{i})}{N}\)
收敛检查
我们通过检查对数似然函数的值是否变化很小来检查算法收敛性:
$$ \ln P(X|\mu,\sigma,\alpha) = \sum_{n=1}^{N}\ln \sum_{k=1}^{K}\alpha_k\mathcal{N}(x_{n}|\mu_{k},\sigma_{k}^{2}) $$