Графические модели (курс лекций)/2013/Задание 3

Материал из MachineLearning.

(Различия между версиями)
Перейти к: навигация, поиск
(Новая: {{main|Графические модели (курс лекций)}} {{stop|Формулировка задания находится в стадии подготовки. Убедит...)
м
Строка 4: Строка 4:
'''Начало выполнения задания''': 18 марта 2013 г.;<br>
'''Начало выполнения задания''': 18 марта 2013 г.;<br>
-
'''Срок сдачи''': {{ins|31 марта 2013 г., 23:59.}}
+
'''Срок сдачи''': {{ins|7 апреля 2013 г. (воскресенье), 23:59.}}
Среда для выполнения задания — MATLAB. Неэффективная реализация кода может негативно отразиться на оценке.
Среда для выполнения задания — MATLAB. Неэффективная реализация кода может негативно отразиться на оценке.

Версия 16:43, 15 марта 2013


Формулировка задания находится в стадии подготовки. Убедительная просьба не приступать к выполнению задания до тех пор, пока это предупреждение не будет удалено.


Начало выполнения задания: 18 марта 2013 г.;
Срок сдачи: 7 апреля 2013 г. (воскресенье), 23:59.

Среда для выполнения задания — MATLAB. Неэффективная реализация кода может негативно отразиться на оценке.

Формулировка задания

Рассматривается авторегрессионная скрытая марковская модель, в которой полное правдоподобие задается как:


p(X,T|\theta)=p(t_1)\prod_{n=2}^Np(t_n |t_{n-1})\prod_{n=1}^Np(x_n |t_n,x_{n-1},\dots,x_{n-M} )

Пусть скрытая компонента t_n в произвольный момент времени может принимать значения из множества \{1,\dots,K\}. Априорное распределение на значение скрытой компоненты в первый момент времени задается вектором w_1,\ldots,w_K, причем все w_i\ge 0 и \sum_iw_i=1. Распределение p(t_n |t_{n-1}) задается матрицей перехода A размера K\times K, где в ij-ой позиции стоит вероятность перехода из состояния i в состояние j. Все элементы этой матрицы неотрицательны и сумма элементов по каждой строке равна единице. Модель генерации данных задается нормальными распределениями с одинаковой матрицей ковариации \Sigma и своими математическими ожиданиями \mu_{n,j} для каждого состояния и каждого момента времени. Математическое ожидание зависит не только от состояния СММ, но и от предыдущих значений x (авторегрессионная составляющая) и задается формулой


\mu_{n,j}=c_{0,j}+\sum_{m=1}^Mc_{m,j}x_{n-m},

где c_{0,j},\ldots,c_{M,j} — коэффициенты авторегрессии, которые зависят от состояния СММ.

Таким образом, набор параметров модели определяется вектором \vec{w}, матрицей A, матрицей ковариаций \Sigma и матрицей C коэффициентов авторегрессии \{c_{i,j}\}_{i=0,j=1}^{M,K}. Глубина авторегрессии M задается пользователем.

Для выполнения задания необходимо реализовать:

  • Алгоритм генерации выборки из вероятностной модели СММ с авторегрессией;
  • EM-алгоритм обучения СММ при заданном числе состояний K и глубине авторегрессии M;
  • Алгоритм Витерби для сегментации сигнала при известных значениях параметров СММ, учитывающий значения наблюдаемой компоненты x в предыдущие моменты времени.

Пояснения к заданию

Для подсчета авторегрессии в первые моменты времени вам понадобятся знания о значениях наблюдаемой компоненты x_n в отрицательные моменты времени -1,\ldots,-M+1. Считайте, что в них значение x равно среднему значению наблюдаемой компоненты, подсчитанному по всему сигналу. Обратите внимание на необходимость оценивания коэффициентов авторегрессии и сдвижки на М-шаге. Для получения аналитических формул вам придется выписать функцию правдоподобия, приравнять ее логарифм к нулю и выразить искомые величины.

Оформление задания

Выполненное задание следует отправить письмом по адресу bayesml@gmail.com с заголовком письма «[ГМ13] Задание 3 <ФИО>». Убедительная просьба присылать выполненное задание только один раз с окончательным вариантом. Также убедительная просьба строго придерживаться заданных ниже прототипов реализуемых функций.

Присланный вариант задания должен содержать в себе:

  • Файл отчёта в формате PDF с указанием ФИО.
  • Все исходные коды с необходимыми комментариями.
Генерация выборки
[X, T] = ARHMM_GENERATE(N, w, A, Mu, Sigma, C)
ВХОД
N — количество точек в генерируемой последовательности, uint32;
w — априорные вероятности для скрытых состояний, матрица типа double размера 1 x K;
A — матрица перехода, матрица типа double размера K x K;
Mu — константы в центрах гауссиан для каждого состояния, матрица типа double размера K x d, в которой в каждой строке стоит вектор для соответствующего состояния;
Sigma — общая матрица ковариации гауссиан, матрица типа double размера d x d;
C — коэффициенты авторегрессии, матрица типа double размера K x M;
ВЫХОД
X — сгенерированная последовательность, матрица типа double размера N x d
T — последовательность скрытых состояний, матрица типа double размера 1 x N

Обратите внимание: в процедуре ARHMM_GENERATE количество признаков, скрытых состояний и глубина авторегрессии определяются неявно по размеру соответствующих элементов.

Сегментация
T = ARHMM_TEST(X, w, A, Mu, Sigma, C)
ВХОД
X — входная последовательность, матрица типа double размера N x d, где N – количество точек в последовательности, d – количество признаков;
w — априорные вероятности, матрица типа double размера 1 x K, где K – количество скрытых состояний;
A — матрица перехода, матрица типа double размера K x K;
Mu — константы в центрах гауссиан для каждого состояния, матрица типа double размера K x d, в которой в каждой строке стоит вектор для соответствующего состояния;
Sigma — общая матрица ковариации гауссиан, матрица типа double размера d x d;
C — коэффициенты авторегрессии, матрица типа double размера K x M, где M — глубина авторегрессии;
ВЫХОД
T — полученная последовательность скрытых состояний, матрица типа double размера 1 x N

 

Обучение
[w, A, Mu, Sigma, C, core] = ARHMM_EM_TRAIN(X, K, M)
[w, A, Mu, Sigma, C, core] = ARHMM_EM_TRAIN(X, K, M, InputParameters)
ВХОД
X — входная последовательность, матрица типа double размера N x d, где N – количество точек в последовательности, d – число признаков;
K — количество скрытых состояний, число типа uint16;
M — глубина авторегрессии, число типа uint16;
InputParameters — (необязательный аргумент) набор дополнительных параметров, массив типа cell вида ParameterName1, ParameterValue1, ParameterName2, ParameterValue2 и т.д. Возможны следующие параметры:
  'w' — задаваемый пользователем вектор априорных вероятностей (соответственно, его не нужно определять в процессе EM-итераций);
  'A' — задаваемая пользователем матрица перехода;
  'Mu' — задаваемые пользователем центры гауссиан для каждого состояния;
  'Sigma' — задаваемая пользователем матрица ковариации гауссиан;
  'C' — задаваемые пользователем коэффициенты авторегрессии;
  'num_iter' — максимально допустимое число итераций EM-алгоритма;
  'tol_LH' — минимально допустимая величина отклонения по значению логарифма правдоподобия на одной итерации;
ВЫХОД
w — априорные вероятности для скрытых состояний, матрица типа double размера 1 x K;
A — матрица перехода, матрица типа double размера K x K;
Mu — центры гауссиан для каждого состояния, матрица типа double размера K x d, в которой в каждой строке стоит вектор мат.ожидания для соответствующего состояния;
Sigma — матрица ковариации гауссиан, массив типа double размера d x d;
C — коэффициенты авторегрессии, матрица типа double размера K x M;
Core — все параметры для всех итераций EM-алгоритма, массив структур длины num_iter с полями 'w', 'A', 'Mu', 'Sigma', 'C', 'gamma', 'LH', где gamma – матрица значений gamma для всех точек и всех состояний, LH – логарифм правдоподобия
Личные инструменты