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

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

(Различия между версиями)
Перейти к: навигация, поиск
м (Формулировка задания)
 
(32 промежуточные версии не показаны)
Строка 1: Строка 1:
{{main|Графические модели (курс лекций)}}
{{main|Графические модели (курс лекций)}}
-
{{stop|Формулировка задания находится в стадии подготовки. Убедительная просьба не приступать к выполнению задания до тех пор, пока это предупреждение не будет удалено.}}
+
{{TOCright|300px}}
-
'''Начало выполнения задания''': 18 марта 2013 г.;<br>
+
{|
-
'''Срок сдачи''': {{ins|7 апреля 2013 г. (воскресенье), 23:59.}}
+
|[[Изображение:GM13_task3_intro.png|мини|300px|Пример сегментации сигнала, сгенерированного из авторегрессионной скрытой марковской модели с 3-мя состояниями и глубиной авторегрессии 2.]]
 +
|}
 +
 
 +
'''Начало выполнения задания''': 1 апреля 2013 г.;<br>
 +
'''Срок сдачи''': {{ins|11 апреля 2013 г. (четверг), 23:59.}}
Среда для выполнения задания — MATLAB. Неэффективная реализация кода может негативно отразиться на оценке.
Среда для выполнения задания — MATLAB. Неэффективная реализация кода может негативно отразиться на оценке.
== Модель авторегрессии ==
== Модель авторегрессии ==
 +
 +
[[Изображение: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> называется ''авторегрессией первого порядка'', если
Строка 14: Строка 20:
:<tex>\vec{x}_n = \vec{w} + A\vec{x}_{n-1} + \vec{\varepsilon}_n,\quad \vec{\varepsilon}_n\sim\mathcal{N}(\vec{0},\Sigma)</tex>.
:<tex>\vec{x}_n = \vec{w} + A\vec{x}_{n-1} + \vec{\varepsilon}_n,\quad \vec{\varepsilon}_n\sim\mathcal{N}(\vec{0},\Sigma)</tex>.
-
Здесь <tex>\vec{w}\in\mathbb{R}^d</tex>, <tex>A\in\mathbb{R}^{d\times d}</tex>, <tex>\Sigma\in\mathbb{R}^{d\times d}</tex>, шумовые компоненты <tex>\vec{\varepsilon}_n</tex> являются независимыми. Процесс авторегрессии является стационарным, если все собственные значения матрицы <tex>A</tex> (включая комплексные) по модулю меньше единицы. Мат.ожидание <tex>\vec{\mu}</tex> стационарного процесса авторегрессии определяется как
+
Здесь <tex>\vec{w}\in\mathbb{R}^d</tex> — параметр сдвига, <tex>A\in\mathbb{R}^{d\times d}</tex> — авторегрессионная матрица, <tex>\Sigma\in\mathbb{R}^{d\times d}</tex> — матрица ковариации шума, шумовые компоненты <tex>\vec{\varepsilon}_n</tex> предполагаются независимыми. Процесс авторегрессии является стационарным (в широком смысле), если все собственные значения матрицы <tex>A</tex> (включая комплексные) по модулю меньше единицы. Мат.ожидание <tex>\vec{\mu}</tex> стационарного процесса авторегрессии определяется как
:<tex>\vec{\mu} = (I-A)^{-1}\vec{w}</tex>,
:<tex>\vec{\mu} = (I-A)^{-1}\vec{w}</tex>,
Строка 30: Строка 36:
:<tex>\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)</tex>.
:<tex>\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)</tex>.
-
Здесь шумовые компоненты <tex>\vec{\varepsilon}_n</tex> по-прежнему предполагаются независимыми. Очевидно, что авторегрессия M-го порядка может быть сведена к авторегрессии первого порядка как
+
Здесь шумовые компоненты <tex>\vec{\varepsilon}_n</tex> по-прежнему предполагаются независимыми. Авторегрессия M-го порядка может быть сведена к авторегрессии первого порядка как
-
:<tex>\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}.</tex>
+
:<tex>\tilde{\vec{x}}_n = \tilde{\vec{w}} + \tilde{A}\tilde{\vec{x}}_{n-1} + \tilde{\vec{\varepsilon}}_n,\quad \tilde{\vec{x}}_n = \begin{bmatrix}\vec{x}_n\\ \vec{x}_{n-1}\\ \vdots \\ \vec{x}_{n-M}\end{bmatrix},\quad \tilde{\vec{w}} = \begin{bmatrix}\vec{w}\\ 0\\ \vdots \\ 0\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}.</tex>
-
Поэтому авторегрессия M-го порядка является стационарной, если все собственные значения матрицы <tex>\tilde{A}</tex> по модулю меньше единицы. Мат.ожидание стационарной регрессии M-го порядка определяется как
+
Поэтому авторегрессия M-го порядка является стационарной, когда все собственные значения матрицы <tex>\tilde{A}</tex> по модулю меньше единицы. В частности, для случая <tex>d=1,M=1</tex> условие стационарности эквивалентно <tex>|A_1|<1</tex>, а для случая <tex>d=1,M=2</tex> — условию <tex>|A_1|<2,\ -1<A_2<1-|A_1|</tex>. Мат.ожидание стационарной регрессии M-го порядка определяется как
:<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> — начальная предыстория.
 +
 +
