Skip to end of metadata
Go to start of metadata

Тема: Оптимизация

Для сдачи: 3 вопроса + 3 учебные задачи

Ограничения: 6 человек на 1 вопрос/задачу

Вопросы:

  1. Почему прямой перебор для поиска оптимума возможен только для одномерных задач?
  2. В чем суть метода Нелдера-Мида?
  3. Чем лучше и хуже методы, использующую вторую производную (метод Ньютона) методов, не использующих производных (симплекс методы)?
  4. Всегда ли градиентные методы достигают глобального минимума? Какие есть способы обхода локальных минимумов и как проверить, что минимум глобальный?
  5. Вы поставили в задаче границу, например, из физики, оказалось, что оптимум находится вблизи границы. Какие могут возникнуть особенности?

Задачи:

  1. Сгенерируйте данные с помощью функции {\cos(30x) + \sin(10x) + 0.3x^2} и гаусса с отклонением 0.2 и найдите глобальный минимум, реализовав какой-нибудь алгоритм самостоятельно. Так как это одномерная задача, то можно получить точный минимум, сравните вашу оценку с "реальным" минимумом.
  2. Возьмите любую функцию из списка, кроме функций Розенброка и сферы, и попытайтесь глобальный минимум, использовав любых 3 алгоритма, можно использовать scipy.optimize. Сравните результаты.
  3. Сгенерируйте данные с помощью некоторого полинома (выберете его сами) и гаусса с отклонением, каким хотите. Реализуйте метод наименьших квадратов, для функции фита возьмите полином другой степени. Для оптимизации используйте симплекс метод и любой стохастический. Постройте графики ошибок.
  4. Не всегда можно подобрать функцию для фитирования, в таких случаях можно ввести некоторый базис и оптимизировать его веса. Возьмите данные и используйте базис кубических B-сплайнов. Какую метрику стоит использовать при сравнении распределений? Как результат зависит от числа базисных функций? Для сравнения можете попробовать зафитировать данные с помощью суммы трех гауссов с разными средними, сигмами и нормировками.
  • No labels