- •Множество и функция Множество
- •Функция
- •Поле и пространство Поле
- •Пространство
- •Обозначение векторов и скаляров
- •Вопросы для самопроверки
- •Экстремумы. Критические и стационарные точки. Задача оптимизации Экстремумы
- •Локальные и глобальные минимумы
- •Задача оптимизации
- •Вопросы для самопроверки
- •Ряд тейлора и его свойства Градиент и матрица Гессе
- •Ряд Тейлора
- •Квадратичная форма Квадратичная форма и ее виды
- •Собственные числа и собственные вектора
- •Гессиан и квадратичная функция
- •Вопросы для самопроверки
- •Окончание поиска и численное дифференцирование Критерий останова для методов оптимизации
- •Численное дифференцирование
- •Вопросы для самопроверки
- •Методы дихотомии и трехточечного деления Метод дихотомии
- •Теорема
- •Метод трехточечного деления
- •Вопросы для самопроверки
- •Метод золотого сечения
- •Метод Фибоначчи
- •Метод ньютона, метод секущих Метод Ньютона
- •Метод секущих
- •Вопросы для самопроверки
- •Метод Мюллера
- •Методы градиентного спуска Условные обозначения
- •Градиентный методы спуска с постоянным шагом
- •Градиентный метод спуска с убывающим шагом
- •Вопросы для самопроверки
- •Метод наискорейшего спуска. Овражные задачи Метод наискорейшего спуска
- •Вопросы для самопроверки
- •Метод Ньютона
- •Модифицированные ньютоновские методы Демпфированный метод Ньютона с переменным αk
- •Метод Левенберга-Марквардта
- •Вопросы для самопроверки
- •Методы барзилая-борвейна
- •Стабилизированный метод Барзилая-Борвейна
- •Вопросы для самопроверки
- •Условия вульфа
- •Алгоритм 2: Линейный поиск на основе условий Вульфа
- •Вопросы для самопроверки
- •Методы сопряженных градиентов
- •Методы сопряженных градиентов
- •Дополнение
- •Вопросы для самопроверки
- •Метод бфгш с ограниченной памятью Классический метод бфгш и его проблемы
- •Алгоритм экономии памяти для метода l-bfgs
- •Алгоритм l-bfgs
- •Вопросы для самопроверки
- •Идея метода доверительных областей
- •Основные положения
- •Метод доверительных областей
- •Вопросы для самопроверки
- •Метод хука-дживса Описание метода
- •Вопросы для самопроверки
Вопросы для самопроверки
1. В каких случаях метод L-BFGS нецелесообразно использовать вместо обычного ме- тода BFGS?
2. Можно сэкономить память, если вместо полных векторов и матриц взять их фрагмен- ты и оптимизировать задачу по частям. Например, использовать сначала не весь век- тор x, а вектор из первых двух его компонентов (x1, x2)T и соответствующую матрицу размером 2 × 2, потом (x3, x4)T, и так далее. Будет ли такой метод работоспособен и эффективен? Почему?
Идея метода доверительных областей
Пусть в ℬ – некоторой доверительной области (англ. Trust Region) – вычислительно слож- ная функция f(x) может быть аппроксимирована моделью mk(p), где p – новый шаг.
Тогда задача оптимизации ставится в виде
При этом расчет функции f(x) и ее производных необходим только при формировании новой модели, а линейный поиск внутри доверительной области осуществляется с использованием модели mk(p). Таким образом, если вычислительные затраты на расчет f(x) велики, то может быть достигнут значительный прирост производительности процесса оп- тимизации при сохранении его сходимости и точности.
Основные положения
Обычно считают, что доверительная область имеет форму шара радиусом ∆k. Тогда под- задача метода доверительных областей имеет вид
Для квадратичной модели можем записать:
∆k – радиус доверительной области.
На рисунке 1 показана доверительная область радиуса ∆k вокруг точки x0 на функции Химмельблау.
Трехмерные графики функции Химмельблау и ее модели показаны на рисунке 2.
|
|
Радиус новой доверительной области ∆k+1 находится следующим образом. Вначале мы вычисляем соотношение
где Aredk обозначает реальное уменьшение целевой функции (англ. actual reduction), а Predk – предсказанное моделью уменьшение (англ. predicted reduction). В виде формул это вы- глядит следующим образом:
Вычислив pk, мы принимаем решение о том, изменяем или оставляем прежним радиус доверительной области. Если pk ≈ 0, то уменьшаем ∆. Если pk ≈ 1, то увеличиваем ∆. Иначе, когда 0 < pk < 1, радиус ∆ остается неизменным.
Рассмотрим правила обновления новой точки и шага. Пусть задан некоторый малый порог n ∈ 0,1 , максимальный радиус области ∆¯ .
Найдем pk и обновим текущую точку:
Обновим радиус:
Зададимся вопросом, какой метод использовать для решения задачи
Чаще всего предлагаются следующие варианты:
1. Алгоритм Cauchy point – аналогичен наискорейшему спуску при pk ≤ ∆k.
2. Алгоритм Steihaug – аналогичен методу сопряженных градиентов.
3. Алгоритм Dogleg – последовательный поиск по двум линейным направлениям до гра- ницы доверительной области.
Два первых алгоритма нам уже известны. Рассмотрим алгоритм Dogleg. Его графиче- ская интерпретация дана на рисунке 3.
Суть алгоритма Dogleg заключается в нахождении минимума на ломаной линии, первая часть которой – вектор перемещения по градиенту pUk , а вторая – отрезок, соединяющий
концы вектора перемещения по градиенту pUk и ньютоновского вектора pBk.
Н
айдем
длину
первого
отрезка
по
направлению
−gk:
Отрезок ньютоновского перемещения находится из соотношения
Поиск осуществляется по параметрической траектории т ∈ [0; 2]:
Решается задача оптимизации:
Проверяется ограничение:
Новая точка находится по формуле
