Недостаточность в алгоритме пересылки для HMM

Я реализую прямой алгоритм для HMM, чтобы вычислить вероятность того, что данный HMM испустит данную последовательность наблюдений. Я хотел бы, чтобы мой алгоритм был устойчивым, чтобы потерять. Я не могу работать в лог-пространстве, потому что прямой алгоритм требует умножения И добавления вероятностей. Каков наилучший способ избежать недостатка?

Я читал некоторые источники об этом, но лучшее предложение, которое я получаю, - это масштабирование вероятностей на каждом временном шаге Раздел 6 Здесь. К концу алгоритма у вас не останется точная вероятность, которую вы хотите (из последовательности наблюдения). Кроме того, если я не ошибаюсь, если вы масштабируете вероятности на каждом временном шаге, как предложено в приведенной выше ссылке, вы не сможете сделать значимое сравнение вероятности данной последовательности наблюдений, исходящей из двух разных HMM (чтобы выяснить, какие более вероятно иметь последовательность). Какие-либо предложения?

1 ответ

Решение

В уравнении 32 в конце вашей ссылки вы умножаете каждое значение вероятности alpha_t (i) на C_t. Таким образом, в конце вы умножили свои окончательные вероятности на произведение всех C_t. Вы можете отслеживать все это, отслеживая сумму журнала (C_t). Затем в конце вы можете обработать log(alpha_t(i)) - SUM_(j <= t)log(C_j), который даст вам логарифмическую вероятность финального alpha_t (i), или log(SUM_t alpha_t(i)) - SUM_(j <= t)log(C_j), который даст вам логарифмическую вероятность всей последовательности.

Другие вопросы по тегам