Методы оптимизации в машинном обучении (курс лекций)/2012/Задание 1

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

Перейти к: навигация, поиск


Формулировка задания находится в стадии формирования. Просьба не приступать к выполнению задания до тех пор, пока это предупреждение не будет удалено.


Начало выполнения задания: 27 сентября 2012

Срок сдачи: 10 октября 2012, 23:59

Среда реализации задания – MATLAB. Неэффективная реализация кода может негативно отразиться на оценке.

Формулировка задания

Для выполнения задания необходимо:

  • Реализовать алгоритмы одномерной минимизации функции без производной: метод золотого сечения, метод парабол и комбинированный метод Брента;
  • Протестировать реализованные алгоритмы на наборе задач оптимизации;
  • Написать отчет в формате PDF с описанием всех проведенных исследований.

Спецификация реализуемых функций

Метод золотого сечения
[x_min, f_min, status] = min_golden(func, interval, param_name1, param_value1, ...)
ВХОД
func — указатель на оптимизируемую функцию;
interval — границы интервала оптимизации, вектор типа double длины 2;
(param_name, param_value) — необязательные параметрыматрица преобразования среднего при переходе от t_n к x_n, матрица типа double размера d x D;
G — ковариационная матрица для распределения p(t_n|t_{n-1}), матрица типа double размера D x D;
S — ковариационная матрица для распределения p(x_n|t_n), матрица типа double размера d x d;
mu0 — мат.ожидание априорного распределения p(t_1), матрица типа double размера 1 x D;
V0 — ковариационная матрица априорного распределения p(t_1), матрица типа double размера D x D.
ВЫХОД
X — сгенерированная наблюдаемая последовательность, матрица типа double размера N x d
T — последовательность скрытых характеристик, матрица типа double размера N x D

Обратите внимание: в процедуре LDS_generate параметры D и d определяются неявно по размеру соответствующих элементов.

Фильтр Калмана для ЛДС
[M, V] = LDS_filter(X, A, C, G, S, mu0, V0)
ВХОД
X — входная последовательность, матрица типа double размера N x d, где N – количество точек в последовательности, d – количество признаков;
A — матрица преобразования среднего в последовательности t, матрица типа double размера D x D;
C — матрица преобразования среднего при переходе от t_n к x_n, матрица типа double размера d x D;
G — ковариационная матрица для распределения p(t_n|t_{n-1}), матрица типа double размера D x D;
S — ковариационная матрица для распределения p(x_n|t_n), матрица типа double размера d x d;
mu0 — мат.ожидание априорного распределения p(t_1), матрица типа double размера 1 x D;
V0 — ковариационная матрица априорного распределения p(t_1), матрица типа double размера D x D.
ВЫХОД
M — мат. ожидания распределений p(t_n|x_1,\dots,x_n), матрица типа double размера N x D;
V — ковариационные матрицы распределений p(t_n|x_1,\dots,x_n), массив типа double размера D x D x N;

 

Обучение с учителем для ЛДС
[A, C, G, S] = LDS_train(X, T, ParameterName1, ParameterValue1, ParameterName2, ParameterValue2, ...)
ВХОД
X — входная последовательность наблюдаемых переменных, матрица типа double размера N x d, где N – количество точек в последовательности, d – число признаков;
T — входная последовательность значений скрытых характеристик, матрица типа double размера N x D;
(ParameterName, ParameterValue) — (необязательные аргументы) набор дополнительных параметров, возможны следующие названия параметров:
  'A' — задаваемая пользователем матрица преобразования среднего в распределении p(t_n|t_{n-1})(соответственно, ее не нужно вычислять внутри функции);
  'C' — задаваемая пользователем матрица преобразования среднего в распределении p(x_n|t_n);
  'G' — задаваемая пользователем матрица ковариации p(t_n|t_{n-1});
  'S' — задаваемая пользователем матрица ковариации в распределении p(x_n|t_n);
ВЫХОД
A — матрица преобразования среднего в последовательности t, матрица типа double размера D x D;
C — матрица преобразования среднего при переходе от t_n к x_n, матрица типа double размера d x D;
G — ковариационная матрица для распределения p(t_n|t_{n-1}), матрица типа double размера D x D;
S — ковариационная матрица для распределения p(x_n|t_n), матрица типа double размера d x d;

 

Генерация выборки для нелинейной динамической системы
[X, T] = EKF_generate(N, func_horiz, func_vert, G, S, mu0, V0)
ВХОД
N — количество точек в генерируемой последовательности, uint32;
func_horiz — указатель на функцию f, сама функция должна возвращать две величины: значение (вектор длины D) и градиент (матрицу размера D x D);
func_vert — указатель на функцию g, сама функция должна возвращать свое значение (вектор длины d) и градиент (матрицу размера d x D);
G — ковариационная матрица для распределения p(t_n|t_{n-1}), матрица типа double размера D x D;
S — ковариационная матрица для распределения p(x_n|t_n), матрица типа double размера d x d;
mu0 — мат.ожидание априорного распределения p(t_1), матрица типа double размера 1 x D;
V0 — ковариационная матрица априорного распределения p(t_1), матрица типа double размера D x D.
ВЫХОД
X — сгенерированная наблюдаемая последовательность, матрица типа double размера N x d
T — последовательность скрытых характеристик, матрица типа double размера N x D

Обратите внимание: в процедуре EKF_generate параметры D и d определяются неявно по размеру соответствующих элементов.

Расширенный фильтр Калмана для нелинейной динамической системы
[M, V] = EKF_filter(X, func_horiz, func_vert, G, S, mu0, V0)
ВХОД
X — входная последовательность, матрица типа double размера N x d, где N – количество точек в последовательности, d – количество признаков;
func_horiz — указатель на функцию f, сама функция должна возвращать две величины: значение (вектор длины D) и градиент (матрицу размера D x D);
func_vert — указатель на функцию g, сама функция должна возвращать свое значение (вектор длины d) и градиент (матрицу размера d x D);
G — ковариационная матрица для распределения p(t_n|t_{n-1}), матрица типа double размера D x D;
S — ковариационная матрица для распределения p(x_n|t_n), матрица типа double размера d x d;
mu0 — мат.ожидание априорного распределения p(t_1), матрица типа double размера 1 x D;
V0 — ковариационная матрица априорного распределения p(t_1), матрица типа double размера D x D.
ВЫХОД
M — мат. ожидания распределений p(t_n|x_1,\dots,x_n), матрица типа double размера N x D;
V — ковариационные матрицы распределений p(t_n|x_1,\dots,x_n), массив типа double размера D x D x N;

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

  • В качестве модельных данных для тестирования ЛДС рассмотреть задачу сопровождения объекта в двухмерном пространстве. Для генерации траектории движения объекта использовать функцию LDS_generate с параметрами, описанными в лекции. При этом рекомендуется взять небольшой квант времени \Delta t. Убедиться в том, что отфильтрованная по Калману траектория ближе к истинной, чем наблюдаемый сигнал.
  • При тестировании обучения с учителем убедиться в том, что правдоподобие траектории объекта в двухмерном пространстве, сгенерированной с помощью LDS_generate, не превосходит правдоподобие этой траектории для параметров, полученных с помощью LDS_train.

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

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

Письмо должно содержать:

  • PDF-файл с описанием проведенных исследований
  • Набор вспомогательных файлов при необходимости
Личные инструменты