Квазиньютоновские методы

Материал из testwiki
Перейти к навигации Перейти к поиску

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

Шаблон:TOCright

Описание

Разложим градиент g→(x→k) исходной функции в ряд Тейлора в окрестности точки очередного приближения x→k по степеням следующего шага алгоритма s→k:

g→(x→k+s→k)≈g→(x→k)+G(x→k)s→k

Тогда оценка матрицы Гессе Bk+1 должна удовлетворять равенству:

Bk+1s→k=y→k,

где y→k=g→(x→k+s→k)−g→(x→k)

это условие называют квазиньютоновским.

На каждой итерации с помощью Bk определяется следующее направление поиска p→k, и матрица B обновляется с учётом вновь полученной информации о кривизне:

Bkp→k=−g→(x→k)
Bk+1=Bk+Uk,

где Uk — матрица, характеризующая поправку, вносимую на очередном шаге.

В качестве начального приближения B0 кладут единичную матрицу, таким образом первое направление p→0 будет в точности совпадать с направлением наискорейшего спуска.

Поправка единичного ранга

Один шаг алгоритма даёт информацию о кривизне вдоль одного направления, поэтому ранг матрицы Uk полагают малым, и даже единичным:

Bk+1=Bk+u→v→T

где u→ и v→ некоторые вектора.

Тогда, квазиньютоновское условие примет вид:

(Bk+u→v→T)s→k=y→k
u→(v→Ts→k)=y→k−Bks→k

Полагая, что предыдущая матрица Bk на очередном шаге квазиньютоновскому условию не удовлетворяет (т.е. разность в правой части не равна нулю), и что вектор v→ не ортогонален s→k, получают выражение для u→ и Bk+1:

u→=1v→Ts→k(y→k−Bks→k)
Bk+1=Bk+1v→Ts→k(y→k−Bks→k)v→T

Из соображений симметричности матрицы Гессе, вектор v→ берут коллинеарным u→:

Bk+1=Bk+1(y→k−Bks→k)Ts→k(y→k−Bks→k)(y→k−Bks→k)T

Полученное уравнение называется симметричной формулой ранга один.

Поправки ранга два

Один из способов конструирования поправок ранга два заключается в построении сходящейся последовательности матриц B(j). В качестве начального значения B(0) берут Bk, B(1) вычисляют по формуле:

B(1)=B(0)+1v→Ts→k(y→k−B(0)s→k)v→T

После чего её симметризуют:

B(2)=B(1)+B(1)T2

Однако полученная матрица больше не удовлетворяет квазиньютоновскому условию. Чтобы это исправить, процедуру повторяют. В результате на j-м шаге:

B(2j+1)=B(2j)+1v→Ts→k(y→k−B(2j)s→k)v→T
B(2j+2)=B(2j+1)+B(2j+1)T2

Предел этой последовательности равен:

Bk+1=Bk+1v→Ts→k[(y→k−Bks→k)v→T+v→(y→k−Bks→k)T]−(y→k−Bks→k)Ts→k(v→Ts→k)2v→v→T

При выборе различных v→ (не ортогональных s→k) получаются различные формулы пересчёта матрицы B:

  • v→=y→k−Bks→k приводит к симметричной формуле ранга один;
  • v→=s→k приводит к симметричной формуле Пауэлла — Бройдена (PSB);
  • v→=y→k приводит к симметричной формуле Девидона — Флетчера — Пауэлла (DFP):
Bk+1=Bk−1s→kTBks→kBks→ks→kTBkT+1y→kTs→ky→ky→kT+(s→kTBks→k)ω→kω→kT,

где ω→k=1y→kTs→ky→k−1s→kTBks→kBks→k

Нетрудно проверить, что ω→k ортогонален s→k. Таким образом добавление слагаемого ω→kω→kT не нарушит ни квазиньютоновского условия, ни условия симметричности. Поэтому проводился ряд теоретических исследований, подвергавших последнее слагаемое масштабированию на предмет получения наилучшего приближения. В результате была принята точка зрения, что наилучшим вариантом является отвечающий полному отсутствию последнего слагаемого. Этот вариант пересчёта известен под именем формулы Бройдена — Флетчера — Гольдфарба — Шанно (BFGS):

Bk+1=Bk−1s→kTBks→kBks→ks→kTBkT+1y→kTs→ky→ky→kT

Литература

Шаблон:Методы оптимизации