期望极大(EM)算法:是一种迭代算法,用于含有隐变量(latent variable)的概率模型参数的极大似然估计或者极大后验概率估计。EM算法每次迭代有两步组成:E步求期望;M步求极大。
三硬币模型
有A,B,C 三个硬币,抛硬币C决定使用A或B,然后抛A或者B决定正反面, 根据多次抛硬币正反面的结果,估算3个硬币的正反面概率值,,。
当隐变量C存在时, 无法直接使用极大似然估计求得概率值。
三硬币模型何时使用EM算法
论文What is the expectation maximization algorithm? 对比了直接极大似然估计和EM算法的适用场景,如下图所示
极大似然估计EM算法
上图做了五组实验,每组使用相同的硬币,进行十次实验,H代表正面,T代表反面。a,b两图实验结果一样,不同的是,a图随机选择使用A或B硬币,b图根据硬币C的结果选择使用A或B硬币。
对于a图,没有硬币C的存在,直接使用极大似然估计,得到硬币A,B的概率估计值 ,
对于b图,因为硬币C(隐变量)的存在,使用EM算法,首先设定和的初值,E步求期望。硬币C抛出正面的概率为,即选择硬币A的概率,抛出反面的概率为,即选择硬币B的概率,图中初始化了五组取值 (0.45, 0.55)
, (0.80, 0.20)
, (0.73, 0.27)
, (0.35, 0.65)
, (0.65, 0.35)
。根据初始化的和实验结果,求得期望。然后再求极大,得到第一次迭代之后的 ,。
这里仅仅给出了和直接极大似然求解的区别,实际情况下,求极大并更新参数时,也要对参数更新。
EM算法求解三硬币模型问题
-
初始化参数
-
假设第次迭代得到的参数为
-
E步:计算在参数模型下,观测数据来在硬币A的概率
-
M步:计算参数的新估计值
-
重复3,4,直到收敛
那么,为什么EM算法可以收敛呢?这样求解有什么依据呢?
网友评论