高斯混合模型EM算法

K均值聚类算法的回顾

算法流程

  • 初始化:随机选择K个中心点μ0,μ1⋯μk\mu_0,\mu_1 \cdots \mu_kμ0,μ1μk
  • 迭代进行如下步骤:
    • 分类:每一个实例点jjj被分类到与他距离最近的中心处。若设第t次迭代界数后的分类函数为C(t)(j)C^{(t)}(j)C(t)(j)将实例点xjx_jxj分类,则应该满足C(t)(j)=argmini∣∣ui−xj∣∣2C^{(t)}(j) = argmin_i ||u_i - x_j||^2C(t)(j)=argminiuixj2
      这里使用了二范数来度量距离。
    • 重新确定类中心μ0,μ1⋯μk\mu_0,\mu_1 \cdots \mu_kμ0,μ1μk,重新求得的类中心应该使得如下的式子F(u)极小化:
      F(u)=∑i∑C(t)(j)=i∣∣xj−ui∣∣2F(u) = \sum_i\sum_{C^{(t)}(j) = i}||x_j - u_i||^2F(u)=iC(t)(j)=ixjui2
      其中前一个求和符号表示针对于所有的类别的中心求和,后一个求和符号表示对于每一个该类别的样本到该类别的中心的距离求和。
      由优化数学知识可知,当μi=1numofxjs.t.C(t)(j))=i∑C(t)(j))=ixj\mu_i = \frac{1}{num \quad of\quad x_j \quad s.t.C^{(t)}(j)) = i} \sum_{C^{(t)}(j)) = i} x_j μi=numofxjs.t.C(t)(j))=i1C(t)(j))=ixj
      即所有类别i样本的均值。

优化目标

实际上是在学习分类函数C(t)(j)C^{(t)}(j)C(t)(j)以及每一个类别的中心μi\mu_iμi.
若设函数F(μ,C)=∑j∣∣μC(j)−xj∣∣2F(\mu,C) = \sum_j ||\mu_{C(j)} - x_j||^2F(μ,C)=jμC(j)xj2则优化目标显然为下面的式子minuminCF(μ,C)min_umin_{C} F(\mu,C)minuminCF(μ,C)
即:

  • 找到合适的中心和分类函数,使得上述损失最小。但分类函数确是不可微分的!

与EM期望最大化算法的联系

  • 当KMEANS算法最终结束后,每个样本头上得到了一个对应的标签。且我们的分类是100%确定的,并不是以某个概率归属于哪一类,以某个概率归属于另一类的情况。并且对于一个给定的样本,距离哪一个类别最近,他就属于哪一个类别

    • 但是很少我们能够100%确定样本的类别!
  • E步:固定μ\muμ,优化分类函数C,求期望!得到minCF(μ,C)min_{C} F(\mu,C)minCF(μ,C)

  • M步: 固定CCC,求μ\muμ!得到minuminCF(μ,C)min_umin_{C} F(\mu,C)minuminCF(μ,C)

  • 换一种表达形式,设rnkr_{nk}rnk表示将第n个样本分类到第k类。μk\mu_kμk表示第k类的均值,则优化目标J=∑i∑krnk∣∣xn−μk∣∣2J = \sum_i \sum_k r_{nk}||x_n - \mu_k||^2J=ikrnkxnμk2

    • 需满足的条件为∑krnk=1\sum_k r_{nk} = 1krnk=1.且要么是0,要么是1!
    • EM算法给出了对于rnkr_{nk}rnk的一种软化版本。即GUASS混合模型。
  • K-MEANS保证收敛到局部最优解

    • 但不保证收敛到全局最优解

高斯混合模型-离散隐变量的角度

用于分类的离散隐变量

在这里插入图片描述

  • 对于每一个样本,其本身含有一个向量z=(z1,z2⋯zk)\mathbf{z} = (z_1,z_2\cdots z_k)z=(z1,z2zk).zi=1z_i = 1zi=1表示其属于第i类。为ONE-HOT向量。
    • z\mathbf{z}z视作多维随机变量,(z1,z2⋯zk)(z_1,z_2 \cdots z_k)(z1,z2zk)及其每个维度的随机变量。
    • 所以应该满足∑izi=1\sum_i z_i = 1izi=1,且z1,z2,⋯zkz_1,z_2,\cdots z_kz1,z2,zk中有且仅有一个为1.其余的均为0。所以显然各分随机变量是不独立的!
    • 注意这是对于每一个样本而言,其都具有一个向量z
  • 设每个向量z有一个先验联合分布
    p(zi=1,z1=0,z2=0,⋯ ,zi−1=0,zi+1=0⋯zn=0)=πi∀ip(z_i = 1,z_1 = 0,z_2=0,\cdots,z_{i-1} = 0,z_{i+1} = 0\cdots z_n = 0) = \pi_i \quad\forall ip(zi=1z1=0,z2=0,,zi1=0,zi+1=0zn=0)=πii
    • 表示事件:该样本属于第i类,且不属于其他任何类别的概率。
    • 所以应该满足∑iπi=1\sum_i \pi_i = 1iπi=1,即该样本属于每个类别的概率要满足归一性。

将其扩展到每一种可能的取值,我们有下面的式子:
p(z)=p(z1,z2,⋯zi−1,zi+1,zk,zi)=∏i=1kπizip(\mathbf{z}) = p(z_1,z_2,\cdots z_{i-1},z_{i+1},z_k,z_i ) = \prod_{i=1}^k \pi_i^{z_i}p(z)=p(z1,z2,zi1,zi+1,zk,zi)=i=1kπizi
为了验证上述式子的正确性,不妨设z1=1z_1 = 1z1=1,其余的分量都等于0.得到p(z1=1,z2=0⋯zn=0)=π1p(z_1 = 1,z_2 = 0\cdots z_n = 0) = \pi_1p(z1=1,z2=0zn=0)=π1这恰好和上述给出的联合概率分布是一致的!即无论z1,z2⋯znz_1,z_2\cdots z_nz1,z2zn如何取值,上述式子总能给出正确的联合概率分布

