- •Множество и функция Множество
- •Функция
- •Поле и пространство Поле
- •Пространство
- •Обозначение векторов и скаляров
- •Вопросы для самопроверки
- •Экстремумы. Критические и стационарные точки. Задача оптимизации Экстремумы
- •Локальные и глобальные минимумы
- •Задача оптимизации
- •Вопросы для самопроверки
- •Ряд тейлора и его свойства Градиент и матрица Гессе
- •Ряд Тейлора
- •Квадратичная форма Квадратичная форма и ее виды
- •Собственные числа и собственные вектора
- •Гессиан и квадратичная функция
- •Вопросы для самопроверки
- •Окончание поиска и численное дифференцирование Критерий останова для методов оптимизации
- •Численное дифференцирование
- •Вопросы для самопроверки
- •Методы дихотомии и трехточечного деления Метод дихотомии
- •Теорема
- •Метод трехточечного деления
- •Вопросы для самопроверки
- •Метод золотого сечения
- •Метод Фибоначчи
- •Метод ньютона, метод секущих Метод Ньютона
- •Метод секущих
- •Вопросы для самопроверки
- •Метод Мюллера
- •Методы градиентного спуска Условные обозначения
- •Градиентный методы спуска с постоянным шагом
- •Градиентный метод спуска с убывающим шагом
- •Вопросы для самопроверки
- •Метод наискорейшего спуска. Овражные задачи Метод наискорейшего спуска
- •Вопросы для самопроверки
- •Метод Ньютона
- •Модифицированные ньютоновские методы Демпфированный метод Ньютона с переменным αk
- •Метод Левенберга-Марквардта
- •Вопросы для самопроверки
- •Методы барзилая-борвейна
- •Стабилизированный метод Барзилая-Борвейна
- •Вопросы для самопроверки
- •Условия вульфа
- •Алгоритм 2: Линейный поиск на основе условий Вульфа
- •Вопросы для самопроверки
- •Методы сопряженных градиентов
- •Методы сопряженных градиентов
- •Дополнение
- •Вопросы для самопроверки
- •Метод бфгш с ограниченной памятью Классический метод бфгш и его проблемы
- •Алгоритм экономии памяти для метода l-bfgs
- •Алгоритм l-bfgs
- •Вопросы для самопроверки
- •Идея метода доверительных областей
- •Основные положения
- •Метод доверительных областей
- •Вопросы для самопроверки
- •Метод хука-дживса Описание метода
- •Вопросы для самопроверки
Метод наискорейшего спуска. Овражные задачи Метод наискорейшего спуска
В
градиентном методе брали вектор
анлиградиента с умножением на некоторое
число альфа. Проблема в нахождении
альфа. Лучший выбор альфа под значком
функции. ТО альфа параметр задачи, чтобы
линейный поиск находил самое маленькое
значение. Рассматриваем как задачу
минимизации.
Метод наискорейшего спуска восходит к Огюстену Луи Коши, который предложил его еще в 1847 году. Суть метода такова: в текущей точке находится направление антиградиента, и ищется точка на линии, направленной вдоль антиградиента, в которой целевая функция принимает наименьшее значение. Для поиска этой точки можно использовать какой-либо известный метод одномерной оптимизации.
Нетрудно показать, что каждое новое направление поиска оказывается перпендикулярно предыдущему. В самом деле, условие минимума вдоль направления argmin f (xk − α∇f (xk))
эквивалентно случаю, когда проекция антиградиента на направление αпоиска равна нулю. Данное условие можно записать через скалярное произведение градиентов в двух последовательных точках ∇f (xk)T∇f (xk+1) = 0.
Алгоритм 1: Метод наискорейшего спуска
П
ример
поиска
минимума
функции
Химмельблау
методом
наискорейшего
спуска
при
точности ε
=
10—3
показан
на рисунке 2.
Проблемы метода наискорейшего спуска:
1. Градиент не обязательно направлен в сторону минимума.
2. Метод легко «промахивается” мимо минимума, что приводит к избыточному числу итераций.
В качестве примера функции, минимум которой сложно найти методом наискорейшего спуска, возьмем функцию Розенброка – известную тестовую функцию, задаваемую уравнением:
f (x, y) = (1 − x)2 + 100(y − x2)2.
Ее график показан на рисунке 3. Ее минимум расположен в точке (1, 1)T. Обратите внимание на масштаб по оси z.
П
опытаемся
найти
ее
минимум,
задав
точность
ε
=
10—5.
Результат
работы
метода
после
1000
итераций
показан
на
рисунке
4. После
первых
трех
больших
шагов
метод
крайне
сильно замедлился.
Приблизив последнюю точку, увидим, что метод не смог найти минимум за 1000 итера- ций – см. рисунок 5.
|
|
Данная ситуация оказалась возможной потому, что функция Розенброка – овражная. Овражная функция имеет график, напоминающий узкий овраг с крутыми стенками. Поскольку метод наискорейшего спуска порождает зигзагообразную траекторию, представляющую собой последовательность взаимно перпендикулярных отрезков, то при попадании в овраг он не способен делать большие шаги, и очень сильно замедляется. Вид траектории при оптимизации овражной задачи показан на рисунке 6.
При оптимизации овражной задачи многие методы страдают от той же самой проблемы: они совершают небольшие шаги в узком коридоре и работают крайне медленно.
Вопросы для самопроверки
1. Можно ли улучшить метод наискорейшего спуска, чтобы он быстро справился с функ- цией Розенброка?
2. От чего зависит величина шага метода наискорейшего спуска внутри оврага? Обос- нуйте ответ численным экспериментом и/или математическим доказательством.
