• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

高斯混合模型EM算法

武飞扬头像
nth2000
帮助1

K均值聚类算法的回顾

算法流程

  • 初始化:随机选择K个中心点 μ 0 , μ 1 ⋯ μ k \mu_0,\mu_1 \cdots \mu_k μ0,μ1μk
  • 迭代进行如下步骤:
    • 分类:每一个实例点 j j j被分类到与他距离最近的中心处。若设第t次迭代界数后的分类函数为 C ( t ) ( j ) C^{(t)}(j) C(t)(j)将实例点 x j x_j xj分类,则应该满足 C ( t ) ( j ) = a r g m i n i ∣ ∣ u i − x j ∣ ∣ 2 C^{(t)}(j) = argmin_i ||u_i - x_j||^2 C(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 ∣ ∣ x j − u i ∣ ∣ 2 F(u) = \sum_i\sum_{C^{(t)}(j) = i}||x_j - u_i||^2 F(u)=iC(t)(j)=ixjui2
      其中前一个求和符号表示针对于所有的类别的中心求和,后一个求和符号表示对于每一个该类别的样本到该类别的中心的距离求和。
      由优化数学知识可知,当 μ i = 1 n u m o f x j s . t . C ( t ) ( j ) ) = i ∑ C ( t ) ( j ) ) = i x j \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 ) − x j ∣ ∣ 2 F(\mu,C) = \sum_j ||\mu_{C(j)} - x_j||^2 F(μ,C)=jμC(j)xj2则优化目标显然为下面的式子 m i n u m i n C F ( μ , C ) min_umin_{C} F(\mu,C) minuminCF(μ,C)
即:

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

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

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

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

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

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

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

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

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

用于分类的离散隐变量

学新通

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