混合高斯模型概率密度函数的导出

  • 设这里z的意义变化为:该样本属于哪一个高斯模型。

  • 而当某个样本的所属的类别确定时,其自身的概率分布也就确定了。例如对于一个给定的样本x\mathbf xx,如果其自身的z\mathbf{z}z的取值已经确定为z=(1,0,0,0,0⋯ )\mathbf{z} = (1,0,0,0,0\cdots)z=(1,0,0,0,0)那么其自身的分布也就是下面的概率密度:p(x∣(1,0,0,0⋯ ))=N(x∣μ1,∑1)p(\mathbf x|(1,0,0,0\cdots)) = N(\mathbf x|\mu_1,{\sum}_1)p(x(1,0,0,0))=N(xμ1,1)

  • 将上述式子扩展到向量z\mathbf zz的每一个取值。得到p(x∣z)=∏k=1KN(x∣μk,∑K)zkp(\mathbf{x}|\mathbf z) = \prod_{k = 1}^K N(\mathbf x|\mu_k,{\sum}_K)^{z_k}p(xz)=k=1KN(xμk,K)zk

    • 可以用和第一部分类似的方法验证上述式子的正确性
  • 联合分布p(x,z)=p(x∣z)p(z)p(\mathbf x,\mathbf z) = p(\mathbf x|\mathbf z)p(\mathbf z)p(x,z)=p(xz)p(z)

  • 如果需要求p(x)p(\mathbf x)p(x)只需要利用全概率公式:
    p(x)=∑zp(x,z)=∑z(∏k=1Kπkzk)(∏k=1KN(x∣μk,∑K)zk)p(\mathbf x) = \sum_\mathbf z p(\mathbf x,\mathbf z) = \sum_\mathbf z(\prod_{k=1}^K \pi_k^{z_k})(\prod_{k = 1}^K N(\mathbf x|\mu_k,{\sum}_K)^{z_k})p(x)=zp(x,z)=z(k=1Kπkzk)(k=1KN(xμk,K)zk)
    注意上式中的求和符号表示对于每一个z\mathbf zz的可能取值求和。上述右侧式子可以变化为:
    ∑z(∏k=1Kπkzk)(∏k=1KN(x∣μk,∑K)zk)=∑z(∏k=1K(πkN(μk,∑k))zk)\sum_\mathbf z(\prod_{k=1}^K \pi_k^{z_k})(\prod_{k = 1}^K N(\mathbf x|\mu_k,{\sum}_K)^{z_k}) = \sum_\mathbf z (\prod_{k = 1}^K(\pi_kN(\mu_k,{\sum}_k))^{z_k})z(k=1Kπkzk)(k=1KN(xμk,K)zk)=z(k=1K(πkN(μk,k))zk)
    再次说明z的所有可能取值为其中一个分量为1,其余分量为0;于是可以很容易得出:
    ∑z(∏k=1K(πkN(μk,∑k))zk)=∑k=1KπkN(x∣μk,∑k)\sum_\mathbf z (\prod_{k = 1}^K(\pi_kN(\mu_k,{\sum}_k))^{z_k}) = \sum_{k = 1}^K \pi_kN(\mathbf x|\mu_k,{\sum}_k)z(k=1K(πkN(μk,k))zk)=k=1KπkN(xμk,k)
    即混合高斯模型的概率密度。

类别后验概率

在前一节中,我们得到混合高斯模型的概率密度函数由下面的式子给出:
p(x)=∑k=1KπkN(x∣μk,∑K)p(\mathbf x) = \sum_{k = 1}^K \pi_kN(\mathbf x|\mu_k,{\sum}_K)p(x)=k=1KπkN(xμk,K)
由上一节中的高斯混合模型的推导过程可知。可以认为给定一个样本x\mathbf xx,有一个隐变量z\mathbf zz与之对应。

简化NOTATION

对于一个给定的样本而言

  • 事件zi=1z_i = 1zi=1与事件zi=1,z1=0⋯zn=0z_i = 1,z_1=0\cdots z_n = 0zi=1,z1=0zn=0等价。
  • 使用p(zi=1)p(z_i = 1)p(zi=1)表示p(zi=1,z1=0⋯zn=0)p(z_i = 1,z_1=0\cdots z_n = 0)p(zi=1,z1=0zn=0)
  • 今后的zi=1z_i = 1zi=1均表示zi=1,z1=0⋯zn=0z_i = 1,z_1=0\cdots z_n = 0zi=1,z1=0zn=0

后验概率的推导

由贝叶斯公式可知p(zk=1∣x)=p(x∣zk=1)p(zk=1)∑zp(x∣zk=1)p(zk=1)p(z_k = 1|\mathbf x) = \frac{p(\mathbf x| z_k = 1) p(z_k = 1)}{\sum_{\mathbf z} p (\mathbf x|z_k = 1)p(z_k = 1)}p(zk=1x)=zp(xzk=1)p(zk=1)p(xzk=1)p(zk=1)
γ(zk)=p(zk=1∣x)\gamma(z_k) = p(z_k = 1|\mathbf x)γ(zk)=p(zk=1x)
将上面的推导结果带入p(zk=1∣x)p(z_k = 1|\mathbf x)p(zk=1x)可以得到:
γ(zk)=p(zk=1∣x)=πkN(μk,∑k)∑j=1KπjN(μj,∑j)\gamma(z_k) =p(z_k = 1|\mathbf x) = \frac{\pi_kN(\mu_k,\sum_k)}{\sum_{j = 1}^K\pi_jN(\mu_j,\sum_j)}γ(zk)=p(zk=1x)=j=1KπjN(μj,j)πkN(μk,k)
可以认为γ(zk)\gamma(z_k)γ(zk)负责解释第k个高斯负责解释样本x的程度!

  • 至此,我们可以认为p(zk=1)=πkp(z_k = 1) = \pi_kp(zk=1)=πk为先验;γ(zk)\gamma(z_k)γ(zk)为看到数据之后的后验!

高斯混合模型的参数估计-极大似然估计

  • 设观测数据为x1,x2,⋯xN\mathbf x_1,\mathbf x_2,\cdots \mathbf x_Nx1,x2,xN
    • 每个数据都是一个ddd维行向量
    • 使用混合高斯模型对数据进行建模!
  • 将数据记作一个大矩阵
    X=[x1x2x3⋮xN]X = \left[\begin{matrix} \mathbf x_1 \\ \mathbf x_2 \\ \mathbf x_3 \\ \vdots \\ \mathbf x_N \end{matrix}\right]X=x1x2x3xN
  • 每一个观测数据都具有一个隐变量向量z\mathbf zz与之进行对应。记与第i个观测数据的隐变量向量维zi\mathbf z_izi。是一个K维行向量,其中K为类别个数。类似的将隐变量如以上方式一样进行堆叠,得到的矩阵记作Z\mathbf ZZ