[[Изображение:ACF.png|thumb|300px|Пример выборочной автокорреляционной функции с отсутствием значимых автокорреляций]]
 +
 +
Одним из способов определения адекватности моделирования данных с помощью модели авторегрессии является исследование остатков
 +
 +
:<tex>\hat{\varepsilon}_n = \vec{x}_n - \hat{\vec{w}} - \sum_{m=1}^M\hat{A}_m\vec{x}_{n-m}</tex>,
 +
 +
где <tex>\hat{\vec{w}},\hat{A}</tex> — оценки параметров авторегрессии (например, оценки максимального правдоподобия). Для успешного объяснения данных с помощью авторегрессии необходимо, чтобы остатки не были коррелированы по времени. Другими словами, выборочная автокорреляционная функция
 +
 +
:<tex>ACF(\tau) = c_{\tau}/c_0,\quad c_{\tau} = \frac{1}{N-\tau}\sum_{n = \tau+1}^N(\varepsilon_n - \bar{\varepsilon})(\varepsilon_{n-\tau} - \bar{\varepsilon}),\quad \bar{\varepsilon} = \frac{1}{N}\sum_n\varepsilon_n</tex>
 +
 +
должна лежать в интервале <tex>\pm \frac{z_{1-\alpha/2}}{\sqrt{N}}</tex> для всех <tex>\tau</tex>. Здесь через <tex>z_{\beta}</tex> обозначена <tex>\beta</tex>-квантиль одномерного нормального распределения. Для уровня значимости <tex>\alpha=0.05</tex> соответствующая квантиль равна 1.96.
== Авторегрессионная скрытая марковская модель ==
== Авторегрессионная скрытая марковская модель ==
-
Рассматривается авторегрессионная скрытая марковская модель, в которой полное правдоподобие задается как:
+
[[Изображение:ARHMM2.png|thumb|300px|Графическая модель авторегрессионной скрытой марковской модели 2-го порядка]]
-
<center>
+
-
<tex>
+
-
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} )
+
-
</tex>
+
-
</center>
+
-
+
-
Пусть скрытая компонента <tex>t_n</tex> в произвольный момент времени может принимать значения из множества <tex>\{1,\dots,K\}</tex>. Априорное распределение на значение скрытой компоненты в первый момент времени задается вектором <tex>w_1,\ldots,w_K</tex>, причем все <tex>w_i\ge 0</tex> и <tex>\sum_iw_i=1</tex>. Распределение <tex>p(t_n |t_{n-1})</tex> задается матрицей перехода <tex>A</tex> размера <tex>K\times K</tex>, где в <tex>ij</tex>-ой позиции стоит вероятность перехода из состояния <tex>i</tex> в состояние <tex>j</tex>. Все элементы этой матрицы неотрицательны и сумма элементов по каждой строке равна единице. Модель генерации данных задается нормальными распределениями с одинаковой матрицей ковариации <tex>\Sigma</tex> и своими математическими ожиданиями <tex>\mu_{n,j}</tex> для каждого состояния и каждого момента времени. Математическое ожидание зависит не только от состояния СММ, но и '''от предыдущих значений''' <tex>x</tex> (авторегрессионная составляющая) и задается формулой
+
-
<tex>
+
''Авторегрессионная скрытая марковская модель M-го порядка'' — это байесовская сеть, граф которой показан на рис. справа, а совместное распределение задается как
-
\mu_{n,j}=c_{0,j}+\sum_{m=1}^Mc_{m,j}x_{n-m},
+
-
</tex>
+
-
где <tex>c_{0,j},\ldots,c_{M,j}</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>\vec{w}</tex>, матрицей <tex>A</tex>, матрицей ковариаций <tex>\Sigma</tex> и матрицей <tex>C</tex> коэффициентов авторегрессии <tex>\{c_{i,j}\}_{i=0,j=1}^{M,K}.</tex> Глубина авторегрессии <tex>M</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>\Theta</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> задаются пользователем.
== Формулировка задания ==
== Формулировка задания ==
-
* Алгоритм генерации выборки из вероятностной модели СММ с авторегрессией;
+
# Для модели авторегрессии M-го порядка:
-
* EM-алгоритм обучения СММ при заданном числе состояний <tex>K</tex> и глубине авторегрессии <tex>M</tex>;
+
#* Вывести формулы для оценки параметров модели <tex>\vec{w},\mathcal{A},\Sigma</tex> по наблюдениям <tex>\{\vec{x}_n\}_{n=1}^N</tex> с помощью метода максимального правдоподобия;
-
* Алгоритм Витерби для сегментации сигнала при известных значениях параметров СММ, '''учитывающий''' значения наблюдаемой компоненты <tex>x</tex> в предыдущие моменты времени.
+
#* Реализовать процедуру генерации сигнала из модели авторегрессии;
 +
