HMM参数初始化问题

HMM不同的参数会收敛到不同的结果,如何保证某次训练的结果是相对还不错的?目前我总是训练多次,人工判断一个最好的结果

Robin_TY - PhD@CSU,研究方向:计算机视觉,模式识别

赞同来自: mzhengmit fish

对于HMM的参数,可以分成两类来看。 1) hidden states的个数是和问题相关的。比如,在语音识别中,通常使用3个或5个状态。 2) 当hidden states的个数确定后(比如选取5个状态),接下来要为每个状态定义初始概率,以及他们之间的转换概率。一个HMM可以定义为(A, B, pi),其中A是一个矩阵用来表示状态转移概率,B是向量用来表示发射概率,pi是向量用来表示初始状态分布。可以通过以下步骤来估计这些参数:
  • 对于A和pi是随机选取的
  • B的初始化可以通过均匀分割训练样本然后估计其全局均值和方差来获取。
  • 之后使用Baum-Welch算法来重新估计和调整参数。
  参考资料:
  1. Rabiner, L. 1989. A tutorial on hidden Markov models and selected applications in speech recognition.
  2. Baum, L.E., T. Petrie, G. Soules and N. Weiss. 1970. A Maximization Technique Occurring in the Statistical Analysis of Probabilistic Functions of Markov Chains. The Annals of Mathematical Statistics Vol. 41, No. 1, pp. 164-171.
  3. Dempster, A. P., N. M. Laird, and D. B. Rubin. 1977. Maximum likeli- hood from incomplete data via the EM algorithm. Journal of the Royal Statistical Society. Series B (Methodological) 39 (1), pp. 1-38.

邹博 - 计算机科学博士,深谙机器学习算法原理

赞同来自: mzhengmit

从描述看,应该是使用Baum-Welch算法的非监督参数估计,这个算法本质上是EM算法——它只能保证收敛到局部最优。@Robin_TY 给出的“B的初始化可以通过均匀分割训练样本然后估计其全局均值和方差来获取”我没有试过,但多次计算选择最优结果,的确是常用的简化方法。 此外,如果是已经可以获得带标记(隐状态)的样本,使用MLE直接计算A,B,pi即可,这时参数估计的速度非常快,且没有多解性问题。

要回复问题请先登录注册