Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
НМО экзамен (2).docx
Скачиваний:
0
Добавлен:
24.01.2026
Размер:
22.95 Mб
Скачать

Метод наискорейшего спуска. Овражные задачи Метод наискорейшего спуска

В градиентном методе брали вектор анлиградиента с умножением на некоторое число альфа. Проблема в нахождении альфа. Лучший выбор альфа под значком функции. ТО альфа параметр задачи, чтобы линейный поиск находил самое маленькое значение. Рассматриваем как задачу минимизации.

Метод наискорейшего спуска восходит к Огюстену Луи Коши, который предложил его еще в 1847 году. Суть метода такова: в текущей точке находится направление антиградиента, и ищется точка на линии, направленной вдоль антиградиента, в которой целевая функция принимает наименьшее значение. Для поиска этой точки можно использовать какой-либо известный метод одномерной оптимизации.

Нетрудно показать, что каждое новое направление поиска оказывается перпендикулярно предыдущему. В самом деле, условие минимума вдоль направления argmin f (xk αf (xk))

эквивалентно случаю, когда проекция антиградиента на направление αпоиска равна нулю. Данное условие можно записать через скалярное произведение градиентов в двух последовательных точках ∇f (xk)Tf (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. От чего зависит величина шага метода наискорейшего спуска внутри оврага? Обос- нуйте ответ численным экспериментом и/или математическим доказательством.