#* Реализовать процедуру оценки параметров <tex>\vec{w},\mathcal{A},\Sigma</tex> по методу максимального правдоподобия;
 +
# Провести эксперименты с авторегрессией M-го порядка:
 +
#* Сгенерировать данные из модели авторегрессии, а затем восстановить параметры по методу максимального правдоподобия (рассмотреть различные значения параметров модели, а также различные размерности параметров). Как ведут себя значение правдоподобия, авторегрессионные остатки и восстановленные параметры при глубине авторегрессии меньше истинного значения, равного истинному значению и больше истинного значения? Какой объем данных необходим для адекватного восстановления параметров модели?
 +
#* Сгенерировать данные из модели случайного процесса, отличного от авторегрессии. К чему приводит попытка объяснения таких данных с помощью авторегрессии?
 +
# Для авторегрессионной скрытой марковской модели:
 +
#* Вывести формулы ЕМ-алгоритма для оценки параметров модели <tex>\vec{\pi},R,\{\vec{w}_k,\mathcal{A}_k,\Sigma_k}_{k=1}^K</tex>, при этом предусмотреть ситуации, когда часть параметров задается пользователем;
 +
#* Реализовать процедуру генерации сигнала из модели;
 +
#* Реализовать процедуру вычисления маргинальных распределений для отдельных скрытых переменных <tex>t_n</tex> и пар соседних переменных <tex>t_{n-1},t_n</tex> при известных наблюдениях и параметрах модели с помощью алгоритма «вперёд-назад»;
 +
#* Реализовать процедуру оценки параметров модели по методу максимального правдоподобия с помощью EM-алгоритма;
 +
#* Реализовать процедуру поиска наиболее вероятной конфигурации скрытых переменных по наблюдаемым данным и параметрам модели с помощью алгоритма Витерби;
 +
# Провести эксперименты с авторегрессионной скрытой марковской моделью:
 +
#* Сгенерировать наблюдаемые и скрытые переменные из модели, а затем восстановить скрытые компоненты с помощью алгоритма Витерби при истинных параметрах модели, а также путем взятия аргмаксимумов для маргинальных распределений на <tex>t_n</tex>. Рассмотреть ситуации хорошо отделимых и слабо отделимых состояний, а также различные размерности параметров модели. Привести пример ситуации, когда алгоритм Витерби и аргмаксимумы маргиналов приводят к существенно различным конфигурациям.
 +
#* Сгенерировать наблюдаемые и скрытые переменные из модели, а затем восстановить параметры модели только по наблюдаемым данным с помощью ЕМ-алгоритма. Рассмотреть различные ситуации. Имеет ли смысл в ЕМ-алгоритме задавать часть параметров модели вручную? Как параметры, задаваемые вручную, влияют на значение правдоподобия и на качество сегментации сигнала?
 +
# '''[Бонус]''' Предложить свою схему сегментации подмножества сигналов, сгенерированных из авторегрессионной скрытой марковской модели, без использования модели авторегрессии.
 +
# Составить отчёт в формате PDF с описанием всех проведённых исследований. Данный отчёт должен включать в себя вывод необходимых формул, различные графики с результатами экспериментов, а также развернутые комментарии к полученным результатам.
== Рекомендации по выполнению задания ==
== Рекомендации по выполнению задания ==
 +
1. Вывод формул для авторегрессии и авторегрессионной скрытой марковской модели удобно осуществлять путем введения обозначений
 +
::<tex>\vec{y}_n = [\vec{x}_{n-1}^T\ \vec{x}_{n-2}^T\ \dots \vec{x}_{n-M}^T\ 1]^T,\quad B = [A_1\ A_2\ \dots A_M\ \vec{w}]</tex>.
 +
Тогда выражение <tex>\vec{x}_n - \vec{w} - \sum_{m=1}^MA_m\vec{x}_{n-m}</tex> можно лаконично записать как <tex>\vec{x}_n-B\vec{y}_n</tex>.
 +
 +
После вывода необходимых формул рекомендуется убедиться в том, что эти формулы переходят в стандартные формулы для оценки параметров многомерного нормального распределения (в том числе в рамках скрытой марковской модели) при обнулении всех A.
 +
 +
В случае вывода формул для <tex>\vec{w}</tex> при известном <tex>\mathcal{A}</tex> или, наоборот, формул для <tex>\mathcal{A}</tex> при фиксированном <tex>\vec{w}</tex> нотация через <tex>B,\vec{y}_n</tex> не подходит.
 +
 +
2. При тестировании ЕМ-алгоритма рекомендуется отслеживать монотонное возрастание логарифма неполного правдоподобия в итерациях. При этом вблизи локального максимума правдоподобия возможны небольшие нарушения монотонности из-за вычислительных погрешностей.
 +
 +
