Московский государственный университет имени М.В.Ломоносова
Опубликован: 30.04.2008 | Доступ: свободный | Студентов: 1613 / 248 | Оценка: 4.24 / 3.92 | Длительность: 14:56:00
Специальности: Математик
Лекция 9:

Контекстно-зависимая классификация

< Лекция 8 || Лекция 9: 12 || Лекция 10 >

9.4. Алгоритм Витерби (Viterbi)


Пусть задано N столбцов; каждая точка в столбце соответствует одному из M возможных классов \omega_1,\omega_2,\ldots,\omega_M ; столбцы соответствуют наблюдениям x_k,\;k=1,2,\ldots,N. Стрелками обозначены переходы от одного класса к другому в последовательности получения наблюдений. Каждая последовательность классов \Omega_i соответствует конкретному маршруту последовательных переходов. Каждый переход от i -го класса к j -му характеризуется вероятностью P(\omega_j|\omega_i), которая предполагается известной. Предположим, что эти вероятности одинаковы для всех k. Далее предположим, что условные вероятности – плотности p(x_k|\omega_i), k=1,2,\ldots,N, i=1,2,\ldots,M – также известны. Тогда задача максимизации (9.3) ставится как поиск последовательности переходов.

Пусть \widetilde{d}(\omega_{i_k},\omega_{i_{k-1}})=P(\omega_{i_k}|\omega_{i_{k-1}})\cdot 
p(x_k|\omega_{i_k}) – цена, связанная с переходом (\omega_{i_{k-1}},\omega_{i_k}). Начальное условие при k=1 есть \widetilde{d}(\omega_{i_1},\omega_{i_0})=P(\omega_{i_1})\cdot p(x_1|\omega_{i_1}). Учитывая данные предположения, получаем общую формулу, которую нужно оптимизировать:

\widetilde{D}=\prod_{k=1}^N\widetilde{d}(\omega_{i_k},\omega_{i_{k-1}})
или, логарифмируя, имеем
\ln(\widetilde{D})=\sum_{k=1}^N\ln\widetilde{d}(\omega_{i_k},\omega_{i_{k-1}})=
\sum_{k=1}^N d(\omega_{i_k},\omega_{i_{k-1}})=D
Используем принцип Беллмана:
D_{\max}(\omega_{i_k})=\max_{i_{k-1}=1,2,\ldots,M}
\left[
D_{\max}(\omega_{i_{k-1}})+d(\omega_{i_k},\omega_{i_{k-1}})
\right],
\text{ при }D_{\max}(\omega_{i_0})=0.
Обозначим через
\omega_{i_N}^*=\arg\max_{\omega_{i_N}}D_{\max}(\omega_{i_n})

Получаем обратный ход для вычисления \omega_{i_k}^*. Получаем число операций O(NM^2), что существенней меньше O(NM^N). Данная процедура динамического программирования известна как алгоритм Витерби.

9.5. Скрытые Марковские модели

Теперь рассмотрим системы, в которых состояния напрямую не наблюдаются и могут быть лишь оценены из последовательности наблюдений с помощью некоторой оптимизационной техники. Этот тип Марковских моделей известен как скрытые Марковские модели (НММ). НММ – это тип стохастической аппроксимации нестационарных стохастических последовательностей со статистическими свойствами, которые подвергаются различным случайным переходам среди множества различных стационарных процессов. Иными словами, НММ моделирует последовательность наблюдений как кусочно-стационарный процесс.

Такие модели широко используются в распознавании речи. Рассматриваются так называемые высказывания – это может быть слово, часть слова, даже предложение или параграф. Статистические свойства речевого сигнала внутри высказывания подвергаются серии переходов. Например, слово содержит порцию гласных и согласных звуков. Они характеризуются различными статистическими свойствами, которые в свою очередь отражены в переходах в речевых сигналах от одной к другой. Такие примеры дает распознавание рукописного текста, распознавание текстур, где успешно применяется НММ.

НММ есть в основе своей конечный автомат, который генерирует строку наблюдений – последовательность векторов наблюдений x_1,x_2,\ldots,x_N. Таким образом, НММ содержит k состояний, и строка наблюдений получается как результат последовательных переходов из одного состояния i в другое состояние j. Нам подходит так называемая модель "машины Моора", в соответствии с которой наблюдения получаются как результаты (выходы) из состояний на прибытие (по переходу) в каждом состоянии.

Пример. НММ с тремя состояниями. Стрелки обозначают переходы. Такая модель может соответствовать короткому слову с тремя различными стационарными частями, например, для слова "оса".

Модель предоставляет информацию о последовательных переходах между состояниями P(i|j),\;i,j=1,2,3. Такой тип НММ известен как "слева-направо", поскольку индекс состояний определяется выделенным числом фонем в одном слове. В действительности, несколько состояний (обычно 3 или 4) используется для каждой фонемы.


< Лекция 8 || Лекция 9: 12 || Лекция 10 >