Графические модели (курс лекций)/2013/Задание 3
Материал из MachineLearning.
(→Оформление задания) |
|||
Строка 92: | Строка 92: | ||
* Файл отчёта в формате PDF с указанием ФИО. | * Файл отчёта в формате PDF с указанием ФИО. | ||
* Все исходные коды с необходимыми комментариями. | * Все исходные коды с необходимыми комментариями. | ||
+ | |||
+ | | ||
{|class="standard" | {|class="standard" | ||
- | !''Генерация выборки'' | + | !''Генерация выборки из модели авторегрессии'' |
|- | |- | ||
- | | | + | |X = '''ar_generate'''(N, w, A, Sigma, X0) |
|- | |- | ||
|ВХОД | |ВХОД | ||
Строка 102: | Строка 104: | ||
| | | | ||
{|border="0" | {|border="0" | ||
- | |N — количество точек в генерируемой последовательности, | + | |N — количество точек в генерируемой последовательности, число; |
|- | |- | ||
- | |w — | + | |w — параметр сдвига, вектор длины d; |
|- | |- | ||
- | |A — | + | |A — набор матриц в форме <tex>[A_1\ A_2\ \dots\ A_M]</tex>, матрица размера d x Md; |
|- | |- | ||
- | | | + | |Sigma — матрица ковариации для нормального шума, матрица размера d x d; |
|- | |- | ||
- | | | + | |X0 — (необязательный параметр) начальная предыстория, матрица размера M x d; |
- | + | ||
- | + | ||
|} | |} | ||
|- | |- | ||
Строка 119: | Строка 119: | ||
| | | | ||
{| | {| | ||
- | |X — сгенерированная последовательность, матрица | + | |X — сгенерированная последовательность, матрица размера N x d. |
|- | |- | ||
- | |||
|} | |} | ||
|} | |} | ||
- | + | Если начальная предыстория <tex>X_0</tex> не задана, то <tex>X_0</tex> выбирается равной мат.ожиданию процесса авторегрессии. | |
{|class="standard" | {|class="standard" | ||
- | !'' | + | !''Оценка параметров авторегрессии'' |
|- | |- | ||
- | | | + | |[w, A, Sigma, res, LH] = '''ar_fit'''(X, M) |
|- | |- | ||
|ВХОД | |ВХОД | ||
Строка 136: | Строка 135: | ||
| | | | ||
{| | {| | ||
- | |X — | + | |X — наблюдаемая последовательность, матрица размера N x d, первые M строк соответствуют начальной предыстории; |
|- | |- | ||
- | | | + | |M — глубина авторегрессии, число; |
- | + | ||
- | + | ||
|- | |- | ||
- | |||
- | |||
- | |||
- | |||
- | |||
|} | |} | ||
|- | |- | ||
Строка 153: | Строка 145: | ||
| | | | ||
{| | {| | ||
- | | | + | |w — параметр сдвига авторегрессии, вектор длины d; |
+ | |- | ||
+ | |A — набор матриц в форме <tex>[A_1\ A_2\ \dots\ A_M]</tex>, матрица размера d x Md; | ||
+ | |- | ||
+ | |Sigma — матрица ковариации нормального шума, матрица размера d x d; | ||
+ | |- | ||
+ | |res — остатки авторегрессии (набор векторов <tex>\vec{x}_n-\vec{w}-\sum_{m=1}^MA_m\vec{x}_{n-m}</tex>), матрица размера (N-M) x d; | ||
+ | |- | ||
+ | |LH — логарифм правдоподобия настроенной модели авторегрессии, число. | ||
|} | |} | ||
|} | |} | ||
Строка 160: | Строка 160: | ||
{|class="standard" | {|class="standard" | ||
- | !'' | + | !''Генерация выборки из авторегрессионной скрытой марковской модели'' |
|- | |- | ||
- | |[ | + | |[X, T] = '''arhmm_generate'''(N, p, R, W, A, Sigmas, X0) |
- | + | ||
- | + | ||
|- | |- | ||
|ВХОД | |ВХОД | ||
Строка 170: | Строка 168: | ||
| | | | ||
{| | {| | ||
- | | | + | |N — количество точек в генерируемой последовательности, число; |
|- | |- | ||
- | | | + | |p — априорное распределение на <tex>t_1</tex>, вектор длины K; |
|- | |- | ||
- | | | + | |R — матрица перехода размера K x K; |
|- | |- | ||
- | | | + | |W — параметры сдвига авторегрессии для каждого состояния, матрица размера d x K; |
|- | |- | ||
- | | | + | |A — авторегрессионные матрицы A для каждого состояния, массив размера d x Md x K; |
|- | |- | ||
- | | | + | |Sigmas — матрицы ковариации шума для каждого состояния, массив размера d x d x K; |
|- | |- | ||
- | | | + | |X0 — начальная предыстория, матрица размера M x d; |
+ | |} | ||
+ | |- | ||
+ | |ВЫХОД | ||
+ | |- | ||
+ | | | ||
+ | {| | ||
+ | |X — сгенерированная наблюдаемая последовательность, матрица размера N x d; | ||
|- | |- | ||
- | | | + | |T — сгенерированная последовательность состояния, вектор длины N. |
|- | |- | ||
- | | | + | |} |
+ | |} | ||
+ | |||
+ | Если начальная предыстория <tex>X_0</tex> не задана, то <tex>X_0</tex> выбирается равной мат.ожиданию процесса авторегрессии, соответствующего сгенерированному состоянию <tex>t_1</tex>. | ||
+ | |||
+ | {|class="standard" | ||
+ | !''Оценка параметров авторегрессионной скрытой марковской модели с помощью ЕМ-алгоритма'' | ||
+ | |- | ||
+ | |[p, R, W, A, Sigmas] = '''arhmm_fit'''(X, K, M, param_name1, param_value1, ...) | ||
+ | |- | ||
+ | |ВХОД | ||
+ | |- | ||
+ | | | ||
+ | {| | ||
+ | |X — наблюдаемая последовательность, матрица размера N x d, первые M строк соответствуют начальной предыстории; | ||
|- | |- | ||
- | | | + | |K — количество скрытых состояния, число; |
|- | |- | ||
- | | | + | |M — глубина авторегрессии, число; |
- | + | |- | |
+ | |(param_name, param_value) — набор необязательных параметров, следующие имена и значения возможны: | ||
+ | |- | ||
+ | | | ||
+ | {| | ||
+ | |'max_iter' — максимальное число итераций ЕМ-алгоритма, по умолчанию = 100; | ||
+ | |- | ||
+ | |'num_start' — количество запусков из случайных начальных приближений, по умолчанию = 1; | ||
+ | |- | ||
+ | |'p' — известное априорное распределение на состояния, в случае задания не оптимизируется ЕМ-алгоритмом, по умолчанию = []; | ||
+ | |- | ||
+ | |'R' — известная матрица перехода между состояниями, в случае задания не оптимизируется ЕМ-алгоритмом, по умолчанию = []; | ||
+ | |- | ||
+ | |'W' — известный набор параметров сдвига, в случае задания не оптимизируется ЕМ-алгоритмом, по умолчанию = []; | ||
+ | |- | ||
+ | |'A' — известный набор авторегрессионных матриц, в случае задания не оптимизируется ЕМ-алгоритмом, по умолчанию = []; | ||
+ | |- | ||
+ | |'Sigmas' — известный набор матриц ковариации шума, в случае задания не оптимизируется ЕМ-алгоритмом, по умолчанию = []; | ||
+ | |- | ||
+ | |'display' — режим отображения, true или false, если true, то отображается текущая информация, например, номер запуска, номер итерации, текущее значение правдоподобия и т.д. | ||
+ | |} | ||
|- | |- | ||
|ВЫХОД | |ВЫХОД | ||
Строка 197: | Строка 236: | ||
| | | | ||
{| | {| | ||
- | | | + | |p — априорное распределение на состояние, вектор длины K; |
|- | |- | ||
- | | | + | |R — матрица перехода между состояниями, матрица размера K x K; |
|- | |- | ||
- | | | + | |W — параметр сдвига авторегрессий, матрица размера d x K; |
|- | |- | ||
- | | | + | |A — авторегрессионные матрицы, массив размера d x Md x K; |
|- | |- | ||
- | | | + | |Sigmas — матрицы ковариации шумов, массив размера d x d x K. |
|- | |- | ||
- | |||
|} | |} | ||
|} | |} | ||
[[Категория:Учебные курсы]] | [[Категория:Учебные курсы]] |
Версия 22:36, 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 = ar_generate(N, w, A, Sigma, X0) | |||||
ВХОД | |||||
| |||||
ВЫХОД | |||||
|
Если начальная предыстория не задана, то выбирается равной мат.ожиданию процесса авторегрессии.
Оценка параметров авторегрессии | |||||
---|---|---|---|---|---|
[w, A, Sigma, res, LH] = ar_fit(X, M) | |||||
ВХОД | |||||
| |||||
ВЫХОД | |||||
|
Генерация выборки из авторегрессионной скрытой марковской модели | |||||||
---|---|---|---|---|---|---|---|
[X, T] = arhmm_generate(N, p, R, W, A, Sigmas, X0) | |||||||
ВХОД | |||||||
| |||||||
ВЫХОД | |||||||
|
Если начальная предыстория не задана, то выбирается равной мат.ожиданию процесса авторегрессии, соответствующего сгенерированному состоянию .
Оценка параметров авторегрессионной скрытой марковской модели с помощью ЕМ-алгоритма | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
[p, R, W, A, Sigmas] = arhmm_fit(X, K, M, param_name1, param_value1, ...) | ||||||||||||||||||||
ВХОД | ||||||||||||||||||||
|