张芷铭的个人博客

高斯混合模型通过多个高斯分布的加权平均拟合多峰数据,引入离散隐变量 $z$ 表示样本所属的高斯分布,通过 EM 算法求解参数。

模型定义

$$p(x)=\sum_{k=1}^K\alpha_k\mathcal{N}(\mu_k,\Sigma_k)$$

引入隐变量 $z$,生成式模型表示为:

$$p(x)=\sum_{k=1}^Kp_k\mathcal{N}(x|\mu_k,\Sigma_k)$$

极大似然估计

$$\theta_{MLE}=\mathop{argmax}{\theta}\sum{i=1}^N\log \sum_{k=1}^Kp_k\mathcal{N}(x_i|\mu_k,\Sigma_k)$$

由于连加号存在,无法得到解析解,需使用 EM 算法。

EM 求解

E-step 计算隐变量后验:

$$p(z|x,\theta^t)=\frac{p_z^t\mathcal{N}(x|\mu_z^t,\Sigma_z^t)}{\sum_kp_k^t\mathcal{N}(x|\mu_k^t,\Sigma_k^t)}$$

M-step 更新参数:

混合系数: $$p_k^{t+1}=\frac{1}{N}\sum_{i=1}^Np(z_i=k|x_i,\theta^t)$$

均值: $$\mu_k^{t+1}=\frac{\sum_{i=1}^Np(z_i=k|x_i,\theta^t)x_i}{\sum_{i=1}^Np(z_i=k|x_i,\theta^t)}$$

协方差: $$\Sigma_k^{t+1}=\frac{\sum_{i=1}^Np(z_i=k|x_i,\theta^t)(x_i-\mu_k)(x_i-\mu_k)^T}{\sum_{i=1}^Np(z_i=k|x_i,\theta^t)}$$

Comments