Обучение Витерби или алгоритм Баума-Уэлча для оценки вероятностей перехода и выброса?

Я пытаюсь найти наиболее вероятный путь (то есть последовательность состояний) на HMM, используя алгоритм Витерби. Однако я не знаю матриц перехода и излучения, которые мне нужно оценить по наблюдениям (данным).

Какой алгоритм следует использовать для оценки этих матриц: алгоритм обучения Баума-Уэлча или алгоритм обучения Витерби? Почему?

В случае, если я должен использовать алгоритм обучения Витерби, может ли кто-нибудь предоставить мне хороший псевдокод (его нелегко найти)?


person dx_mrt    schedule 13.11.2012    source источник


Ответы (3)


При наличии достаточного количества ресурсов вам, вероятно, следует использовать алгоритм Баума-Уэлча (вперед-назад), а не алгоритм обучения Витерби (также известный как сегментный алгоритм k-средних), который представляет собой альтернативный процесс оценки параметров, который жертвует некоторыми из Общность Баума-Уэлча для вычислительной эффективности. Как правило, алгоритм Баума-Уэлча дает параметры, обеспечивающие лучшую производительность, хотя бывают случаи, когда это не тот случай. Вот хороший сравнительный учиться.

Кроме того, обратите внимание, что для оценки параметров модели следует использовать алгоритм Баума-Уэлча. Это устанавливает вероятность эмиссии и вероятности передачи, используя что-то похожее на алгоритм EM. После того, как вы обучили НММ, вы должны использовать алгоритм декодирования Витерби для вычисления наиболее вероятной последовательности состояний, которые могли привести к вашим наблюдениям.


Что касается ссылок, я бы рекомендовал обработку речи и языка, Искусственный интеллект — современный подход или эта статья

person nickponline    schedule 15.11.2012

Из http://nlp.stanford.edu/courses/lsa352/lsa352.lec7.6up.pdf:

Viterbi Training по сравнению с Baum-Welch:

  • Намного быстрее
  • Но работает не так хорошо
  • Но компромисс часто стоит того.

Некоторые сравнительные исследования:

Тот же вопрос был задан на сайте Statistics Stack Exchange: Различия между тренировками Баума-Уэлча и Витерби.

person Franck Dernoncourt    schedule 01.01.2017

вам нужно пройти алгоритм Баума-Уэлча, чтобы узнать скрытые параметры марковской модели. Баум Уэлч использует прямой и обратный алгоритм, чтобы узнать параметр hmm.

У меня есть одна ссылка на код алгоритма Баума Уэлча в Python, просто проверьте его: https://jyyuan.wordpress.com/2014/01/28/baum-welch-algorithm-finding-parameters-for-our-хм/

person Vikas    schedule 01.06.2016