3. Обратите внимание, что для возможности реализации в сигналах сегментов типа <tex>k</tex> некоторой длины <tex>N_e</tex> необходимо, чтобы величина <tex>R_{kk}^{N_e}</tex> была существенно отлична от нуля.
== Оформление задания ==
== Оформление задания ==
Строка 71: Строка 120:
Присланный вариант задания должен содержать в себе:
Присланный вариант задания должен содержать в себе:
-
* Файл отчёта в формате PDF с указанием ФИО.
+
* Файл отчёта в формате PDF с указанием ФИО;
* Все исходные коды с необходимыми комментариями.
* Все исходные коды с необходимыми комментариями.
 +
 +
&nbsp;
{|class="standard"
{|class="standard"
-
!''Генерация выборки''
+
!''Генерация выборки из модели авторегрессии''
|-
|-
-
|[X, T] = ARHMM_GENERATE(N, w, A, Mu, Sigma, C)
+
|X = '''ar_generate'''(N, w, A, Sigma, X0)
|-
|-
|ВХОД
|ВХОД
Строка 83: Строка 134:
|
|
{|border="0"
{|border="0"
-
|N — количество точек в генерируемой последовательности, uint32;
+
|N — количество точек в генерируемой последовательности, число;
-
|-
+
-
|w — априорные вероятности для скрытых состояний, матрица типа double размера 1 x K;
+
|-
|-
-
|A матрица перехода, матрица типа double размера K x K;
+
|w параметр сдвига, вектор длины d;
|-
|-
-
|Mu константы в центрах гауссиан для каждого состояния, матрица типа double размера K x d, в которой в каждой строке стоит вектор для соответствующего состояния;
+
|A набор матриц в форме <tex>[A_1\ A_2\ \dots\ A_M]</tex>, матрица размера d x Md;
|-
|-
-
|Sigma — общая матрица ковариации гауссиан, матрица типа double размера d x d;
+
|Sigma — матрица ковариации для нормального шума, матрица размера d x d;
|-
|-
-
|C коэффициенты авторегрессии, матрица типа double размера K x M;
+
|X0 (необязательный параметр) начальная предыстория, матрица размера M x d;
|}
|}
|-
|-
Строка 100: Строка 149:
|
|
{|
{|
-
|X — сгенерированная последовательность, матрица типа double размера N x d
+
|X — сгенерированная последовательность, матрица размера N x d.
|-
|-
-
|T — последовательность скрытых состояний, матрица типа double размера 1 x N
 
|}
|}
|}
|}
-
Обратите внимание: в процедуре ARHMM_GENERATE количество признаков, скрытых состояний и глубина авторегрессии определяются неявно по размеру соответствующих элементов.
+
Если начальная предыстория <tex>X_0</tex> не задана, то <tex>X_0</tex> выбирается равной мат.ожиданию процесса авторегрессии.
{|class="standard"
{|class="standard"
-
!''Сегментация''
+
!''Оценка параметров авторегрессии''
|-
|-
-
|T = ARHMM_TEST(X, w, A, Mu, Sigma, C)
+
|[w, A, Sigma, res, logLH] = '''ar_fit'''(X, M)
|-
|-
|ВХОД
|ВХОД
Строка 117: Строка 165:
|
|
{|
{|
-
|X — входная последовательность, матрица типа double размера N x d, где N – количество точек в последовательности, d – количество признаков;
+
|X — наблюдаемая последовательность, матрица размера N x d, первые M строк соответствуют начальной предыстории;
|-
|-
-
|w априорные вероятности, матрица типа double размера 1 x K, где K – количество скрытых состояний;
+
|M глубина авторегрессии, число;
-
|-
+
-
|A — матрица перехода, матрица типа double размера K x K;
+
|-
|-
-
|Mu — константы в центрах гауссиан для каждого состояния, матрица типа double размера K x d, в которой в каждой строке стоит вектор для соответствующего состояния;
 
-
|-
 
-
|Sigma — общая матрица ковариации гауссиан, матрица типа double размера d x d;
 
-
|-
 
-
|C — коэффициенты авторегрессии, матрица типа double размера K x M, где M — глубина авторегрессии;
 
|}
|}
|-
|-
Строка 134: Строка 175:
|
|
{|
{|
-
|T полученная последовательность скрытых состояний, матрица типа double размера 1 x N
+
|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;
 +
|-
 +
|logLH — логарифм правдоподобия настроенной модели авторегрессии, число.
|}
|}
|}
|}
Строка 141: Строка 190:
{|class="standard"
{|class="standard"
-
!''Обучение''
+
!''Генерация выборки из авторегрессионной скрытой марковской модели''
|-
|-
-
|[w, A, Mu, Sigma, C, core] = ARHMM_EM_TRAIN(X, K, M)
+
|[X, T] = '''arhmm_generate'''(N, p, R, W, A, Sigmas, X0)
-
|-
+
-
|[w, A, Mu, Sigma, C, core] = ARHMM_EM_TRAIN(X, K, M, InputParameters)
+
|-
|-
|ВХОД
|ВХОД
Строка 151: Строка 198:
|
|
{|
{|
-
|X входная последовательность, матрица типа double размера N x d, где N – количество точек в последовательности, d – число признаков;
+
|N — количество точек в генерируемой последовательности, число;
|-
|-
-
|K количество скрытых состояний, число типа uint16;
+
|p априорное распределение на <tex>t_1</tex>, вектор длины K;
|-
|-
-
|M глубина авторегрессии, число типа uint16;
+
|R матрица перехода размера K x K;
|-
|-
-
|InputParameters (необязательный аргумент) набор дополнительных параметров, массив типа cell вида ParameterName1, ParameterValue1, ParameterName2, ParameterValue2 и т.д. Возможны следующие параметры:
+
|W параметры сдвига авторегрессии для каждого состояния, матрица размера d x K;
|-
|-
-
|&nbsp;&nbsp;'w' задаваемый пользователем вектор априорных вероятностей (соответственно, его не нужно определять в процессе EM-итераций);
+
|A авторегрессионные матрицы A для каждого состояния, массив размера d x Md x K;
|-
|-
-
|&nbsp;&nbsp;'A' задаваемая пользователем матрица перехода;
+
|Sigmas матрицы ковариации шума для каждого состояния, массив размера d x d x K;
|-
|-
-
|&nbsp;&nbsp;'Mu' задаваемые пользователем центры гауссиан для каждого состояния;
+
|X0 — (необязательный параметр) начальная предыстория, матрица размера M x d;
 +
|}
 +
|-
 +
|ВЫХОД
 +
|-
 +
|
 +
{|
 +
|X сгенерированная наблюдаемая последовательность, матрица размера N x d;
|-
|-
-
|&nbsp;&nbsp;'Sigma' задаваемая пользователем матрица ковариации гауссиан;
+
|T сгенерированная последовательность состояний, вектор длины N.
|-
|-
-
|&nbsp;&nbsp;'C' — задаваемые пользователем коэффициенты авторегрессии;
+
|}
 +
|}
 +
 
 +
Если начальная предыстория <tex>X_0</tex> не задана, то <tex>X_0</tex> выбирается равной мат.ожиданию процесса авторегрессии, соответствующего сгенерированному состоянию <tex>t_1</tex>.
 +
 
 +
{|class="standard"
 +
!''Оценка маргиналов на скрытые переменные''
 +
|-
 +
|[gamma, ksi, logLH] = '''arhmm_posterior'''(X, p, R, W, A, Sigmas)
 +
|-
 +
|ВХОД
 +
|-
 +
|
 +
{|
 +
|X наблюдаемая последовательность, матрица размера N x d, первые M строк соответствуют начальной предыстории;
|-
|-
-
|&nbsp;&nbsp;'num_iter' максимально допустимое число итераций EM-алгоритма;
+
|p априорное распределение на состояния, вектор длины K;
|-
|-
-
|&nbsp;&nbsp;'tol_LH' минимально допустимая величина отклонения по значению логарифма правдоподобия на одной итерации;
+
|R — матрица перехода между состояниями, матрица размера K x K;
 +
|-
 +
|W — параметр сдвига авторегрессий, матрица размера d x K;
 +
|-
 +
|A — авторегрессионные матрицы, массив размера d x Md x K;
 +
|-
 +
|Sigmas матрицы ковариации шумов, массив размера d x d x K;
|}
|}
|-
|-
Строка 178: Строка 252:
|
|
{|
{|
-
|w априорные вероятности для скрытых состояний, матрица типа double размера 1 x K;
+
|gamma — вероятности вида <tex>p(t_n=k|X,\Theta)</tex>, матрица размера K x (N-M);
|-
|-
-
|A матрица перехода, матрица типа double размера K x K;
+
|ksi вероятности вида <tex>p(t_{n-1}=k_1,t_n=k_2|X,\Theta)</tex>, массив размера K x K x (N-M-1);
|-
|-
-
|Mu центры гауссиан для каждого состояния, матрица типа double размера K x d, в которой в каждой строке стоит вектор мат.ожидания для соответствующего состояния;
+
|logLH логарифм неполного правдоподобия, число.
 +
|}
 +
|}
 +
 
 +
&nbsp;
 +
 
 +
{|class="standard"
 +
!''Оценка параметров авторегрессионной скрытой марковской модели с помощью ЕМ-алгоритма''
 +
|-
 +
|[p, R, W, A, Sigmas, logLH] = '''arhmm_fit'''(X, K, M, param_name1, param_value1, ...)
 +
|-
 +
|ВХОД
 +
|-
 +
|
 +
{|
 +
|X — наблюдаемая последовательность, матрица размера N x d, первые M строк соответствуют начальной предыстории;
|-
|-
-
|Sigma матрица ковариации гауссиан, массив типа double размера d x d;
+
|K количество скрытых состояний, число;
|-
|-
-
|C коэффициенты авторегрессии, матрица типа double размера K x M;
+
|M глубина авторегрессии, число;
 +
|-
 +
|(param_name, param_value) — набор необязательных параметров, следующие имена и значения возможны:
 +
|-
 +
|
 +
{|
 +
|'max_iter' — максимальное число итераций ЕМ-алгоритма, по умолчанию = 100;
 +
|-
 +
|'num_start' — количество запусков из случайных начальных приближений, по умолчанию = 10;
 +
|-
 +
|'tol_LH' — точность оптимизации по значению логарифма правдоподобия, по умолчанию = 1e-4;
 +
|-
 +
|'p' — задаваемое пользователем априорное распределение на состояния (в случае задания не оптимизируется ЕМ-алгоритмом), по умолчанию = [];
 +
|-
 +
|'R' — задаваемая пользователем матрица перехода между состояниями, по умолчанию = [];
 +
|-
 +
|'W' — задаваемый пользователем набор параметров сдвига, по умолчанию = [];
 +
|-
 +
|'A' — задаваемый пользователем набор авторегрессионных матриц, по умолчанию = [];
 +
|-
 +
|'Sigmas' — задаваемый пользователем набор матриц ковариации шума, по умолчанию = [];
 +
|-
 +
|'display' — режим отображения, true или false, если true, то отображается текущая информация, например, номер запуска, номер итерации, текущее значение правдоподобия и т.д.
 +
|}
 +
|-
 +
|ВЫХОД
 +
|-
 +
|
 +
{|
 +
|p — априорное распределение на состояния, вектор длины K;
 +
|-
 +
|R — матрица перехода между состояниями, матрица размера K x K;
 +
|-
 +
|W — параметр сдвига авторегрессий, матрица размера d x K;
 +
|-
 +
|A — авторегрессионные матрицы, массив размера d x Md x K;
 +
|-
 +
|Sigmas — матрицы ковариации шумов, массив размера d x d x K;
 +
|-
 +
|logLH — логарифм неполного правдоподобия, число.
 +
|}
 +
|}
 +
 
 +
&nbsp;
 +
 
 +
{|class="standard"
 +
!''Сегментация выборки с помощью алгоритма Витерби''
 +
|-
 +
|[T, logLH] = '''arhmm_segment'''(X, p, R, W, A, Sigmas)
 +
|-
 +
|ВХОД
 +
|-
 +
|
 +
{|
 +
|X — наблюдаемая последовательность, матрица размера N x d, первые M строк соответствуют начальной предыстории;
 +
|-
 +
|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;
 +
|-
 +
|}
 +
|-
 +
|ВЫХОД
 +
|-
 +
|
 +
{|
 +
|T — номера состояний в каждый момент времени, вектор длины N-M;
|-
|-
-
|Core все параметры для всех итераций EM-алгоритма, массив структур длины num_iter с полями 'w', 'A', 'Mu', 'Sigma', 'C', 'gamma', 'LH', где gamma – матрица значений gamma для всех точек и всех состояний, LH – логарифм правдоподобия
+
|logLH логарифм полного правдоподобия для найденного T, число.
|}
|}
|}
|}
[[Категория:Учебные курсы]]
[[Категория:Учебные курсы]]

Текущая версия

Содержание

Пример сегментации сигнала, сгенерированного из авторегрессионной скрытой марковской модели с 3-мя состояниями и глубиной авторегрессии 2.
Пример сегментации сигнала, сгенерированного из авторегрессионной скрытой марковской модели с 3-мя состояниями и глубиной авторегрессии 2.

Начало выполнения задания: 1 апреля 2013 г.;
Срок сдачи: 11 апреля 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{x}}_n = \begin{bmatrix}\vec{x}_n\\ \vec{x}_{n-1}\\ \vdots \\ \vec{x}_{n-M}\end{bmatrix},\quad \tilde{\vec{w}} = \begin{bmatrix}\vec{w}\\ 0\\ \vdots \\ 0\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} по модулю меньше единицы. В частности, для случая d=1,M=1 условие стационарности эквивалентно |A_1|<1, а для случая d=1,M=2 — условию |A_1|<2,\ -1<A_2<1-|A_1|. Мат.ожидание стационарной регрессии 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}\} — начальная предыстория.

