Градиентный спуск и сопряженный градиентный спуск


11

Для проекта я должен реализовать эти два метода и сравнить, как они выполняют разные функции.

Похоже, метод сопряженных градиентов предназначен для решения систем линейных уравнений

Ax=b

Где - матрица размером n на n, которая является симметричной, положительно определенной и действительной.A

С другой стороны, когда я читаю о градиентном спуске, я вижу пример функции Розенброка , которая

f(x1,x2)=(1x1)2+100(x2x12)2

Как я понимаю, я не могу решить это с помощью метода сопряженных градиентов. Или я что-то пропустил?

Ответы:


14

Градиентный спуск и метод сопряженных градиентов являются алгоритмами минимизации нелинейных функций, то есть таких функций, как функция Розенброка

f(x1,x2)=(1x1)2+100(x2x12)2

или многомерная квадратичная функция (в данном случае с симметричным квадратичным членом)

f(x)=12xTATAxbTAx.

Оба алгоритма также итеративны и основаны на направлении поиска. В оставшейся части этого поста и будут векторами длины ; и являются скалярами, а верхние индексы обозначают индекс итерации. Градиентный спуск и метод сопряженных градиентов могут быть использованы, чтобы найти значение которое решаетд н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)d1f(x1) минус проекция этого вектора на такая, что . Каждый последующий вектор градиента ортогонализируется со всеми предыдущими, что приводит к очень хорошим свойствам для приведенной выше квадратичной функции.d0(d1)Td0=0

Приведенная выше квадратичная функция (и связанные с ней формулировки) также является источником обсуждения решения с использованием метода сопряженных градиентов, поскольку минимум этого достигается в точке где .f ( x ) x A x = bAx=bf(x)xAx=b


9

В этом контексте оба метода могут рассматриваться как проблемы минимизации функции: Когда симметричен, то минимизируется, когда .

ϕ(x)=12xTAxxTb
AϕAx=b

Градиентный спуск - это метод, который итеративно ищет минимизатор, смотря в направлении градиента. Сопряженный градиент похож, но направления поиска также должны быть ортогональны друг другу в том смысле, что .piTApj=0i,j

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.