由于混合高斯模型的概率密度函数为:
p(x)=∑k=1KπkN(x∣μk,∑K)p(\mathbf x) = \sum_{k = 1}^K \pi_kN(\mathbf x|\mu_k,{\sum}_K)p(x)=k=1KπkN(xμk,K)
所以观测数据的似然函数为:
p(X)=∏i=1Np(xi)=∏i=1N(∑k=1KπkN(xi∣μk,∑K))p(X) = \prod_{i = 1}^Np(\mathbf x_i) = \prod_{i = 1}^N(\sum_{k = 1}^K \pi_kN(\mathbf x_i|\mu_k,{\sum}_K))p(X)=i=1Np(xi)=i=1N(k=1KπkN(xiμk,K))
将上述式子取对数得到下面的结果:
In p(X)=∑i=1NIn(∑k=1KπkN(xi∣μk,∑K))In \ p(X) = \sum_{i = 1}^N In(\sum_{k = 1}^K \pi_kN(\mathbf x_i|\mu_k,{\sum}_K))In p(X)=i=1NIn(k=1KπkN(xiμk,K))
如果将上式关于均值向量μk\mu_kμk求导并设导数等于0,得到:
0=∑i=1Np(zk=1∣xi)∑k−1(xi−μk)0 = \sum_{i = 1}^N p(z_k = 1|\mathbf x_i){\sum}_k^{-1}(\mathbf x_i - \mu_k)0=i=1Np(zk=1xi)k1(xiμk)
亦即∑i=1Np(zk=1∣xi)∑k−1xi=∑i=1Np(zk=1∣xi)∑k−1μk\sum_{i = 1}^N p(z_k = 1|\mathbf x_i) {\sum}_k^{-1}\mathbf x_i = \sum_{i = 1}^N p(z_k = 1|\mathbf x_i) {\sum}_k^{-1}\mu_ki=1Np(zk=1xi)k1xi=i=1Np(zk=1xi)k1μk
我们关注到p(zk=1∣xi)p(z_k = 1|\mathbf x_i)p(zk=1xi)是标量,所以等式两侧同时乘以∑k\sum_kk得到:
μk=∑i=1Np(zk=1∣xi)xi∑i=1Np(zk=1∣xi)\mu_k = \frac{\sum_{i = 1}^N p(z_k = 1|\mathbf x_i) \mathbf x_i}{\sum_{i = 1}^N p(z_k = 1|\mathbf x_i)}μk=i=1Np(zk=1xi)i=1Np(zk=1xi)xi
其中p(zk=1∣xi)=πkN(xi∣μk,∑k)∑j=1KπjN(xi∣μj,∑j)p(z_k = 1|\mathbf x_i) = \frac{\pi_kN(\mathbf x_i|\mu_k,\sum_k)}{\sum_{j = 1}^K\pi_jN(\mathbf x_i|\mu_j,\sum_j)}p(zk=1xi)=j=1KπjN(xiμj,j)πkN(xiμk,k)
注意到等式左右两侧实际上都有μk\mu_kμk的存在,因此我们实际上并没有给出μk\mu_kμk的一个解析解。只是给出了一个方程即μk=f(μk)\mu_k = f(\mu_k)μk=f(μk)。不能通过计算右侧的式子计算出μk\mu_kμk

  • 至此为止,整理下思路。我们将对数似然函数对μk\mu_kμk求导令导数等于0,得到了关于μk\mu_kμk的一个等式。
  • 换句话说,能使得上述对数似然函数到达最优解的μk\mu_kμk一定满足上述等式。
  • 于是,我们可以初始化一个μk\mu_kμk,然后不断使用上述式子迭代计算新的μk\mu_kμk。如果两次迭代算出的μk\mu_kμk差距小于某个阈值的话我们就可以近似认为求出的μk\mu_kμk使得上述等式成立了。

下面,为了简便引入记号γ(zik)\gamma(z_{ik})γ(zik)满足γ(zik)=p(zk=1∣xi)=πkN(xi∣μk,∑k)∑j=1KπjN(xi∣μj,∑j)\gamma(z_{ik}) = p(z_k = 1|\mathbf x_i) = \frac{\pi_kN(\mathbf x_i|\mu_k,\sum_k)}{\sum_{j = 1}^K\pi_jN(\mathbf x_i|\mu_j,\sum_j)}γ(zik)=p(zk=1xi)=j=1KπjN(xiμj,j)πkN(xiμk,k)

  • 其意义很明确。给定第i个样本其属于第k个高斯类别的概率。

于是均值向量μk\mu_kμk可以简化为
μk=∑i=1Nγ(zik)xi∑i=1Nγ(zik)\mu_k = \frac{\sum_{i = 1}^N \gamma(z_{ik})\mathbf x_i}{\sum_{i = 1}^N\gamma(z_{ik})}μk=i=1Nγ(zik)i=1Nγ(zik)xi
再引入记号Nk=∑i=1Nγ(zik)N _k = \sum_{i = 1}^N \gamma(z_{ik})Nk=i=1Nγ(zik)

  • γ(zik)=p(zk=1∣xi)\gamma(z_{ik}) = p(z_k = 1|\mathbf x_i)γ(zik)=p(zk=1xi)的定义可知,可以将新引入的NkN_kNk解释为类别kkk中有效的点的个数。(统计意义上的个数,每个点有一定的概率属于第k类)

于是μk=∑i=1Nγ(zik)xiNk\mu_k = \frac{\sum_{i = 1}^N \gamma(z_{ik})\mathbf x_i}{N_k}μk=Nki=1Nγ(zik)xi

  • 可以将μk\mu_kμk的意义解释为:所有样本属于类别kkk的概率的加权和,除以类别kkk中有效的,统计意义上的样本点的个数。

对称的,显然可以得到其他均值向量的值。
同时,用类似的方法可以得到协方差矩阵满足的不动点方程:
∑k=∑i=1Nγ(zik)(xi−μk)(xi−μk)TNk{\sum}_k = \frac{\sum_{i = 1}^N\gamma(z_{ik})(\mathbf x_i - \mu_k)(\mathbf x_i - \mu_k)^T}{N_k}k=Nki=1Nγ(zik)(xiμk)(xiμk)T

  • 以和解释μ\muμ相似的解释策略可以解释

还可以得出每一个先验参数πk\pi_kπk的不动点方程:
πk=NkN\pi_k = \frac{N_k}{N}πk=NNk其中N为样本总数。上述式子的意义很明确,因为我们是拿样本点来估计这个类别先验,所以统计意义上属于第k类样本点个数除以总个数等于样本属于第k类的先验概率。

高斯混合模型的参数估计-EM算法

混合高斯模型的EM算法

由上面的分析,我们只需要求得所有的向量μ\muμ,所有的协方差矩阵∑\sum以及所有的类别先验分布π\piπ,使得这些参数分别满足各自的不动点方程,我们就可以使得我们上述导数为0的式子成立,进而近似使得我们的似然最大化。

  • 涉及到数值算法的知识,不动点方程x=f(x)x = f(x)x=f(x)满足一定的条件下可以以迭代的形式求解。即先初始化一个点x0x_0x0,计算右侧的值,令x1←f(x0)x_1\leftarrow f(x_0)x1f(x0)。再将x1x_1x1代入f(x)f(x)f(x)计算全新的x2x_2x2如此循环往复。
  • 当两次计算的结果之差小于某个阈值时,我们可以近似认为不动点方程近似得到了满足。

