숨겨진 마코프 모델을 배우기 시작하고 wiki 페이지뿐만 아니라 github에도 예제가 많이 있지만 대부분의 확률은 이미 있습니다 (비 70 %, 상태 변경 가능성 30 % 등).). 맞춤법 검사 또는 문장 예제는 책을 연구하고 단어의 확률을 랭킹하는 것처럼 보입니다.숨겨진 마코프 모델의 확률을 결정하는 방법은 무엇입니까?
그래서 마코프 모델에는 확률을 계산하는 방법이 포함되어 있습니까? 아니면 사전 계산을위한 다른 다른 모델을 생각하고 있습니까?
죄송합니다.이 질문은 꺼져 있습니다. 나는 숨겨진 마르코프 모델이 가능한 시퀀스를 선택하는 방법을 간단하게 생각하지만, 확률 부분은 나에게 조금 회색이다 (종종 제공되기 때문에). 예 또는 어떤 정보가 좋을 것입니다.
마르코프 모델에 익숙하지 않은 사람들을 위해, 여기 당신의 알 수없는 매개 변수를 계산하는 알고리즘 전각 (기대 극대화)를 찾고 http://en.wikipedia.org/wiki/Viterbi_algorithm (위키 백과에서) 예와 http://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()
대단히 감사합니다. 슬라이드 전에 읽었던 링크가 정말 좋았습니다. 그들은 내가 가진 질문을 분명히했지만 분명히 확률이 계산되는 방법을 여전히 확신 할 수 없습니다. 예를 들어, 슬라이드 41에서는 각 노드 (1/3,1/2 등)에 확률이 있습니다. 나는 그것들을 얻는 방법을 알아 내려고 노력하고 있으며 그것들을 계속 업데이트하려고 노력하고있다. 슬라이드에있을 수도 있고 놓치 겠어. 주말 내내 더 신중하게 공부할거야. 슬라이드와 답변에 감사드립니다. – Lostsoul
@Lostsoul - 오른쪽, 슬라이드 41과 그 영역은 HMM이 일반적으로 어떻게 작동 하는지를 설명하는 것입니다. 슬라이드 68 주변에서 일련의 관측치로부터 매개 변수를 추정하는 방법에 대해 이야기하기 시작합니다 (집합 적으로 λ라고 함). 그리고 그 알고리즘은 Baum-Welch입니다. – Dusty
다시 한번 감사드립니다. 감사합니다. 내 수학은 짜증나. 그래서 슬라이드의 여러 가지 판독 결과 (그리고 검색 속도가 굉장히 높음)로 인해 진행 상황을 이해할 수있었습니다. 나는 수학을 완전히 이해하지 못하고 있지만 지금 논리를 얻습니다. 너무 고마워, 더스티. – Lostsoul