Estimation-Maximization
EM算法主要分成两部分E-step 和 M-step,那么这个算法是如何推导的呢?先来看看算法推导的过程。
首先我们假设样本之间是相互独立的, 我们想拟合概率函数
,因此我们需要计算如下的似然方程:
最后一步利用了Jesen不等式,由于
函数是一个凹函数,所以我们可以对
进行缩放到下界
。 但是这里有两个问题:
- 什么时候
相等?
- 为什么一定收敛?
第一个问题的话,当
等于常数的时候,第二个问题就是每次M-step的时候都会求极大似然估计,因此这是一个单调递增的数列,根据有界单调递增数列必收敛的性质,我们可以知道迭代过程必收敛。
总结下来:
- 初始化z对应的参数, 可以得到
的估计(E-step)。
- 通过估计到的
,利用求极大似然估计的方法来计算参数(M-step)。
- 利用第二步估计出的
,重复第一,二步。
HMM
HMM(Hidden Markov model)是基于Markov链假设条件衍生的一套有向图生成算法,
- 有向图算法的意思是,它的假设条件是基于贝叶斯网络。
- 生成模型是说我们需要计算的是联合概率分布
。
Markov链的假设条件是说:
这个确定了HMM是一个有向图算法, 那为什么说它是生成算法呢,因为我们在计算联合分布概率函数模拟初整个样本空间(X,Y)的数据点。
HMM有几个关键的要素:
- 观察到的数据,
。
- 隐藏状态的确定,
。
- 转移概率的计算,
。
- 发散概率的计算,
。
- 整体联合概率分布,
,。
CRF
CRF(conditional random field)也就是条件随机场算法,它也是一个无向图判别式算法:
- 它是无向图算法,因为它是马尔可夫网络的一种,需要计算整个状态空间的概率分布。
- 判别式算法的意思是说,我们需要计算的是条件概率
。
CRF定义:
HMM和CRF区别的总结:
- HMM是基于贝叶斯网络的有向图模型, 而CRF是基于马尔可夫网络的无向图模型。
- HMM能够达到局部最优解,CRF可以达到全局最优解。
HMM和CRF在计算最优解的时候都需要用到Viterbi算法,Viterbi算法是一个动态规划算法,这种算法可以在每一步寻找到最优的一条概率转移路径, 如下图所示。
第二步的时候,我们需要计算到达
的最佳路径,这样的每一步我们可以保留达到某个状态的最优路径,例如上图,每一步我们可以保留3条最优的path。
参考
- 如何用简单易懂的例子解释条件随机场(CRF)模型?它和HMM有什么区别?
- 维特比(Viterbi)算法详解_Robin Hu的专栏-CSDN博客