Графические модели (курс лекций)/2013/Задание 3
Материал из MachineLearning.
м (→Формулировка задания) |
|||
(32 промежуточные версии не показаны) | |||
Строка 1: | Строка 1: | ||
{{main|Графические модели (курс лекций)}} | {{main|Графические модели (курс лекций)}} | ||
- | {{ | + | {{TOCright|300px}} |
- | '''Начало выполнения задания''': | + | {| |
- | '''Срок сдачи''': {{ins| | + | |[[Изображение: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>\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> по-прежнему предполагаются независимыми. | + | Здесь шумовые компоненты <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{ | + | :<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-го порядка является стационарной, | + | Поэтому авторегрессия 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-го порядка]] | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ''Авторегрессионная скрытая марковская модель M-го порядка'' — это байесовская сеть, граф которой показан на рис. справа, а совместное распределение задается как | |
- | + | ||
- | + | ||
- | + | :<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>\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-го порядка: |
- | * | + | #* Вывести формулы для оценки параметров модели <tex>\vec{w},\mathcal{A},\Sigma</tex> по наблюдениям <tex>\{\vec{x}_n\}_{n=1}^N</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 с указанием ФИО; |
* Все исходные коды с необходимыми комментариями. | * Все исходные коды с необходимыми комментариями. | ||
+ | |||
+ | | ||
{|class="standard" | {|class="standard" | ||
- | !''Генерация выборки'' | + | !''Генерация выборки из модели авторегрессии'' |
|- | |- | ||
- | | | + | |X = '''ar_generate'''(N, w, A, Sigma, X0) |
|- | |- | ||
|ВХОД | |ВХОД | ||
Строка 83: | Строка 134: | ||
| | | | ||
{|border="0" | {|border="0" | ||
- | |N — количество точек в генерируемой последовательности, | + | |N — количество точек в генерируемой последовательности, число; |
- | + | ||
- | + | ||
|- | |- | ||
- | | | + | |w — параметр сдвига, вектор длины d; |
|- | |- | ||
- | | | + | |A — набор матриц в форме <tex>[A_1\ A_2\ \dots\ A_M]</tex>, матрица размера d x Md; |
|- | |- | ||
- | |Sigma — | + | |Sigma — матрица ковариации для нормального шума, матрица размера d x d; |
|- | |- | ||
- | | | + | |X0 — (необязательный параметр) начальная предыстория, матрица размера M x d; |
|} | |} | ||
|- | |- | ||
Строка 100: | Строка 149: | ||
| | | | ||
{| | {| | ||
- | |X — сгенерированная последовательность, матрица | + | |X — сгенерированная последовательность, матрица размера N x d. |
|- | |- | ||
- | |||
|} | |} | ||
|} | |} | ||
- | + | Если начальная предыстория <tex>X_0</tex> не задана, то <tex>X_0</tex> выбирается равной мат.ожиданию процесса авторегрессии. | |
{|class="standard" | {|class="standard" | ||
- | !'' | + | !''Оценка параметров авторегрессии'' |
|- | |- | ||
- | | | + | |[w, A, Sigma, res, logLH] = '''ar_fit'''(X, M) |
|- | |- | ||
|ВХОД | |ВХОД | ||
Строка 117: | Строка 165: | ||
| | | | ||
{| | {| | ||
- | |X — | + | |X — наблюдаемая последовательность, матрица размера N x d, первые M строк соответствуют начальной предыстории; |
|- | |- | ||
- | | | + | |M — глубина авторегрессии, число; |
- | + | ||
- | + | ||
|- | |- | ||
- | |||
- | |||
- | |||
- | |||
- | |||
|} | |} | ||
|- | |- | ||
Строка 134: | Строка 175: | ||
| | | | ||
{| | {| | ||
- | | | + | |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" | ||
- | !'' | + | !''Генерация выборки из авторегрессионной скрытой марковской модели'' |
|- | |- | ||
- | |[ | + | |[X, T] = '''arhmm_generate'''(N, p, R, W, A, Sigmas, X0) |
- | + | ||
- | + | ||
|- | |- | ||
|ВХОД | |ВХОД | ||
Строка 151: | Строка 198: | ||
| | | | ||
{| | {| | ||
- | | | + | |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" | ||
+ | !''Оценка маргиналов на скрытые переменные'' | ||
+ | |- | ||
+ | |[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; | ||
|} | |} | ||
|- | |- | ||
Строка 178: | Строка 252: | ||
| | | | ||
{| | {| | ||
- | | | + | |gamma — вероятности вида <tex>p(t_n=k|X,\Theta)</tex>, матрица размера K x (N-M); |
|- | |- | ||
- | | | + | |ksi — вероятности вида <tex>p(t_{n-1}=k_1,t_n=k_2|X,\Theta)</tex>, массив размера K x K x (N-M-1); |
|- | |- | ||
- | | | + | |logLH — логарифм неполного правдоподобия, число. |
+ | |} | ||
+ | |} | ||
+ | |||
+ | | ||
+ | |||
+ | {|class="standard" | ||
+ | !''Оценка параметров авторегрессионной скрытой марковской модели с помощью ЕМ-алгоритма'' | ||
+ | |- | ||
+ | |[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 — логарифм неполного правдоподобия, число. | ||
+ | |} | ||
+ | |} | ||
+ | |||
+ | | ||
+ | |||
+ | {|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; | ||
|- | |- | ||
- | | | + | |logLH — логарифм полного правдоподобия для найденного T, число. |
|} | |} | ||
|} | |} | ||
[[Категория:Учебные курсы]] | [[Категория:Учебные курсы]] |
Текущая версия
|
Начало выполнения задания: 1 апреля 2013 г.;
Срок сдачи: 11 апреля 2013 г. (четверг), 23:59.
Среда для выполнения задания — MATLAB. Неэффективная реализация кода может негативно отразиться на оценке.
Модель авторегрессии
Случайный процесс с дискретным временем , называется авторегрессией первого порядка, если
- .
Здесь — параметр сдвига, — авторегрессионная матрица, — матрица ковариации шума, шумовые компоненты предполагаются независимыми. Процесс авторегрессии является стационарным (в широком смысле), если все собственные значения матрицы (включая комплексные) по модулю меньше единицы. Мат.ожидание стационарного процесса авторегрессии определяется как
- ,
где — единичная матрица размера .
В терминах графических моделей авторегрессия первого порядка представляет собой байесовскую сеть с графом вида цепочка (см. рис.), где совместное распределение задается как
- ,
а — начальная предыстория.
Авторегрессия M-го порядка задается как
- .
Здесь шумовые компоненты по-прежнему предполагаются независимыми. Авторегрессия M-го порядка может быть сведена к авторегрессии первого порядка как
Поэтому авторегрессия M-го порядка является стационарной, когда все собственные значения матрицы по модулю меньше единицы. В частности, для случая условие стационарности эквивалентно , а для случая — условию . Мат.ожидание стационарной регрессии M-го порядка определяется как
- .
В дальнейшем для удобства набор матриц будем обозначать через .
В терминах графических моделей авторегрессия M-го порядка представляет собой байесовскую сеть с графом, показанном на рис. справа, где совместное распределение задается как
- ,
а — начальная предыстория.
Одним из способов определения адекватности моделирования данных с помощью модели авторегрессии является исследование остатков
- ,
где — оценки параметров авторегрессии (например, оценки максимального правдоподобия). Для успешного объяснения данных с помощью авторегрессии необходимо, чтобы остатки не были коррелированы по времени. Другими словами, выборочная автокорреляционная функция
должна лежать в интервале для всех . Здесь через обозначена -квантиль одномерного нормального распределения. Для уровня значимости соответствующая квантиль равна 1.96.
Авторегрессионная скрытая марковская модель
Авторегрессионная скрытая марковская модель M-го порядка — это байесовская сеть, граф которой показан на рис. справа, а совместное распределение задается как
- .
Здесь — скрытые дискретные состояния, — непрерывные наблюдаемые переменные. Априорное распределение задается вектором , причем все и . Распределение задается матрицей перехода размера , где в -ой позиции стоит вероятность перехода из состояния в состояние . Все элементы этой матрицы неотрицательны, а сумма элементов по каждой строке равна единице. Модель генерации данных соответствует модели авторегрессии, в которой параметры зависят от текущего состояния . Таким образом,
- .
В результате полный набор параметров модели состоит из . Глубина авторегрессии , количество скрытых состояний , а также начальная предыстория задаются пользователем.
Формулировка задания
- Для модели авторегрессии M-го порядка:
- Вывести формулы для оценки параметров модели по наблюдениям с помощью метода максимального правдоподобия;
- Реализовать процедуру генерации сигнала из модели авторегрессии;
- Реализовать процедуру оценки параметров по методу максимального правдоподобия;
- Провести эксперименты с авторегрессией M-го порядка:
- Сгенерировать данные из модели авторегрессии, а затем восстановить параметры по методу максимального правдоподобия (рассмотреть различные значения параметров модели, а также различные размерности параметров). Как ведут себя значение правдоподобия, авторегрессионные остатки и восстановленные параметры при глубине авторегрессии меньше истинного значения, равного истинному значению и больше истинного значения? Какой объем данных необходим для адекватного восстановления параметров модели?
- Сгенерировать данные из модели случайного процесса, отличного от авторегрессии. К чему приводит попытка объяснения таких данных с помощью авторегрессии?
- Для авторегрессионной скрытой марковской модели:
- Вывести формулы ЕМ-алгоритма для оценки параметров модели , при этом предусмотреть ситуации, когда часть параметров задается пользователем;
- Реализовать процедуру генерации сигнала из модели;
- Реализовать процедуру вычисления маргинальных распределений для отдельных скрытых переменных и пар соседних переменных при известных наблюдениях и параметрах модели с помощью алгоритма «вперёд-назад»;
- Реализовать процедуру оценки параметров модели по методу максимального правдоподобия с помощью EM-алгоритма;
- Реализовать процедуру поиска наиболее вероятной конфигурации скрытых переменных по наблюдаемым данным и параметрам модели с помощью алгоритма Витерби;
- Провести эксперименты с авторегрессионной скрытой марковской моделью:
- Сгенерировать наблюдаемые и скрытые переменные из модели, а затем восстановить скрытые компоненты с помощью алгоритма Витерби при истинных параметрах модели, а также путем взятия аргмаксимумов для маргинальных распределений на . Рассмотреть ситуации хорошо отделимых и слабо отделимых состояний, а также различные размерности параметров модели. Привести пример ситуации, когда алгоритм Витерби и аргмаксимумы маргиналов приводят к существенно различным конфигурациям.
- Сгенерировать наблюдаемые и скрытые переменные из модели, а затем восстановить параметры модели только по наблюдаемым данным с помощью ЕМ-алгоритма. Рассмотреть различные ситуации. Имеет ли смысл в ЕМ-алгоритме задавать часть параметров модели вручную? Как параметры, задаваемые вручную, влияют на значение правдоподобия и на качество сегментации сигнала?
- [Бонус] Предложить свою схему сегментации подмножества сигналов, сгенерированных из авторегрессионной скрытой марковской модели, без использования модели авторегрессии.
- Составить отчёт в формате PDF с описанием всех проведённых исследований. Данный отчёт должен включать в себя вывод необходимых формул, различные графики с результатами экспериментов, а также развернутые комментарии к полученным результатам.
Рекомендации по выполнению задания
1. Вывод формул для авторегрессии и авторегрессионной скрытой марковской модели удобно осуществлять путем введения обозначений
- .
Тогда выражение можно лаконично записать как .
После вывода необходимых формул рекомендуется убедиться в том, что эти формулы переходят в стандартные формулы для оценки параметров многомерного нормального распределения (в том числе в рамках скрытой марковской модели) при обнулении всех A.
В случае вывода формул для при известном или, наоборот, формул для при фиксированном нотация через не подходит.
2. При тестировании ЕМ-алгоритма рекомендуется отслеживать монотонное возрастание логарифма неполного правдоподобия в итерациях. При этом вблизи локального максимума правдоподобия возможны небольшие нарушения монотонности из-за вычислительных погрешностей.
3. Обратите внимание, что для возможности реализации в сигналах сегментов типа некоторой длины необходимо, чтобы величина была существенно отлична от нуля.
Оформление задания
Выполненное задание следует отправить письмом по адресу bayesml@gmail.com с заголовком письма «[ГМ13] Задание 3 <ФИО>». Убедительная просьба присылать выполненное задание только один раз с окончательным вариантом. Также убедительная просьба строго придерживаться заданных ниже прототипов реализуемых функций.
Присланный вариант задания должен содержать в себе:
- Файл отчёта в формате PDF с указанием ФИО;
- Все исходные коды с необходимыми комментариями.
Генерация выборки из модели авторегрессии | |||||
---|---|---|---|---|---|
X = ar_generate(N, w, A, Sigma, X0) | |||||
ВХОД | |||||
| |||||
ВЫХОД | |||||
|
Если начальная предыстория не задана, то выбирается равной мат.ожиданию процесса авторегрессии.
Оценка параметров авторегрессии | |||||
---|---|---|---|---|---|
[w, A, Sigma, res, logLH] = ar_fit(X, M) | |||||
ВХОД | |||||
| |||||
ВЫХОД | |||||
|
Генерация выборки из авторегрессионной скрытой марковской модели | |||||||
---|---|---|---|---|---|---|---|
[X, T] = arhmm_generate(N, p, R, W, A, Sigmas, X0) | |||||||
ВХОД | |||||||
| |||||||
ВЫХОД | |||||||
|
Если начальная предыстория не задана, то выбирается равной мат.ожиданию процесса авторегрессии, соответствующего сгенерированному состоянию .
Оценка маргиналов на скрытые переменные | ||||||
---|---|---|---|---|---|---|
[gamma, ksi, logLH] = arhmm_posterior(X, p, R, W, A, Sigmas) | ||||||
ВХОД | ||||||
| ||||||
ВЫХОД | ||||||
|
Оценка параметров авторегрессионной скрытой марковской модели с помощью ЕМ-алгоритма | ||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
[p, R, W, A, Sigmas, logLH] = arhmm_fit(X, K, M, param_name1, param_value1, ...) | ||||||||||||||||||||||||||||||||||||
ВХОД | ||||||||||||||||||||||||||||||||||||
|