Пример выборочной автокорреляционной функции с отсутствием значимых автокорреляций
Пример выборочной автокорреляционной функции с отсутствием значимых автокорреляций

Одним из способов определения адекватности моделирования данных с помощью модели авторегрессии является исследование остатков

\hat{\varepsilon}_n = \vec{x}_n - \hat{\vec{w}} - \sum_{m=1}^M\hat{A}_m\vec{x}_{n-m},

где \hat{\vec{w}},\hat{A} — оценки параметров авторегрессии (например, оценки максимального правдоподобия). Для успешного объяснения данных с помощью авторегрессии необходимо, чтобы остатки не были коррелированы по времени. Другими словами, выборочная автокорреляционная функция

ACF(\tau) = c_{\tau}/c_0,\quad c_{\tau} = \frac{1}{N-\tau}\sum_{n = \tau+1}^N(\varepsilon_n - \bar{\varepsilon})(\varepsilon_{n-\tau} - \bar{\varepsilon}),\quad \bar{\varepsilon} = \frac{1}{N}\sum_n\varepsilon_n

должна лежать в интервале \pm \frac{z_{1-\alpha/2}}{\sqrt{N}} для всех \tau. Здесь через z_{\beta} обозначена \beta-квантиль одномерного нормального распределения. Для уровня значимости \alpha=0.05 соответствующая квантиль равна 1.96.

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

