在R

时间:2015-05-19 14:55:48

标签: r machine-learning hidden-markov-models

我想通过Poisson观察训练一个新的hmm模型,这是我所知道的唯一。 我使用mhsmm软件包进行R。

首先让我感到困惑的是模型的初始化,例如:

J<-3
initial <- rep(1/J,J)
P <- matrix(1/J, nrow = J, ncol = J)
b <- list(lambda=c(1,3,6))
model = hmmspec(init=initial, trans=P, parms.emission=b,dens.emission=dpois.hsmm)

在我的情况下,我没有排放分布参数的初始值,这是我想要估算的。怎么样?

其次:如果我只有观察,我如何将它们传递给

h1 = hmmfit(list_of_observations, model ,mstep=mstep.pois)

为了获得训练有素的模型? 在示例中,list_of_observations包含一个状态向量,一个观测值和一个观测序列长度,通常通过模拟模型获得:

list_of_observations = simulate(model, N, rand.emis = rpois.hsmm)
编辑:发现这个老问题的答案部分解决了我的问题: MHSMM package in R-Input Format? 这两行就是诀窍:

train <- list(x = data.df$sequences, N = N)
class(train) <- "hsmm.data"

其中data.df $ sequences是包含所有观察序列的数组,N是包含每个序列的观察计数的数组。 尽管如此,最初的模型是完全随机的,但我想这是它的意图,因为它将被重新估计,我是对的吗?

2 个答案:

答案 0 :(得分:0)

初始化问题不仅对HMM和HSMM至关重要,而且对于基于期望最大化算法形式的所有学习方法都至关重要。 EM在模型和数据之间的可能性方面收敛到局部最优,但这并不总能保证达到全局最优。

答案 1 :(得分:0)

  • 目标:查找排放分布的估算值,但它也适用于初始概率转换矩阵 < / LI>
  • 算法:需要初始估算才能从
  • 开始优化
  • :必须提供参数的初始“猜测”

这一开始可能会让人感到困惑,但 EM算法需要一个点来启动优化。然后它进行一些计算,它可以让你更好地估计自己的初始猜测(如你所说,重新估计)。它无法在没有初始化的情况下自行找到最佳参数。

根据我的经验,没有通用的方法来初始化保证收敛到全局最优的参数,但它将更多地取决于手头的情况。这就是为什么初始化起着至关重要的作用(主要用于排放分配)。

在这种情况下,我过去常常将不同组中的训练数据(例如集合中某个参数的百分位数)分开,估计这些组的参数,然后将它们用作初始参数估计值。 EM算法。基本上,你必须尝试不同的方法,看看哪种方法效果最好。

如果用HMM解决了类似的问题,我建议搜索文献,并尝试初始化方法。