Графические модели (курс лекций)/2013/Задание 3
Материал из MachineLearning.
Строка 9: | Строка 9: | ||
== Модель авторегрессии == | == Модель авторегрессии == | ||
+ | |||
+ | [[Изображение:AR1.png|thumb|300px|Графическая модель авторегрессии 1-го порядка]] | ||
Случайный процесс с дискретным временем <tex>\{\vec{x}_n\}_{n=1}^N</tex>, <tex>\vec{x}_n\in\mathbb{R}^d</tex> называется ''авторегрессией первого порядка'', если | Случайный процесс с дискретным временем <tex>\{\vec{x}_n\}_{n=1}^N</tex>, <tex>\vec{x}_n\in\mathbb{R}^d</tex> называется ''авторегрессией первого порядка'', если | ||
Строка 37: | Строка 39: | ||
:<tex>\vec{\mu} = (I-A_1-\dots-A_M)^{-1}\vec{w}</tex>. | :<tex>\vec{\mu} = (I-A_1-\dots-A_M)^{-1}\vec{w}</tex>. | ||
+ | |||
+ | В дальнейшем для удобства набор матриц <tex>A_1,\dots,A_M</tex> будем обозначать через <tex>\mathcal{A}</tex>. | ||
+ | |||
+ | [[Изображение:AR2.png|thumb|300px|Графическая модель авторегрессии 2-го порядка]] | ||
+ | |||
+ | В терминах графических моделей авторегрессия M-го порядка представляет собой байесовскую сеть с графом, показанном на рис. справа, где совместное распределение задается как | ||
+ | |||
+ | :<tex>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)</tex>, | ||
+ | |||
+ | а <tex>X_0=\{\vec{x}_0,\vec{x}_{-1},\dots,\vec{x}_{1-M}\}</tex> — начальная предыстория. | ||
+ | |||
== Авторегрессионная скрытая марковская модель == | == Авторегрессионная скрытая марковская модель == | ||
- | + | [[Изображение:ARHMM2.png|thumb|300px|Графическая модель авторегрессионной скрытой марковской модели 2-го порядка]] | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | <tex> | + | Авторегрессионная скрытая марковская модель M-го порядка — это байесовская сеть, граф которой показан на рис. справа, а совместное распределение задается как |
- | \ | + | |
- | </tex> | + | :<tex>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})</tex>. |
+ | |||
+ | Здесь <tex>t_n\in\{1,\dots,K\}</tex> — скрытые дискретные состояния, <tex>\vec{x}_n\in\mathbb{R}^d</tex> — непрерывные наблюдаемые переменные. Априорное распределение <tex>p(t_1)</tex> задается вектором <tex>[\pi_1,\ldots,\pi_K]</tex>, причем все <tex>\pi_k\ge 0</tex> и <tex>\sum_k\pi_k=1</tex>. Распределение <tex>p(t_n |t_{n-1})</tex> задается матрицей перехода <tex>R</tex> размера <tex>K\times K</tex>, где в <tex>ij</tex>-ой позиции стоит вероятность перехода из состояния <tex>i</tex> в состояние <tex>j</tex>. Все элементы этой матрицы неотрицательны, а сумма элементов по каждой строке равна единице. Модель генерации данных соответствует модели авторегрессии, в которой параметры <tex>\vec{w},\mathcal{A},\Sigma</tex> зависят от текущего состояния <tex>t_n</tex>. Таким образом, | ||
- | + | :<tex>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})</tex>. | |
- | + | В результате полный набор параметров модели состоит из <tex>\vec{\pi},R,\{\vec{w}_k,\mathcal{A}_k,\Sigma_k\}_{k=1}^K</tex>. Глубина авторегрессии <tex>M</tex>, количество скрытых состояний <tex>K</tex>, а также начальная предыстория <tex>X_0=\{\vec{x}_0,\vec{x}_{-1},\dots,\vec{x}_{1-M}\}</tex> задаются пользователем. | |
== Формулировка задания == | == Формулировка задания == |
Версия 22:03, 30 марта 2013
Формулировка задания находится в стадии подготовки. Убедительная просьба не приступать к выполнению задания до тех пор, пока это предупреждение не будет удалено. |
Начало выполнения задания: 18 марта 2013 г.;
Срок сдачи: 7 апреля 2013 г. (воскресенье), 23:59.
Среда для выполнения задания — MATLAB. Неэффективная реализация кода может негативно отразиться на оценке.
Содержание |
Модель авторегрессии
Случайный процесс с дискретным временем , называется авторегрессией первого порядка, если
- .
Здесь , , , шумовые компоненты являются независимыми. Процесс авторегрессии является стационарным, если все собственные значения матрицы (включая комплексные) по модулю меньше единицы. Мат.ожидание стационарного процесса авторегрессии определяется как
- ,
где — единичная матрица размера .
В терминах графических моделей авторегрессия первого порядка представляет собой байесовскую сеть с графом вида цепочка (см. рис.), где совместное распределение задается как
- ,
а — начальная предыстория.
Авторегрессия M-го порядка задается как
- .
Здесь шумовые компоненты по-прежнему предполагаются независимыми. Очевидно, что авторегрессия M-го порядка может быть сведена к авторегрессии первого порядка как
Поэтому авторегрессия M-го порядка является стационарной, если все собственные значения матрицы по модулю меньше единицы. Мат.ожидание стационарной регрессии M-го порядка определяется как
- .
В дальнейшем для удобства набор матриц будем обозначать через .
В терминах графических моделей авторегрессия M-го порядка представляет собой байесовскую сеть с графом, показанном на рис. справа, где совместное распределение задается как
- ,
а — начальная предыстория.
Авторегрессионная скрытая марковская модель
Авторегрессионная скрытая марковская модель M-го порядка — это байесовская сеть, граф которой показан на рис. справа, а совместное распределение задается как
- .
Здесь — скрытые дискретные состояния, — непрерывные наблюдаемые переменные. Априорное распределение задается вектором , причем все и . Распределение задается матрицей перехода размера , где в -ой позиции стоит вероятность перехода из состояния в состояние . Все элементы этой матрицы неотрицательны, а сумма элементов по каждой строке равна единице. Модель генерации данных соответствует модели авторегрессии, в которой параметры зависят от текущего состояния . Таким образом,
- .
В результате полный набор параметров модели состоит из . Глубина авторегрессии , количество скрытых состояний , а также начальная предыстория задаются пользователем.
Формулировка задания
- Для модели авторегрессии M-го порядка:
- Вывести формулы для оценки параметров модели по наблюдениям с помощью метода максимального правдоподобия;
- Реализовать процедуру генерации сигнала из модели авторегрессии;
- Реализовать процедуру оценки параметров по методу максимального правдоподобия;
- Реализовать процедуру оценки выборочной автокорреляционной функции остатков авторегрессии;
- Провести эксперименты с авторегрессией M-го порядка на модельных данных:
- в
- Для авторегрессионной скрытой марковской модели:
- Вывести формулы ЕМ-алгоритма для оценки параметров модели , при этом предусмотреть ситуации, когда часть параметров известна;
- Реализовать процедуру генерации сигнала из модели;
- Реализовать процедуру оценки параметров модели с помощью EM-алгоритма;
- Реализовать процедуру оценки скрытых состояний по наблюдаемым данным и параметрам модели с помощью алгоритма Витерби;
- Провести эксперименты с авторегрессионной скрытой марковской моделью на модельных данных:
- Применить авторегрессионную скрытую марковскую модель для моделирования и сегментации движений в базе данных mocap.
Рекомендации по выполнению задания
Оформление задания
Выполненное задание следует отправить письмом по адресу bayesml@gmail.com с заголовком письма «[ГМ13] Задание 3 <ФИО>». Убедительная просьба присылать выполненное задание только один раз с окончательным вариантом. Также убедительная просьба строго придерживаться заданных ниже прототипов реализуемых функций.
Присланный вариант задания должен содержать в себе:
- Файл отчёта в формате PDF с указанием ФИО.
- Все исходные коды с необходимыми комментариями.
Генерация выборки | ||||||
---|---|---|---|---|---|---|
[X, T] = ARHMM_GENERATE(N, w, A, Mu, Sigma, C) | ||||||
ВХОД | ||||||
| ||||||
ВЫХОД | ||||||
|
Обратите внимание: в процедуре ARHMM_GENERATE количество признаков, скрытых состояний и глубина авторегрессии определяются неявно по размеру соответствующих элементов.
Сегментация | ||||||
---|---|---|---|---|---|---|
T = ARHMM_TEST(X, w, A, Mu, Sigma, C) | ||||||
ВХОД | ||||||
| ||||||
ВЫХОД | ||||||
|
Обучение | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
[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) | |||||||||||
ВХОД | |||||||||||
| |||||||||||
ВЫХОД | |||||||||||
|