Графическая модель авторегрессионной скрытой марковской модели 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}).

В результате полный набор параметров модели \Theta состоит из \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},\mathcal{A},\Sigma по наблюдениям \{\vec{x}_n\}_{n=1}^N с помощью метода максимального правдоподобия;
    • Реализовать процедуру генерации сигнала из модели авторегрессии;
    • Реализовать процедуру оценки параметров \vec{w},\mathcal{A},\Sigma по методу максимального правдоподобия;
  2. Провести эксперименты с авторегрессией M-го порядка:
    • Сгенерировать данные из модели авторегрессии, а затем восстановить параметры по методу максимального правдоподобия (рассмотреть различные значения параметров модели, а также различные размерности параметров). Как ведут себя значение правдоподобия, авторегрессионные остатки и восстановленные параметры при глубине авторегрессии меньше истинного значения, равного истинному значению и больше истинного значения? Какой объем данных необходим для адекватного восстановления параметров модели?
    • Сгенерировать данные из модели случайного процесса, отличного от авторегрессии. К чему приводит попытка объяснения таких данных с помощью авторегрессии?
  3. Для авторегрессионной скрытой марковской модели:
    • Вывести формулы ЕМ-алгоритма для оценки параметров модели \vec{\pi},R,\{\vec{w}_k,\mathcal{A}_k,\Sigma_k}_{k=1}^K, при этом предусмотреть ситуации, когда часть параметров задается пользователем;
    • Реализовать процедуру генерации сигнала из модели;
    • Реализовать процедуру вычисления маргинальных распределений для отдельных скрытых переменных t_n и пар соседних переменных t_{n-1},t_n при известных наблюдениях и параметрах модели с помощью алгоритма «вперёд-назад»;
    • Реализовать процедуру оценки параметров модели по методу максимального правдоподобия с помощью EM-алгоритма;
    • Реализовать процедуру поиска наиболее вероятной конфигурации скрытых переменных по наблюдаемым данным и параметрам модели с помощью алгоритма Витерби;
  4. Провести эксперименты с авторегрессионной скрытой марковской моделью:
    • Сгенерировать наблюдаемые и скрытые переменные из модели, а затем восстановить скрытые компоненты с помощью алгоритма Витерби при истинных параметрах модели, а также путем взятия аргмаксимумов для маргинальных распределений на t_n. Рассмотреть ситуации хорошо отделимых и слабо отделимых состояний, а также различные размерности параметров модели. Привести пример ситуации, когда алгоритм Витерби и аргмаксимумы маргиналов приводят к существенно различным конфигурациям.
    • Сгенерировать наблюдаемые и скрытые переменные из модели, а затем восстановить параметры модели только по наблюдаемым данным с помощью ЕМ-алгоритма. Рассмотреть различные ситуации. Имеет ли смысл в ЕМ-алгоритме задавать часть параметров модели вручную? Как параметры, задаваемые вручную, влияют на значение правдоподобия и на качество сегментации сигнала?
  5. [Бонус] Предложить свою схему сегментации подмножества сигналов, сгенерированных из авторегрессионной скрытой марковской модели, без использования модели авторегрессии.
  6. Составить отчёт в формате PDF с описанием всех проведённых исследований. Данный отчёт должен включать в себя вывод необходимых формул, различные графики с результатами экспериментов, а также развернутые комментарии к полученным результатам.

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