综上所述,我们得到了混合高斯模型参数估计的EM算法。

  • 首先对于每个类别初始化μ,∑,π\mu,\sum,\piμ,,π
  • 迭代执行直到满足两次估计值小于某个阈值:
    • 计算每一个γ(zik)\gamma(z_{ik})γ(zik)(E步)
    • 拿上述分析中每个参数的不动点方程更新参数。(M步)

可以使用梯度上升算法最小化似然函数吗(或梯度下降法最小化负似然函数)?

  • 理论上可行
  • 但实际上似然函数中有求和
  • 步长难以选取

与K-MEANS的联系(更多请参考PRML):

这一部分旨在说明K-MEANS是高斯混合模型的特例
多元高斯分布N(μx,∑)N(\mu_x,\sum)N(μx,)的概率密度函数为:
在这里插入图片描述
在混合高斯模型中我们有:
γ(zik)=p(zk=1∣xi)=πkN(xi∣μk,∑k)∑j=1KπjN(xi∣μj,∑j)\gamma(z_{ik}) = p(z_k = 1|\mathbf x_i) = \frac{\pi_kN(\mathbf x_i|\mu_k,\sum_k)}{\sum_{j = 1}^K\pi_jN(\mathbf x_i|\mu_j,\sum_j)}γ(zik)=p(zk=1xi)=j=1KπjN(xiμj,j)πkN(xiμk,k)

E步的联系

由上述的不动点方程:

  • 如果我们直接假设每个类别的先验分布π\piπ是相同的,而不使用上述的不动点方程迭代求解。
    • 于是满足γ(zik)=N(xi∣μk,∑k)∑j=1KN(xi∣μj,∑j)\gamma(z_{ik}) = \frac{N(\mathbf x_i|\mu_k,\sum_k)}{\sum_{j = 1}^KN(\mathbf x_i|\mu_j,\sum_j)}γ(zik)=j=1KN(xiμj,j)N(xiμk,k)
  • 如果我们假设变量间的协方差矩阵都为aI,a→0aI,a\rightarrow 0aIa0,I为单位阵,不使用不动点方程进行更新。

在满足上述的假设后,最后的γ(zik)\gamma(z_{ik})γ(zik)变为了:
γ(zik)=e−(xi−μk)T12a(xi−μk)∑j=1Ke−(xi−μj)T12a(xi−μj)\gamma(z_{ik}) = \frac{e^{-(\mathbf x_i - \mu_k)^T \frac{1}{2a}(\mathbf x_i - \mu_k)}}{\sum_{j = 1}^Ke^{-(\mathbf x_i - \mu_j)^T \frac{1}{2a}(\mathbf x_i - \mu_j)}}γ(zik)=j=1Ke(xiμj)T2a1(xiμj)e(xiμk)T2a1(xiμk)
其中1a→∞\frac{1}{a} \rightarrow \inftya1。将分子分母同时除以分子,很容易得到:

  • μk\mu_kμk使得(xi−μk)T(xi−μk)(\mathbf x_i - \mu_k)^T(\mathbf x_i - \mu_k)(xiμk)T(xiμk)最小时(即K-MEANS的优化目标的E步),即其负数形式最大,能够使得γ(zik)=1\gamma(z_{ik}) = 1γ(zik)=1
  • 否则如果不能使得其最小,就一定使得γ(zik)=0\gamma(z_{ik}) = 0γ(zik)=0
  • 换句话说,即最后γ(zik)\gamma(z_{ik})γ(zik)要么为0,要么为1!当且仅当xi\mathbf x_ixi距离μk\mu_kμk最近时,γ(zik)=1\gamma(z_{ik}) = 1γ(zik)=1,其余的情况都等于0
M步的联系
  • 由于上述已经对于先验和协方差矩阵做出假设了,所以只需要个更新μ\muμ即可。
  • 混合高斯模型的更新方式为
    μk=∑i=1Nγ(zik)xiNk\mu_k = \frac{\sum_{i = 1}^N \gamma(z_{ik})\mathbf x_i}{N_k}μk=Nki=1Nγ(zik)xi
    其中Nk=∑i=1Nγ(zik)N _k = \sum_{i = 1}^N \gamma(z_{ik})Nk=i=1Nγ(zik).
  • 而由上述E步的γ(zik)\gamma(z_{ik})γ(zik)的生成过程可知,当且仅当xi\mathbf x_ixi距离μk\mu_kμk最近时,γ(zik)=1\gamma(z_{ik}) = 1γ(zik)=1,其余的情况都等于0。
    • 于是分子显然是对所有距离μk\mu_kμk最近的数据点求和。
    • 分母即为所有距离μk\mu_kμk数据点的个数
    • 这和K-MEANS的更新方法完全一致!

一般形式的EM算法

上面的部分已经引入了XXX,ZZZ,分别表示观测数据与每个数据对应的隐变量矩阵。我们的目标是最大化似然函数In p(X)In \ p(X)In p(X)
In p(X)=In ∑Zp(X,Z)In\ p(X) = In \ \sum_Zp(X,Z)In p(X)=In Zp(X,Z)
右侧求和表示对于隐变量矩阵ZZZ的每一种可能取值构成的进行累加。

  • 对于高斯混合模型而言,如果一共有k个分模型,一共有N个观测数据。则ZZZ的取值个数:
    • 每个样本的取值可能数有k个
    • 不同样本之间取值相互独立
    • 所以一共有kNk^NkN种可能取值
  • 定义{X,Z}\{X,Z\}{X,Z}为完全数据,定义{X}\{X\}{X}为不完全数据。

一般情况下仅仅知道P(Z∣X)P(Z|X)P(ZX),于是可以考虑下面的期望函数:
Q(θ,θold)=∑Zp(Z∣X,θold)In p(X,Z∣θ)Q(\theta,\theta^{old}) = \sum_Z p(Z|X,\theta^{old})In \ p(X,Z|\theta)Q(θ,θold)=Zp(ZX,θold)In p(X,Zθ)

  • 迭代进行下面的步骤,直到相邻两次计算出的θ\thetaθ值满足收敛条件:
    • 在E步中,使用模型迭代到此步的θold\theta^{old}θold计算现有后验概率p(Z∣X,θold)p(Z|X,\theta^{old})p(ZX,θold)
      • 类似于混合高斯模型中的第一步计算p(zk=1∣x)p(z_k = 1|\mathbf x)p(zk=1x)
    • M步:带入到上述QQQ函数中,并求解θ\thetaθ使得QQQ函数尽可能最大化。

