高斯混合模型通过多个高斯分布的加权平均拟合多峰数据,引入离散隐变量 $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