1. Вывод формул для авторегрессии и авторегрессионной скрытой марковской модели удобно осуществлять путем введения обозначений

\vec{y}_n = [\vec{x}_{n-1}^T\ \vec{x}_{n-2}^T\ \dots \vec{x}_{n-M}^T\ 1]^T,\quad B = [A_1\ A_2\ \dots A_M\ \vec{w}].

Тогда выражение \vec{x}_n - \vec{w} - \sum_{m=1}^MA_m\vec{x}_{n-m} можно лаконично записать как \vec{x}_n-B\vec{y}_n.

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

В случае вывода формул для \vec{w} при известном \mathcal{A} или, наоборот, формул для \mathcal{A} при фиксированном \vec{w} нотация через B,\vec{y}_n не подходит.

2. При тестировании ЕМ-алгоритма рекомендуется отслеживать монотонное возрастание логарифма неполного правдоподобия в итерациях. При этом вблизи локального максимума правдоподобия возможны небольшие нарушения монотонности из-за вычислительных погрешностей.

3. Обратите внимание, что для возможности реализации в сигналах сегментов типа k некоторой длины N_e необходимо, чтобы величина R_{kk}^{N_e} была существенно отлична от нуля.

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

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

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

  • Файл отчёта в формате PDF с указанием ФИО;
  • Все исходные коды с необходимыми комментариями.

 