将其扩展到每一种可能的取值,我们有下面的式子:
p ( z ) = p ( z 1 , z 2 , ⋯ z i − 1 , z i 1 , z k , z i ) = ∏ i = 1 k π i z i p(\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
为了验证上述式子的正确性,不妨设 z 1 = 1 z_1 = 1 z1=1,其余的分量都等于0.得到 p ( z 1 = 1 , z 2 = 0 ⋯ z n = 0 ) = π 1 p(z_1 = 1,z_2 = 0\cdots z_n = 0) = \pi_1 p(z1=1,z2=0zn=0)=π1这恰好和上述给出的联合概率分布是一致的!即无论 z 1 , z 2 ⋯ z n z_1,z_2\cdots z_n z1,z2zn如何取值,上述式子总能给出正确的联合概率分布

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

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

  • 而当某个样本的所属的类别确定时,其自身的概率分布也就确定了。例如对于一个给定的样本 x \mathbf x x,如果其自身的 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 z z的每一个取值。得到 p ( x ∣ z ) = ∏ k = 1 K N ( x ∣ μ k , ∑ K ) z k p(\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 ) = ∑ z p ( x , z ) = ∑ z ( ∏ k = 1 K π k z k ) ( ∏ k = 1 K N ( x ∣ μ k , ∑ K ) z k ) 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 z z的可能取值求和。上述右侧式子可以变化为:
    ∑ z ( ∏ k = 1 K π k z k ) ( ∏ k = 1 K N ( x ∣ μ k , ∑ K ) z k ) = ∑ z ( ∏ k = 1 K ( π k N ( μ k , ∑ k ) ) z k ) \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 = 1 K ( π k N ( μ k , ∑ k ) ) z k ) = ∑ k = 1 K π k N ( 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 = 1 K π k N ( 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 x x,有一个隐变量 z \mathbf z z与之对应。

简化NOTATION

对于一个给定的样本而言

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

后验概率的推导

由贝叶斯公式可知 p ( z k = 1 ∣ x ) = p ( x ∣ z k = 1 ) p ( z k = 1 ) ∑ z p ( x ∣ z k = 1 ) p ( z k = 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)
γ ( z k ) = p ( z k = 1 ∣ x ) \gamma(z_k) = p(z_k = 1|\mathbf x) γ(zk)=p(zk=1x)
将上面的推导结果带入 p ( z k = 1 ∣ x ) p(z_k = 1|\mathbf x) p(zk=1x)可以得到:
γ ( z k ) = p ( z k = 1 ∣ x ) = π k N ( μ k , ∑ k ) ∑ j = 1 K π j N ( μ 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)
可以认为 γ ( z k ) \gamma(z_k) γ(zk)负责解释第k个高斯负责解释样本x的程度!

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

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

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

由于混合高斯模型的概率密度函数为:
p ( x ) = ∑ k = 1 K π k N ( 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 = 1 N p ( x i ) = ∏ i = 1 N ( ∑ k = 1 K π k N ( x i ∣ μ 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))
将上述式子取对数得到下面的结果:
I n   p ( X ) = ∑ i = 1 N I n ( ∑ k = 1 K π k N ( x i ∣ μ 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 = 1 N p ( z k = 1 ∣ x i ) ∑ k − 1 ( x i − μ 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 = 1 N p ( z k = 1 ∣ x i ) ∑ k − 1 x i = ∑ i = 1 N p ( z k = 1 ∣ x i ) ∑ 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_k i=1Np(zk=1xi)k1xi=i=1Np(zk=1xi)k1μk
我们关注到 p ( z k = 1 ∣ x i ) p(z_k = 1|\mathbf x_i) p(zk=1xi)是标量,所以等式两侧同时乘以 ∑ k \sum_k k得到:
μ k = ∑ i = 1 N p ( z k = 1 ∣ x i ) x i ∑ i = 1 N p ( z k = 1 ∣ x i ) \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 ( z k = 1 ∣ x i ) = π k N ( x i ∣ μ k , ∑ k ) ∑ j = 1 K π j N ( x i ∣ μ 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使得上述等式成立了。

下面,为了简便引入记号 γ ( z i k ) \gamma(z_{ik}) γ(zik)满足 γ ( z i k ) = p ( z k = 1 ∣ x i ) = π k N ( x i ∣ μ k , ∑ k ) ∑ j = 1 K π j N ( x i ∣ μ 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 = 1 N γ ( z i k ) x i ∑ i = 1 N γ ( z i k ) \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
再引入记号 N k = ∑ i = 1 N γ ( z i k ) N _k = \sum_{i = 1}^N \gamma(z_{ik}) Nk=i=1Nγ(zik)

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

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

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

对称的,显然可以得到其他均值向量的值。
同时,用类似的方法可以得到协方差矩阵满足的不动点方程:
∑ k = ∑ i = 1 N γ ( z i k ) ( x i − μ k ) ( x i − μ k ) T N k {\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 = N k N \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)满足一定的条件下可以以迭代的形式求解。即先初始化一个点 x 0 x_0 x0,计算右侧的值,令 x 1 ← f ( x 0 ) x_1\leftarrow f(x_0) x1f(x0)。再将 x 1 x_1 x1代入 f ( x ) f(x) f(x)计算全新的 x 2 x_2 x2如此循环往复。
  • 当两次计算的结果之差小于某个阈值时,我们可以近似认为不动点方程近似得到了满足。

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

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

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

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

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

这一部分旨在说明K-MEANS是高斯混合模型的特例
多元高斯分布 N ( μ x , ∑ ) N(\mu_x,\sum) N(μx,)的概率密度函数为:
学新通
在混合高斯模型中我们有:
γ ( z i k ) = p ( z k = 1 ∣ x i ) = π k N ( x i ∣ μ k , ∑ k ) ∑ j = 1 K π j N ( x i ∣ μ 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 π是相同的,而不使用上述的不动点方程迭代求解。
    • 于是满足 γ ( z i k ) = N ( x i ∣ μ k , ∑ k ) ∑ j = 1 K N ( x i ∣ μ 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)
  • 如果我们假设变量间的协方差矩阵都为 a I , a → 0 aI,a\rightarrow 0 aIa0,I为单位阵,不使用不动点方程进行更新。

在满足上述的假设后,最后的 γ ( z i k ) \gamma(z_{ik}) γ(zik)变为了:
γ ( z i k ) = e − ( x i − μ k ) T 1 2 a ( x i − μ k ) ∑ j = 1 K e − ( x i − μ j ) T 1 2 a ( x i − μ 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)
其中 1 a → ∞ \frac{1}{a} \rightarrow \infty a1。将分子分母同时除以分子,很容易得到:

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

一般形式的EM算法

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

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

一般情况下仅仅知道 P ( Z ∣ X ) P(Z|X) P(ZX),于是可以考虑下面的期望函数:
Q ( θ , θ o l d ) = ∑ Z p ( Z ∣ X , θ o l d ) I n   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步中,使用模型迭代到此步的 θ o l d \theta^{old} θold计算现有后验概率 p ( Z ∣ X , θ o l d ) p(Z|X,\theta^{old}) p(ZX,θold)
      • 类似于混合高斯模型中的第一步计算 p ( z k = 1 ∣ x ) p(z_k = 1|\mathbf x) p(zk=1x)
    • M步:带入到上述 Q Q Q函数中,并求解 θ \theta θ使得 Q Q Q函数尽可能最大化。

EM算法的变分下界

学新通

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

考察上述观测数据的对数似然函数,如果对于随机变量矩阵 Z Z Z引入其分布 q ( Z ) q(Z) q(Z)那么有下式成立:
I n   p ( X ∣ θ ) = I n ∑ Z   p ( X , Z ∣ θ ) = I n ∑ Z q ( 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θ)
J E N S E N JENSEN JENSEN不等式可知,注意Log是凹函数,所以不等号方向需要改变的:
I n ∑ Z q ( Z ) p ( X , Z ∣ θ ) q ( Z ) ≥ ∑ Z q ( Z ) I n   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θ)
我们先考察一下不等式的一半。不等号右侧的式子可以写为
∑ Z q ( Z ) I n   p ( X , Z ∣ θ ) q ( Z ) = ∑ Z q ( Z ) I n   p ( X , Z ∣ θ ) − ∑ Z q ( Z ) I n   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 θ未知。
    • 首先注意观测数据 X X X实际上是已知的
    • 例如对于混合高斯模型而言,其概率密度函数是已知的,而我们是需要估计 μ , ∑ , π \mu,\sum,\pi μ,,π
    • 而对于隐变量,我们本身就需要考虑其所有可能取值。所以也可以认为它是已知的。
      • 例如在高斯混合模型中要考虑所有样本类别的可能取值,即构成了隐变量矩阵 Z Z Z的所有可能取值
    • 所以上述式子中的第一项只依赖于 θ \theta θ即模型参数的可能取值。当模型参数取值变化时,上述式子的第一项也跟着发生变化。
  • 同时,我们并不知道 q ( Z ) q(Z) q(Z)的具体形式。所以上式还依赖于 q ( Z ) q(Z) q(Z)
    • q ( Z ) q(Z) q(Z)显然是一种针对于随机变量矩阵 Z Z Z分布函数
  • 综上所述,上式的取值就依赖于 θ \theta θ q ( Z ) q(Z) q(Z)。我们将其写作 ∑ Z q ( Z ) I n   p ( X , Z ∣ θ ) − ∑ Z q ( Z ) I n   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,θ)

现在我们回过头来考察整个不等式即:
I n ∑ Z q ( Z ) p ( X , Z ∣ θ ) q ( Z ) ≥ ∑ Z q ( Z ) I n   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)上述不等式均成立。
注意: ∑ Z q ( Z ) I n   p ( X , Z ∣ θ ) − ∑ Z q ( Z ) I n   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)下的期望值。即有 E q ( Z ) [ I n   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 ) l o g p ( z ) H(z) = \sum_z -p(z)logp(z) H(z)=zp(z)logp(z)
对于连续性随机变量而言,其熵值有下图所示的形式给出:
H ( z ) = ∫ − p ( z ) l o g p ( z ) d z H(z) = \int -p(z)logp(z) dz H(z)=p(z)logp(z)dz
如果将分布 q ( Z ) q(Z) q(Z)的熵值记作 H ( q ( Z ) ) H(q(Z)) H(q(Z)),那么上述的不等式可以写作:
I n   p ( X ∣ θ ) ≥ E q ( Z ) [ I n   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,θ)
同时,由于
I n   p ( X ∣ θ ) = I n ∑ Z q ( 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θ)
可以将其写作如下的形式:
I n   p ( X ∣ θ ) = L ( q , θ ) K L ( q ∣ ∣ p ) In \ p(X|\theta) = L(q,\theta) KL(q || p) In p(Xθ)=L(q,θ) KL(qp)
其中前面的一项 L ( q , θ ) = ∑ Z q ( Z ) I n   p ( X , Z ∣ θ ) − ∑ Z q ( Z ) I n   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)即上述变分下界。后面的一项 K L ( q ∣ ∣ p ) = − ∑ Z q ( Z ) I n   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,θ)由于有 ∑ Z q ( Z ) = 1 \sum_Z q(Z) = 1 Zq(Z)=1很容易就可以得出上述等式成立。回顾KL散度的性质,KL散度满足如下两条性质:

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

因此也可以得出 I n   p ( X ∣ θ ) ≥ L ( q , θ ) In \ p(X|\theta) \geq L(q,\theta) In p(Xθ)L(q,θ)。下图所示证明了满足的数量关系:
学新通

  • EM算法的步骤可以概括为下面两个步骤,假设现在模型获得的参数为 θ o l d \theta ^{old} θold
    • E步:变分下界 L ( q , θ o l d ) L(q,\theta^{old}) L(q,θold)被关于分布 q ( Z ) q(Z) q(Z)最大化,而参数 θ o l d \theta ^{old} θold固定。这时 I n   p ( X ∣ θ o l d ) In \ p(X | \theta^{old}) In p(Xθold)应该是已知的(因为参数已经确定了)。而由于 I n   p ( X ∣ θ o l d ) = L ( q , θ o l d ) K L ( q ∣ ∣ p ) In \ p(X|\theta^{old}) = L(q,\theta^{old}) KL(q || p) In p(Xθold)=L(q,θold) KL(qp),因此当 K L ( q ∣ ∣ p ) = 0 KL(q||p) =0 KL(qp)=0 q ( Z ) = p ( Z ∣ X , θ o l d ) q(Z) = p(Z|X,\theta^{old}) q(Z)=p(ZX,θold)时可以使得该变分下界达到最大值。
      • 当满足 q ( Z ) = p ( Z ∣ X , θ o l d ) q(Z) = p(Z|X,\theta^{old}) q(Z)=p(ZX,θold)时,将其带入变分下界的定义式子 ∑ Z q ( Z ) I n   p ( X , Z ∣ θ ) − ∑ Z q ( Z ) I n   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 , θ o l d ) L(q,\theta^{old}) L(q,θold)得到提升,从而使得似然值提升,设更新之后的 θ n e w \theta^{new} θnew
    - 但是由于分布 q ( Z ) q(Z) q(Z)在E步中和 p ( Z ∣ X , θ o l d ) p(Z|X,\theta^{old}) p(ZX,θold),相同,而和 p ( Z ∣ X , θ n e w ) p(Z|X,\theta^{new}) p(ZX,θnew)是不同的,因此在上述过程执行完毕后, K L KL KL散度值又会变得不是0;
    - 因此, I n   p ( X ∣ θ ) In \ p(X|\theta) In p(Xθ)会提升的比 L ( q , θ ) L(q,\theta) L(q,θ)更多。

学新通

EM算法的收敛性

  • 参见统计学习方法 李航

高斯混合模型的再回首

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

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

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

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

发生的概率(也是似然).
假设有k个高斯分模型。对于单个样本 x i \mathbf x_i xi而言,我们有:
p ( x i , z i ∣ θ ) = ∏ n = 1 k ( π n N ( x i ∣ μ n , ∑ n ) ) γ i n p(\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 = 1 N p ( x i , z i ∣ θ ) 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 = 1 N { ∏ n = 1 k [ ( π n N ( x i ∣ μ n , ∑ n ) ) γ i n ] } 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]}
取对数得到:
l o g p ( X , Z ∣ θ ) = ∑ i = 1 N ∑ n = 1 k [ γ i n l o g ( π n N ( x i ∣ μ 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 ( z i ∣ X , θ ) = p ( z i ∣ x i , θ ) = ∏ n = 1 k ( π n N ( x i ∣ μ n , ∑ n ) ) γ i n ∑ n = 1 k π n N ( x i ∣ μ 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 = 1 N p ( z i ∣ X , θ ) = ∏ i = 1 N [ ∏ n = 1 k ( π n N ( x i ∣ μ n , ∑ n ) ) γ i n ∑ n = 1 k π n N ( x i ∣ μ 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 θ参数是 θ o l d \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 , θ o l d ) p ( X , Z ∣ θ ) d Z = ∫ ∏ i = 1 N [ ∏ n = 1 k ( π n N ( x i ∣ μ n o l d , ∑ n ) ) γ i n ∑ n = 1 k π n N ( x i ∣ μ n o l d , ∑ n o l d ) ] ⋅ ∑ i = 1 N ∑ n = 1 k [ γ i n l o g ( π n N ( x i ∣ μ n , ∑ n ) ) ] d Z 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中的元素就是 γ i j \gamma_{ij} γij
  • 于是这里的 d Z dZ dZ就相当于 d γ 11 d γ 12 ⋯ d γ 1 k d γ 21 ⋯ d γ 2 k ⋯ d γ N 1 d γ N 2 ⋯ d γ N k 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} dγ11dγ12dγ1kdγ21dγ2kdγN1dγN2dγNk
  • 当然也相当于 d z 1 d z 2 ⋯ d z N d\mathbf z_1d\mathbf z_2 \cdots d\mathbf z_N dz1dz2dzN
  • 注意 γ \gamma γ中那个一个取值为1,其余取值都为0的约束条件(前面的部分,用于分类的离散隐变量)
  • 于是可以利用积分的线性性质,将积分提到里面去,得到:

Q = ∑ i = 1 N ∑ n = 1 k { ∫ γ i n ∏ i = 1 N [ ∏ n = 1 k ( π n N ( x i ∣ μ n o l d , ∑ n ) ) γ i n ∑ n = 1 k π n N ( x i ∣ μ n o l d , ∑ n o l d ) ] d Z } l o g ( π n N ( x i ∣ μ 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函数,只需求出那里面的一大堆积分就可以了。现在考察:
∫ γ i n ∏ i = 1 N [ ∏ n = 1 k ( π n N ( x i ∣ μ n o l d , ∑ n ) ) γ i n ∑ n = 1 k π n N ( x i ∣ μ n o l d , ∑ n o l d ) ] d Z \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

∫ γ i n ∏ i = 1 N [ ∏ n = 1 k ( π n N ( x i ∣ μ n o l d , ∑ n ) ) γ i n ∑ n = 1 k π n N ( x i ∣ μ n o l d , ∑ n o l d ) ] d γ 11 d γ 12 ⋯ d γ 1 k d γ 21 ⋯ d γ 2 k ⋯ d γ N 1 d γ N 2 ⋯ d γ N 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})}] 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时, γ 1 n , 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时上述式子化简为:
π 1 N ( x i ∣ μ 1 o l d , ∑ 1 o l d ) ∑ n = 1 k π n N ( x i ∣ μ n o l d , ∑ n o l d ) ∫ ∏ i = 2 N [ ∏ n = 1 k ( π n N ( x i ∣ μ n o l d , ∑ n ) ) γ i n ∑ n = 1 k π n N ( x i ∣ μ n o l d , ∑ n o l d ) ] d γ 21 ⋯ d γ 2 k ⋯ d γ N 1 d γ N 2 ⋯ d γ N k \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
∫ γ i n ∏ i = 1 N [ ∏ n = 1 k ( π n N ( x i ∣ μ n o l d , ∑ n ) ) γ i n ∑ n = 1 k π n N ( x i ∣ μ n o l d , ∑ n o l d ) ] d Z = π n N ( x i ∣ μ n o l d , ∑ n o l d ) ∑ n = 1 k π n N ( x i ∣ μ n o l d , ∑ n o l d ) \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)
上述积分就是离散隐变量 γ i n \gamma_{in} γin在分布 P ( Z ∣ X , θ o l d ) P(Z|X,\theta^{old}) P(ZX,θold)下的期望值。即:
E p ( Z ∣ X , θ o l d ) [ γ i n ] = ∫ γ i n ∏ i = 1 N [ ∏ n = 1 k ( π n N ( x i ∣ μ n o l d , ∑ n ) ) γ i n ∑ n = 1 k π n N ( x i ∣ μ n o l d , ∑ n o l d ) ] d Z = π n N ( x i ∣ μ n o l d , ∑ n o l d ) ∑ n = 1 k π n N ( x i ∣ μ n o l d , ∑ n o l d ) 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 = 1 N ∑ n = 1 k E p ( Z ∣ X , θ o l d ) [ γ i n ] l o g ( π n N ( x i ∣ μ 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步

这里求解期望步,就可以看作上述利用线性性质后的积分,也可以认为是使用了期望的线性性质。即通过求解:
E p ( Z ∣ X , θ o l d ) [ γ i n ] = π n N ( x i ∣ μ n o l d , ∑ n o l d ) ∑ n = 1 k π n N ( x i ∣ μ n o l d , ∑ n o l d ) 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_n n π \pi π都是未知量

M步

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

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhiabcib
系列文章
更多 icon
同类精品
更多 icon
继续加载