- •Множество и функция Множество
- •Функция
- •Поле и пространство Поле
- •Пространство
- •Обозначение векторов и скаляров
- •Вопросы для самопроверки
- •Экстремумы. Критические и стационарные точки. Задача оптимизации Экстремумы
- •Локальные и глобальные минимумы
- •Задача оптимизации
- •Вопросы для самопроверки
- •Ряд тейлора и его свойства Градиент и матрица Гессе
- •Ряд Тейлора
- •Квадратичная форма Квадратичная форма и ее виды
- •Собственные числа и собственные вектора
- •Гессиан и квадратичная функция
- •Вопросы для самопроверки
- •Окончание поиска и численное дифференцирование Критерий останова для методов оптимизации
- •Численное дифференцирование
- •Вопросы для самопроверки
- •Методы дихотомии и трехточечного деления Метод дихотомии
- •Теорема
- •Метод трехточечного деления
- •Вопросы для самопроверки
- •Метод золотого сечения
- •Метод Фибоначчи
- •Метод ньютона, метод секущих Метод Ньютона
- •Метод секущих
- •Вопросы для самопроверки
- •Метод Мюллера
- •Методы градиентного спуска Условные обозначения
- •Градиентный методы спуска с постоянным шагом
- •Градиентный метод спуска с убывающим шагом
- •Вопросы для самопроверки
- •Метод наискорейшего спуска. Овражные задачи Метод наискорейшего спуска
- •Вопросы для самопроверки
- •Метод Ньютона
- •Модифицированные ньютоновские методы Демпфированный метод Ньютона с переменным αk
- •Метод Левенберга-Марквардта
- •Вопросы для самопроверки
- •Методы барзилая-борвейна
- •Стабилизированный метод Барзилая-Борвейна
- •Вопросы для самопроверки
- •Условия вульфа
- •Алгоритм 2: Линейный поиск на основе условий Вульфа
- •Вопросы для самопроверки
- •Методы сопряженных градиентов
- •Методы сопряженных градиентов
- •Дополнение
- •Вопросы для самопроверки
- •Метод бфгш с ограниченной памятью Классический метод бфгш и его проблемы
- •Алгоритм экономии памяти для метода l-bfgs
- •Алгоритм l-bfgs
- •Вопросы для самопроверки
- •Идея метода доверительных областей
- •Основные положения
- •Метод доверительных областей
- •Вопросы для самопроверки
- •Метод хука-дживса Описание метода
- •Вопросы для самопроверки
Методы градиентного спуска Условные обозначения
Напомним важное условное обозначение, которое имеет большое значение при переходе к функциям, определенным на многомерных пространствах. Для обозначения вектора частных производных используется оператор набла, опредеяемый в декартовой трехмерной системе координат с единичными векторами →i, →j, →k следующим образом:
Вектор частных производных по всем переменным
Он
совершенно
естественно
обобщается
на
случай
большего
числа
измерений.
Градиент
–
аналог
одномерной
производной
в
случае,
если
функция
имеет
векторный
аргумент:
(там
еще транспонирование) Обобщение
его
на
случай
числа
измерений,
отличного
от
трех,
также
не
вызывает
труда.
Вектор
−∇f
(x),
направленный
в
сторону,
противоположную
градиенту,
называется
антиградиентом.
Градиентный методы спуска с постоянным шагом
И
дея
градиентных
методов
заключается
в
том,
чтобы
использовать
направление
антиградиента
как
направление
перемещения,
а
величину
антиградиента
использовать
для
управления
длиной
шага.
Эвристика,
заложенная
в
этом,
такова:
антиградиент
всегда
направлен
в
сторону
уменьшения
целевой
функции,
а
при
удачном
стечении
обстоятельств
он
указывает
прямо
на
минимум.
Рисунок
1 иллюстрирует
идею
градиентного
метода.
Методами спуска данные методы называются потому, что каждое следующее значение целевой функции должно быть меньше предыдущего.
Алгоритм 1: Градиентные методы спуска. Общая схема
Напомним основные виды критериев окончания поиска:
Уравнение метода градиентного спуска записывается следующим образом:
xk+1 = xk + αk(−∇f (xk)),
где αk – коэффициент (множитель) при векторе антиградиента. Существует несколько способов выбирать его величину.
Простейший случай: установим постоянный шаг спуска. α = const.
Тогда уравнение метода запишется в виде: xk+1 = xk + αk(−∇f (xk)).
Проблемы такого подхода:
1. Выбор шага зависит от задачи.
2. Устойчивость метода не гарантируется, сходимость тоже.
Пример спуска при оптимизации функции Химмельблау с постоянным шагом при α = 0.01, ε = 10—3 показан на рисунке 2.
Е
сли
выбрать
начальный
шаг
α
=
0.03
при
том
же
ε
=
10—3,
получим
ситуацию,
показанную
на рисунке 3.
Р
ис.
3
Поэтому часто используют модификацию метода – метод градиентного спуска с убывающим шагом.
Градиентный метод спуска с убывающим шагом
Чаще всего метод с убывающим шагом реализуется следующим образом. Как только выполнено условие спуска f (xk+1) < f (xk), множитель αk уменьшается в λ раз, где λ > 1 – некоторое действительное число.
Алгоритм 2: Градиентный метод спуска с убывающим шагом
Пусть α = 0.03, ε = 10—3, λ = 1.3. Рисунок 4 иллюстрирует поведение градиентного метода с убывающим шагом.
Преимущества: легко программировать
Если знаем градиент аналитически, сойдется при правильном шаге
Недостатки:
Подобрать шаг, выбрать начальную точку, выбрать стратегию уменьшения шага.
Вопросы для самопроверки
1. Если использовать не антиградиент, а градиент, то какую точку найдет данный метод?
2. Сколько вычислений целевой функции необходимо на одном шаге градиентного ме- тода, если ее аналитическая запись в виде формулы нам неизвестна?
