高斯混合模型

输入:
观测数据y1, y2, ... yN
高斯混合模型

输出:
高斯混合模型参数

步骤:

  1. 取参数的初值开始迭代
  2. E步:依据当前模型参数,计算分模型k对观测数据yj的响应度
    γ^jk=akϕ(yjθk)k=1Kakϕ(yjθk) \hat \gamma_{jk} = \frac{a_k\phi(y_j|\theta_k)}{\sum_{k=1}^Ka_k\phi(y_j|\theta_k)}
  3. M步:计算新一轮迭代的参数模型
    μ^k=j=1Nγ^jkyjj=1Nγ^jkσ^2=j=1Nγ^jk(yjμk)j=1Nγ^jka^k=j=1Nγ^jkN \begin{aligned} \hat \mu_k = \frac{\sum_{j=1}^N\hat \gamma_{jk}y_j}{\sum_{j=1}^N\hat \gamma_{jk}} \\ \hat \sigma^2 = \frac{\sum_{j=1}^N\hat \gamma_{jk}(y_j-\mu_k)}{\sum_{j=1}^N\hat \gamma_{jk}} \\ \hat a_k = \frac{\sum_{j=1}^N\hat \gamma_{jk}}{N} \end{aligned}
  4. 重复(2)(3),直至收敛。

1. E应该求Q函数,为什么求γ^jk\hat \gamma_{jk}​γ​^​​​jk​​?

在混合高斯模型中,完整的Q函数为:
Q(θ,θ(i))=k=1K(j=1N(Eγjk)logak+j=1N(Eγjk)(log12πlogσk12σk2(yjμk)2)) Q(\theta, \theta^{(i)}) = \sum_{k=1}^K\left(\sum_{j=1}^N(E\gamma_{jk})\log a_k + \sum_{j=1}^N(E\gamma_{jk})\left(\log \frac{1}{\sqrt{2\pi}} - \log \sigma_k - \frac{1}{2\sigma_k^2}(y_j-\mu_k)^2\right)\right)

从公式可以看出,除了θ\theta以为,还要求EγjkE\gamma_{jk},令:
γ^jk=Eγjk \hat \gamma_{jk} = E\gamma_{jk}

Q函数求出来后,求要对θ\theta求导,以解出θnew\theta^{new}
解出发现θnew\theta^{new}只与EγjkE\gamma_{jk},所以求出EγjkE\gamma_{jk}即可进行M步。

results matching ""

    No results matching ""