Введение

Алгоритм, используемый для решения нелинейных задач наименьших квадратов. В математике и вычислительной технике алгоритм Левенберга — Марквардта (LMA или просто LM), также известный как метод демпфированных наименьших квадратов (DLS), применяется для решения нелинейных задач наименьших квадратов. Эти задачи минимизации особенно часто возникают при аппроксимации кривых методом наименьших квадратов. LMA представляет собой интерполяцию между алгоритмом Гаусса — Ньютона (GNA) и методом градиентного спуска. LMA более устойчив, чем GNA, что означает, что во многих случаях он находит решение, даже если начальная точка находится далеко от окончательного минимума. Для хорошо обусловленных функций и разумных начальных параметров LMA, как правило, работает медленнее, чем GNA. LMA также можно рассматривать как метод Гаусса — Ньютона с использованием подхода доверительной области. Алгоритм был впервые опубликован в 1944 году Кеннетом Левенбергом, однако, как и другие итеративные алгоритмы оптимизации, LMA находит только локальный минимум, который не обязательно является глобальным минимумом.

Выбор параметра амортизации

Различные более или менее эвристические аргументы были выдвинуты в пользу наилучшего выбора параметра демпфирования \lambda. Существуют теоретические аргументы, показывающие, почему некоторые из этих вариантов гарантируют локальную сходимость алгоритма; однако, эти варианты могут привести к тому, что глобальная сходимость алгоритма будет страдать от нежелательных свойств метода наискорейшего спуска, в частности, очень медленной сходимости вблизи оптимума. Абсолютные значения любого выбора зависят от того, насколько хорошо масштабирована исходная задача. Маркардт рекомендовал начинать со значения \lambda_0 и коэффициента \nu > 1. Изначально устанавливается \lambda = \lambda_0 и вычисляется остаточная сумма квадратов после одного шага от начальной точки с коэффициентом демпфирования \lambda, а затем с \lambda_0 / \nu. Если оба этих значения хуже начальной точки, то параметр демпфирования увеличивается последовательным умножением на \nu, пока не будет найдена лучшая точка с новым коэффициентом демпфирования \lambda_0\nu^k для некоторого k.

Если использование коэффициента демпфирования \lambda / \nu приводит к уменьшению квадрата невязки, то это принимается как новое значение \lambda (и новое оптимальное положение принимается как полученное с этим коэффициентом демпфирования), и процесс продолжается; если использование \lambda / \nu привело к ухудшению невязки, но использование \lambda привело к улучшению, то \lambda остается неизменным, и новый оптимальный показатель принимается как значение, полученное с \lambda в качестве коэффициента демпфирования. Эффективная стратегия контроля параметра демпфирования, называемая «отложенным вознаграждением», заключается в увеличении параметра на небольшую величину при каждом шаге вверх и уменьшении на большую величину при каждом шаге вниз. Идея этой стратегии состоит в том, чтобы избежать слишком быстрого спуска в начале оптимизации, тем самым ограничивая шаги, доступные на будущих итерациях, и, следовательно, замедляя сходимость. Поскольку вторая производная может быть довольно сложным выражением, может быть удобно заменить ее приближением конечных разностей, где и уже были вычислены алгоритмом, поэтому требуется только одна дополнительная оценка функции для вычисления. Выбор шага конечных разностей может повлиять на устойчивость алгоритма, и значение около 0.1 обычно является разумным в общем случае.