Алгоритм Витерби для приложений реального времени - PullRequest
2 голосов
/ 04 ноября 2011

Я знаю, что с учетом НММ и наблюдения алгоритм Витерби может угадать последовательность скрытых состояний, которые производят это наблюдение. Но как насчет случая, когда вы хотите использовать его в режиме реального времени? Я имею в виду поиск скрытых состояний шаг за шагом. Каждый раз, когда на входе появляется символ наблюдения, угадывается скрытое состояние, не зная всей следующей последовательности наблюдений. Я хочу использовать это для аудиоприложения, которое работает в режиме реального времени, поэтому наблюдение будет представлять собой последовательность значений аудиофункции в каждом таймфрейме.

1 Ответ

0 голосов
/ 14 марта 2013

Если вы заинтересованы в прогнозировании скрытого состояния в момент времени T, когда вы видите наблюдение O_T, то у вас есть данные O_1, ..., O_ {T-1}, O_T. Теперь наиболее вероятное состояние находится в прямом направлении назад, где обратная переменная равна просто 1, потому что мы не можем заглянуть в будущее. Таким образом, мы имеем P (Мы находимся в скрытом состоянии i в момент времени T) = \ alpha_T (i) / P (O_1, ..., O_T | \ lambda), где P (O_1, ..., O_T | \ лямбда) = \ sum_ {i = 1} ^ n \ alpha_T (i). Тогда максимальный индекс по всем i из P (мы находимся в скрытом состоянии i в момент времени T) будет вашим скрытым состоянием.

Пожалуйста, обратитесь к http://courses.media.mit.edu/2010fall/mas622j/ProblemSets/ps4/tutorial.pdf для формальной записи.

Пожалуйста, дайте мне знать, если это то, что вы хотели, или если вы имели в виду что-то еще. Если вы просто хотите найти лучшую последовательность состояний в реальном времени, просто вычислите альфа-переменные, для этого не нужно заглядывать в будущее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...