Методы оптимизации в машинном обучении (курс лекций)/2012/Задание 1
Материал из MachineLearning.
Начало выполнения задания: 28 сентября 2012
Срок сдачи: 11 октября 2012 (четверг), 23:59
Среда реализации задания – MATLAB.
Формулировка задания
Для выполнения задания необходимо:
- Реализовать алгоритмы одномерной минимизации функции без производной: метод золотого сечения, метод парабол и комбинированный метод Брента;
- Протестировать реализованные алгоритмы на следующем наборе задач оптимизации:
- на интервале [-0.5, 0.5];
- на интервале [6, 9.9];
- на интервале ;
- на интервале [0, 1];
- на интервале [0.5, 2.5];
- Протестировать реализованные алгоритмы для задач минимизации многомодальных функций, например, на различных полиномах;
- Реализовать метод кубических аппроксимаций (по значениям функции и производной в двух точках) и комбинированный метод Брента c производной, сравнить их работу с методами оптимизации без производной;
- Реализовать метод Флетчера для неточной одномерной оптимизации, протестировать метод для минимизации двухмерной функции из точки вдоль направлений и , сравнить работу метода Флетчера с точными методами одномерной минимизации;
- Написать отчет в формате PDF с описанием всех проведенных исследований. Данный отчет должен содержать, в частности, количество обращений к оракулу при всех запусках итерационных процессов оптимизации.
Спецификация реализуемых функций
Метод золотого сечения | |||||||
---|---|---|---|---|---|---|---|
[x_min, f_min, status] = min_golden(func, interval, param_name1, param_value1, ...) | |||||||
ВХОД | |||||||
| |||||||
ВЫХОД | |||||||
|
Прототипы функций min_parabolic для метода парабол, min_qubic для кубических аппроксимаций и min_brent для метода Брента выглядят аналогично. В методе Брента добавляется параметр 'use_gradient' с возможными значениями true и false для учета случая оптимизации с производной и без. При отображении в методе Брента необходимо указывать способ выбора очередной точки на каждой итерации (golden/parabolic или bisection/parabolic).
Метод Флетчера | ||||||||
---|---|---|---|---|---|---|---|---|
[alpha_min, f_min, status] = min_fletcher(func, x, d, param_name1, param_value1, ...) | ||||||||
ВХОД | ||||||||
| ||||||||
ВЫХОД | ||||||||
|
Оформление задания
Выполненный вариант задания необходимо прислать письмом по адресу bayesml@gmail.com с темой «[МОМО12] Задание 1. ФИО». Убедительная просьба присылать выполненное задание только один раз с окончательным вариантом. Новые версии будут рассматриваться только в самом крайнем случае. Также убедительная просьба строго придерживаться заданной выше спецификации реализуемых функций. Очень трудно проверять большое количество заданий, если у каждого будет свой формат реализации.
Письмо должно содержать:
- PDF-файл с описанием проведенных исследований;
- Файлы min_golden.m, min_quadratic.m, min_cubic.m, min_brent.m, min_fletcher.m;
- Набор вспомогательных файлов при необходимости.