还是例子
例子是最好的说明思想的利器,光有思想,如果不应用到实际中,那就是思想,是哲学家甚至是数学家研究的范畴。不过个人觉得,只有应用到实际中,思想才算落地,那就是找到最合适的例子和应用场景来说明算法和思想。 今天我们就用例子来解释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的概率是:
该硬币为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(1−p)7p3(1−p)7+q3(1−q)7
继续抽象。
EM算法原型
- 基于 θt推断隐变量Z的期望,记为Zt
- 基于以观测变量 X和Zt对参数θ做极大似然估计,记作θt+1
EM算法
输入:
观测变量数据Y,隐变量数据Z,联合分布P(Y,Z|θ),条件分布P(Z|Y,θ)
输出:
模型参数
θ
(1) 选择参数的初始值
θ(0)
,开始迭代;
(2)E步:记
θ(i)
为第i次的迭代参数的估计值,在第i+1次迭代的E步,计算:
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)
(4) 重复步骤2和3,直到收敛。
期望值的公式如何推导的
这就是EM算法的创新之处,推导过程利用了Jensen不等式,下界函数等。 保证了每次迭代,对数似然函数(目标函数)不断增大。否则迭代来迭代去,到处乱跑,那么目标函数不稳定就没意义了。详细的推导下次再补,可以参考资料1. 其实这才是EM算法的最精美的部分。
本质上是:通过不断求解下界的极大化来逼近求解对数似然函数极大化的算法。
参考资料
- 统计学习方法 第九章 EM算法及其推广
- Do C B, Batzoglou S. What is the expectation maximization algorithm?[J]. Nature biotechnology, 2008, 26(8): 897-899.
- https://wenku.baidu.com/view/360fdc9e4a7302768f99398e.html