0
点赞
收藏
分享

微信扫一扫

第十五章 EM期望极大算法及其推广

后来的六六 2023-11-04 阅读 11

文章目录

导读

  • 概率模型有时既含有观测变量,又含有隐变量或潜在变量。这句很重要,有时候我们能拿到最后的观测结果,却拿不到中间的过程记录

  • EM算法可以用于生成模型的非监督学习,EM算法是个一般方法,不具有具体模型

  • 似然和概率的关系可以推广了解,这章关于概率和似然的符号表示,概率和似然是同样的形式描述的都是可能性 P ( Y ∣ θ ) P(Y|\theta) P(Yθ)是一个两变量的函数,似然是给定结果,求参数可能性;概率是给定参数求结果可能性
    是不是可以认为,似然和概率分别对应了Train和Predict的过程?

  • 无论是三硬币还是GMM,采样的过程都是如下:

    注意,这里用到了 π \pi π,在强化学习中,随机性策略 π ( x , a ) \pi(x,a) π(x,a)表示为状态 x x x下选择动作 a a a的概率。

  • 关于EM算法的解释
    注意这里EM不是模型,是个一般方法,不具有具体的模型,这点前面已经提到

    1. PRML
      k m e a n s → G M M → E M kmeans \rightarrow GMM \rightarrow EM kmeansGMMEM
      k均值聚类算法就是一个典型的EM算法
    2. 统计学习方法
      1. M L E → B MLE \rightarrow B MLEB
      2. F F F函数的极大-极大算法
  • HMM作了两个基本假设,实际上是在说在图模型中,存在哪些

符号说明

上面这个概念很重要,Dempster在1977年提出EM算法的时候文章题目就是《Maximum likelihood from incomplete data via the EM algorithm》,具体看书中本章参考文献[^3]

上面这部分简单对应一下,这里说明一下,你看到下面概率分布和似然函数形式看起来一样。在概率中, θ \theta θ已知, 求 Y Y Y,在似然函数中通过已知的Y去求 θ \theta θ

