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