EM算法的变分下界

在这里插入图片描述

  • 设隐变量矩阵ZZZ,引入另一个分布q(Z)q(Z)q(Z)。应该满足∑Zq(Z)=1\sum_Z q(Z) = 1Zq(Z)=1
  • 如果设模型的参数为θ\thetaθ:
    • 这里的θ\thetaθ实质上代表了模型全部的参数
    • 例如对于高斯混合模型而言θ\thetaθ就代表了所有的π,μ,∑\pi,\mu,\sumπ,μ,
    • 将观测数据的似然函数写作p(X∣θ)p(X|\theta)p(Xθ)

考察上述观测数据的对数似然函数,如果对于随机变量矩阵ZZZ引入其分布q(Z)q(Z)q(Z)那么有下式成立:
In p(X∣θ)=In∑Z p(X,Z∣θ)=In∑Zq(Z)p(X,Z∣θ)q(Z)In\ p (X|\theta) = In \sum_Z\ p(X,Z|\theta) = In \sum_Zq(Z) \frac{p(X,Z|\theta)}{q(Z)}In p(Xθ)=InZ p(X,Zθ)=InZq(Z)q(Z)p(X,Zθ)
JENSENJENSENJENSEN不等式可知,注意Log是凹函数,所以不等号方向需要改变的:
In∑Zq(Z)p(X,Z∣θ)q(Z)≥∑Zq(Z)In p(X,Z∣θ)q(Z)In\sum_Z q(Z)\frac{p(X,Z|\theta)}{q(Z)} \geq \sum_Zq(Z) In\ \frac{p(X,Z|\theta)}{q(Z)}InZq(Z)q(Z)p(X,Zθ)Zq(Z)In q(Z)p(X,Zθ)
我们先考察一下不等式的一半。不等号右侧的式子可以写为
∑Zq(Z)In p(X,Z∣θ)q(Z)=∑Zq(Z)In p(X,Z∣θ)−∑Zq(Z)In q(Z)\sum_Zq(Z)In \ \frac{p(X,Z|\theta)}{q(Z)} = \sum_Zq(Z)In \ p(X,Z|\theta) - \sum_Z q(Z) In \ q(Z)Zq(Z)In q(Z)p(X,Zθ)=Zq(Z)In p(X,Zθ)Zq(Z)In q(Z)

  • 上式右侧第一项的p(X,Z∣θ)p(X,Z|\theta)p(X,Zθ),其形式是已知的,只是其参数θ\thetaθ未知。
    • 首先注意观测数据XXX实际上是已知的
    • 例如对于混合高斯模型而言,其概率密度函数是已知的,而我们是需要估计μ,∑,π\mu,\sum,\piμ,,π
    • 而对于隐变量,我们本身就需要考虑其所有可能取值。所以也可以认为它是已知的。
      • 例如在高斯混合模型中要考虑所有样本类别的可能取值,即构成了隐变量矩阵ZZZ的所有可能取值
    • 所以上述式子中的第一项只依赖于θ\thetaθ即模型参数的可能取值。当模型参数取值变化时,上述式子的第一项也跟着发生变化。
  • 同时,我们并不知道q(Z)q(Z)q(Z)的具体形式。所以上式还依赖于q(Z)q(Z)q(Z)
    • q(Z)q(Z)q(Z)显然是一种针对于随机变量矩阵ZZZ分布函数
  • 综上所述,上式的取值就依赖于θ\thetaθq(Z)q(Z)q(Z)。我们将其写作∑Zq(Z)In p(X,Z∣θ)−∑Zq(Z)In q(Z)=L(q,θ) \sum_Zq(Z)In \ p(X,Z|\theta) - \sum_Z q(Z) In \ q(Z) = L(q,\theta)Zq(Z)In p(X,Zθ)Zq(Z)In q(Z)=L(q,θ)

现在我们回过头来考察整个不等式即:
In∑Zq(Z)p(X,Z∣θ)q(Z)≥∑Zq(Z)In p(X,Z∣θ)q(Z)In\sum_Z q(Z)\frac{p(X,Z|\theta)}{q(Z)} \geq \sum_Zq(Z) In\ \frac{p(X,Z|\theta)}{q(Z)}InZq(Z)q(Z)p(X,Zθ)Zq(Z)In q(Z)p(X,Zθ)
这个不等号的来源理论依据为JENSEN不等式。而我们并没有对于q(Z)q(Z)q(Z)加任何限制。换句话说,对于任何的q(Z)q(Z)q(Z)上述不等式均成立。
注意:∑Zq(Z)In p(X,Z∣θ)−∑Zq(Z)In q(Z)=L(q,θ)\sum_Zq(Z)In \ p(X,Z|\theta) - \sum_Z q(Z) In \ q(Z) = L(q,\theta)Zq(Z)In p(X,Zθ)Zq(Z)In q(Z)=L(q,θ)
前面的式子为期望的形式。可以看作函数p(X,Z∣θ)p(X,Z|\theta)p(X,Zθ)在分布q(Z)q(Z)q(Z)下的期望值。即有Eq(Z)[In p(X,Z∣θ)]E_{q(Z)}[In \ p(X,Z|\theta)]Eq(Z)[In p(X,Zθ)]
后面的部分为分布q(Z)q(Z)q(Z)的熵值。将L(q,θ)L(q,\theta)L(q,θ)称作变分下界。RECALL对于离散型随机变量而言,其熵值以如下形式给出:
H(z)=∑z−p(z)logp(z)H(z) = \sum_z -p(z)logp(z) H(z)=zp(z)logp(z)
对于连续性随机变量而言,其熵值有下图所示的形式给出:
H(z)=∫−p(z)logp(z)dzH(z) = \int -p(z)logp(z) dzH(z)=p(z)logp(z)dz
如果将分布q(Z)q(Z)q(Z)的熵值记作H(q(Z))H(q(Z))H(q(Z)),那么上述的不等式可以写作:
In p(X∣θ)≥Eq(Z)[In p(X,Z∣θ)]+H(q(Z))=L(q,θ)In\ p(X|\theta) \geq E_{q(Z)}[In\ p(X,Z|\theta)] + H(q(Z)) = L(q,\theta)In p(Xθ)Eq(Z)[In p(X,Zθ)]+H(q(Z))=L(q,θ)
同时,由于
In p(X∣θ)=In∑Zq(Z)p(X,Z∣θ)q(Z)In\ p(X|\theta) = In \sum_Zq(Z) \frac{p(X,Z|\theta)}{q(Z)}In p(Xθ)=InZq(Z)q(Z)p(X,Zθ)
可以将其写作如下的形式:
In p(X∣θ)=L(q,θ)+KL(q∣∣p)In \ p(X|\theta) = L(q,\theta) + KL(q || p)In p(Xθ)=L(q,θ)+KL(qp)
其中前面的一项L(q,θ)=∑Zq(Z)In p(X,Z∣θ)−∑Zq(Z)In q(Z)L(q,\theta) = \sum_Zq(Z)In \ p(X,Z|\theta) - \sum_Z q(Z) In \ q(Z)L(q,θ)=Zq(Z)In p(X,Zθ)Zq(Z)In q(Z)即上述变分下界。后面的一项KL(q∣∣p)=−∑Zq(Z)In p(Z∣X,θ)q(Z)KL(q || p) = -\sum_Zq(Z)In \ \frac{p(Z|X,\theta)}{q(Z)}KL(qp)=Zq(Z)In q(Z)p(ZX,θ)由于有∑Zq(Z)=1\sum_Z q(Z) = 1Zq(Z)=1很容易就可以得出上述等式成立。回顾KL散度的性质,KL散度满足如下两条性质:

  • KL(q∣∣p)≥0KL(q||p) \geq 0KL(qp)0
  • 等号成立当且仅当q(Z)=p(Z∣X,θ)q(Z) = p(Z|X,\theta)q(Z)=p(ZX,θ)