观测数据 Y Y Y不完全数据 Y Y Y
不完全数据 Y Y Y概率分布$P(Y\theta)$似然函数$P(Y
完全数据 ( Y , Z ) (Y, Z) (Y,Z) Y Y Y Z Z Z的联合概率分布$P(Y,Z\theta )$似然函数$P(Y,Z

有一点要注意下, 这里没有出现 X X X, 有提到一种理解

有时候,只观测显变量看不到关系,就需要把隐变量引进来。

混合模型

书中用三硬币模型做为引子,在学习这部分内容的时候,注意体会观测数据的作用。

伯努利混合模型(三硬币模型)

问题描述

问题的描述过程中有这样一句:独立的重复 n n n次实验(这里 n = 10 n=10 n=10),观测结果如下:

1,1,0,1,0,0,1,0,1,1

思考上面这个观测和1,1,1,1,1,1,0,0,0,0有区别么?

没有任何信息的前提下,我们得到上面的观测数据可以假定是一个二项分布的形式,参数 n = 10 , p = 0.6 n=10, p=0.6 n=10,p=0.6

k = 6 k=6 k=6次成功分布在 n = 10 n=10 n=10次试验中有 C ( 10 , 6 ) C(10,6) C(10,6)种可能

所以上面两个观测序列,可能出自同一个模型。在这个问题的求解上是没有区别的

我们通过一段代码来生成这个数据

import numpy as np

p = 0.6
n = 10
# np.random.seed(2018)
flag_a = 1
flag_b = 1
cnt = 0
while flag_a or flag_b:
    tmp = np.random.binomial(1, p, n)
    if (tmp == np.array([1,1,1,1,1,1,0,0,0,0])).all():
        flag_a = 0
        print("[1,1,1,1,1,1,0,0,0,0] at %d\n" % cnt)
    if (tmp == np.array([1,1,0,1,0,0,1,0,1,1])).all():
        flag_b = 0
        print("[1,1,0,1,0,0,1,0,1,1] at %d\n" % cnt)
    cnt += 1

实际上题目的描述中说明了观测数据生成的过程,这些参数是未知的,所以需要对这些参数进行估计

三硬币模型可以写作
P ( y ∣ θ ) = ∑ z P ( y , z ∣ θ ) = ∑ z P ( z ∣ θ ) P ( y ∣ z , θ ) = π p y ( 1 − p ) 1 − y + ( 1 − π ) q y ( 1 − q ) 1 − y \begin{equation} \begin{aligned} P(y|\theta)&=\sum_z P(y,z|\theta) \\ &=\sum_z P(z|\theta)P(y|z,\theta) \\ &=\pi p^y (1-p)^{1-y} + (1-\pi)q^y(1-q)^{1-y} \end{aligned} \end{equation} P(yθ)=zP(y,zθ)=zP(zθ)P(yz,θ)=πpy(1p)1y+(1π)qy(1q)1y
以上

  1. 随机变量 y y y是观测变量,表示一次试验观测的结果是1或0
  2. 随机变量 z z z是隐变量,表示未观测到的掷硬币 A A A的结果
  3. θ = ( π , p , q ) \theta=(\pi,p,q) θ=(π,p,q)是模型参数
  4. 这个模型是以上数据(1,1,0,1,0,0,1,0,1,1)的生成模型

观测数据表示为 Y = ( Y 1 , Y 2 , Y 3 , … , Y n ) T Y=(Y_1, Y_2, Y_3, \dots, Y_n)^T Y=(Y1,Y2,Y3,,Yn)T, 未观测数据表示为 Z = ( Z 1 , Z 2 , Z 3 , … , Z n ) T Z=(Z_1,Z_2, Z_3,\dots, Z_n)^T Z=(Z1,Z2,Z3,,Zn)T, 则观测数据的似然函数为


P ( Y ∣ θ ) = ∏ j = 1 n [ π p y j ( 1 − p ) 1 − y j + ( 1 − π ) q y j ( 1 − q ) 1 − y j ] P(Y|\theta)=\prod\limits^{n}_{j=1}[\pi p^{y_j}(1-p)^{1-y_j}+(1-\pi)q^{y_j}(1-q)^{1-y_j}] P(Yθ)=j=1n[πpyj(1p)1yj+(1π)qyj(1q)1yj]



p ( x ∣ θ ) p ( θ ) = p ( θ ∣ x ) p ( x ) ⇒ p ( θ ∣ x ) = p ( x ∣ θ ) p ( θ ) p ( x ) ⇒ argmax ⁡ p ( θ ∣ x ) p(x|\theta)p(\theta)=p(\theta|x)p(x)\Rightarrow p(\theta|x)=\frac{p(x|\theta)p(\theta)}{p(x)}\Rightarrow\operatorname{argmax}p(\theta|x) p(xθ)p(θ)=p(θx)p(x)p(θx)=p(x)p(xθ)p(θ)argmaxp(θx)

极大似然估计:
θ ^ = arg ⁡ max ⁡ θ log ⁡ P ( Y ∣ θ ) \hat \theta = \arg\max\limits_{\theta}\log P(Y|\theta) θ^=argθmaxlogP(Yθ)
极大后验概率:
argmax  p ( θ ∣ x )    ⟺    argmax  p ( x ∣ θ ) p ( θ ) \text{argmax} \ p(\theta|x)\iff\text {argmax} \ p(x|\theta)p(\theta) argmax p(θx)argmax p(xθ)p(θ)
均匀分布下,后一部分是等概率的,N

KL散度=交叉熵+const

三硬币模型的EM算法
1.初值

EM算法首选参数初值,记作 θ ( 0 ) = ( π ( 0 ) , p ( 0 ) , q ( 0 ) ) \theta^{(0)}=(\pi^{(0)},p^{(0)}, q^{(0)}) θ(0)=(π(0),p(0),q(0)), 然后迭代计算参数的估计值。

如果第 i i i次迭代的模型参数估计值为 θ ( i ) = ( π ( i ) , p ( i ) , q ( i ) ) \theta^{(i)}=(\pi^{(i)}, p^{(i)}, q^{(i)}) θ(i)=(π(i),p(i),q(i))

2.E步

那么第 i + 1 i+1 i+1 次迭代的模型参数估计值表示为
μ j i + 1 = π ( i ) ( p ( i ) ) y j ( 1 − p ( i ) ) 1 − y j π ( i ) ( p ( i ) ) y j ( 1 − p ( i ) ) 1 − y j + ( 1 − π ( i ) ) ( q ( i ) ) y j ( 1 − q ( i ) ) 1 − y j \mu_j^{i+1} = \frac{\pi^{(i)}(p^{(i)})^{y_j}(1-p^{(i)})^{1-y_j}}{\pi^{(i)}(p^{(i)})^{y_j}(1-p^{(i)})^{1-y_j} + (1-\pi^{(i)})(q^{(i)})^{y_j}(1-q^{(i)})^{1-y_j}} μji+1=π(i)(p(i))yj(1p(i))1yj+(1π(i))(q(i))yj(1q(i))1yjπ(i)(p(i))yj(1p(i))1yj
因为是硬币,只有0,1两种可能,所有有上面的表达

这个表达方式还可以拆成如下形式
μ j i + 1 = { π ( i ) p ( i ) π ( i ) p ( i ) + ( 1 − π ( i ) ) q ( i ) , y j = 1 π ( i ) ( 1 − p ( i ) ) π ( i ) ( 1 − p ( i ) ) + ( 1 − π ( i ) ) ( 1 − q ( i ) ) , y j = 0 \mu_j^{i+1} = \begin{cases} \frac{\pi^{(i)}p^{(i)}}{\pi^{(i)}p^{(i)} + (1-\pi^{(i)})q^{(i)}}&, y_j = 1\\ \frac{\pi^{(i)}(1-p^{(i)})}{\pi^{(i)}(1-p^{(i)}) + (1-\pi^{(i)})(1-q^{(i)})}&, y_j = 0\\ \end{cases} μji+1= π(i)p(i)+(1π(i))q(i)π(i)p(i)π(i)(1p(i))+(1π(i))(1q(i))π(i)(1p(i)),yj=1,yj=0
所以, 这步(求 μ j \mu_j μj)干了什么,样本起到了什么作用?

这一步,通过假设的参数,计算了不同的样本对假设模型的响应( μ j \mu_j μj),注意这里因为样本( y j y_j yj)是二值的,所以,用 { y j , 1 − y j } \{y_j, 1-y_j\} {yj,1yj} 构成了one-hot的编码,用来表示样本归属的假设

以上,有点绕

这一步是什么的期望?书中有写,**观测数据来自硬币 B B B的概率, 在二项分布的情况下, 响应度和概率是一个概念. **这个说明,有助于后面M步公式的理解。

3.M步

π ( i + 1 ) = 1 n ∑ j = 1 n μ j ( i + 1 ) p ( i + 1 ) = ∑ j = 1 n μ j ( i + 1 ) y j ∑ j = 1 n μ j ( i + 1 ) q ( i + 1 ) = ∑ j = 1 n ( 1 − μ j ( i + 1 ) ) y j ∑ j = 1 n ( 1 − μ j ( i + 1 ) ) \begin{align} \pi^{(i+1)} &= \frac{1}{n}\sum_{j=1}^{n}\mu_j^{(i+1)}\\ \color{red} p^{(i+1)} &= \frac{\sum_{j=1}^{n}\mu_j^{(i+1)}y_j}{\sum_{j=1}^{n}\mu_j^{(i+1)}}\\ \color{red} q^{(i+1)} &= \frac{\sum_{j=1}^{n}(1-\mu_j^{(i+1)})y_j}{\sum_{j=1}^{n}(1-\mu_j^{(i+1)})} \end{align} π(i+1)p(i+1)q(i+1)=n1j=1nμj(i+1)=j=1nμj(i+1)j=1nμj(i+1)yj=j=1n(1μj(i+1))j=1n(1μj(i+1))yj
上面,红色部分的公式从观测数据是来自硬币B的概率这句来理解

初值影响

这个例子里面0.5是个合理又牛逼的初值。迭代收敛的最后结果是(0.5, 0.6, 0.6)

这个结果说明,如果A是均匀的,那么一个合理的解就是B,C是同质的。他们的分布情况和观测的分布一致

p,q 含义

这里面 p p p对应了 A = 1 A =1 A=1 B = 1 B=1 B=1 q q q对应了 A = 0 A=0 A=0 C = 1 C=1 C=1

这三个公式可以改写成如下形式:
π ( i + 1 ) = 1 n ∑ j = 1 n μ j ( i + 1 ) p ( i + 1 ) = ∑ j = 1 n μ j ( i + 1 ) y j ∑ j = 1 n ( μ j ( i + 1 ) y j + μ j ( i + 1 ) ( 1 − y j ) q ( i + 1 ) = ∑ j = 1 n ( 1 − μ j ( i + 1 ) ) y j ∑ j = 1 n ( ( 1 − μ j ( i + 1 ) ) y j + ( 1 − μ j ( i + 1 ) ) ( 1 − y j ) ) \begin{align} \pi^{(i+1)} &= \frac{1}{n}\sum_{j=1}^{n}\mu_j^{(i+1)}\\ \color{red} p^{(i+1)} &= \frac{\sum_{j=1}^{n}\mu_j^{(i+1)}y_j}{\sum_{j=1}^{n}(\mu_j^{(i+1)}y_j+\mu_j^{(i+1)}(1-y_j)}\\ \color{red} q^{(i+1)} &= \frac{\sum_{j=1}^{n}(1-\mu_j^{(i+1)})y_j}{\sum_{j=1}^{n}((1-\mu_j^{(i+1)})y_j+(1-\mu_j^{(i+1)})(1-y_j))} \end{align} π(i+1)p(i+1)q(i+1)=n1j=1nμj(i+1)=j=1n(μj(i+1)yj+μj(i+1)(1yj)j=1nμj(i+1)yj=j=1n((1μj(i+1))yj+(1μj(i+1))(1yj))j=1n(1μj(i+1))yj
π \pi π的表达式回答这样一个问题: 刷了这么多样本,拿到一堆数,那么 π \pi π应该是多少,均值是个比较好的选择

p p p的表达式回答这样一个问题: 如果我知道每个结果 y j y_j yj μ j \mu_j μj的可能来自硬币B(A=1),那么用这些数据刷出来他可能是正面的概率。这里面 μ j \mu_j μj对应了 A = 1 A=1 A=1

q q q的表达式同理,其中 1 − μ j 1-\mu_j 1μj对应了 A = 0 A=0 A=0

到后面讲高斯混合模型的时候,可以重新审视这里
α 0 ↔ π μ 0 ↔ p y j ( 1 − p ) 1 − y j α 1 ↔ 1 − π μ 1 ↔ q y j ( 1 − q ) 1 − y j \begin{aligned} \alpha_0& \leftrightarrow \pi \\ \mu_0& \leftrightarrow p^{y_j}(1-p)^{1-y_j}\\ \alpha_1& \leftrightarrow 1-\pi\\ \mu_1& \leftrightarrow q^{y_j}(1-q)^{1-y_j} \end{aligned} α0μ0α1μ1πpyj(1p)1yj1πqyj(1q)1yj
以上对应了包含两个分量的伯努利混合模型

bmm.py对伯努利混合模型做了实现, 有几点说明一下:

  1. ( p ( i ) ) y i ( 1 − p ( i ) ) 1 − y i (p^{(i)})^{y_i}(1-p^{(i)})^{1-y_i} (p(i))yi(1p(i))1yi这个表达式对应了伯努利分布的概率密度,可以表示成矩阵乘法,尽量不要用for,效率会差

  2. 采用了 π , p , q \pi, p, q π,p,q来表示,注意在题目的说明部分有说明三个符号的含义

  3. 实际上不怎么抛硬币,但是0-1的伯努利分布很多

EM算法另外视角

Q 函数

注意Q函数的定义,可以帮助理解上面E步中的求和表达式

完全数据的对数似然函数 log ⁡ P ( Y , Z ∣ θ ) \log P(Y, Z|\theta) logP(Y,Zθ)关于给定观测数据 Y Y Y的当前参数 θ ( i ) \theta^{(i)} θ(i)下对为观测数据 Z Z Z条件概率分布 P ( Z ∣ Y , θ ( i ) ) P(Z|Y,\theta^{(i)}) P(ZY,θ(i))的期望称为Q函数

BMM的EM算法
目标函数L

L ( θ ) = log ⁡ P ( Y ∣ θ ) = log ⁡ ∑ Z P ( Y , Z ∣ θ ) = log ⁡ ( ∑ Z P ( Y ∣ Z , θ ) P ( Z ∣ θ ) ) L(\theta)=\log P(Y|\theta)=\log \sum_Z P(Y,Z|\theta)=\log(\sum_Z P(Y|Z,\theta)P(Z|\theta)) L(θ)=logP(Yθ)=logZP(Y,Zθ)=log(ZP(YZ,θ)P(Zθ))

目标函数是不完全数据的对数似然

EM算法导出

书中这部分内容回答为什么EM算法能近似实现对观测数据的极大似然估计?
L ( θ ) − L ( θ ( i ) ) = log ⁡ ( ∑ Z P ( Z ∣ Y , θ ( i ) ) P ( Y ∣ Z , θ ) P ( Z ∣ θ ) P ( Z ∣ Y , θ ( i ) ) ) − log ⁡ P ( Y ∣ θ ( i ) ) ≥ ∑ Z P ( Z ∣ Y , θ ( i ) ) log ⁡ P ( Y ∣ Z , θ ) P ( Z ∣ θ ) P ( Z ∣ Y , θ ( i ) ) − log ⁡ P ( Y ∣ θ ( i ) ) = ∑ Z P ( Z ∣ Y , θ ( i ) ) log ⁡ P ( Y ∣ Z , θ ) P ( Z ∣ θ ) P ( Z ∣ Y , θ ( i ) ) − ∑ Z P ( Z ∣ Y , θ ( i ) ) log ⁡ P ( Y ∣ θ ( i ) ) = ∑ Z P ( Z ∣ Y , θ ( i ) ) log ⁡ P ( Y ∣ Z , θ ) P ( Z ∣ θ ) P ( Z ∣ Y , θ ( i ) ) P ( Y ∣ θ ( i ) ) \begin{align} L(\theta)-L(\theta^{(i)})&=\log \left(\sum_Z\color{green}P(Z|Y,\theta^{(i)})\frac{P(Y|Z,\theta)P(Z|\theta)}{\color{green}P(Z|Y,\theta^{(i)})}\right)-\log P(Y|\theta^{(i)})\\ &\ge\sum_Z \color{green}P(Z|Y,\theta^{(i)})\log \frac{P(Y|Z,\theta)P(Z|\theta)}{\color{green}P(Z|Y,\theta^{(i)})}-\log P(Y|\theta^{(i)})\\ &=\sum_Z P(Z|Y,\theta^{(i)})\log \frac{P(Y|Z,\theta)P(Z|\theta)}{P(Z|Y,\theta^{(i)})}-\color{red}\sum_Z P(Z|Y,\theta^{(i)})\color{black}\log P(Y|\theta^{(i)})\\ &=\sum_ZP(Z|Y,\theta^{(i)})\log \frac{P(Y|Z,\theta)P(Z|\theta)}{P(Z|Y,\theta^{(i)})P(Y|\theta^{(i)})} \end{align} L(θ)L(θ(i))=log(ZP(ZY,θ(i))P(ZY,θ(i))P(YZ,θ)P(Zθ))logP(Yθ(i))ZP(ZY,θ(i))logP(ZY,θ(i))P(YZ,θ)P(Zθ)logP(Yθ(i))=ZP(ZY,θ(i))logP(ZY,θ(i))P(YZ,θ)P(Zθ)ZP(ZY,θ(i))logP(Yθ(i))=ZP(ZY,θ(i))logP(ZY,θ(i))P(Yθ(i))P(YZ,θ)P(Zθ)

以上用于推导迭代过程中两次 L L L会变大, 这里面红色部分是后加的方便理解前后两步之间的推导。绿色部分是为了构造期望, 进而应用琴声不等式

高斯混合模型

混合模型,有多种,高斯混合模型是最常用的

高斯混合模型(Gaussian Mixture Model)是具有如下概率分布的模型:
P ( y ∣ θ ) = ∑ k = 1 K α k ϕ ( y ∣ θ k ) P(y|\theta)=\sum\limits^{K}_{k=1}\alpha_k\phi(y|\theta_k) P(yθ)=k=1Kαkϕ(yθk)
其中, α k \alpha_k αk是系数, α k ≥ 0 \alpha_k\ge0 αk0 ∑ k = 1 K α k = 1 \sum\limits^{K}_{k=1}\alpha_k=1 k=1Kαk=1, ϕ ( y ∣ θ k ) \phi(y|\theta_k) ϕ(yθk)高斯分布密度 θ k = ( μ , σ 2 ) \theta_k=(\mu,\sigma^2) θk=(μ,σ2)
ϕ ( y ∣ θ k ) = 1 2 π σ k exp ⁡ ( − ( y − μ k ) 2 2 σ k 2 ) \phi(y|\theta_k)=\frac{1}{\sqrt{2\pi}\sigma_k}\exp\left(-\frac{(y-\mu_k)^2}{2\sigma_k^2}\right) ϕ(yθk)=2π σk1exp(2σk2(yμk)2)
上式表示第k个模型

以上, 注意几点:

  1. GMM的描述是概率分布,形式上可以看成是加权求和,有啥用?

  2. 加权求和的权重 α \alpha α满足 ∑ k = 1 K α k = 1 \sum_{k=1}^K\alpha_k=1 k=1Kαk=1的约束

  3. 求和符号中除去权重的部分,是高斯分布密度(PDF)。高斯混合模型是一种 ∑ ( 权重 × 分布密度 ) = 分布 \sum(权重\times 分布密度)=分布 (权重×分布密度)=分布的表达
    高斯混合模型的参数估计是EM算法的一个重要应用,隐马尔科夫模型的非监督学习也是EM算法的一个重要应用

  4. 书中描述的是一维的高斯混合模型,d维的形式如下[^2],被称作多元正态分布,也叫多元高斯分布
    ϕ ( y ∣ θ k ) = 1 ( 2 π ) d ∣ Σ ∣ exp ⁡ ( − ( y − μ k ) T Σ − 1 ( y − μ k ) 2 ) \phi(y|\theta_k)=\frac{1}{\sqrt{(2\pi)^d|\Sigma|}}\exp\left(-\frac{(y-\mu_k)^T\Sigma^{-1}(y-\mu_k)}{2}\right) ϕ(yθk)=(2π)d∣Σ∣ 1exp(2(yμk)TΣ1(yμk))
    其中,协方差矩阵 Σ ∈ R n × n \Sigma\in \R^{n\times n} ΣRn×n

  5. 另外,关于高斯模型的混合,还有另外一种混合的方式,沿着时间轴的方向做混合。可以理解为滤波器,典型的算法就是Kalman Filter,对应了时域与频域之间的关系,两个高斯的混合依然是高斯,混合的方法是卷积,而不是简单的加法,考虑到的是概率密度的混合,也是一种线性的加权

GMM的EM算法

问题描述:

已知观测数据 y 1 , y 2 , … , y N y_1, y_2, \dots , y_N y1,y2,,yN,由高斯混合模型生成
P ( y ∣ θ ) = ∑ k = 1 K α k ϕ ( y ∣ θ k ) P(y|\theta)=\sum_{k=1}^K\alpha_k\phi(y|\theta_k) P(yθ)=k=1Kαkϕ(yθk)
其中, θ = ( α 1 , α 2 , … , α K ; θ 1 , θ 2 , … , θ K ) \theta=(\alpha_1,\alpha_2,\dots,\alpha_K;\theta_1,\theta_2,\dots,\theta_K) θ=(α1,α2,,αK;θ1,θ2,,θK)

补充下,不完全数据的似然函数应该是
P ( y ∣ θ ) = ∏ j = 1 N P ( y j ∣ θ ) = ∏ j = 1 N ∑ k = 1 K α k ϕ ( y ∣ θ k ) \begin{align} P(y|\theta)=&\prod_{j=1}^NP(y_j|\theta)\\ =&\prod_{j=1}^N\sum_{k=1}^K\alpha_k\phi(y|\theta_k) \end{align} P(yθ)==j=1NP(yjθ)j=1Nk=1Kαkϕ(yθk)
使用EM算法估计GMM的参数 θ \theta θ

1. 明确隐变量, 初值
  • 观测数据 y j , j = 1 , 2 , … , N y_j, j=1,2,\dots,N yj,j=1,2,,N这样产生, 是已知的:

    1. 依概率 α k \alpha_k αk选择第 k k k高斯分布分模型 ϕ ( y ∣ θ k ) \phi(y|\theta_k) ϕ(yθk);

    2. 依第 k k k个分模型的概率分布 ϕ ( y ∣ θ k ) \phi(y|\theta_k) ϕ(yθk)生成观测数据 y j y_j yj

    3. 反映观测数据 y j y_j yj来自第 k k k个分模型的数据是未知的, k = 1 , 2 , … , K k=1,2,\dots,K k=1,2,,K 以**隐变量 γ j k \gamma_{jk} γjk**表示
      注意这里 γ j k \gamma_{jk} γjk的维度 ( j × k ) (j\times k) (j×k)
      γ j k = { 1 , 第 j 个观测来自第 k 个分模型 0 , 否则 j = 1 , 2 , … , N ; k = 1 , 2 , … , K ; γ j k ∈ { 0 , 1 } \gamma_{jk}= \begin{cases} 1, &第j个观测来自第k个分模型\\ 0, &否则 \end{cases}\\ j=1,2,\dots,N; k=1,2,\dots,K; \gamma_{jk}\in\{0,1\} γjk={1,0,j个观测来自第k个分模型否则j=1,2,,N;k=1,2,,K;γjk{0,1}
      注意, 以上说明有几个假设:

    4. 隐变量和观测变量的数据对应, 每个观测数据,对应了一个隐变量, γ j k \gamma_{jk} γjk是一种one-hot的形式。

    5. 具体的单一观测数据是混合模型中的某一个模型产生的

  • 完全数据为 ( y j , γ j 1 , γ j 2 , … , γ j K , k = 1 , 2 , … , N ) (y_j,\gamma_{j1},\gamma_{j2},\dots,\gamma_{jK},k=1,2,\dots,N) (yj,γj1,γj2,,γjK,k=1,2,,N)

  • 完全数据似然函数
    P ( y , γ ∣ θ ) = ∏ j = 1 N P ( y j , γ j 1 , γ j 2 , … , γ j K ∣ θ ) = ∏ k = 1 K ∏ j = 1 N [ α k ϕ ( y j ∣ θ k ) ] γ j k = ∏ k = 1 K α k n k ∏ j = 1 N [ ϕ ( y j ∣ θ k ) ] γ j k = ∏ k = 1 K α k n k ∏ j = 1 N [ 1 2 π σ k exp ⁡ ( − ( y j − μ k ) 2 2 σ 2 ) ] γ j k \begin{aligned} P(y,\gamma|\theta)=&\prod_{j=1}^NP(y_j,\gamma_{j1},\gamma_{j2},\dots,\gamma_{jK}|\theta)\\ =&\prod_{k=1}^K\prod_{j=1}^N\left[\alpha_k\phi(y_j|\theta_k)\right]^{\gamma_{jk}}\\ =&\prod_{k=1}^K\alpha_k^{n_k}\prod_{j=1}^N\left[\phi(y_j|\theta_k)\right]^{\gamma_{jk}}\\ =&\prod_{k=1}^K\alpha_k^{n_k}\prod_{j=1}^N\left[\frac{1}{\sqrt{2\pi}\sigma_k}\exp\left(-\frac{(y_j-\mu_k)^2}{2\sigma^2}\right)\right]^{\gamma_{jk}}\\ \end{aligned} P(y,γθ)====j=1NP(yj,γj1,γj2,,γjKθ)k=1Kj=1N[αkϕ(yjθk)]γjkk=1Kαknkj=1N[ϕ(yjθk)]γjkk=1Kαknkj=1N[2π σk1exp(2σ2(yjμk)2)]γjk
    其中 n k = ∑ j = 1 N γ j k , ∑ k = 1 K n k = N n_k=\sum_{j=1}^N\gamma_{jk}, \sum_{k=1}^Kn_k=N nk=j=1Nγjk,k=1Knk=N

  • 完全数据对数似然函数
    log ⁡ P ( y , γ ∣ θ ) = ∑ k = 1 K { n k log ⁡ α k + ∑ j = 1 N γ j k [ log ⁡ ( 1 2 π ) − log ⁡ σ k − 1 2 σ 2 ( y j − μ k ) 2 ] } \log P(y,\gamma|\theta)=\sum_{k=1}^K\left\{n_k\log \alpha_k+\sum_{j=1}^N\gamma_{jk}\left[\log \left(\frac{1}{\sqrt{2\pi}}\right)-\log \sigma_k -\frac{1}{2\sigma^2}(y_j-\mu_k)^2\right]\right\} logP(y,γθ)=k=1K{nklogαk+j=1Nγjk[log(2π 1)logσk2σ21(yjμk)2]}

2. E步,确定Q函数

Q Q Q 函数表示成参数形式
Q ( θ , θ ( i ) ) = E [ log ⁡ P ( y , γ ∣ θ ) ∣ y , θ ( i ) ] = E ∑ k = 1 K n k log ⁡ α k + ∑ j = 1 N γ j k [ log ⁡ ( 1 2 π ) − log ⁡ σ k − 1 2 σ 2 ( y j − μ k ) 2 ] = E ∑ k = 1 K ∑ j = 1 N γ j k log ⁡ α k + ∑ j = 1 N γ j k [ log ⁡ ( 1 2 π ) − log ⁡ σ k − 1 2 σ 2 ( y j − μ k ) 2 ] = ∑ k = 1 K ∑ j = 1 N ( E γ j k ) log ⁡ α k + ∑ j = 1 N ( E γ j k ) [ log ⁡ ( 1 2 π ) − log ⁡ σ k − 1 2 σ 2 ( y j − μ k ) 2 ] \begin{aligned}Q(\theta,\theta^{(i)}) =&E[\log P(y,\gamma|\theta)|y,\theta^{(i)}]\\ =&\color{green}E\color{black}{\sum_{k=1}^K{\color{red}n_k\color{black}\log \alpha_k+\color{blue}\sum_{j=1}^N\gamma _{jk}\color{black}[\log(\frac{1}{\sqrt{2\pi}})-\log \sigma _k-\frac{1}{2\sigma^2(y_j-\mu_k)^2}]}}\\ =&\color{green}E\color{black}{\sum_{k=1}^K{\color{red}\sum_{j=1}^N\gamma_{jk}\color{black}\log \alpha_k+\color{blue}\sum_{j=1}^N\gamma _{jk}\color{black}[\log (\frac{1}{\sqrt{2\pi}})-\log \sigma _k-\frac{1}{2\sigma^2(y_j-\mu_k)^2}]}}\\ =&\sum_{k=1}^K{\color{red}\sum_{j=1}^{N}(\color{green}E\color{red}\gamma_{jk})\color{black}\log \alpha_k+\color{blue}\sum_{j=1}^N(\color{green}E\color{blue}\gamma _{jk})\color{black}[\log (\frac{1}{\sqrt{2\pi}})-\log \sigma _k-\frac{1}{2\sigma^2(y_j-\mu_k)^2}]}\\ \end{aligned} Q(θ,θ(i))====E[logP(y,γθ)y,θ(i)]Ek=1Knklogαk+j=1Nγjk[log(2π 1)logσk2σ2(yjμk)21]Ek=1Kj=1Nγjklogαk+j=1Nγjk[log(2π 1)logσk2σ2(yjμk)21]k=1Kj=1N(Eγjk)logαk+j=1N(Eγjk)[log(2π 1)logσk2σ2(yjμk)21]
γ ^ j k = E ( γ j k ∣ y , θ ) = P ( γ j k = 1 ∣ y , θ ) = P ( γ j k = 1 , y j ∣ θ ) ∑ k = 1 K P ( γ j k = 1 , y j ∣ θ ) = P ( y j ∣ γ j k = 1 , θ ) P ( γ j k = 1 ∣ θ ) ∑ k = 1 K P ( y j ∣ γ j k = 1 , θ ) P ( γ j k = 1 ∣ θ ) = α k ϕ ( y j ∣ θ k ) ∑ k = 1 K α k ϕ ( y j ∣ θ k ) \begin{aligned}\hat \gamma _{jk}= &\color{purple}E(\gamma_{jk}|y,\theta)=P(\gamma_{jk}=1|y,\theta)\\=&\frac{P(\gamma_{jk}=1,y_j|\theta)}{\sum_{k=1}^KP(\gamma_{jk}=1,y_j|\theta)}\\=&\frac{P(y_j|\color{red}\gamma_{jk}=1,\theta\color{black})\color{green}P(\gamma_{jk}=1|\theta)}{\sum_{k=1}^KP(y_j|\gamma_{jk}=1,\theta)P(\gamma_{jk}=1|\theta)}\\=&\frac{\color{green}\alpha_k\color{black}\phi(y_j|\color{red}\theta_k)}{\sum_{k=1}^K\alpha_k\phi(y_j|\theta_k)}\end{aligned} γ^jk====E(γjky,θ)=P(γjk=1∣y,θ)k=1KP(γjk=1,yjθ)P(γjk=1,yjθ)k=1KP(yjγjk=1,θ)P(γjk=1∣θ)P(yjγjk=1,θ)P(γjk=1∣θ)k=1Kαkϕ(yjθk)αkϕ(yjθk)

这部分内容就是搬运了书上的公式,有几点说明:

  1. 注意这里 E ( γ j k ∣ y , θ ) E(\gamma_{jk}|y,\theta) E(γjky,θ),记为 γ ^ j k \hat\gamma_{jk} γ^jk, 对应了E步求的期望中的一部分。
  2. 对应理解一下上面公式中的红色,蓝色和绿色部分,以及 γ ^ j k \hat\gamma_{jk} γ^jk中红色和绿色的对应关系
  3. 这里用到了 n k = ∑ j = 1 N γ j k n_k=\sum_{j=1}^N\gamma_{jk} nk=j=1Nγjk
  4. γ ^ j k \hat \gamma_{jk} γ^jk为分模型 k k k对观测数据 y j y_j yj的响应度。这里,紫色标记的第一行参考伯努利分布的期望。

Q ( θ , θ ( i ) ) = ∑ k = 1 K n k log ⁡ α k + ∑ j = 1 N γ ^ j k [ log ⁡ ( 1 2 π ) − log ⁡ σ k − 1 2 σ k 2 ( y j − μ k ) 2 ] Q(\theta,\theta^{(i)})=\sum_{k=1}^Kn_k\log \alpha_k+\sum_{j=1}^N\hat \gamma_{jk}\left[\log \left(\frac{1}{\sqrt{2\pi}}\right)-\log \sigma_k-\frac{1}{2\sigma_k^2}(y_j-\mu_k)^2\right] Q(θ,θ(i))=k=1Knklogαk+j=1Nγ^jk[log(2π 1)logσk2σk21(yjμk)2]
其中 i i i表示第 i i i步迭代

  1. 写出 Q Q Q 函数在推导的时候有用,但是在程序计算的时候,E步需要计算的就是 γ ^ j k \hat\gamma_{jk} γ^jk,M步用到了这个结果。其实抄公式没有什么意义,主要是能放慢看公式的速度。和图表一样,公式简洁的表达了很多信息,公式中也许更能体会到数学之美。
3. M步

求函数 Q ( θ , θ ( i ) ) Q(\theta,\theta^{(i)}) Q(θ,θ(i)) θ \theta θ的极大值,分别求 σ , μ , α \sigma, \mu, \alpha σ,μ,α
θ ( i + 1 ) = arg ⁡ max ⁡ θ Q ( θ , θ ( i ) ) \theta^{(i+1)}=\arg\max_\theta Q(\theta,\theta^{(i)}) θ(i+1)=argθmaxQ(θ,θ(i))

  • arg ⁡ max ⁡ \arg\max argmax 就是求Q的极值对应的参数 θ \theta θ,如说是离散的,遍历所有值,最大查找,如果是连续的,偏导为零求极值。
  • ∂ Q ∂ μ k = 0 , ∂ Q ∂ σ 2 = 0 \frac {\partial Q}{\partial \mu_k}=0, \frac {\partial{Q}}{\partial{\sigma^2}}= 0 μkQ=0,σ2Q=0 得到 μ ^ k , σ ^ k 2 \hat\mu_k, \hat \sigma_k^2 μ^k,σ^k2
  • ∑ k = 1 K α k = 1 , ∂ Q ∂ α k = 0 \sum_{k=1}^K\alpha_k=1, \frac{\partial{Q}}{\partial{\alpha_k}}=0 k=1Kαk=1,αkQ=0 得到 α k \alpha_k αk
4. 停止条件

重复以上计算,直到对数似然函数值不再有明显的变化为止。

如何应用
GMM在聚类中的应用

使用EM算法估计了GMM的参数之后,有新的数据点,怎么计算样本的类别的?

在机器学习[^5]中有一些关于聚类的表述,摘录这里:

可以参考下scikit-learn的具体实现,就是用了argmax,选择概率最大的那个输出。

Kmeans

另外,直觉上看,GMM最直观的想法就是Kmeans,那么:

  1. 在Kmeans常见的描述中都有距离的概念,对应在算法9.2 的描述中,该如何理解?
    这里面距离对应了方差,二范数平方
  2. 那么又是怎么在每轮刷过距离之后,重新划分样本的分类呢?
    这里对应了响应度,响应度对应了一个 j × k j \times k j×k的矩阵,记录了每一个 y j y_j yj 对第 k k k个模型的响应度,可以理解为划分了类别
K怎么定
  • 手肘法
  • Gap Statistics[^1]
  • 第二版中,有对应的描述。 P 267 P_{267} P267,一般的类别变大的时候,平均直径会增加,当类别数超过某个值之后,平均直径不会变化,这个值可以是最优的 k k k
举报

相关推荐

0 条评论