机器学习 | EM 算法
最大期望 (Expectation-maximization, EM) 算法:在统计中被用于寻找,依赖于不可观察的隐性变量的概率模型中,参数的最大似然估计。
1. 问题引入
假如要调查学校中男生与女生分别的身高分布。假设身高分布服从正态分布,那我们要求的参数就是均值
但是在有些情况时,我们没办法分别抽
我们可以的求解方式是首先随机初始化男生和女生的分布参数,然后根据该分布参数,判断每个数据更可能属于男生还是女生。判断完成后,再使用男生数据和女生数据估计出新的分布参数。重复迭代上面两个步骤,最后参数不再变化或变化很小时,就可以停止算法,输出最后估计出的两个分布的参数了。
这个操作和 EM 算法非常类似。
2. 前置知识
Jensen 不等式
- 若
为上凸(下凹)函数,则 - 若
为上凹(下凸)函数,则
这个不等式的两点形式是我们非常熟悉的结论,例如下凸(我们下面的推导均用下凸函数,另一种类比推理即可)二次函数
这个用形式化的表述便是:
Jensen 不等式不局限于两点,而是可以推广到任意点集:
下面做 Jensen 不等式的数学归纳法推导:
对于任意点集
接下来我们假设
那么当
由于
那么:
综上,若假设
又因为
3. 算法推导
3.1 问题表示
对于知道样本属于的分布的情况,记分布参数为
然后得到了对数似然函数后,我们将其最大化即可得到估计的分布参数
接下来我们往往就是对它求偏导再置零,把参数这样算出来。
但是我们这个问题中,样本有未观察到的隐含数据
将其代入似然函数,则似然函数为:
然后我们就要将对数似然函数最大化,得到估计的分布参数
但是目前的情况,
3.2 问题求解
3.2.1 Expectation 步骤
对于对数似然函数,我们进行如下变换:
即在分子分母同乘一个
我们现在关注到内层求和的式子:
我们可以将其看成随机变量
的期望的表达式如下:
对照着期望的表达式,我们的转换方式是将式子中的
看作 , 看作
我们知道
对我我们这个式子,即:
这个操作相当于我们把求和提到
通过这个操作得到了原对数似然函数
这个地方求的最大的下界是什么意思非常重要,要注意我们要求的是最大的下界,注意与下界的最大做区分。
我们用下图作解释(图片来源:知乎专栏)
假设我们此时的参数为
,我们可以得到的是 的一个下界 ,我们的任务就是找到最大的下界,即找到在 时与 相等的下界。这个下界是最大的,因为再大的话就不满足不等式条件了。
若要满足 Jensen 不等式等号成立,要满足:
由于我们引入的
将算出来的
这样我们就把
至此,EM 算法的 E 步就完成了,即我们找到了让最大下界的
3.2.2 Maximization 步骤
接下来的任务就是找到下界的最大值了:
这个便是 EM 算法的 M 步,把这个下界的最大值时的
还是用刚才那张图做解释:
E 步我们找到的是最大的下界,M 步我们就是找下界的最大值,即找到
最大时的 。 找到之后,我们再在
点找到最大的下界 ,再找到 最大时的 ,如此循环迭代,最后就能迭代得到最大的 .
4 总结
EM 算法的总体思路大概就是
这个过程如下图所示:
算法步骤便是:
- 随机初始化初始参数
开始 EM 算法迭代:
E 步
- 计算得到
- 计算得到
- 计算得到
M 步
- 计算得到
- 计算得到
判断
- 如果收敛,则跳出循环结束算法,否则用
进行新的一次迭代
- 如果收敛,则跳出循环结束算法,否则用
- 输出求到的参数
本文采用 CC BY-SA 4.0 许可,本文 Markdown 源码:Haotian-BiJi