
4. Скрытые марковские модели.pptx
- Количество слайдов: 38
Скрытые марковские модели А. Нехаев
Последовательность наблюдений Hot Предположим, что мы ведем наблюдения на погодой Каждый день мы отмечаем в журнале сегодняшнюю погоду Если было холодно, пишем «Cold» Если жарко – «Hot» В итоге получается последовательность наблюдений Cold Hot
Цепь Маркова Опишем статистическую модель процесса изменения погоды Введем множество состояний: Введем вероятности переходов: Q = q 1, q 2, …, q. N; qt – состояние в момент времени t. A = a 01, a 02, . . , an 1, …, ann; aij – вероятность перехода из состояния i в состояние j; aij = P(qt = j | qt-1 = i), 1 ≤ i, j ≤ N; Также часто вводятся отдельные стартовое и финальное состояния
Модель процесса изменения погоды a 11 Start 0 1 a 12 0 a 13 Cold 0 a 01 a 02 Hot 0 a 22 End a 21 2 0 a 23 3
Модель процесса изменения погоды 2/3 1/3 Cold 0 Hot 0 1 2/4 2 2/4
HMM на примере
Формальное описание HMM Q = q 1, q 2, …, q. N Множество из N состояний A = a 01, a 02, . . , an 1, …, ann Матрица вероятностей переходов между состояниями O = o 1, o 2, …, o. T Последовательность из T событий, каждое из которых является элементом множества (алфавита) V = v 1, v 2, …, vv B = bi(ot) Функция, определяющая вероятность того, что в состоянии i наблюдается событие ot q 0 , q F Стартовое и финальное состояния
HMM для примера с мороженным
Задачи, решаемые с помощью HMM Оценка. Имеется последовательность событий O и модель Ф=(A, B). Требуется определить P(O | Ф), т. е. с какой вероятностью, согласно данной модели Ф, выпадает последовательность событий O. Декодирование. Имеется последовательность событий O и модель Ф=(A, B). Требуется подобрать соответствующую последовательность состояний Q, которая бы наилучшим способом объясняла наблюдения. Обучение. Имеется последовательность событий O и модель Ф=(A, B). Требуется скорректировать параметры модели Ф так, чтобы максимизировать вероятность P(O | Ф).
Задача оценки HMM Возьмем в качестве примера HMM из задачи про мороженное: Попробуем ответить на вопрос, насколько вероятна последовательность событий: 3 1 3?
Задача оценки HMM. Упрощение Если бы речь шла о простой цепи Маркова, мы бы просто перемножили вероятности переходов между состояниями. Однако в HMM последовательность внутренних состояний (какая погода была на самом деле) нам неизвестна. Попробуем решить более простую задачу: выберем какую-нибудь последовательность состояний и рассчитаем вероятность получить известные наблюдения только для нее. Т. е. рассчитаем, например, P(3 1 3 | H H C).
Задача оценки HMM. Вероятность наблюдений по заданной цепочке состояний
Задача оценки HMM. Совместная вероятность наблюдений и цепочки состояний
Задача оценки HMM. Возврат к первоначальной формулировке Чтобы узнать вероятность O по всей модели, нужно получить соответствующие вероятности для всех возможных цепочек состояний и просуммировать их. Для N скрытых состояний и T событий число возможных цепочек состояний составляет NT. Очевидно, требуется более эффективный алгоритм для решения этой задачи.
Forward-алгоритм Цель – вычисление вероятности выпадения определенной последовательности событий O = (o 1, o 2, …, o. T) при данной модели λ=(A, B): P(o 1, o 2, …, o. T, q. T = q. F | λ) Для этого используется трелис Каждая ячейка в трелисе: Обозначает вероятность нахождения в состоянии j После наблюдения первых t событий
Forward-алгоритм. Рекурсивная реализация Инициализация: Рекурсия: Выход:
Forward-алгоритм. Трелис
Forward-алгоритм. Ячейка трелиса
Задача декодирования Имеется последовательность событий O и модель Ф=(A, B). Требуется подобрать соответствующую последовательность состояний Q, которая бы наилучшим способом объясняла наблюдения. Вариант решения: Для каждой последовательности состояний Q HHH, HHC, HCH, … Вычислить P(O | Q) Взять максимальную Есть проблема: NT Другой вариант: алгоритм Витерби
Алгоритм Витерби Цель – вычисление совместной вероятности последовательности наблюдаемых событий и наиболее подходящей последовательности состояний: Так же, как и в случае forward-алгоритма используется трелис
Алгоритм Витерби. Рекурсивная реализация Инициализация: Рекурсия: Выход:
Алгоритм Витерби. Трелис
Алгоритм Витерби. Возврат
Задача обучения Цель – по имеющейся последовательности наблюдений O и набору скрытых состояний Q вычислить параметры модели A и B. Если бы модель была открытой: B = {bk(ot) = 1} – в каждом состоянии может быть только одно наблюдаемое событие A = {aij}
Алгоритм Баума-Велча (Forward-Backward) Для скрытой марковской модели сделать прямые подсчеты невозможно Вместо этого можно: Выбрать некоторые начальные значения aij и bk, а затем итеративно уточнять эти значения Получить оценку этих значений можно путем: Вычисления вероятности данной последовательности наблюдений O С последующим распределением этой вероятности между всеми путями, которые участвовали в ее формировании
Обратная вероятность (backward probability) Инициализация: Рекурсия: Выход:
Обратная вероятность. Трелис
Уточнение оценки для aij Попробуем оценить значение aij, используя интуитивную формулу: Обозначим вероятность перехода из состояния i в момент времени t в состояние j в момент времени t+1: Однако в данный момент нам доступна для вычисления другая величина: ы
Расчет not-quite-ξ
Расчет ξ Согласно формуле: Имея: Получаем:
Расчет ξ
Возвращаясь к aij Ожидаемое число переходов из состояния i в состояние j – это сумма xi по всем моментам времени:
Расчет b Вероятность появления события vk в состоянии j: Вероятность нахождения в состоянии j в момент t: Итоговая формула переоценки: ы
Вычисление γ. Трелис
Итоговые формулы для переоценки параметров HMM
Алгоритм Баума-Велча 1. 2. 3. 4. 5. Инициализация с начальными значениями Ф=(A, B) Вычисление α, β, ξ, γ Оценка Ф`=(A, B) Замена Ф` Повторяем шаги 2 -4 пока алгоритм не сошелся
Алгоритм Баума-Велча
Обучение HMM
4. Скрытые марковские модели.pptx