Алгоритм Левенберга — Марквардта

Материал из testwiki
Версия от 02:01, 28 июля 2024; imported>Железный капут (откат правок 92.38.77.140 по запросу MBH)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигации Перейти к поиску

Алгоритм Левенберга — Марквардта — метод оптимизации, направленный на решение задач о наименьших квадратах. Является альтернативой методу Ньютона. Может рассматриваться как комбинация последнего с методом градиентного спуска или как метод доверительных областей[1] (Марквард, стр 492). Алгоритм был сформулирован независимо Левенбергом (1944) и Марквардтом (1963).

Постановка задачи

Пусть имеется задача о наименьших квадратах вида:

F(x)=f(x)2=i=1mfi2(x)=i=1m(φi(x)i)2min.

Эта задача отличается особым видом градиента и матрицы Гессе:

F(x)=2JT(x)f(x),
H(x)=2JT(x)J(x)+2Q(x),Q(x)=i=1mfi(x)Hi(x),

где J(x) — матрица Якоби вектор-функции f(x), Hi(x) — матрица Гессе для её компоненты fi(x).

Тогда согласно методу Гаусса — Ньютона в предположении доминирующей роли слагаемого JT(x)J(x) над Q(x) (то есть если норма f(x) значительно меньше максимального собственного значения матрицы JT(x)J(x)) очередное направление p определяется из системы:

JT(x)J(x)p=JT(x)f(x).

Алгоритм

Направление поиска Левенберга — Марквардта определяется из системы:

[JT(xk)J(xk)+λkI]pk=JT(xk)f(xk),

где λk — некоторая неотрицательная константа, своя для каждого шага, I — единичная матрица.

xk+1=xk+pk.

Выбор λk можно осуществлять, делая его достаточным для монотонного спуска по функции невязки F(x), то есть увеличивать параметр до тех пор, пока не будет достигнуто условие F(xk+1)<F(xk). Также параметр λk можно устанавливать исходя из отношения между фактическими изменениями функции f(x), достигнутыми в результате пробных шагов, и ожидаемыми величинами этих изменений при интерполяции. Подобную процедуру построил Флетчер.

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

pk=argminpΔJ(xk)p+f(xk),

где Δ — параметр, связанный с λk.

Комбинация градиентного спуска и метода Гаусса — Ньютона

Нетрудно заметить, что при λk=0 алгоритм вырождается в метод Гаусса — Ньютона, а при достаточно большом λk направление pk незначительно отличается от направления наискорейшего спуска. Таким образом, при правильном подборе параметра λk добиваются монотонного убывания минимизируемой функции. Неравенство F(xk+1)<F(xk) всегда можно обеспечить, выбрав λk достаточно большим. Однако при этом теряется информация о кривизне, заключённая в первом слагаемом, и проявляются все недостатки метода градиентного спуска: в местах пологого наклона антиградиент мал, а в местах с крутым наклоном — велик, в то время как в первом случае желательно делать большие шаги, а во втором — маленькие. Так, с одной стороны, если есть длинная и узкая впадина на поверхности, определяемой функцией невязки F(x), то компоненты градиента вдоль основания впадины — малы, а в направлении к стенкам — велики, в то время как идти желательно по основанию оврага. Способ учёта информации о кривизне предложил Марквардт. Он заметил, что если заменить единичную матрицу на диагональ матрицы Гессе, то можно достичь увеличения шага вдоль пологих участков и уменьшения вдоль крутых спусков:

{JT(xk)J(xk)+λkdiag[JT(xk)J(xk)]}pk=JT(xk)f(xk).

Метод доверительных интервалов

При рассмотрении алгоритма Левенберга — Марквардта как метода доверительных интервалов с помощью эвристик выбирается интервал Δ, на котором строится приближение функции f(x):

m(p)=f(xk)+J(xk)p+12pTHp.

При этом шаг pk определяется исходя из задачи минимизации:

m(p)minpΔ.

Примечания

Шаблон:Примечания

Литература

Ссылки

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