Алгоритм Баума-Велша — различия между версиями
(→История) |
(→Описание алгоритма) |
||
Строка 19: | Строка 19: | ||
− | + | == Прямая процедура == | |
<tex>a_i(t) = p(O_1 = o_1, ..., O_t = o_t, Q_t = _i | \lambda</tex>, что является вероятностью получения заданной последовательности <tex>\{ o_1, ..., o_t\}</tex> для состояния <tex>i</tex> в момент времени <tex>t</tex>. | <tex>a_i(t) = p(O_1 = o_1, ..., O_t = o_t, Q_t = _i | \lambda</tex>, что является вероятностью получения заданной последовательности <tex>\{ o_1, ..., o_t\}</tex> для состояния <tex>i</tex> в момент времени <tex>t</tex>. | ||
Строка 29: | Строка 29: | ||
2.<tex>a_j(t + 1) = b_j(O_{t + 1})\displaystyle\sum^N_{i=1}a_i(t) \cdot a_{ij}</tex>. | 2.<tex>a_j(t + 1) = b_j(O_{t + 1})\displaystyle\sum^N_{i=1}a_i(t) \cdot a_{ij}</tex>. | ||
− | + | == Обратная процедура == | |
Данная процедура позволяет вычислить вероятность конечной заданной последовательности <tex>o_{t + 1}, ..., o_T</tex> при условии, что мы начали из исходного состояния <tex>i</tex>, в момент времени <tex>t</tex>. | Данная процедура позволяет вычислить вероятность конечной заданной последовательности <tex>o_{t + 1}, ..., o_T</tex> при условии, что мы начали из исходного состояния <tex>i</tex>, в момент времени <tex>t</tex>. | ||
Строка 39: | Строка 39: | ||
2. <tex>\beta_i(t) = \displaystyle\sum^N_{j = 1}\beta_j(t + 1)a_{ij}b_j(O_{t + 1})</tex>. | 2. <tex>\beta_i(t) = \displaystyle\sum^N_{j = 1}\beta_j(t + 1)a_{ij}b_j(O_{t + 1})</tex>. | ||
− | + | == Обновление переменных == | |
Определим временные переменные: | Определим временные переменные: |
Версия 21:41, 21 декабря 2014
Алгоритм Баума-Велша — алгоритм для нахождения неизвестных параметров скрытой Марковской модели. Использует алгоритм прямого-обратного хода.
Содержание
История
Скрытые_Марковские_модели(HMMs) и алгоритм Баума-Велша впервые были описаны в заметках Леонарда Баума и его сверстников в конце 1960х. Одно из первых основных приложений на основе HMMs было использовано в области обработки речи. В 1980х HMMs стало эффективным инструментом в анализе биологических систем и информации, особенно в генном анализе.
Описание алгоритма
Пусть
- это дискретная случайная переменная, принимающая одно из значений . Будем полагать, что данная модель Маркова, определенная как однородна по времени, то есть независима от . Тогда можно задать как независящую от времени стохастическую матрицу перемещений . Особый случай для времени определяется начальным распределением .Будем считать, что мы в состоянии
в момент времени , если . Последовательность заданных состояний определяется как , где является состоянием в момент времени .Наблюдение может иметь одно из
возможных значений, . Вероятность заданного вектора наблюдений в момент времени для состояния определяется как - это матрица на . Заданная последовательность наблюдений выражается как .Следовательно, мы можем описать скрытую модель Маркова с помощью
. При заданном векторе наблюдений алгоритм Баума-Велша находит . максимизирует вероятность наблюдений .
Исходные данные:
со случайными начальными условиями. Алгоритм итеративно обновляет параметр до схождения в одной точке.
Прямая процедура
, что является вероятностью получения заданной последовательности для состояния в момент времени .
можно вычислить рекурсивно:
1.
;2.
.Обратная процедура
Данная процедура позволяет вычислить вероятность конечной заданной последовательности
при условии, что мы начали из исходного состояния , в момент времени .можно вычислить рекурсивно:
1.
;2.
.Обновление переменных
Определим временные переменные:
.
Имея
и , можно определить:,
,
.
Используя новые переменные
итерации продолжаются до схождения.Пример
Псевдокод
Применение
Источники
1. https://ru.wikipedia.org/wiki/Алгоритм_Баума_-_Велша
2. http://logic.pdmi.ras.ru/~sergey/teaching/asr/notes-09-hmm.pdf
3. http://en.wikipedia.org/wiki/Baum%E2%80%93Welch_algorithm