전방 알고리즘(Forward)과 Viterbi 알고리즘의 유일한 차이는 sum 대신 max를 취한다는 점이다. 이 단순한 차이가 문제의 성격을 완전히 바꾼다. 전방 알고리즘은 모든 가능한 은닉 경로의 확률 합(전체 우도)을 계산하는 반면, Viterbi는 가장 가능성 높은 단일 경로를 찾는다. 이는 “전체 가능성”과 “최적 설명” 사이의 근본적인 구분이다.

근거

원문의 Fig. A.5 (Forward trellis)와 Fig. A.8 (Viterbi trellis)을 비교하면 계산식이 거의 동일하지만 Forward는 를, Viterbi는 max를 사용한다. 또한 Viterbi는 역추적(backpointer)을 유지하여 최적 경로를 복원하지만 Forward는 그럴 필요가 없다.

“the Viterbi algorithm is identical to the forward algorithm except that it takes the max over the previous path probabilities whereas the forward algorithm takes the sum.”

이 차이는 실제 응용에서도 중요하다. 품사 태깅(Part-of-Speech Tagging)에서는 단일 최적 태그 시퀀스를 원하므로 Viterbi가 적합하고, 음성 인식에서 언어 모델 점수를 계산할 때는 모든 경로의 합(전방 확률)이 필요하다.

연결된 생각

출처

클리핑 · Stanford SLP3