Алгоритмы сопряженных градиентов
В алгоритме наискорейшего спуска на каждом этапе поиска используется только текущая информация о функции и градиенте . В алгоритмах сопряженных градиентов используется информация о поиске на предыдущих этапах спуска.
Направление поиска на текущем шаге строится как линейная комбинация наискорейшего спуска на данном шаге и направлений спуска на предыдущих шагах . Веса в линейной комбинации выбираются таким образом, чтобы сделать эти направления сопряженными. В этом случае квадратичная функция будет минимизироваться за шагов алгоритма.
При выборе весов используется только текущий градиент и градиент в предыдущей точке.
В начальной точке направление спуска :
, (1)
где выбирается из соображений минимальности целевой функции в данном направлении . Новое направление поиска
, (2)
где выбирается так, чтобы сделать направления и сопряженными по отношению к матрице :
.
Полностью алгоритм описывается следующей последовательностью действий:
В точке начального приближения вычисляется .
На -м шаге с помощью одномерного поиска в направлении определяется минимум функции, то есть решается задача
и находится очередное приближение .
Вычисляется и .
Определяется направление .
Алгоритм заканчивается, если , где – заданная величина.
После итераций (), если не произошел останов алгоритма, процедура циклически повторяется с заменой на и возвратом на первый пункт алгоритма. Если исходная функция является квадратичной, то ()-е приближение даст точку экстремума данной функции.
Описанный алгоритм с построением по формулам (6) соответствует методу сопряженных градиентов Флетчера-Ривса.
. (6)
В модификации Полака-Рибьера (Пшеничного) метод сопряженных градиентов отличается только вычислением
. (7)
В случае квадратичных функций обе модификации примерно эквивалентны, однако в модификации Полака-Рибьера алгоритм иногда оказывается несколько эффективнее.