Генерация выборки из модели авторегрессии
X = ar_generate(N, w, A, Sigma, X0)
ВХОД
N — количество точек в генерируемой последовательности, число;
w — параметр сдвига, вектор длины d;
A — набор матриц в форме [A_1\ A_2\ \dots\ A_M], матрица размера d x Md;
Sigma — матрица ковариации для нормального шума, матрица размера d x d;
X0 — (необязательный параметр) начальная предыстория, матрица размера M x d;
ВЫХОД
X — сгенерированная последовательность, матрица размера N x d.

Если начальная предыстория X_0 не задана, то X_0 выбирается равной мат.ожиданию процесса авторегрессии.

Оценка параметров авторегрессии
[w, A, Sigma, res, logLH] = ar_fit(X, M)
ВХОД
X — наблюдаемая последовательность, матрица размера N x d, первые M строк соответствуют начальной предыстории;
M — глубина авторегрессии, число;
ВЫХОД
w — параметр сдвига авторегрессии, вектор длины d;
A — набор матриц в форме [A_1\ A_2\ \dots\ A_M], матрица размера d x Md;
Sigma — матрица ковариации нормального шума, матрица размера d x d;
res — остатки авторегрессии (набор векторов \vec{x}_n-\vec{w}-\sum_{m=1}^MA_m\vec{x}_{n-m}), матрица размера (N-M) x d;
logLH — логарифм правдоподобия настроенной модели авторегрессии, число.

 

Генерация выборки из авторегрессионной скрытой марковской модели
[X, T] = arhmm_generate(N, p, R, W, A, Sigmas, X0)
ВХОД
N — количество точек в генерируемой последовательности, число;
p — априорное распределение на t_1, вектор длины 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.

Если начальная предыстория X_0 не задана, то X_0 выбирается равной мат.ожиданию процесса авторегрессии, соответствующего сгенерированному состоянию t_1.

Оценка маргиналов на скрытые переменные
[gamma, ksi, logLH] = arhmm_posterior(X, p, R, W, A, Sigmas)
ВХОД
X — наблюдаемая последовательность, матрица размера N x d, первые M строк соответствуют начальной предыстории;
p — априорное распределение на состояния, вектор длины K;
R — матрица перехода между состояниями, матрица размера K x K;
W — параметр сдвига авторегрессий, матрица размера d x K;
A — авторегрессионные матрицы, массив размера d x Md x K;
Sigmas — матрицы ковариации шумов, массив размера d x d x K;
ВЫХОД
gamma — вероятности вида p(t_n=k|X,\Theta), матрица размера K x (N-M);
ksi — вероятности вида p(t_{n-1}=k_1,t_n=k_2|X,\Theta), массив размера K x K x (N-M-1);
logLH — логарифм неполного правдоподобия, число.

 

Оценка параметров авторегрессионной скрытой марковской модели с помощью ЕМ-алгоритма
[p, R, W, A, Sigmas, logLH] = 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' — количество запусков из случайных начальных приближений, по умолчанию = 10;
'tol_LH' — точность оптимизации по значению логарифма правдоподобия, по умолчанию = 1e-4;
'p' — задаваемое пользователем априорное распределение на состояния (в случае задания не оптимизируется ЕМ-алгоритмом), по умолчанию = [];
'R' — задаваемая пользователем матрица перехода между состояниями, по умолчанию = [];
'W' — задаваемый пользователем набор параметров сдвига, по умолчанию = [];
'A' — задаваемый пользователем набор авторегрессионных матриц, по умолчанию = [];
'Sigmas' — задаваемый пользователем набор матриц ковариации шума, по умолчанию = [];
'display' — режим отображения, true или false, если true, то отображается текущая информация, например, номер запуска, номер итерации, текущее значение правдоподобия и т.д.
ВЫХОД
p — априорное распределение на состояния, вектор длины K;
R — матрица перехода между состояниями, матрица размера K x K;
W — параметр сдвига авторегрессий, матрица размера d x K;
A — авторегрессионные матрицы, массив размера d x Md x K;
Sigmas — матрицы ковариации шумов, массив размера d x d x K;
logLH — логарифм неполного правдоподобия, число.

 

Сегментация выборки с помощью алгоритма Витерби
[T, logLH] = arhmm_segment(X, p, R, W, A, Sigmas)
ВХОД
X — наблюдаемая последовательность, матрица размера N x d, первые M строк соответствуют начальной предыстории;
p — априорное распределение на t_1, вектор длины K;
R — матрица перехода размера K x K;
W — параметры сдвига авторегрессии для каждого состояния, матрица размера d x K;
A — авторегрессионные матрицы A для каждого состояния, массив размера d x Md x K;
Sigmas — матрицы ковариации шума для каждого состояния, массив размера d x d x K;
ВЫХОД
T — номера состояний в каждый момент времени, вектор длины N-M;
logLH — логарифм полного правдоподобия для найденного T, число.
Личные инструменты