前面我曾介绍过隐马尔可夫和线性动态系统这类隐变量模型。所谓的隐变量表示的其实是数据的不完整性,也就是训练数据并不能给出关于模型结果的全部信息,因此只能对模型中未知的状态做出概率性的推测。

在今天这一讲中,我将和你分享一种在隐变量模型的参数学习中发挥重要作用的方法:期望最大化算法。

期望最大化算法(expectation-maximization algorithm, EM)是用于计算最大似然估计的迭代方法,其中的期望步骤(expectation step)利用当前的参数来生成关于隐变量概率的期望函数,最大化步骤(maximization step)则寻找让期望函数最大的一组参数,并将这组参数应用到下一轮的期望步骤中。如此循环往复,算法就可以估计出隐变量的概率分布。

EM 算法虽然可以在不能直接求解方程时找到统计模型的最大似然参数,但它并不能保证收敛到全局最优。一般来说,似然函数的最大化会涉及对所有未知参量求导,这在隐变量模型中是无法实现的。

EM 算法的解决方法是将求解过程转化为一组互锁的方程,它们就像联动的齿轮一样,通过待求解参数和未知状态变量的不断迭代、交叉使用来求解最大似然。

具体的做法是给两组未知数中的一组选择任意值,使用它们来估计另一组,然后使用这些更新的取值来找到前一组的更好估计,然后在两者之间交互更新,直到得到的值都收敛到固定点。

EM 算法的实现方法可以通过一个通俗易懂的实例加以阐释,这个例子来源于期刊《自然 ⋅⋅