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

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

Перейти к: навигация, поиск


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


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

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

Содержание

Модель авторегрессии

Графическая модель авторегрессии 1-го порядка
Графическая модель авторегрессии 1-го порядка

Случайный процесс с дискретным временем \{\vec{x}_n\}_{n=1}^N, \vec{x}_n\in\mathbb{R}^d называется авторегрессией первого порядка, если

\vec{x}_n = \vec{w} + A\vec{x}_{n-1} + \vec{\varepsilon}_n,\quad \vec{\varepsilon}_n\sim\mathcal{N}(\vec{0},\Sigma).

Здесь \vec{w}\in\mathbb{R}^d, A\in\mathbb{R}^{d\times d}, \Sigma\in\mathbb{R}^{d\times d}, шумовые компоненты \vec{\varepsilon}_n являются независимыми. Процесс авторегрессии является стационарным, если все собственные значения матрицы A (включая комплексные) по модулю меньше единицы. Мат.ожидание \vec{\mu} стационарного процесса авторегрессии определяется как

\vec{\mu} = (I-A)^{-1}\vec{w},

где I — единичная матрица размера d\times d.

В терминах графических моделей авторегрессия первого порядка представляет собой байесовскую сеть с графом вида цепочка (см. рис.), где совместное распределение задается как

p(X|\vec{w},A,\Sigma,\vec{x}_0)=\prod_{n=1}^N\mathcal{N}(\vec{x}_n|\vec{w}+A\vec{x}_{n-1},\Sigma),

а \vec{x}_0 — начальная предыстория.

Авторегрессия M-го порядка задается как

\vec{x}_n = \vec{w}+\sum_{m=1}^MA_m\vec{x}_{n-m}+ \vec{\varepsilon}_n,\quad \vec{\varepsilon}_n\sim\mathcal{N}(\vec{0},\Sigma).

Здесь шумовые компоненты \vec{\varepsilon}_n по-прежнему предполагаются независимыми. Очевидно, что авторегрессия M-го порядка может быть сведена к авторегрессии первого порядка как

\tilde{\vec{x}}_n = \tilde{\vec{w}} + \tilde{A}\tilde{\vec{x}}_{n-1} + \tilde{\vec{\varepsilon}}_n,\quad \tilde{\vec{w}} = \begin{bmatrix}\vec{w}\\ 0\\ \vdots \\ 0\end{bmatrix},\quad \tilde{\vec{x}}_n = \begin{bmatrix}\vec{x}_n\\ \vec{x}_{n-1}\\ \vdots \\ \vec{x}_{n-M}\end{bmatrix},\quad \tilde{A} = \begin{bmatrix}A_1 & A_2 & A_3 & \dots & A_{M-1} & A_M\\ I & 0 & 0 & \dots & 0 & 0\\ 0 & I & 0 & \dots & 0 & 0\\ \dots \\ 0 & 0 & 0 & \dots & I & 0 \end{bmatrix},\quad \tilde{\vec{\varepsilon}}_n = \begin{bmatrix}\vec{\varepsilon}_n \\ 0 \\ \vdots \\ 0\end{bmatrix}.

Поэтому авторегрессия M-го порядка является стационарной, если все собственные значения матрицы \tilde{A} по модулю меньше единицы. Мат.ожидание стационарной регрессии M-го порядка определяется как

\vec{\mu} = (I-A_1-\dots-A_M)^{-1}\vec{w}.

В дальнейшем для удобства набор матриц A_1,\dots,A_M будем обозначать через \mathcal{A}.

Графическая модель авторегрессии 2-го порядка
Графическая модель авторегрессии 2-го порядка

В терминах графических моделей авторегрессия M-го порядка представляет собой байесовскую сеть с графом, показанном на рис. справа, где совместное распределение задается как

p(X|\vec{w},\mathcal{A},\Sigma,X_0)=\prod_{n=1}^N\mathcal{N}(\vec{x}_n|\vec{w}+\sum_{m=1}^MA_m\vec{x}_{n-m},\Sigma),

а X_0=\{\vec{x}_0,\vec{x}_{-1},\dots,\vec{x}_{1-M}\} — начальная предыстория.


Авторегрессионная скрытая марковская модель

Графическая модель авторегрессионной скрытой марковской модели 2-го порядка
Графическая модель авторегрессионной скрытой марковской модели 2-го порядка

Авторегрессионная скрытая марковская модель M-го порядка — это байесовская сеть, граф которой показан на рис. справа, а совместное распределение задается как

p(X,T|\theta,X_0)=p(t_1)\prod_{n=2}^Np(t_n |t_{n-1})\prod_{n=1}^Np(\vec{x}_n |t_n,\vec{x}_{n-1},\dots,\vec{x}_{n-M}).

Здесь t_n\in\{1,\dots,K\} — скрытые дискретные состояния, \vec{x}_n\in\mathbb{R}^d — непрерывные наблюдаемые переменные. Априорное распределение p(t_1) задается вектором [\pi_1,\ldots,\pi_K], причем все \pi_k\ge 0 и \sum_k\pi_k=1. Распределение p(t_n |t_{n-1}) задается матрицей перехода R размера K\times K, где в ij-ой позиции стоит вероятность перехода из состояния i в состояние j. Все элементы этой матрицы неотрицательны, а сумма элементов по каждой строке равна единице. Модель генерации данных соответствует модели авторегрессии, в которой параметры \vec{w},\mathcal{A},\Sigma зависят от текущего состояния t_n. Таким образом,

p(\vec{x}_n|t_n,\vec{x}_{n-1},\dots,\vec{x}_{n-M})=\mathcal{N}(\vec{x}_n|\vec{w}_{t_n}+\sum_{m=1}^MA_{m,t_n}\vec{x}_{n-m},\Sigma_{t_n}).

В результате полный набор параметров модели состоит из \vec{\pi},R,\{\vec{w}_k,\mathcal{A}_k,\Sigma_k\}_{k=1}^K. Глубина авторегрессии M, количество скрытых состояний K, а также начальная предыстория X_0=\{\vec{x}_0,\vec{x}_{-1},\dots,\vec{x}_{1-M}\} задаются пользователем.

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

  1. Для модели авторегрессии M-го порядка:
    • Вывести формулы для оценки параметров модели \vec{w},A,\Sigma по наблюдениям \{\vec{x}_n\}_{n=1}^N с помощью метода максимального правдоподобия;
    • Реализовать процедуру генерации сигнала из модели авторегрессии;
    • Реализовать процедуру оценки параметров \vec{w},A,\Sigma по методу максимального правдоподобия;
    • Реализовать процедуру оценки выборочной автокорреляционной функции остатков авторегрессии;
  2. Провести эксперименты с авторегрессией M-го порядка на модельных данных:
    • в
  3. Для авторегрессионной скрытой марковской модели:
    • Вывести формулы ЕМ-алгоритма для оценки параметров модели \vec{\pi},B,\{\vec{w}_k,A_k,\Sigma_k}_{k=1}^K, при этом предусмотреть ситуации, когда часть параметров известна;
    • Реализовать процедуру генерации сигнала из модели;
    • Реализовать процедуру оценки параметров модели с помощью EM-алгоритма;
    • Реализовать процедуру оценки скрытых состояний по наблюдаемым данным и параметрам модели с помощью алгоритма Витерби;
  4. Провести эксперименты с авторегрессионной скрытой марковской моделью на модельных данных:
  5. Применить авторегрессионную скрытую марковскую модель для моделирования и сегментации движений в базе данных mocap.

Рекомендации по выполнению задания

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

Выполненное задание следует отправить письмом по адресу 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 – логарифм правдоподобия
Личные инструменты