Структурные методы анализа изображений и сигналов (курс лекций)/2011/Задание 1
Материал из MachineLearning.
![]() | Статья в настоящий момент дорабатывается. Формулировка задания находится в стадии формирования. Просьба не приступать к выполнению задания, пока это предупреждение не будет удалено. Д.А. Кропотов 18:25, 26 марта 2011 (MSK) |
Задание 1. Скрытые марковские модели и линейные динамические системы.
Начало: 28 марта 2011
Срок сдачи: 11 апреля 2011, 23:59
Задание состоит из двух вариантов. Распределение вариантов задания по студентам:
Вариант 1 | Вариант 2 |
---|---|
Ромов Петр, 202 | Лямаев Сергей, 202 |
Иванов Петър, 202 | Елшин Денис, 317 |
Некрасов Константин, 317 | Новиков Павел, 317 |
Меркулова Татьяна, 317 | Лобачева Екатерина, 209 |
Батанов Павел, 321 | Птенцов Сергей, 321 |
Сапатов Александр, 321 | Новикова Татьяна, 321 |
Шальнов Евгений, 321 | Конев Артем, 321 |
Костин Григорий, 320 | Икрам Магжан, 325 |
Переходько Евгения, 325 | Парамонов Сергей, 324 |
Русланова Анна, 421 | Ермишин Федор, 321 |
Исламгулов Ильдар, 420 | Грядицкая Юлия, 411 |
Касперский Иван, 417 | Тихонов Андрей, 417 |
Колев Денис, 417 | Вартанов Сергей, 427 |
Ермаков Михаил, 427 | Баранов Леонид, 428 |
Пироженко Александр, 428 | Рябов Сергей, 428 |
Кузин Сергей, 528 | Светличный Дмитрий, ВВО |
Заякина Ольга, ВВО | Беликов Владимир |
Гребенкина Мария | Субботин Никита |
Для студентов, которых нет в этом списке, механизм выбора варианта следующий: первый вариант, если первая буква фамилии А–Л, второй — иначе.
Среда реализации для всех вариантов – MATLAB. Неэффективная реализация кода может негативно отразиться на оценке.
Вариант 1
Формулировка задания
Рассматривается классическая скрытая марковская модель первого порядка, в которой полное правдоподобие задается как:
Пусть скрытая компонента в произвольный момент времени может принимать значения из множества
. Априорное распределение на значение скрытой компоненты в первый момент времени задается вектором
, причем все
и
. Распределение
задается матрицей перехода
размера
, где в
-ой позиции стоит вероятность перехода из состояния
в состояние
. Все элементы этой матрицы неотрицательны и сумма элементов по каждой строке равна единице. Модель генерации данных задается нормальными распределениями со своими значениями вектора математического ожидания
и матрицы ковариации
для каждого состояния.
Таким образом, набор параметров модели определяется вектором
, матрицей
, значениями векторов математических ожиданий и матриц ковариаций для каждого состояния
.
Для выполнения задания необходимо реализовать:
- Алгоритм генерации выборки из вероятностной модели СММ
- EM-алгоритм обучения СММ при заданном числе состояний K.
- Алгоритм Витерби для сегментации сигнала при известных значениях параметров СММ, учитывающий заданное распределение на длительность нахождения в одном состоянии
Пояснения к варианту
При использовании стандартного алгоритма Витерби, описанного в лекциях, легко показать, что априорное распределение на длительность нахождения в состоянии
является геометрическим, т.е. вероятность находиться в этом состоянии ровно
моментов времени равна
Необходимо обобщить алгоритм Витерби на случай, когда априорное распределение на длительность нахождения в состоянии имеет вид
Иными словами, в одном состоянии СММ не может находиться меньше моментов времени и больше
моментов времени. Частным случаем может быть
,
. В этом случае алгоритм сегментации должен давать результаты, аналогичные алгоритму Витерби.
Подсказки
Вероятность перехода из состояния в состояние
начинает зависеть от длительности
нахождения в состоянии
и с точностью до нормировочного множителя равна
Обратите внимание, что если в качестве распределения на использовалось бы геометрическое распределение, вероятность перехода не зависела бы от длительности нахождения в состоянии
и равнялась бы
.
Тогда вероятности перехода между состояниями в силу условия нормировки равны
где — длительность нахождения в состоянии
к моменту времени
. Второй множитель здесь возникает из-за того, что мы точно знаем, какой длины был сегмент с
-ым состоянием (раз мы из него перешли в другое состояние, значит сегмент закончился).
Окончательно вероятности переходов рассчитываем
чтобы соблюсти условие нормировки
Эти условные вероятности теперь будут подставляться в функцию Беллмана и в функцию . Чтобы их корректно рассчитать, нам придется теперь дополнительно хранить информацию о том, сколько времени мы уже находимся в текущем состоянии (т.е. величину
для каждого
).
— Д.П. Ветров 19:53, 30 октября 2009 (MSK)
Спецификация реализуемых функций
Генерация выборки | |||||
---|---|---|---|---|---|
[X, T] = HMM_GENERATE(N, w, A, Mu, Sigmas) | |||||
ВХОД | |||||
| |||||
ВЫХОД | |||||
|
Обратите внимание: в процедуре HMM_GENERATE количество признаков и количество скрытых состояний определяются неявно по размеру соответствующих элементов.
Сегментация | |||||||
---|---|---|---|---|---|---|---|
T = HMM_TEST(X, w, A, Mu, Sigmas, a, b) | |||||||
ВХОД | |||||||
| |||||||
ВЫХОД | |||||||
|
Обучение | |||||||||
---|---|---|---|---|---|---|---|---|---|
[w, A, Mu, Sigmas, core] = HMM_EM_TRAIN(X, K) | |||||||||
[w, A, Mu, Sigmas, core] = HMM_EM_TRAIN(X, K, InputParameters) | |||||||||
ВХОД | |||||||||
| |||||||||
ВЫХОД | |||||||||
|
Оформление задания
Архив, содержащий:
- Readme.txt — файл с ФИО сдающего + комментарии по заданию
- HMM_GENERATE.m
- HMM_TEST.m
- HMM_EM_TRAIN.m
- Набор вспомогательных файлов при необходимости
Вариант 2
Формулировка задания
Рассматривается классическая скрытая марковская модель первого порядка, в которой полное правдоподобие задается как:
Пусть скрытая компонента в произвольный момент времени может принимать значения из множества
. Априорное распределение на значение скрытой компоненты в первый момент времени задается вектором
, причем все
и
. Распределение
задается матрицей перехода
размера
, где в
-ой позиции стоит вероятность перехода из состояния
в состояние
. Все элементы этой матрицы неотрицательны и сумма элементов по каждой строке равна единице. Модель генерации данных задается нормальными распределениями со своими значениями вектора математического ожидания
и матрицы ковариации
для каждого состояния.
Таким образом, набор параметров модели определяется вектором
, матрицей
, значениями векторов математических ожиданий и матриц ковариаций для каждого состояния
.
Для выполнения задания необходимо реализовать:
- Алгоритм генерации выборки из вероятностной модели СММ
- EM-алгоритм обучения СММ при заданном числе состояний K.
- Алгоритм Витерби для сегментации сигнала при известных значениях параметров СММ, работающий в реальном времени.
Пояснения к варианту
При решении задачи сегментации с помощью алгоритма Витерби предполагается, что наблюдаемые данные поступают последовательно. Необходимо модифицировать алгоритм Витерби так, чтобы он был способен проводить сегментацию сигнала по имеющимся данным. Здесь используется следующее предположение: поступающие в текущий момент данные не влияют на сегментацию отдаленных участков сигнала в прошлом. Иными словами, каковы бы не были наблюдения, например, начиная с момента времени и дальше, сегментация первых, скажем,
точек сигнала останется без изменений. Это позволяет нам провести окончательную сегментацию первых сорока точек сигнала, не дожидаясь получения всего объема данных, уже в сотый момент времени. По мере поступления новых данных граница окончательной сегментации (граница принятия решения) будет смещаться вправо.
Задача: для каждого момента времени определить, на какой участок в прошлом новые наблюдения уже не оказывают влияния, и провести его сегментацию алгоритмом Витерби. При хорошо различимых состояниях задержка сегментации (разница между границей принятия решения и текущим моментом времени) будет незначительной.
Подсказки
Вариантом реализации такого алгоритма является прореживание таблицы функции , содержащей аргмаксы функции Беллмана. Кладем
, если
, т.е. если ни одна из оптимальных траекторий не проходит через
. В этом случае значения функции Беллмана и функции
для
интереса не представляют. В какой-то момент
окажется, что все
. Это и будет означать, что все оптимальные траектории проходят через состояние
в момент времени
. Но тогда мы можем провести сегментацию всего сигнала до момента
включительно и очистить память, удалив массивы со значениями функции Беллмана и функции
от начала до момента времени
- сегментация на этом участке уже не изменится.
--Vetrov 17:43, 30 октября 2009 (MSK)
Спецификация реализуемых функций
Генерация выборки | |||||
---|---|---|---|---|---|
[X, T] = HMM_GENERATE(N, w, A, Mu, Sigmas) | |||||
ВХОД | |||||
| |||||
ВЫХОД | |||||
|
Обратите внимание: в процедуре HMM_GENERATE количество признаков и количество скрытых состояний определяются неявно по размеру соответствующих элементов.
Сегментация | |||||
---|---|---|---|---|---|
[T, Borders] = HMM_TEST(X, w, A, Mu, Sigmas) | |||||
ВХОД | |||||
| |||||
ВЫХОД | |||||
|
Обучение | |||||||||
---|---|---|---|---|---|---|---|---|---|
[w, A, Mu, Sigmas, core] = HMM_EM_TRAIN(X, K) | |||||||||
[w, A, Mu, Sigmas, core] = HMM_EM_TRAIN(X, K, InputParameters) | |||||||||
ВХОД | |||||||||
| |||||||||
ВЫХОД | |||||||||
|
Оформление задания
Архив, содержащий:
- Readme.txt — файл с ФИО сдающего + комментарии по заданию
- HMM_GENERATE.m
- HMM_TEST.m
- HMM_EM_TRAIN.m
- Набор вспомогательных файлов при необходимости