一、引入 EM

在现实应用中,除了已观测变量,还会存在隐变量,即未观测变量。

以如下一个经典例子举例:

有 3 枚硬币,分别为 A, B, C,其正面朝上概率分别是 emp测试数据_正则。具体实验如下:先扔硬币 A,若其为正则选硬币 B,为反则选硬币 C;再扔选出的硬币,其正反为本轮实验结果。

在这个例子中,「已观测变量」为实验结果,「未观测变量」为硬币 A 的正反面。

emp测试数据_正则_02 表示已观测变量集,emp测试数据_EM 算法_03 即表示第 emp测试数据_emp测试数据_04 次实验结果为 emp测试数据_极大似然估计_05emp测试数据_正则_06 表示隐变量集,emp测试数据_迭代_07 表示第 emp测试数据_emp测试数据_04 次实验选择了硬币 B;emp测试数据_EM 算法_09 表示模型参数,即 emp测试数据_emp测试数据_10

采用极大似然估计的思想,定义如下对数似然函数:emp测试数据_EM 算法_11

不难发现,对数中有 emp测试数据_emp测试数据_12,因此难以对其进行最大化,由此引入 EM 算法进行计算:

E 步: 根据 emp测试数据_emp测试数据_13 推断后验分布 emp测试数据_迭代_14,再计算 emp测试数据_正则_15emp测试数据_迭代_16

M 步:寻找最大化 emp测试数据_正则_15emp测试数据_emp测试数据_18,即emp测试数据_极大似然估计_19

不断迭代直至收敛,即可完成对参数的估计。

二、理论保证

EM 算法的每一步迭代都不会让 emp测试数据_正则_20

首先给出 emp测试数据_迭代_21 的下界:emp测试数据_正则_22

上式的关键在于利用 Jensen 不等式,将 emp测试数据_EM 算法_23 函数中的 emp测试数据_emp测试数据_12 移到了 emp测试数据_EM 算法_23 函数外,由此使 emp测试数据_正则_20 得以迭代求解。继续证明过程:emp测试数据_emp测试数据_27

因此最大化 emp测试数据_正则_20 的过程可以转化为最大化其下界 emp测试数据_迭代_29 的过程:emp测试数据_极大似然估计_30

由此我们可以得知 EM 算法即为「不断最大化似然函数下界」的算法,其直观理解如下:

emp测试数据_EM 算法_31

最后,需要注意,EM 算法只能保证每次迭代其似然函数值不会下降,但无法保证其能求得全局最优解。

三、GEM

通过引入隐变量的分布,我们可以得到广义 EM 的形式。首先,引入隐变量分布 emp测试数据_极大似然估计_32emp测试数据_正则_20 进行拆分:emp测试数据_正则_34

其中 emp测试数据_emp测试数据_35,当且仅当 emp测试数据_正则_36 时等号成立,具体拆分示意图如下:

emp测试数据_迭代_37

emp测试数据_emp测试数据_38,则 emp测试数据_EM 算法_39

emp测试数据_正则_40

此时将 emp测试数据_极大似然估计_32 代入 emp测试数据_emp测试数据_42,即可发现

emp测试数据_正则_43

再次最大化 emp测试数据_emp测试数据_42 得到 emp测试数据_迭代_45emp测试数据_emp测试数据_46 就会与 emp测试数据_正则_47 之间再次产生可优化的空间。

emp测试数据_迭代_48

具体过程如下图所示:

emp测试数据_EM 算法_49

即使用 emp测试数据_EM 算法_50 来估计 emp测试数据_极大似然估计_32,再根据 emp测试数据_极大似然估计_32 来最大化 emp测试数据_emp测试数据_42,因此之前的 EM 算法为 GEM 的一种特例。

参考文献

  1. 周志华. (2016). 机器学习. 清华大学出版社, 北京.
  2. 李航. (2019). 统计学习方法. 清华大学出版社, 第 2 版, 北京.
  3. Bishop, C.M. (2006). Pattern Recognition and Machine Learning. Springer, New York, NY.