我使用HMMlearn库来执行手势识别,在某些手势中,我希望使用遍历拓扑,而在另一些手势中,则使用从左到右的拓扑结构。HMM架构内的拓扑是否由“协方差”参数设置为“完全”或“diag”,或者还有其他需要定义的东西?
发布于 2020-03-16 23:44:11
我不知道我的答案是否迟了,但可能有帮助。
如文件所述
转移概率矩阵不需要遍历。例如,左-右HMM可以定义为:
lr = hmm.GaussianHMM(n_components=3, covariance_type="diag",
init_params="cm", params="cmt")
lr.startprob_ = np.array([1.0, 0.0, 0.0])
lr.transmat_ = np.array([[0.5, 0.5, 0.0],
[0.0, 0.5, 0.5],
[0.0, 0.0, 1.0]])在这里,您强迫模型学习params 'cmt‘表示协方差、均值和过渡矩阵,因此startprob永远不会改变。但是您通知(通过传递init_params)它只是自己初始化协方差和平均值,所以您在startprob和transmat_中生成的值将被锁定。这里的hack是任意0,这里不会经过训练,并且总是在更新中为0,所以您强制拓扑为ltr。
协方差完全或完全与拓扑无关。它涉及到你的特征的知识。例如,在diag中,您会说所有的特性都是完全独立的,因此它们有0的协方差。
https://stackoverflow.com/questions/59861756
复制相似问题