- •Множество и функция Множество
- •Функция
- •Поле и пространство Поле
- •Пространство
- •Обозначение векторов и скаляров
- •Вопросы для самопроверки
- •Экстремумы. Критические и стационарные точки. Задача оптимизации Экстремумы
- •Локальные и глобальные минимумы
- •Задача оптимизации
- •Вопросы для самопроверки
- •Ряд тейлора и его свойства Градиент и матрица Гессе
- •Ряд Тейлора
- •Квадратичная форма Квадратичная форма и ее виды
- •Собственные числа и собственные вектора
- •Гессиан и квадратичная функция
- •Вопросы для самопроверки
- •Окончание поиска и численное дифференцирование Критерий останова для методов оптимизации
- •Численное дифференцирование
- •Вопросы для самопроверки
- •Методы дихотомии и трехточечного деления Метод дихотомии
- •Теорема
- •Метод трехточечного деления
- •Вопросы для самопроверки
- •Метод золотого сечения
- •Метод Фибоначчи
- •Метод ньютона, метод секущих Метод Ньютона
- •Метод секущих
- •Вопросы для самопроверки
- •Метод Мюллера
- •Методы градиентного спуска Условные обозначения
- •Градиентный методы спуска с постоянным шагом
- •Градиентный метод спуска с убывающим шагом
- •Вопросы для самопроверки
- •Метод наискорейшего спуска. Овражные задачи Метод наискорейшего спуска
- •Вопросы для самопроверки
- •Метод Ньютона
- •Модифицированные ньютоновские методы Демпфированный метод Ньютона с переменным αk
- •Метод Левенберга-Марквардта
- •Вопросы для самопроверки
- •Методы барзилая-борвейна
- •Стабилизированный метод Барзилая-Борвейна
- •Вопросы для самопроверки
- •Условия вульфа
- •Алгоритм 2: Линейный поиск на основе условий Вульфа
- •Вопросы для самопроверки
- •Методы сопряженных градиентов
- •Методы сопряженных градиентов
- •Дополнение
- •Вопросы для самопроверки
- •Метод бфгш с ограниченной памятью Классический метод бфгш и его проблемы
- •Алгоритм экономии памяти для метода l-bfgs
- •Алгоритм l-bfgs
- •Вопросы для самопроверки
- •Идея метода доверительных областей
- •Основные положения
- •Метод доверительных областей
- •Вопросы для самопроверки
- •Метод хука-дживса Описание метода
- •Вопросы для самопроверки
Методы сопряженных градиентов
Полученные в предыдущем разделе соотношения можно использовать в алгоритме опти- мизации, сформулированном ниже.
Алгоритм 1: Алгоритм сопряженных градиентов для квадратичной функции
Данный алгоритм легко обобщается на нелинейный случай, только вместо фиксирован- ного числа итераций используется КОП.
Алгоритм 2: Нелинейный метод сопряженных градиентов
Вместо точного линейного поиска для нахождения αk целесообразно использовать метод приближенного поиска на основе условий Вульфа.
Существует несколько формул для нахождения нового значения βk.
Формула Флетчера-Ривза: |
Формула Полака-Рибьера: |
Формула Хестенеса-Штифеля: |
Формула Дая-Юана: |
|
|
|
|
Важным практическим вопросом является выбор одной из этих формул. Следует руководствоваться следующими рекомендациями.
1. В квадратичном случае все формулы идентичны.
2. В нелинейном случае предпочтение «по умолчанию лучше отдать формуле Полака-Рибьера.
Рассмотрим пример работы метода Полака-Рибьера. Функция Химмельблау, начальная точка x0 = (1, 0)T, точность ε = 10—5. Траектория оптимизации показана на рисунке 4.
Рассмотрим второй пример. Функция Розенброка, начальная точка x0 = (—1, —2)T, точность ε = 10—9. Траектория оптимизации показана на рисунке 5.
|
|
Методы сопряженных градиентов имеют следующие преимущества и недостатки.
1. В квадратичном случае сходится за n итераций, если матрица Гессе положительно- определенная.
2. Желательно, чтобы матрица Гессе обладала диагональным преобладанием: |Hii| ≥
3.
Чувствителен
к малому возмущению, плохо сходится для
матриц с большим числом обусловленности
.
Число
обусловленности
вычисляется
по
формуле
.
Оно
определяет,
насколько задача овражная.
1. Для сферической квадратичной задачи f (x) = Σ x2 I число обусловленности µ = 1.
2. Для сильно овражной задачи модуль числа обусловленности |µ| → ∞.
Зная число обусловленности, можно дать некоторый прогноз скорости сходимости ме- тода оптимизации.
Дополнение
Дадим вывод аналитического выражения для величины шага α в методе наискорейшего спуска при оптимизации квадратичной задачи. Пусть последовательность
xk+1 = xk — αk gk
порождает взаимно перпендикулярные направления на соседних шагах. Отсюда:
Также докажем сходимость метода сопряженных направлений в квадратичном случае за n шагов.
Через n шагов ошибка равна:
Вопросы для самопроверки
1. Покажите, что в квадратичном случае все формулы методов сопряженных градиентов идентичны.
2. Почему в нелинейном случае методы сопряженных градиентов не обязательно сой- дутся за n шагов?
Идея квазиньютоновских методов
Рассмотрим уравнение демпфированного метода Ньютона:
Идея квазиньютоновских методов заключается в том, что мы заменяем матрицу Гессе ∇2f(xk) на ее при- ближение Bk:
или заменяем обратную матрицу Гессе (∇2f(xk))^−1 на ее приближение Hk :
Какие проблемы метода Ньютона мы хотим решить, предлагая новый класс методов? Основные проблемы метода Ньютона следующие:
1. Вычислительная сложность расчета матрицы Гессе ∇2f(xk).
2. Матрица Гессе ∇2f(xk) не всегда положительно-определенная, что приводит к ложному направлению поиска.
Что потребуем от новых методов:
1. Не нужно вычислять матрицу Гессе ∇2f(xk)..
2. Аппроксимация матрицы Гессе Bk всегда (почти всегда) положительно-определенная.
3. Опция: при использовании в алгоритме напрямую приближенной обратной матрицы Гессе Hk = Bk−1 не нужно выполнять обращение матрицы или решенать СЛАУ относительно вектора pk, которое имеет сложность O(n3).
Как
Bk
может
быть
всегда
положительно
определенная?
На
рисунке
1 приведена
в
качестве
примера
ап-
проксимация
f(x)
функцией
Локально, в окрестности точки x0, функция T (x) имеет те же свойства, что и f(x), при этом ее матрица Гессе положительно-определенная, в отличие от f(x).
Вывод квазиньютоновских методов
Покажем, каким образом мы заменяем матрицу Гессе ∇2f(xk) на ее приближение Bk.
Введем обозначения:
Bk+1 должна удовлетворять уравнению секущих:
Поскольку
Поскольку матрица Bk+1 положительно-определенная:
то
должно
выполняться
условие
кривизны
Решение этой задачи - формула метода Дэвидона-Флетчера-Пауэлла (ДФП):
Применяя
формулу
Шермана-Моррисона-Вудбери
к
(1), выведем
матричное
уравнение
для
матрицы
Hk+1
=B(k+1)^-1
Покажем,
как
найти
матрицу
Hk
, заменяющую
матрицу
тем
же
способом,
что
и
Bk.
Hk+1
должна
удовлетворять
уравнению
секущих:
поскольку
Поскольку
матрица
Hk+1
положительно-определенная,
то
должно
также
выполняться
условие
кривизны
Пусть матрица Hk+1 – наиболее близкая из всех возможных матриц к Hk:
Решение этой задачи - формула метода Бройдена-Флетчера-Гольдфарба-Шанно (БФГШ):
Аналогично (1), можно получить и формулу для неинвертированной матрицы Гессе:
В обоих случаях, уравнение квазиньютоновского метода записывается как:
Выбор ak осуществляется с помощью точного линейного поиска
или методом на основе правила Армихо, или методом на основе условий Вульфа.
Квазиньютоновские методы оптимизации
Сформулируем в виде алгоритма метод ДФП, имея в виду, что метод БФГШ будет аналогичен с точностью до формулы для Hk.
Алгоритм 1: Алгоритм ДФП
Рассмотрим пример работы метода ДФП. Функция Химмельблау, начальная точка x0 = (1, 0)⊤, точность e = 10−3. Траектория оптимизации показана на рисунке 2.
|
|
Т
акже
рассмотрим
пример работы метода ДФП на функции
Розенброка. Начальная точка x0
= (−2,
−1)⊤,
точность
e
= 10−3.
Траектория оптимизации показана на
рисунке 3.
В качестве геометрической иллюстрации рассмотрим последней шаг оптимизации функции Розенброка, показав в виде поверхностей графики как самой функции Розенброка, так и ее квадратичной аппроксимации с использованием квазиньютоновской матрицы. Из рисунка 4 видно, что форма аппроксимационного парабо- лоида (изображен более прозрачной поверхностью) локально близка к форме исходной функции.
Зеленым отмечена найденная точка минимума.
Если говорить о том, какой метод из двух рассмотренных более эффективен, то ряд авторов склоняется в пользу метода БФГШ, поэтому он используется значительно чаще.
Вопросы для самопроверки
1. Дайте оценку, насколько более эффективным будет использование алгоритма линейного поиска на основе правила Вульфа по сравнению с методом золотого сечения для поиска ak в методах ДФП и БФГШ.
2. Если в качестве квазиньютоновской матрицы использовать линейную комбинацию матриц, даваемых формулами ДФП и БФГШ, будет ли такой метод работать?
