정방향 및 비터 비 알고리즘의 차이점은 무엇입니까?


44

숨겨진 Markov 모델 (HMM)에서 추론을위한 순방향 알고리즘Viterbi 알고리즘 의 차이점이 무엇인지 알고 싶습니다 .


2
알고리즘에 대한 설명 ( 여기여기 )이 귀하의 질문에 대답합니까 아니면 다른 것을 찾고 있습니까? 언제 어떤 알고리즘을 사용해야하는지 궁금하십니까? 각자의 장점에 대한 토론을 찾고 있습니까?
MånsT

답변:


65

약간의 배경 지식은 아마도 약간의 문제를 해결합니다.

HMM (Hidden Markov Models)에 대해 이야기 할 때 일반적으로 고려해야 할 3 가지 문제가 있습니다.

  1. 평가 문제

    • 평가 문제는 질문에 답한다 : 특정 모델에서 특정 심볼 시퀀스가 ​​생성 될 확률은 얼마인가?
    • 평가를 위해 순방향 알고리즘 또는 역방향 알고리즘 의 두 가지 알고리즘을 사용합니다 ( 순방향 역방향 알고리즘 과 혼동하지 마십시오).
  2. 디코딩 문제

    • 디코딩 문제는 다음과 같은 질문에 대한 답을 제공합니다. 일련의 기호 (관측) 및 모델이 주어지면 시퀀스를 생성 한 가장 가능성이 높은 상태 시퀀스는 무엇입니까?
    • 디코딩에는 Viterbi 알고리즘 을 사용합니다 .
  3. 훈련 문제

    • 훈련 문제는 다음과 같은 질문에 대한 답을 제시합니다. 모델 구조와 일련의 시퀀스가 ​​주어지면 데이터에 가장 적합한 모델을 찾으십시오.
    • 이 문제에 대해 다음 3 가지 알고리즘을 사용할 수 있습니다.
      1. MLE (최대 우도 추정)
      2. 비터 비 트레이닝 (비터 비 디코딩과 혼동하지 마십시오)
      3. 바움 웰치 = 전진 후진 알고리즘

요약하자면, 일련의 시퀀스에서 모델을 훈련시킬 때 디코딩 문제에 대해 Viterbi 알고리즘과 Baum Welch / Forward-backward를 사용합니다.


Baum Welch 는 다음과 같은 방식으로 작동합니다.

일련의 훈련 세트의 각 서열에 대해.

  1. 순방향 알고리즘으로 순방향 확률 계산
  2. 후진 알고리즘으로 후진 확률 계산
  3. 모델의 전이에 대한 현재 시퀀스의 기여도를 계산하고, 모델의 방출 확률에 대한 현재 시퀀스의 기여도를 계산하십시오.
  4. 새로운 모델 파라미터 계산 (시작 확률, 전환 확률, 배출 확률)
  5. 모형의 새로운 로그 가능성 계산
  6. 로그 가능성의 변화가 주어진 임계 값보다 작거나 최대 반복 횟수가 지나면 중지합니다.

Viterbi 디코딩 및 교육 알고리즘 방정식에 대한 자세한 설명이 필요하면 알려 주시면 올바른 방향으로 안내해 드리겠습니다.


24

전진 후진은 각 개별 상태 에 대해 한계 확률을 제공하고, 비터 비는 가장 가능성이 높은 일련의 상태 확률을 제공합니다 . 예를 들어 HMM 작업이 매일 맑은 날씨와 비가 오는 날씨를 예측하는 경우 Forward Backward는 매일 "맑은"날씨를 알려줄 것이며, Viterbi는 가장 가능성있는 맑은 날 / 비오는 날을 제공합니다. 이 순서의 확률.


15

{2}의 다음 두 슬라이드는 HMM과 함께 사용되는 다른 모든 일반적인 알고리즘 중에서 정방향 및 역방향 알고리즘을 배치하는 데 정말 좋습니다.

여기에 이미지 설명을 입력하십시오

여기에 이미지 설명을 입력하십시오

노트:

  • πx 는 관측 된 방출이며, 는 HMM의 매개 변수입니다.π
  • 경로 = 배출 순서
  • 디코딩 = 추론
  • 학습 = 훈련 = 모수 추정
  • 일부 논문 (예 : {1})은 Baum–Welch가 정방향 알고리즘과 동일하다고 주장하지만 Masterfool 및 Wikipedia에 동의합니다. Baum–Welch는 정방향 알고리즘을 사용하는 기대 최대화 알고리즘입니다. 이 두 그림은 또한 Baum-Welch를 정방향 알고리즘과 구별합니다.

참고 문헌 :


12

Morat의 대답은 한 가지 점에서 거짓입니다. Baum-Welch는 HMM의 매개 변수를 훈련시키는 데 사용되는 Expectation-Maximization 알고리즘입니다. 그것은 사용하는 각 반복시 전후 알고리즘. 정방향 및 역방향 알고리즘은 순방향 및 역방향 알고리즘의 조합입니다 : 하나의 순방향 패스, 하나의 역방향 패스. 전진 후진 알고리즘은 자체적으로 HMM의 매개 변수를 훈련하는 데 사용되지 않고 평활화에만 사용됩니다. 일련의 상태의 한계 가능성 계산.

https://en.wikipedia.org/wiki/Forward%E2%80%93backward_algorithm

https://ko.wikipedia.org/wiki/Baum%E2%80%93Welch_algorithm


2

@Yaroslav Bulatov가 정확한 답을 얻었습니다. 전진 후진 알고리즘과 비터 비 알고리즘의 차이점을 알려주기 위해 한 가지 예를 추가하겠습니다.

이 HMM이 있다고 가정하십시오 (Wikipedia HMM 페이지에서). 이 모델은 이미 제공되었으므로 여기에서 데이터 작업을 통한 학습은 없습니다.

여기에 이미지 설명을 입력하십시오


데이터가 길이 4 시퀀스라고 가정하십시오. (Walk, Shop, Walk, Clean). 두 알고리즘은 다른 것을 제공합니다.

  • 1

여기에 이미지 설명을 입력하십시오

  • 24=16SunnyRainy

여기에 이미지 설명을 입력하십시오


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))
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.