Метод коллинеарных градиентов

Материал из Википедии — свободной энциклопедии
Это старая версия этой страницы, сохранённая CalculatorOpt (обсуждение | вклад) в 11:40, 26 декабря 2024 (Тестовая функция «повёрнутый эллипсоид»). Она может серьёзно отличаться от текущей версии.
Перейти к навигации Перейти к поиску

Метод коллинеарных градиентов[1] — итерационный метод направленного поиска локального экстремума функции , с движением к экстремуму вдоль вектора такого, где градиенты и коллинеарные. Это метод перового порядка (использует только первые производные ) с квадратичной скоростью сходимости. Может применяться к функциям высокой размерности с несколькими локальными экстремумами. МКГ можно отнести к семейству методов Truncated Newton method

Коллинеарные векторы и с направлением минимизации для выпуклой функции,

Идея метода

На каждой итерации в относительно большой окрестности существует точка , где градиенты и коллинеарные. Направлением на экстремум из точки будет направление . Вектор указывает на максимум или на минимум в зависимости от положения точки . Она может быть спереди или сзади от относительно направления на (см.рисунок). Далее будем рассматривать минимизацию.


Очередная итерация МКГ:

(1)

где оптимальное находится аналитически из предположения квадратичности одномерной функции :

(2)

Угловые скобки — это скалярное произведение в . Если выпуклая функция в окрестности , то для передней точки получаем число , для задней . Делаем шаг (1). Для строго выпуклой квадратичной функции шаг МКГ

т.е. это шаг метода Ньютона (метод второго порядка с квадратичной скоростью сходимости), где матрица Гессе.


В общем случае, если имеет переменную выпуклость и возможны седловые точки, то следует контролировать направление минимизации по углу между векторами и . Если , то  — это направление максимизации и в (1) следует брать с обратным знаком.

Поиск коллинеарных градиентов

Из невязки ортов градиентов можно найти как корень системы уравнений:

(3)

где знак позволяет одинаково оценивать коллинеарность градиентов по одну или разные стороны от минимума , .


Система (3) решается итерационно (подитерации ) методом сопряжённых градиентов в предположении, что она линейна в окрестности :

(4)

где вектор , , , , произведение матрицы Гессе на находится численным дифференцированием:

(5)

где ,  — малое положительное число такое, что .


Начальное приближение задаётся под 45° ко всем осям координат длинной :

(6)

Начальный радиус -окрестности точки корректируется:

(7)

Необходимо . Здесь малое положительное число заметно больше машинного эпсилон.


Подитерации завершаются при выполнении хотя бы одного из условий:

  1.  — достигнута точность;
  2.  — прекратилась сходимость;
  3.  — избыточность подитераций.


Алгоритм выбора направления минимизации

  • Параметры: .
  • Входные данные: .
  1. . Если задаём из (7).
  2. Находим из (6).
  3. Вычисляем и находим из (3) при .
  4. Если или , или , или { и }, то принимаем , возвращаем , , стоп .
  5. Если , задаём , иначе .
  6. Вычисляем .
  7. Находим шаговый множитель для подитераций:
    1. запоминаем , , , , ;
    2. задаём , вычисляем , и находим из (5), присваиваем ;
    3. если , тогда , возвращаемся к шагу 7.2;
    4. восстанавливаем , , , , ;
    5. находим .
  8. Делаем подитерацию из (4).
  9. , переходим к шагу 3.


Параметр . Для функций без седловых точек рекомендуется , . Для «обхода» седловых точек рекомендуется , .

Описанный алгоритм позволяет приблизительно найти коллинеарные градиенты из системы уравнений (3). При этом направление в МКГ (1) будет приблизительным направлением Ньютона (truncated Newton method).

Демонстрации[2]

Во всех демонстрациях МКГ показывает сходимость не хуже, а иногда и лучше (для функций переменной выпуклости), чем метод Ньютона.

Тестовая функция «повёрнутый эллипсоид»

Строго выпуклая квадратичная функция:

Минимизация МКГ,

На рисунке для заданы три чёрные стартовые точки . Серые точки — подитерации с (показано пунктиром, завышено для демонстрации). Параметры , . Для всех потребовалась одна итерация и подитераций не более двух.


При (параметр ) с начальной точкой МКГ достиг с точностью 1 % за 3 итерации и 754 вычисления и . Другие методы первого порядка: Квазиньютоновский BFGS (работа с матрицами) потребовал 66 итерации и 788 вычислений; сопряжённых градиентов (Fletcher-Reeves) — 274 итерации и 2236 вычислений; конечно-разностный метод Ньютона — 1 итерация и 1001 вычислений. Метод Ньютона второго порядка — 1 итерация.


При высокой размерности погрешности реализации условия коллинеарности (3) стали заметными и МКГ, по сравнению с методом Ньютона, потребовал более одной итерации.

Минимизация МКГ: 3 итерации и 16 вычислений и

Тестовая функция Розенброка

Параметры те же, кроме . Траектория спуска МКГ полностью совпадает с методом Ньютона. На рисунке синяя начальная точка , красная — . В каждой точке нарисованы орты градиентов.

Тестовая функция Химмельблау

Параметры , .

Минимизация МКГ: 7 итераций и 22 вычисления и . Красные линии — .
Минимизация методом Ньютона: 9 итераций ()
Метод сопряжённых градиентов (Fletcher-Reeves): 9 итерации и 62 вычисления и
Квазиньютоновский BFGS: 6 итераций и 55 вычислений и . Красная линия (нарушение условия кривизны) — метод наискорейшего спуска.


МКГ является очень экономичным по количеству вычислений и . Благодаря формуле (2), он не требует затратных вычислений шагового множителя посредством линейного поиска (метод золотого сечения и т. п.).

Примечания

  1. Tolstykh V.K. Collinear Gradients Method for Minimizing Smooth Functions // Oper. Res. Forum. — 2023. — Vol. 4. — No. 20. — doi: s43069-023-00193-9
  2. Tolstykh V.K. Демонстрационное Windows-приложение Optimization