EM算法(具体到抽象)

来源:互联网 发布:电台主播录音软件 编辑:程序博客网 时间:2024/06/09 16:53

还是例子

例子是最好的说明思想的利器,光有思想,如果不应用到实际中,那就是思想,是哲学家甚至是数学家研究的范畴。不过个人觉得,只有应用到实际中,思想才算落地,那就是找到最合适的例子和应用场景来说明算法和思想。 今天我们就用例子来解释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 1 0.45 0.55 2 0.80 0.20 3 0.73 0.27 4 0.35 0.65 5 0.65 0.35

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

次数 A的期望次数分布 硬币B的期望分布 1 2.2H,2.2T 2.8T,2.8T 2 7.2H,0.8T 1.8H,0.2T 3 5.9H,1.5T 2.1H,0.5T 4 1.4H,2.1T 2.6H,3.9T 5 4.5H,1.9T 2.5H,1.1T sum 21.3H,8.6T 11.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 1 0.45 0.55 2 0.80 0.20 3 0.73 0.27 4 0.35 0.65 5 0.65 0.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
原创粉丝点击