因此也可以得出In p(X∣θ)≥L(q,θ)In \ p(X|\theta) \geq L(q,\theta)In p(Xθ)L(q,θ)。下图所示证明了满足的数量关系:
在这里插入图片描述

  • EM算法的步骤可以概括为下面两个步骤,假设现在模型获得的参数为θold\theta ^{old}θold
    • E步:变分下界L(q,θold)L(q,\theta^{old})L(q,θold)被关于分布q(Z)q(Z)q(Z)最大化,而参数θold\theta ^{old}θold固定。这时In p(X∣θold)In \ p(X | \theta^{old})In p(Xθold)应该是已知的(因为参数已经确定了)。而由于In p(X∣θold)=L(q,θold)+KL(q∣∣p)In \ p(X|\theta^{old}) = L(q,\theta^{old}) + KL(q || p)In p(Xθold)=L(q,θold)+KL(qp),因此当KL(q∣∣p)=0KL(q||p) =0KL(qp)=0q(Z)=p(Z∣X,θold)q(Z) = p(Z|X,\theta^{old})q(Z)=p(ZX,θold)时可以使得该变分下界达到最大值。
      • 当满足q(Z)=p(Z∣X,θold)q(Z) = p(Z|X,\theta^{old})q(Z)=p(ZX,θold)时,将其带入变分下界的定义式子∑Zq(Z)In p(X,Z∣θ)−∑Zq(Z)In q(Z)=L(q,θ)\sum_Zq(Z)In \ p(X,Z|\theta) - \sum_Z q(Z) In \ q(Z) = L(q,\theta)Zq(Z)In p(X,Zθ)Zq(Z)In q(Z)=L(q,θ)就可以得到下列形式:
        在这里插入图片描述在这里插入图片描述

在这里插入图片描述

  • M步:分布q(Z)q(Z)q(Z)固定而变分下界关于参数θ\thetaθ最大化。这将会使得变分下界L(q,θold)L(q,\theta^{old})L(q,θold)得到提升,从而使得似然值提升,设更新之后的θnew\theta^{new}θnew
    - 但是由于分布q(Z)q(Z)q(Z)在E步中和 p(Z∣X,θold)p(Z|X,\theta^{old})p(ZX,θold),相同,而和p(Z∣X,θnew)p(Z|X,\theta^{new})p(ZX,θnew)是不同的,因此在上述过程执行完毕后,KLKLKL散度值又会变得不是0;
    - 因此,In p(X∣θ)In \ p(X|\theta)In p(Xθ)会提升的比L(q,θ)L(q,\theta)L(q,θ)更多。

在这里插入图片描述

EM算法的收敛性

  • 参见统计学习方法 李航

高斯混合模型的再回首

