Графические модели (курс лекций)/2012/Задание 2
Материал из MachineLearning.
(Новая: {{stop|Внимание! Страница задания находится в стадии формирования. Убедительная просьба не приступать к...) |
|||
Строка 1: | Строка 1: | ||
+ | __NOTOC__ | ||
+ | |||
{{stop|Внимание! Страница задания находится в стадии формирования. Убедительная просьба не приступать к выполнению задания до тех пор, пока это предупреждение не будет удалено.}} | {{stop|Внимание! Страница задания находится в стадии формирования. Убедительная просьба не приступать к выполнению задания до тех пор, пока это предупреждение не будет удалено.}} | ||
Строка 7: | Строка 9: | ||
'''Срок сдачи''': {{ins|21 марта 2012, 23:59}} | '''Срок сдачи''': {{ins|21 марта 2012, 23:59}} | ||
- | Среда реализации | + | Среда реализации задания – MATLAB. Неэффективная реализация кода может негативно отразиться на оценке. |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
=== Формулировка задания === | === Формулировка задания === | ||
Строка 198: | Строка 24: | ||
Все переменные модели являются непрерывными, т.е. <tex>t_n\in\mathbb{R}^D,\ x_n\in\mathbb{R}^d</tex>. Параметры модели <tex>A,\Gamma,V_0\in\mathbb{R}^{D\times D},\ C\in\mathbb{R}^{d\times D},\ \Sigma\in\mathbb{R}^{d\times d},\ \mu_0\in\mathbb{R}^D</tex>. | Все переменные модели являются непрерывными, т.е. <tex>t_n\in\mathbb{R}^D,\ x_n\in\mathbb{R}^d</tex>. Параметры модели <tex>A,\Gamma,V_0\in\mathbb{R}^{D\times D},\ C\in\mathbb{R}^{d\times D},\ \Sigma\in\mathbb{R}^{d\times d},\ \mu_0\in\mathbb{R}^D</tex>. | ||
- | Данную ЛДС нужно | + | Данную ЛДС нужно протестировать на модельной задаче сопровождения (трекинга) объекта в пространстве. |
Для выполнения задания необходимо: | Для выполнения задания необходимо: | ||
* Реализовать алгоритм генерации выборки из вероятностной модели ЛДС; | * Реализовать алгоритм генерации выборки из вероятностной модели ЛДС; | ||
* Реализовать алгоритм онлайн фильтрации сигнала с помощью фильтра Калмана; | * Реализовать алгоритм онлайн фильтрации сигнала с помощью фильтра Калмана; | ||
- | * Реализовать | + | * Реализовать расширенный фильтр Калмана для ЛДС с нелинейной динамикой; |
- | * Реализовать | + | * Реализовать обучение параметров ЛДС с учителем. При этом часть параметров ЛДС может быть задана пользователем; |
* Реализовать алгоритм генерации траектории движения абстрактного объекта в двухмерном пространстве. Способ генерации такой траектории отдается на выбор студента; | * Реализовать алгоритм генерации траектории движения абстрактного объекта в двухмерном пространстве. Способ генерации такой траектории отдается на выбор студента; | ||
* Протестировать реализованные алгоритмы на модельных данных; | * Протестировать реализованные алгоритмы на модельных данных; | ||
- | + | * Написать отчет в формате PDF с описанием всех проведенных исследований. Данный отчет должен, в частности, включать в себя графики фильтрации сгенерированных траекторий. | |
- | + | ||
- | * Написать отчет в формате PDF с описанием всех проведенных исследований. Данный отчет должен, в частности, включать в себя графики фильтрации сгенерированных траекторий | + | |
=== Спецификация реализуемых функций === | === Спецификация реализуемых функций === | ||
Строка 216: | Строка 40: | ||
!''Генерация выборки'' | !''Генерация выборки'' | ||
|- | |- | ||
- | |[X, T] = | + | |[X, T] = LDS_generate(N, A, G, C, S, mu0, V0) |
|- | |- | ||
|ВХОД | |ВХОД | ||
Строка 247: | Строка 71: | ||
|} | |} | ||
- | Обратите внимание: в процедуре | + | Обратите внимание: в процедуре LDS_generate параметры D и d определяются неявно по размеру соответствующих элементов. |
{|class="standard" | {|class="standard" | ||
- | !''Фильтр Калмана | + | !''Фильтр Калмана'' |
|- | |- | ||
- | |[ | + | |[Mus, Sigmas] = LDS_filter(X, A, G, C, S, mu0, V0) |
|- | |- | ||
|ВХОД | |ВХОД | ||
Строка 278: | Строка 102: | ||
| | | | ||
{| | {| | ||
- | | | + | |Mus — мат. ожидания распределений <tex>p(t_n|x_1,\dots,x_n)</tex>, матрица типа double размера N x D; |
|- | |- | ||
- | | | + | |Sigmas — ковариационные матрицы распределений <tex>p(t_n|x_1,\dots,x_n)</tex>, массив типа double размера D x D x N; |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
|- | |- | ||
|} | |} | ||
Строка 298: | Строка 114: | ||
!''Обучение'' | !''Обучение'' | ||
|- | |- | ||
- | |[A, G, C, S, mu0, V0] = | + | |[A, G, C, S, mu0, V0] = LDS_train(X, D, InputParameters) |
|- | |- | ||
|ВХОД | |ВХОД | ||
Строка 383: | Строка 199: | ||
** Небольшими блоками загружать в MATLAB кадры видео с помощью ''aviread'', накладывать на них траекторию движения за последние 300 кадров и сохранять полученные кадры в виде отдельных JPG картинок на диск с помощью ''imwrite''. Сохраненные картинки должны иметь название XXXXX.jpg, где XXXXX — номер кадра. | ** Небольшими блоками загружать в MATLAB кадры видео с помощью ''aviread'', накладывать на них траекторию движения за последние 300 кадров и сохранять полученные кадры в виде отдельных JPG картинок на диск с помощью ''imwrite''. Сохраненные картинки должны иметь название XXXXX.jpg, где XXXXX — номер кадра. | ||
** Собрать полученные картинки в видео-файл с помощью бесплатной программы [http://www.virtualdub.org/ VirtualDub]. Для этого достаточно открыть первую картинку в программе (остальные загрузятся автоматически), установить частоту кадров 25fps, установить кодек (рекомендуется DivX) и сгенерировать AVI-файл. | ** Собрать полученные картинки в видео-файл с помощью бесплатной программы [http://www.virtualdub.org/ VirtualDub]. Для этого достаточно открыть первую картинку в программе (остальные загрузятся автоматически), установить частоту кадров 25fps, установить кодек (рекомендуется DivX) и сгенерировать AVI-файл. | ||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
=== Оформление задания === | === Оформление задания === | ||
- | Выполненный вариант задания необходимо прислать письмом по адресу ''bayesml@gmail.com'' с темой «Задание | + | Выполненный вариант задания необходимо прислать письмом по адресу ''bayesml@gmail.com'' с темой «Задание 2. ФИО». Убедительная просьба присылать выполненное задание '''только один раз''' с окончательным вариантом. Новые версии будут рассматриваться только в самом крайнем случае. Также убедительная просьба строго придерживаться заданной выше спецификации реализуемых функций. Очень трудно проверять большое количество заданий, если у каждого будет свой формат реализации. |
Письмо должно содержать: | Письмо должно содержать: | ||
*PDF-файл с описанием проведенных исследований | *PDF-файл с описанием проведенных исследований | ||
- | * | + | *LDS_generate.m |
- | * | + | *LDS_filter.m |
- | * | + | *LDS_train.m |
- | * | + | *trajectory_generate.m |
- | + | ||
*Набор вспомогательных файлов при необходимости | *Набор вспомогательных файлов при необходимости | ||
[[Категория:Учебные курсы]] | [[Категория:Учебные курсы]] | ||
[[Категория:Байесовские методы]] | [[Категория:Байесовские методы]] |
Версия 11:13, 8 марта 2012
Внимание! Страница задания находится в стадии формирования. Убедительная просьба не приступать к выполнению задания до тех пор, пока это предупреждение не будет удалено. |
Начало выполнения задания: 9 марта 2012
Срок сдачи: 21 марта 2012, 23:59
Среда реализации задания – MATLAB. Неэффективная реализация кода может негативно отразиться на оценке.
Формулировка задания
Рассматривается линейная динамическая система (ЛДС), в которой полное правдоподобие задается как:
Все переменные модели являются непрерывными, т.е. . Параметры модели .
Данную ЛДС нужно протестировать на модельной задаче сопровождения (трекинга) объекта в пространстве.
Для выполнения задания необходимо:
- Реализовать алгоритм генерации выборки из вероятностной модели ЛДС;
- Реализовать алгоритм онлайн фильтрации сигнала с помощью фильтра Калмана;
- Реализовать расширенный фильтр Калмана для ЛДС с нелинейной динамикой;
- Реализовать обучение параметров ЛДС с учителем. При этом часть параметров ЛДС может быть задана пользователем;
- Реализовать алгоритм генерации траектории движения абстрактного объекта в двухмерном пространстве. Способ генерации такой траектории отдается на выбор студента;
- Протестировать реализованные алгоритмы на модельных данных;
- Написать отчет в формате PDF с описанием всех проведенных исследований. Данный отчет должен, в частности, включать в себя графики фильтрации сгенерированных траекторий.
Спецификация реализуемых функций
Генерация выборки | |||||||
---|---|---|---|---|---|---|---|
[X, T] = LDS_generate(N, A, G, C, S, mu0, V0) | |||||||
ВХОД | |||||||
| |||||||
ВЫХОД | |||||||
|
Обратите внимание: в процедуре LDS_generate параметры D и d определяются неявно по размеру соответствующих элементов.
Фильтр Калмана | |||||||
---|---|---|---|---|---|---|---|
[Mus, Sigmas] = LDS_filter(X, A, G, C, S, mu0, V0) | |||||||
ВХОД | |||||||
| |||||||
ВЫХОД | |||||||
|
Обучение | |||||||||
---|---|---|---|---|---|---|---|---|---|
[A, G, C, S, mu0, V0] = LDS_train(X, D, InputParameters) | |||||||||
ВХОД | |||||||||
| |||||||||
ВЫХОД | |||||||||
|
Генерация траектории | |
---|---|
X = TRAJECTORY_GENERATE(N) | |
ВХОД | |
| |
ВЫХОД | |
|
Рекомендации по выполнению задания
- При тестировании ЕМ-алгоритма обучения ЛДС рекомендуется убедиться в том, что значение неполного правдоподобия монотонно увеличивается в итерациях.
- Простейшим способом генерации траектории объекта является генерация по скорости и ускорению, где ускорение иногда меняет величину и направление.
- Один из вариантов тестирования реализованных алгоритмов на основе ЛДС следующий:
- Сгенерировать траекторию движения объекта
- Добавить к траектории случайный нормальный шум
- Отфильтровать зашумленную траекторию с помощью фильтра Калмана; убедиться, что отфильтрованный сигнал ближе к истинной траектории, чем входной зашумленный сигнал.
- Отфильтровать зашумленную траекторию с помощью РТС уравнений; убедиться, что результат является более точным по сравнению с фильтром Калмана.
- При тестировании генерации из модели ЛДС рекомендуется эксперимент с двухмерным сигналом, чтобы убедиться в корректности задаваемых корреляций
- Для наложения траектории движения на видео рекомендуется следующая процедура:
- Загрузить в MATLAB изображения с названиями поведенческих актов с помощью imread
- Небольшими блоками загружать в MATLAB кадры видео с помощью aviread, накладывать на них траекторию движения за последние 300 кадров и сохранять полученные кадры в виде отдельных JPG картинок на диск с помощью imwrite. Сохраненные картинки должны иметь название XXXXX.jpg, где XXXXX — номер кадра.
- Собрать полученные картинки в видео-файл с помощью бесплатной программы VirtualDub. Для этого достаточно открыть первую картинку в программе (остальные загрузятся автоматически), установить частоту кадров 25fps, установить кодек (рекомендуется DivX) и сгенерировать AVI-файл.
Оформление задания
Выполненный вариант задания необходимо прислать письмом по адресу bayesml@gmail.com с темой «Задание 2. ФИО». Убедительная просьба присылать выполненное задание только один раз с окончательным вариантом. Новые версии будут рассматриваться только в самом крайнем случае. Также убедительная просьба строго придерживаться заданной выше спецификации реализуемых функций. Очень трудно проверять большое количество заданий, если у каждого будет свой формат реализации.
Письмо должно содержать:
- PDF-файл с описанием проведенных исследований
- LDS_generate.m
- LDS_filter.m
- LDS_train.m
- trajectory_generate.m
- Набор вспомогательных файлов при необходимости