gpt4 book ai didi

algorithm - 隐马尔可夫模型中决定概率的方法有哪些?

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:37:24 24 4
gpt4 key购买 nike

我开始学习隐马尔可夫模型,在 wiki 页面和 github 上有很多例子,但大多数概率已经存在(70% 的雨变化,30% 的改变状态的机会,等等) ..).拼写检查或句子示例,似乎是在研究书籍,然后对单词的概率进行排序。

那么马尔可夫模型是否包括一种计算概率的方法,或者我们是否假设其他模型可以预先计算它?

抱歉,如果这个问题被关闭了。我认为隐马尔可夫模型如何选择可能序列很简单,但概率部分对我来说有点灰色(因为它经常提供)。示例或任何信息都很棒。


对于那些不熟悉马尔可夫模型的人,这里有一个例子(来自维基百科)http://en.wikipedia.org/wiki/Viterbi_algorithmhttp://en.wikipedia.org/wiki/Hidden_Markov_model

#!/usr/bin/env python

states = ('Rainy', 'Sunny')

observations = ('walk', 'shop', 'clean')

start_probability = {'Rainy': 0.6, 'Sunny': 0.4}

transition_probability = {
'Rainy' : {'Rainy': 0.7, 'Sunny': 0.3},
'Sunny' : {'Rainy': 0.4, 'Sunny': 0.6},
}

emission_probability = {
'Rainy' : {'walk': 0.1, 'shop': 0.4, 'clean': 0.5},
'Sunny' : {'walk': 0.6, 'shop': 0.3, 'clean': 0.1},
}

#application code
# Helps visualize the steps of Viterbi.
def print_dptable(V):
print " ",
for i in range(len(V)): print "%7s" % ("%d" % i),
print

for y in V[0].keys():
print "%.5s: " % y,
for t in range(len(V)):
print "%.7s" % ("%f" % V[t][y]),
print

def viterbi(obs, states, start_p, trans_p, emit_p):
V = [{}]
path = {}

# Initialize base cases (t == 0)
for y in states:
V[0][y] = start_p[y] * emit_p[y][obs[0]]
path[y] = [y]

# Run Viterbi for t > 0
for t in range(1,len(obs)):
V.append({})
newpath = {}

for y in states:
(prob, state) = max([(V[t-1][y0] * trans_p[y0][y] * emit_p[y][obs[t]], y0) for y0 in states])
V[t][y] = prob
newpath[y] = path[state] + [y]

# Don't need to remember the old paths
path = newpath

print_dptable(V)
(prob, state) = max([(V[len(obs) - 1][y], y) for y in states])
return (prob, path[state])



#start trigger
def example():
return viterbi(observations,
states,
start_probability,
transition_probability,
emission_probability)
print example()

最佳答案

您正在寻找一种 EM(期望最大化)算法来根据观察到的序列集计算未知参数。可能最常用的是 Baum-Welch算法,它使用 forward-backward算法。

作为引用,这里有一个 set of slides我以前用过审查 HMM。它很好地概述了 Forward-Backward、Viterbi 和 Baum-Welch

关于algorithm - 隐马尔可夫模型中决定概率的方法有哪些?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7933157/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com