Градиентный спуск и метод сопряженных градиентов являются алгоритмами минимизации нелинейных функций, то есть таких функций, как функция Розенброка
f(x1,x2)=(1−x1)2+100(x2−x21)2
или многомерная квадратичная функция (в данном случае с симметричным квадратичным членом)
f(x)=12xTATAx−bTAx.
Оба алгоритма также итеративны и основаны на направлении поиска. В оставшейся части этого поста и будут векторами длины ; и являются скалярами, а верхние индексы обозначают индекс итерации. Градиентный спуск и метод сопряженных градиентов могут быть использованы, чтобы найти значение которое решаетд нxdnα x ∗f(x)αx∗
minf(x)
Оба метода начинаются с начального предположения , а затем вычисляют следующую итерацию, используя функцию видаx0
xi+1=xi+αidi.
Словом, следующее значение найдено, начиная с текущего местоположения и двигаясь в направлении поиска на некоторое расстояние . В обоих методах расстояние для перемещения может быть найдено путем поиска строки (минимизируйте над ). Другие критерии также могут быть применены. Где два метода отличаются в их выборе . Для градиентного метода . Для метода сопряженных градиентов процедура Грамма-Шмидта используется для ортогонализации векторов градиента. В частности, , но тогда равноx i d i α i f ( x i + α i d i ) α i d i d i = - ∇ f ( x i ) d 0 =xxidiαif(xi+αidi)αididi=−∇f(xi)d0=−∇f(x0)d1−∇f(x1) минус проекция этого вектора на такая, что . Каждый последующий вектор градиента ортогонализируется со всеми предыдущими, что приводит к очень хорошим свойствам для приведенной выше квадратичной функции.d0(d1)Td0=0
Приведенная выше квадратичная функция (и связанные с ней формулировки) также является источником обсуждения решения с использованием метода сопряженных градиентов, поскольку минимум этого достигается в точке где .f ( x ) x A x = bAx=bf(x)xAx=b