т.е. это шаг [[метод Ньютона|метода Ньютона]], где <math>H</math> — [[матрица Гессе]].
т.е. это шаг [[метод Ньютона|метода Ньютона]] (метод второго порядка с квадратичной скоростью сходимости), где <math>H</math> — [[матрица Гессе]].
Версия от 10:39, 26 декабря 2024
Метод коллинеарных градиентов[1] — итерационный метод направленного поиска локального экстремума функции , с движением к экстремуму вдоль вектора такого, где градиенты и коллинеарные. Это метод перового порядка (использует только первые производные ) с квадратичной скоростью сходимости. Может применяться к функциям высокой размерности с несколькими локальными экстремумами. МКГ можно отнести к семейству методов Truncated Newton method
На каждой итерации в относительно большой окрестности существует точка , где градиенты и коллинеарные. Направлением на экстремум из точки будет направление . Вектор указывает на максимум или на минимум в зависимости от положения точки . Она может быть спереди или сзади от относительно направления на (см.рисунок). Далее будем рассматривать минимизацию.
Угловые скобки — это скалярное произведение в . Если выпуклая функция в окрестности , то для передней точки получаем число , для задней . Делаем шаг (1). Для строго выпуклой квадратичной функции шаг МКГ
т.е. это шаг метода Ньютона (метод второго порядка с квадратичной скоростью сходимости), где — матрица Гессе.
В общем случае, если имеет переменную выпуклость и возможны седловые точки, то следует контролировать направление минимизации по углу между векторами и . Если , то — это направление максимизации и в (1) следует брать с обратным знаком.
Поиск коллинеарных градиентов
Из невязкиортов градиентов можно найти как корень системы уравнений:
(3)
где знак позволяет одинаково оценивать коллинеарность градиентов по одну или разные стороны от минимума , .
Система (3) решается итерационно (подитерации ) методом сопряжённых градиентов в предположении, что она линейна в окрестности :
(4)
где вектор , , , , произведение матрицы Гессе на находится численным дифференцированием:
(5)
где , — малое положительное число такое, что .
Начальное приближение задаётся под 45° ко всем осям координат длинной :
(6)
Начальный радиус -окрестности точки корректируется:
(7)
Необходимо . Здесь малое положительное число заметно больше машинного эпсилон.
Подитерации завершаются при выполнении хотя бы одного из условий:
— достигнута точность;
— прекратилась сходимость;
— избыточность подитераций.
Алгоритм выбора направления минимизации
Параметры: .
Входные данные: .
. Если задаём из (7).
Находим из (6).
Вычисляем и находим из (3) при .
Если или , или , или { и }, то принимаем , возвращаем , , стоп.
Если , задаём , иначе .
Вычисляем .
Находим шаговый множитель для подитераций:
запоминаем , , , , ;
задаём , вычисляем , и находим из (5), присваиваем ;
если , тогда , возвращаемся к шагу 7.2;
восстанавливаем , , , , ;
находим .
Делаем подитерацию из (4).
, переходим к шагу 3.
Параметр . Для функций без седловых точек рекомендуется , . Для «обхода» седловых точек рекомендуется , .
Во всех демонстрациях МКГ показывает сходимость не хуже, а иногда и лучше, метода Ньютона второго порядка с квадратичной скоростью сходимости.
Тестовая функция «повёрнутый эллипсоид»
На рисунке для заданы три чёрные стартовые точки . Серые точки — подитерации с (показано пунктиром, завышено для демонстрации). Параметры , . Для всех потребовалась одна итерация и подитераций не более двух.
При (параметр ) с начальной точкой МКГ достиг с точностью 1 % за 3 итерации и 754 вычисления и . Другие методы первого порядка: Квазиньютоновский BFGS (работа с матрицами) потребовал 66 итерации и 788 вычислений; сопряжённых градиентов (Fletcher-Reeves) — 274 итерации и 2236 вычислений. Метод Ньютона второго порядка — 1 итерация. Конечно-разностный метод Ньютона (первого порядка) — 1 итерация и 1001 вычислений.
Параметры те же, кроме . Траектория спуска МКГ полностью совпадает с методом Ньютона. На рисунке синяя начальная точка , красная — . В каждой точке нарисованы орты градиентов.
МКГ является очень экономичным по количеству вычислений и . Благодаря формуле (2), он не требует затратных вычислений шагового множителя посредством линейного поиска (метод золотого сечения и т. п.).