- •Множество и функция Множество
- •Функция
- •Поле и пространство Поле
- •Пространство
- •Обозначение векторов и скаляров
- •Вопросы для самопроверки
- •Экстремумы. Критические и стационарные точки. Задача оптимизации Экстремумы
- •Локальные и глобальные минимумы
- •Задача оптимизации
- •Вопросы для самопроверки
- •Ряд тейлора и его свойства Градиент и матрица Гессе
- •Ряд Тейлора
- •Квадратичная форма Квадратичная форма и ее виды
- •Собственные числа и собственные вектора
- •Гессиан и квадратичная функция
- •Вопросы для самопроверки
- •Окончание поиска и численное дифференцирование Критерий останова для методов оптимизации
- •Численное дифференцирование
- •Вопросы для самопроверки
- •Методы дихотомии и трехточечного деления Метод дихотомии
- •Теорема
- •Метод трехточечного деления
- •Вопросы для самопроверки
- •Метод золотого сечения
- •Метод Фибоначчи
- •Метод ньютона, метод секущих Метод Ньютона
- •Метод секущих
- •Вопросы для самопроверки
- •Метод Мюллера
- •Методы градиентного спуска Условные обозначения
- •Градиентный методы спуска с постоянным шагом
- •Градиентный метод спуска с убывающим шагом
- •Вопросы для самопроверки
- •Метод наискорейшего спуска. Овражные задачи Метод наискорейшего спуска
- •Вопросы для самопроверки
- •Метод Ньютона
- •Модифицированные ньютоновские методы Демпфированный метод Ньютона с переменным αk
- •Метод Левенберга-Марквардта
- •Вопросы для самопроверки
- •Методы барзилая-борвейна
- •Стабилизированный метод Барзилая-Борвейна
- •Вопросы для самопроверки
- •Условия вульфа
- •Алгоритм 2: Линейный поиск на основе условий Вульфа
- •Вопросы для самопроверки
- •Методы сопряженных градиентов
- •Методы сопряженных градиентов
- •Дополнение
- •Вопросы для самопроверки
- •Метод бфгш с ограниченной памятью Классический метод бфгш и его проблемы
- •Алгоритм экономии памяти для метода l-bfgs
- •Алгоритм l-bfgs
- •Вопросы для самопроверки
- •Идея метода доверительных областей
- •Основные положения
- •Метод доверительных областей
- •Вопросы для самопроверки
- •Метод хука-дживса Описание метода
- •Вопросы для самопроверки
Численное дифференцирование
Чтобы понять, зачем нам нужно численное дифференцирование в методах оптимизации, рассмотрим классификацию этих методов.
Методы оптимизации делятся на:
1. Методы нулевого порядка – не используют производные целевой функции.
2. Методы первого порядка – используют первую производную f ′(x) или градиент ∇f (x).
3. Методы второго порядка – используют вторую производную f ′′(x) или матрицу Гессе ∇2f (x).
Нахождение производных может быть:
1. Аналитическое (с помощью формул), в т.ч. автоматическое (с помощью средств символьной алгебры).
2. Численное – менее предпочтительно.
В ряде практических случаев без численного дифференцирования не обойтись, поэто- му следует рассмотреть этот вопрос. Формулы для функции скалярного переменого вам, скорее всего, известны.
Формула
1-го порядка
точности
для
f
′(x):
где δ – некоторое число. Выбор этого числа – нетривиальная задача. Для достижения наибольшей точности следует выбирать δ не очень большим, но и не слишком маленьким. Типичным значением можно считать δ = 10−6.
Формула 2-го порядка точности для f ′(x):
Формула 1-го порядка точности f ′′(x):
Эти формулы легко могут быть обобщены для функции векторного переменого. Аппроксимация i-й компоненты градиента формулой 1-го порядка точности такова: е - единичный вектор по определенной координате.
Аппроксимация i-й компоненты градиента формулой 2-го порядка точности имеет вид:
Сложность вычисляения растет с ростом размерности.
Аппроксимация компоненты матрицы Гессе под номером (i, j) формулой 1-го порядка точности имеет вид:
Для нахождения матрицы Гессе таким способом требуется n(n + 1) / 2 дополнительных вычислений целевой функции ввиду ее симметричности, если уже известны компоненты f (x + δei) для вычисления градиента и значение целевой функции f (x), или всего (n + 1) / 2 + n + 1 операция.
Вопросы для самопроверки
1. Почему метод оптимизации в идеальном случае порождает фундаментальную после- довательность?
2. Пусть имеется некоторый метод оптимизации A и некоторая функция f (x). В составе КОП этого метода нет ограничения на максимальное число итерций. Существует ли алгоритм, который, имея на входе A и f (x), а также стартовую точку x0 и заданную точность ε, определит, зациклится ли метод, или остановится по достижении КОП? Сложность алгоритма может быть любая.
Методы дихотомии и трехточечного деления Метод дихотомии
Найдем решение одномерной задачи оптимизации
x∗ = arg min f (x),
x∈[a;b]
где интервал [a; b] задан, функция f (x) унимодальна на данном интервале.
Метод дихотомии (средней точки) заключается в последовательном делении интервала пополам и выборе нужной половины интервала для последующей оптимизации в соответствии со знаком производной в центральной точке.
Метод основан на теореме Больцано-Коши:
Теорема
Пусть непрерывная функция g(x) ∈ классу непрерывных функций C([a, b]), тогда, если sign g(a) ̸= sign g(b), то∃c ∈ [a, b] : g(c) = 0.
Следствие Если g(x) = f ′(x), и выполнены условия теоремы, то функция f (x) имеет экстремум на интервале [a, b].
Метод дихотомии: алгоритм Алгоритм 1: Метод дихотомии
В качестве примера рассмотрим оптимизацию функции
f (x) = 2x2 − 9x − 31
на интервале [−2; 10]. На рисунке 1 показан пример работы этого метода.
