问题描述
HMM模型是隐马尔科夫模型,是一个有向概率图模型,之前已经有一篇文章介绍这个模型,这篇文章主要介绍这个模型的参数学习问题。
解决方法
HMM模型的参数学习,可以分为两个场景,一个是监督学习,另一个是无监督学习。
监督学习
监督学习是指数据集的形式为一对一对隐状态序列和观测序列,直接对这个数据集进行统计,可以轻易得到状态转移矩阵和状态发射矩阵以及初始状态分布的参数。
无监督学习
无监督学习是指数据集的形式为一系列观测序列,没有观测序列对应的隐状态序列,这时候就需要求最大似然估计得到模型参数。我们可以列出似然式子:
要使上面的不等式成立,需要有:
所以参数更新的式子是要最大化下式(去掉了无关的常数项):
其中$\theta’$是指旧参数,$\theta$是指新参数。已知:
其中$a$表示状态转移矩阵,$b$表示状态发射矩阵,$\pi$表示状态初始分布。将上式代入最大似然式子得到:
现在我们将各个参数分解开来看,比如只看$a(s_i|s_j)$,则有:
其中$a(s_i|s_j)$表示从状态$s_j$转移到$s_i$,$H(s_i|s_j)$表示存在从$s_j$转移到$s_i$的隐状态序列集合。所以上面的式子本质是求隐状态序列存在从$s_j$转移到$s_i$的概率乘上参数$a(s_i|s_j)$的值,这个需求可以通过动态规划的前向后向方法进行统计,关于参数$a(s_i|s_j)$的梯度也可以很轻松求得,就是前面提到的概率值。以上就是关于对$a(s_i|s_j)$参数的求解,对于$b$和$\pi$的参数可以使用相同的方法求解,这里不再重复分析。通过求最大似然式子对参数的梯度,利用梯度更新参数,重复这个过程直到参数收敛,此时就可以得到最大似然估计的一个较优解。