EM算法(具体到抽象)

还是例子

例子是最好的说明思想的利器,光有思想,如果不应用到实际中,那就是思想,是哲学家甚至是数学家研究的范畴。不过个人觉得,只有应用到实际中,思想才算落地,那就是找到最合适的例子和应用场景来说明算法和思想。 今天我们就用例子来解释EM算法(expectation maximization algorithm)。

掷硬币

场景: 假设有两枚硬币A,B,A投掷后朝上(head)的概率为 θA ,B投掷后朝上(head)的概率为 θB .
观察: 任意选一个硬币,投掷10次,观察到实验结果,如此重复做5次实验。
目标: 推断AB硬币朝上的概率 θA θB
这里的隐藏变量是什么?
选择A/B的序列。

最大似然估计(含与不含隐变量)

maximum likelihood
这里写图片描述
如果知道每次选的是A还是B,那可以直接估计(a)。
如果不知道选的是A还是B(隐变量),只观测到5次循环共50次投币的结果,这时就没法直接估计A和B的正面概率。EM算法此时可起作用(图b)。所以说:EM算法用于含有隐变量的概率模型参数的极大似然估计。

接下来看如何E-M步骤迭代:
1. 初始化:将 θA,θB 设置初始值,从图中给出分别为: θ0A=0.6 , θ0B=0.5
2. E-Step: 第一次抛,结果为[HTTTHHTHTH], 利用最大似然该硬币为A的概率是:

θ5A(1θA)5(θ5A(1θA)5+θ5B(1θB)5)=0.45

该硬币为B的概率是0.55.
同理,求出其他的概率,从而得到隐变量的概率分布:

次数硬币是A的概率硬币是B
10.450.55
20.800.20
30.730.27
40.350.65
50.650.35

直到现在我们求解都是隐变量;还没到期望值。
根据隐变量的概率可以求解期望值:对A:0.45*5=2.2H, 2.2T; 对B而言, 0.55*5=2.8H,2.8T。
从而得到期望值:

次数A的期望次数分布硬币B的期望分布
12.2H,2.2T2.8T,2.8T
27.2H,0.8T1.8H,0.2T
35.9H,1.5T2.1H,0.5T
41.4H,2.1T2.6H,3.9T
54.5H,1.9T2.5H,1.1T
sum21.3H,8.6T11.7H,8.4T

至此我们求出了所有的期望值。
2. M-step
根据期望值,继续极大似然计算将得到新的参数。记住:M步就是求参数的分布的。
θ1A=0.71=21.321.3+8.6,θ1B=0.58=11.711.7+8.4

继续重复步骤1和2直到收敛。

看到这里估计有个大体印象。

总结

  • 本质上是M步就是最大似然估计,找到一个最大概率的已知变量的概率分布,比如:A出现正面的概率。
  • 那么E步,就是期望,观察的是5个朝上,5个朝下,根据参数分布和观测数据,可以推出期望值。所以求期望值的公式是核心和关键。里面利用了隐变量。
  • A正面的概率p,B正面概率是q,假设10次里有3次朝上,那么隐变量为A的概率为:
    公式如下:
    p3(1p)7p3(1p)7+q3(1q)7

    继续抽象。

EM算法原型

  • 基于 θtZZt
  • 基于以观测变量 XZtθθt+1

EM算法

输入:
YZP(Y,Z|θ),P(Z|Y,θ)
输出:
模型参数 θ
(1) 选择参数的初始值 θ(0) ,开始迭代;
(2)E步:记 θ(i) 为第i次的迭代参数的估计值,在第i+1次迭代的E步,计算:

Q(θ,θ(i)=z(logP(Y,Z|θ)P(Z|Y,θ(i))

P(Z|Y,θ(i) 是给定观察数据Y和当前参数估计 θ(i) 下隐变量Z的条件概率分布。对应例子中的表格

次数硬币是A的概率硬币是B
10.450.55
20.800.20
30.730.27
40.350.65
50.650.35

(3)M步:求使得 Q(θ,θ(i) 极大化的 θ ,确定第i+1次迭代的参数的估计值 θ(i+1)

θ(i+1)=argmaxθQ(θ,θ(i))

(4) 重复步骤2和3,直到收敛。

期望值的公式如何推导的

这就是EM算法的创新之处,推导过程利用了Jensen不等式,下界函数等。 保证了每次迭代,对数似然函数(目标函数)不断增大。否则迭代来迭代去,到处乱跑,那么目标函数不稳定就没意义了。详细的推导下次再补,可以参考资料1. 其实这才是EM算法的最精美的部分。
本质上是:通过不断求解下界的极大化来逼近求解对数似然函数极大化的算法。

参考资料

  1. 统计学习方法 第九章 EM算法及其推广
  2. Do C B, Batzoglou S. What is the expectation maximization algorithm?[J]. Nature biotechnology, 2008, 26(8): 897-899.
  3. https://wenku.baidu.com/view/360fdc9e4a7302768f99398e.html
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值