在前面部分的给出的EM算法的一般形式中,我们给出了Q函数:
Q(θ,θold)=∫p(Z∣X,θold)logp(X,Z∣θ)dZQ(\theta,\theta^{old}) = \int p(Z|X,\theta^{old}) logp(X,Z|\theta) dZQ(θ,θold)=p(ZX,θold)logp(X,Zθ)dZ

  • 尤其注意这里积分时Z的取值,在混合高斯模型中可能的取值个数上面已经给出。
  • 当然这里因为Z是离散的,因此这里的积分实际上是求和
  • 在混合高斯模型中,我们需要估计的参数为θ=(π,μ,∑)\theta = (\pi,\mu,\sum)θ=(π,μ,)
  • 在混合高斯模型中,这里的矩阵Z的形式上面已经给出。即γik\gamma_{ik}γik组成的矩阵。第i个样本属于第k个高斯分布的后验概率。
  • z的第i行是样本i对应的z\mathbf zz向量记为zi\mathbf z_izi,即上述用于分类的离散隐变量。如果假设有k个高斯分模型zi\mathbf z_izi变量对应(γi1,⋯γik\gamma_{i1},\cdots \gamma_{ik}γi1,γik

先考察p(X,Z∣θ)p(X,Z|\theta)p(X,Zθ)的形式。在高斯混合模型中,这个式子的意义是在给定高斯混合模型参数的条件下,事件:

  • 样本XXX出现
  • 且第一个样本属于矩阵Z第一行不为0的元素的列下标的高斯,第二个样本属于矩阵Z第二行不为0的元素的列下标的高斯⋯\cdots以此类推。

发生的概率(也是似然).
假设有k个高斯分模型。对于单个样本xi\mathbf x_ixi而言,我们有:
p(xi,zi∣θ)=∏n=1k(πnN(xi∣μn,∑n))γinp(\mathbf x_i,\mathbf z_i|\theta) = \prod_{n = 1}^k (\pi_n N(\mathbf x_i|\mu_n,{\sum}_n))^{\gamma_{in}}p(xi,ziθ)=n=1k(πnN(xiμn,n))γin
注意到样本之间的独立性,我们有:
p(X,Z∣θ)=∏i=1Np(xi,zi∣θ)p(X,Z|\theta) = \prod_{i = 1}^N p(\mathbf x_i,\mathbf z_i|\theta)p(X,Zθ)=i=1Np(xi,ziθ)
将第一个式子带入第二个式子
p(X,Z∣θ)=∏i=1N{∏n=1k[(πnN(xi∣μn,∑n))γin]}p(X,Z|\theta) = \prod_{i = 1}^N\{\prod_{n = 1}^k [ (\pi_n N(\mathbf x_i|\mu_n,{\sum}_n))^{\gamma_{in}}]\}p(X,Zθ)=i=1N{n=1k[(πnN(xiμn,n))γin]}
取对数得到:
logp(X,Z∣θ)=∑i=1N∑n=1k[γinlog(πnN(xi∣μn,∑n))]logp(X,Z|\theta) = \sum_{i= 1}^N\sum_{n = 1}^k[\gamma_{in}log(\pi_nN(\mathbf x_i|\mu_n,{\sum}_n))]logp(X,Zθ)=i=1Nn=1k[γinlog(πnN(xiμn,n))]
下面再考察:p(Z∣X,θ)p(Z|X,\theta)p(ZX,θ)

对单个样本而言,自然有:
p(zi∣X,θ)=p(zi∣xi,θ)=∏n=1k(πnN(xi∣μn,∑n))γin∑n=1kπnN(xi∣μn,∑n) p(\mathbf z_i |X,\theta) = p(\mathbf z_i |\mathbf x_i,\theta)= \frac{ \prod_{n = 1}^k (\pi_n N(\mathbf x_i|\mu_n,{\sum}_n))^{\gamma_{in}}}{\sum_{n = 1}^k \pi_n N(\mathbf x_i|\mu_n,{\sum}_n)} p(ziX,θ)=p(zixi,θ)=n=1kπnN(xiμn,n)n=1k(πnN(xiμn,n))γin
注意分子还是前面的老话"\gamma只有一个分量为1,其余的全为0"
由于样本间的独立性,于是有:
p(Z∣X,θ)=∏i=1Np(zi∣X,θ)=∏i=1N[∏n=1k(πnN(xi∣μn,∑n))γin∑n=1kπnN(xi∣μn,∑n)]p(Z |X,\theta) = \prod_{i= 1}^N p(\mathbf z_i |X,\theta) = \prod_{i= 1}^N [\frac{ \prod_{n = 1}^k (\pi_n N(\mathbf x_i|\mu_n,{\sum}_n))^{\gamma_{in}}}{\sum_{n = 1}^k \pi_n N(\mathbf x_i|\mu_n,{\sum}_n)}]p(ZX,θ)=i=1Np(ziX,θ)=i=1N[n=1kπnN(xiμn,n)n=1k(πnN(xiμn,n))γin]

  • 还需要注意到:上述θ\thetaθ参数是θold\theta^{old}θold,即上述式子中的πn,μn,∑n\pi_n,\mu_n,\sum_nπn,μn,n已知的。这和上述推导的P(X,Z∣θ)P(X,Z|\theta)P(X,Zθ)是两个不同的θ\thetaθ,后者是在M步中需要求解的
  • 于是为了区分在p(Z∣X,θ)p(Z |X,\theta)p(ZX,θ)的每个参数头上加上old,代表已知。

下面给出上述Q函数的具体形式,首先将上述定义带入得到:
Q=∫p(Z∣X,θold)p(X,Z∣θ)dZ=∫∏i=1N[∏n=1k(πnN(xi∣μnold,∑n))γin∑n=1kπnN(xi∣μnold,∑nold)]⋅∑i=1N∑n=1k[γinlog(πnN(xi∣μn,∑n))]dZ Q = \int p(Z |X,\theta^{old})p(X,Z|\theta)dZ \\ = \int \prod_{i= 1}^N [\frac{ \prod_{n = 1}^k (\pi_n N(\mathbf x_i|\mu_n^{old},{\sum}_n))^{\gamma_{in}}}{\sum_{n = 1}^k \pi_n N(\mathbf x_i|\mu_n^{old},{\sum}_n^{old})}] \cdot \sum_{i= 1}^N\sum_{n = 1}^k[\gamma_{in}log(\pi_nN(\mathbf x_i|\mu_n,{\sum}_n))] dZ Q=p(ZX,θold)p(X,Zθ)dZ=i=1N[n=1kπnN(xiμnold,nold)n=1k(πnN(xiμnold,n))γin]i=1Nn=1k[γinlog(πnN(xiμn,n))]dZ
在上面式子中,前后两部分用间隔号区分开了。
虽然上面的式子很复杂,但是我们仔细观察形式:

  • 上述积分是对于Z矩阵取值的每种情况进行求和,而Z中的元素就是γij\gamma_{ij}γij
  • 于是这里的dZdZdZ就相当于dγ11dγ12⋯dγ1kdγ21⋯dγ2k⋯dγN1dγN2⋯dγNkd\gamma_{11}d\gamma_{12}\cdots d\gamma_{1k}d\gamma_{21}\cdots d\gamma_{2k}\cdots d\gamma_{N1} d\gamma_{N2}\cdots d\gamma_{Nk}dγ11dγ12dγ1kdγ21dγ2kdγN1dγN2dγNk
  • 当然也相当于dz1dz2⋯dzNd\mathbf z_1d\mathbf z_2 \cdots d\mathbf z_Ndz1dz2dzN
  • 注意γ\gammaγ中那个一个取值为1,其余取值都为0的约束条件(前面的部分,用于分类的离散隐变量)
  • 于是可以利用积分的线性性质,将积分提到里面去,得到:

Q=∑i=1N∑n=1k{∫γin∏i=1N[∏n=1k(πnN(xi∣μnold,∑n))γin∑n=1kπnN(xi∣μnold,∑nold)]dZ}log(πnN(xi∣μn,∑n))Q = \sum_{i= 1}^N\sum_{n = 1}^k \{\int \gamma_{in} \prod_{i= 1}^N [\frac{ \prod_{n = 1}^k (\pi_n N(\mathbf x_i|\mu_n^{old},{\sum}_n))^{\gamma_{in}}}{\sum_{n = 1}^k \pi_n N(\mathbf x_i|\mu_n^{old},{\sum}_n^{old})}] dZ\}log(\pi_nN(\mathbf x_i|\mu_n,{\sum}_n))Q=i=1Nn=1k{γini=1N[n=1kπnN(xiμnold,nold)n=1k(πnN(xiμnold,n))γin]dZ}log(πnN(xiμn,n))
要想求出Q函数,只需求出那里面的一大堆积分就可以了。现在考察:
∫γin∏i=1N[∏n=1k(πnN(xi∣μnold,∑n))γin∑n=1kπnN(xi∣μnold,∑nold)]dZ\int \gamma_{in} \prod_{i= 1}^N [\frac{ \prod_{n = 1}^k (\pi_n N(\mathbf x_i|\mu_n^{old},{\sum}_n))^{\gamma_{in}}}{\sum_{n = 1}^k \pi_n N(\mathbf x_i|\mu_n^{old},{\sum}_n^{old})}] dZγini=1N[n=1kπnN(xiμnold,nold)n=1k(πnN(xiμnold,n))γin]dZ

∫γin∏i=1N[∏n=1k(πnN(xi∣μnold,∑n))γin∑n=1kπnN(xi∣μnold,∑nold)]dγ11dγ12⋯dγ1kdγ21⋯dγ2k⋯dγN1dγN2⋯dγNk\int \gamma_{in} \prod_{i= 1}^N [\frac{ \prod_{n = 1}^k (\pi_n N(\mathbf x_i|\mu_n^{old},{\sum}_n))^{\gamma_{in}}}{\sum_{n = 1}^k \pi_n N(\mathbf x_i|\mu_n^{old},{\sum}_n^{old})}] d\gamma_{11}d\gamma_{12}\cdots d\gamma_{1k}d\gamma_{21}\cdots d\gamma_{2k}\cdots d\gamma_{N1} d\gamma_{N2}\cdots d\gamma_{Nk}γini=1N[n=1kπnN(xiμnold,nold)n=1k(πnN(xiμnold,n))γin]dγ11dγ12dγ1kdγ21dγ2kdγN1dγN2dγNk
不妨令i = 1,n = 1看看积分的结果,其余的都是类似的:

  • γ11\gamma_{11}γ11可以取1,当取1时,γ1n,n>=1\gamma_{1n},n>=1γ1n,n>=1中所有的都得取0
  • γ11\gamma_{11}γ11可以取0,不论如何积分结果都是0
  • 因此最终的积分结果就是γ11\gamma_{11}γ11取1时的结果。
  • 其余的变量的取值需要满足约束条件-单个为1,其余为0

γ11=1\gamma_{11} = 1γ11=1时上述式子化简为:
π1N(xi∣μ1old,∑1old)∑n=1kπnN(xi∣μnold,∑nold)∫∏i=2N[∏n=1k(πnN(xi∣μnold,∑n))γin∑n=1kπnN(xi∣μnold,∑nold)]dγ21⋯dγ2k⋯dγN1dγN2⋯dγNk\frac{\pi_1N(\mathbf x_i|\mu_1^{old},\sum_1^{old})}{\sum_{n = 1}^k \pi_n N(\mathbf x_i|\mu_n^{old},{\sum}_n^{old})} \int \prod_{i = 2}^N[\frac{ \prod_{n = 1}^k (\pi_n N(\mathbf x_i|\mu_n^{old},{\sum}_n))^{\gamma_{in}}}{\sum_{n = 1}^k \pi_n N(\mathbf x_i|\mu_n^{old},{\sum}_n^{old})}]d\gamma_{21}\cdots d\gamma_{2k}\cdots d\gamma_{N1} d\gamma_{N2}\cdots d\gamma_{Nk}n=1kπnN(xiμnold,nold)π1N(xiμ1old,1old)i=2N[n=1kπnN(xiμnold,nold)n=1k(πnN(xiμnold,n))γin]dγ21dγ2kdγN1dγN2dγNk
后面的式子结果等于1。提示:利用样本的独立性拆解积分即可,很容易,再注意约束条件。
推广到一般形式即不只是γ11\gamma_{11}γ11
∫γin∏i=1N[∏n=1k(πnN(xi∣μnold,∑n))γin∑n=1kπnN(xi∣μnold,∑nold)]dZ=πnN(xi∣μnold,∑nold)∑n=1kπnN(xi∣μnold,∑nold)\int \gamma_{in} \prod_{i= 1}^N [\frac{ \prod_{n = 1}^k (\pi_n N(\mathbf x_i|\mu_n^{old},{\sum}_n))^{\gamma_{in}}}{\sum_{n = 1}^k \pi_n N(\mathbf x_i|\mu_n^{old},{\sum}_n^{old})}] dZ = \frac{\pi_nN(\mathbf x_i|\mu_n^{old},\sum_n^{old})}{\sum_{n = 1}^k \pi_n N(\mathbf x_i|\mu_n^{old},{\sum}_n^{old})}γini=1N[n=1kπnN(xiμnold,nold)n=1k(πnN(xiμnold,n))γin]dZ=n=1kπnN(xiμnold,nold)πnN(xiμnold,nold)
上述积分就是离散隐变量γin\gamma_{in}γin在分布P(Z∣X,θold)P(Z|X,\theta^{old})P(ZX,θold)下的期望值。即:
Ep(Z∣X,θold)[γin]=∫γin∏i=1N[∏n=1k(πnN(xi∣μnold,∑n))γin∑n=1kπnN(xi∣μnold,∑nold)]dZ=πnN(xi∣μnold,∑nold)∑n=1kπnN(xi∣μnold,∑nold)E_{p(Z|X,\theta^{old})} [\gamma_{in}]=\int \gamma_{in} \prod_{i= 1}^N [\frac{ \prod_{n = 1}^k (\pi_n N(\mathbf x_i|\mu_n^{old},{\sum}_n))^{\gamma_{in}}}{\sum_{n = 1}^k \pi_n N(\mathbf x_i|\mu_n^{old},{\sum}_n^{old})}] dZ = \frac{\pi_nN(\mathbf x_i|\mu_n^{old},\sum_n^{old})}{\sum_{n = 1}^k \pi_n N(\mathbf x_i|\mu_n^{old},{\sum}_n^{old})}Ep(ZX,θold)[γin]=γini=1N[n=1kπnN(xiμnold,nold)n=1k(πnN(xiμnold,n))γin]dZ=n=1kπnN(xiμnold,nold)πnN(xiμnold,nold)
于是得到了Q函数:
∑i=1N∑n=1kEp(Z∣X,θold)[γin]log(πnN(xi∣μn,∑n))\sum_{i = 1}^N \sum_{n = 1}^k E_{p(Z|X,\theta^{old})} [\gamma_{in}]log(\pi_nN(\mathbf x_i|\mu_n,{\sum}_n))i=1Nn=1kEp(ZX,θold)[γin]log(πnN(xiμn,n))

E步

这里求解期望步,就可以看作上述利用线性性质后的积分,也可以认为是使用了期望的线性性质。即通过求解:
Ep(Z∣X,θold)[γin]=πnN(xi∣μnold,∑nold)∑n=1kπnN(xi∣μnold,∑nold)E_{p(Z|X,\theta^{old})} [\gamma_{in}] = \frac{\pi_nN(\mathbf x_i|\mu_n^{old},\sum_n^{old})}{\sum_{n = 1}^k \pi_n N(\mathbf x_i|\mu_n^{old},{\sum}_n^{old})}Ep(ZX,θold)[γin]=n=1kπnN(xiμnold,nold)πnN(xiμnold,nold)
进而求解到Q函数。
求解以后,注意这里的μn\mu_nμn∑n\sum_nnπ\piπ都是未知量

M步

将Q函数关于未知量最大化即得到混合高斯模型的迭代估计值。更新方式和前文利用极大似然估计的一致。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值