숨겨진 Markov 모델 (HMM)에서 추론을위한 순방향 알고리즘 과 Viterbi 알고리즘 의 차이점이 무엇인지 알고 싶습니다 .
숨겨진 Markov 모델 (HMM)에서 추론을위한 순방향 알고리즘 과 Viterbi 알고리즘 의 차이점이 무엇인지 알고 싶습니다 .
답변:
약간의 배경 지식은 아마도 약간의 문제를 해결합니다.
HMM (Hidden Markov Models)에 대해 이야기 할 때 일반적으로 고려해야 할 3 가지 문제가 있습니다.
평가 문제
디코딩 문제
훈련 문제
요약하자면, 일련의 시퀀스에서 모델을 훈련시킬 때 디코딩 문제에 대해 Viterbi 알고리즘과 Baum Welch / Forward-backward를 사용합니다.
Baum Welch 는 다음과 같은 방식으로 작동합니다.
일련의 훈련 세트의 각 서열에 대해.
Viterbi 디코딩 및 교육 알고리즘 방정식에 대한 자세한 설명이 필요하면 알려 주시면 올바른 방향으로 안내해 드리겠습니다.
전진 후진은 각 개별 상태 에 대해 한계 확률을 제공하고, 비터 비는 가장 가능성이 높은 일련의 상태 확률을 제공합니다 . 예를 들어 HMM 작업이 매일 맑은 날씨와 비가 오는 날씨를 예측하는 경우 Forward Backward는 매일 "맑은"날씨를 알려줄 것이며, Viterbi는 가장 가능성있는 맑은 날 / 비오는 날을 제공합니다. 이 순서의 확률.
{2}의 다음 두 슬라이드는 HMM과 함께 사용되는 다른 모든 일반적인 알고리즘 중에서 정방향 및 역방향 알고리즘을 배치하는 데 정말 좋습니다.
노트:
참고 문헌 :
Morat의 대답은 한 가지 점에서 거짓입니다. Baum-Welch는 HMM의 매개 변수를 훈련시키는 데 사용되는 Expectation-Maximization 알고리즘입니다. 그것은 사용하는 각 반복시 전후 알고리즘. 정방향 및 역방향 알고리즘은 순방향 및 역방향 알고리즘의 조합입니다 : 하나의 순방향 패스, 하나의 역방향 패스. 전진 후진 알고리즘은 자체적으로 HMM의 매개 변수를 훈련하는 데 사용되지 않고 평활화에만 사용됩니다. 일련의 상태의 한계 가능성 계산.
https://en.wikipedia.org/wiki/Forward%E2%80%93backward_algorithm
@Yaroslav Bulatov가 정확한 답을 얻었습니다. 전진 후진 알고리즘과 비터 비 알고리즘의 차이점을 알려주기 위해 한 가지 예를 추가하겠습니다.
이 HMM이 있다고 가정하십시오 (Wikipedia HMM 페이지에서). 이 모델은 이미 제공되었으므로 여기에서 데이터 작업을 통한 학습은 없습니다.
데이터가 길이 4 시퀀스라고 가정하십시오. (Walk, Shop, Walk, Clean)
. 두 알고리즘은 다른 것을 제공합니다.
Sunny
Rainy
R
데모 코드 는 다음과 같습니다.
library(HMM)
# in education setting,
# hidden state: Rainy and Sunny
# observation: Walk, Shop, Clean
# state transition
P <- as.matrix(rbind(c(0.7,0.3),
c(0.4,0.6)))
# emission prob
R <- as.matrix(rbind(c(0.1, 0.4, 0.5),
c(0.6,0.3, 0.1)))
hmm = initHMM(States=c("Rainy","Sunny"),
Symbols=c("Walk","Shop", "Clean"),
startProbs=c(0.6,0.4),
transProbs=P,
emissionProbs=R)
hmm
obs=c("Walk","Shop","Walk", "Clean")
print(posterior(hmm,obs))
print(viterbi(hmm, obs))