Алгоритм Витерби — различия между версиями
(Новая страница: «== История == Алгоритм Витерби был представлен в 1967 году для декодирования сверточных код...») |
(нет различий)
|
Версия 01:17, 14 января 2013
Содержание
История
Алгоритм Витерби был представлен в 1967 году для декодирования сверточных кодов, поступающих через зашумленный канал связи.
Применение
Алгоритм используется в CDMA и GSM цифровой связи, в модемах и космических коммуникациях. Он нашел применение в распознавании речи и письма, компьютерной лингвистике и биоинформатике.
Описание
Алгоритм Витерби позволяет сделать наилучшее предположение о последовательности состояний скрытой модели на основе последовательности наблюдений. Эта последовательность состояний называется путем Витерби.
Определение: |
Путь Витерби — наиболее правдоподобная последовательность скрытых состояний. |
Пусть задано пространство наблюдений , пространство состояний , последовательность наблюдений , матрица А переходов из -того состояния в -ое, размером , матрица эмиссии В размера , которая определяет вероятность наблюдения из состояния , массив начальных вероятностей размером , показывающий вероятность того, что начальное состояние . Путь — последовательность состояний, которые привели к последовательности наблюдений .
Скрытая марковская модель.
Модель представляет из себя марковскую цепь, для которой нам известны начальная вероятность и матрица вероятностей переходов. Скрытой она называется потому, что мы не имеем информации о ее текущем состоянии. Мы получаем информацию на основе некоторого наблюдения, в рассмотренном ниже алгоритме мы будем использовать просто натуральное число от 1 до , как индекс наблюдаемого события. Для каждого состояния скрытой марковской модели задан вектор вероятности эмиссии, который характеризует вероятность наблюдени каждого события, когда модель находится в этом состоянии. Совокупность таких векторов образует матрицу эмиссии.
Пример скрытой марковской модели.
Рассмотрим пример скрытой марковской модели. У Деда Мороза есть три мешка с подарками в разноцветной упаковке: красной, синей, зеленой и фиолетовой. Ночью Дед Мороз пробирается в квартиру и тайком выкладывает подарки под елкой в ряд, доставая по одному подарку из мешка. Наутро мы обнаруживаем упорядоченную последовательность из пяти подарков и хотим сделать наилучшее предположение о последовательности мешков, из которых он доставал эти подарки.
Дед Мороз с мешками — скрытая марковская модель. При этом 3 мешка — количество состояний , 5 подарков — наши наблюдений, каждое из которых представлено цифрой — номером цвета — от 1 до 5. Мы знаем, каковы вероятности того, что Дед Мороз начнет доставать подарки из мешка с номером – вектор . Мы также знаем матрицу переходов , какова вероятность того, что от мешка с номером Дед Мороз переходит к мешку с номером . Мешки Деда Мороза бесконечны, но мы точно знаем, каково соотношение цветов подарков в кажом мешке ему загрузили на заводе в Великом Устюге. Это матрица вероятностей эмиссии .
Алгоритм
Создадим две матрицы
и размером . Каждый элемент содержит вероятность того, что на -ом шаге мы находимся в состоянии . Каждый элемент содержит индекс наиболее вероятного состояния на -ом шаге.Шаг 1. Заполним первый столбец матриц
Шаг 2. Последовательно заполняем следующие столбцы матриц и , используя матрицы вероятностей эмиссий и переходов.
Шаг 3. Рассматривая максимальные значения в столбцах матрицы , начиная с последнего столбца, выдаем ответ.
Псевдокод
function viterbifor each state do for do for each state do for do return
Таким образом, алгоритму требуется времени.