背景
常见的思路是直接对极大似然函数MLE求梯度,令梯度等于0即为所求的最值(但其计算中会出现和的对数的形式,计算起来十分复杂),而EM算法就是为了解决“极大似然估计”这种更复杂而存在的。
算法原理
Jensen不等式
根据取等条件,且由于(权重和),故可知道,此时,根据和之间的关系便有
即可知,就是后验概率。
EM (Expectation-Maximization)
- 初始设置一个分布参数θ
- 循环重复直到收敛
- E步,求Q函数:对于每一个i,计算根据上一次迭代的模型参数来计算出隐性变量的后验概率(其实就是隐性变量的期望),来作为隐藏变量的现估计值(求在观测数据的前提下隐变量的期望)
- M步,求使Q函数获得极大时的参数取值:将似然函数最大化以获得新的参数值(求经过隐变量改写的似然函数的极大)
求θ的极值
由于在M步骤中,被当作定值(不变),故优化时,只保留黄色的部分,其优化求解过程如下:
- 求解,(8)式是贝叶斯公式,(9)是后验概率公式
- 将代换,为最大化联合分布,其中,为初始状态,通过0梯度,拉格朗日法(有限制条件,求)等方法求极值点
如此,不断缩小似然函数与其sup之间的距离,只要似然函数是有界的,只要M步中的0梯度点是极大值点,一直放大下去就能找到最终所求
Baum-Welch算法
HMM中的前向-后向算法
可以用于计算:
- 在给定观测下每个时间点每个状态的概率(平滑概率)。
- 状态转移的期望次数,这是参数估计(如Baum-Welch算法)中的一个关键步骤。