看完这两个例子不知道大家有没有更清楚EM算法的整个流程,但是你可能会有以下疑问🤔️:
- 身高的例子中最开始的分布情况真的是瞎猜的么?
- 硬币的例子中通过z估计
和
是采用什么方式估计的呢?
- 硬币中的隐变量z代表什么?在身高的案例中哪个是隐变量呢?
这几点疑问可以这样来解释:
- 其实在身高的那个案例中我想大家也能发现,我们猜测的那几个参数
还是很符合真实情况的,就像身高188,我们计算之后确实是男性的可能性会更大。这四个参数也不是我胡乱猜测的,而是我在网上查到的人类身高分布情况,然后根据国家统计局的数据做的一个预设。这一步数学化来说就是先验概率。
- 在抛硬币的案例中,我们是已经观察到了几正几反,然后反推是哪一个硬币出现这种情况的可能性大。这个用数学化来说就是极大似然估计。
- 硬币中的隐变量z就是我们不知道这个硬币到底是A还是B,要是能知道这个硬币是A还是B那么我们就可以直接算出来A和B正面朝上的概率了。在身高例子中,我们不知道当前这个志愿者到底是男生还是女生,如果知道的话,那么我们的男女比例
就已知了。而且要是知道哪几个是男性的话,我们直接用男性身高数据的参数估计就直接能得到
,也就不用再那么复杂的计算了。
所以EM算法的流程就是这样:
- 先给出数据的先验概率,来假设参数,这个参数我们统一用
来表示
- 然后根据当前的数据和参数
,来计算一下这个隐变量的可能的值(这个值用数学化表述就是隐变量在条件是的情况下的数学期望)。
- 根据计算出来的隐变量可能的值,反过来用极大似然估计的方法推倒发生这样的情况下,参数
的最优解是多少?
- 通过一次计算我们肯定不能知道
是不是最优值,我们还要继续执行2,3两步,直到参数已经变化不大了,我们就可以判定这个
收敛到了一个近似的最优解。
