EM
期望最大化(Expectation Maximizition,EM),在前面的讨论中,我们一直假设训练样本所有属性变量的值都已被观测到,即训练样本是完整的,但是在现实应用中,往往会遇到不完整的训练样本,即我们知道有一个属性变量对模型至关重要,但是无法获得这个属性变量的值。在这种存在未观测变量(隐变量)的情形下,是否仍能对模型参数进行估计呢?
EM算法是常用的在含有隐变量的情况下,估计模型参数的利器(训练完成后最终还可以求得隐变量的参数值)。其基本思想是:
1. 首先初始化模型参数θ;
2. 然后根据训练数据和当前的模型参数θ推断出最优隐变量Z的值(即求Z的期望,E步);
3. 基于训练数据和Z的最优期望值对参数θ做极大似然估计(M步);
4. 迭代的将2、3交替进行,直到收敛到局部最优解。
由于会收敛到局部最优解,EM算法对初值敏感,对于不同的初始值,可能会导致不同的结果,并且它对于“躁声”和孤立点数据也是敏感的,少量的该类数据能够对模型产生极大的影响。
实际上若隐变量的情况已知,那么我们可以直接根据最大似然估计和随机梯度下降,解出在每一种隐变量情况下的参数和最大似然估计值,然后选择似然估计最大情况下的模型和隐变量。
举例:考虑数据集D是一个实例集合,它由k个不同的正态分布的混合分布所生成(如下图k等于2),现在通过EM算法训练求解此混合高斯模型?
这里可把每个实例的完整描述看作是一个三元组<xi,zi1, zi2>,其中xi是第i个实例的观测值,zi1和zi2表示两个正态分布中哪个被用于产生值xi,确切地讲,zij在xi由第j个正态分布产生时值为1,否则为0,可见zi1和zi2是隐藏变量