Алгоритм, используемый для решения нелинейных задач наименьших квадратов
В математике и вычислениях, алгоритм Левенберга – Марквардта (LMA или просто LM ), также известный как затухающие наименьшие квадраты (DLS ), используется для решения нелинейных задач наименьших квадратов. Эти проблемы минимизации возникают, в частности, при наименьших квадратах аппроксимации кривой.
LMA используется во многих программных приложениях для решения общих задач аппроксимации кривой. Однако, как и во многих алгоритмах подгонки, LMA находит только локальный минимум, который не обязательно является глобальным минимумом. LMA интерполирует между алгоритмом Гаусса – Ньютона (GNA) и методом градиентного спуска. LMA более надежен, чем GNA, что означает, что во многих случаях он находит решение, даже если оно начинается очень далеко от конечного минимума. Для корректных функций и разумных начальных параметров LMA, как правило, немного медленнее, чем GNA. LMA также можно рассматривать как Гаусс – Ньютон, используя подход доверительной области.
Алгоритм был впервые опубликован в 1944 году Кеннетом Левенбергом, когда он работал в Франкфордском армейском арсенале. Он был повторно открыт в 1963 году Дональдом Марквардтом, который работал статистиком в DuPont, и независимо Жираром, Винном и Моррисоном.
Содержание
- 1 Проблема
- 2 Решение
- 2.1 Выбор параметра демпфирования
- 2.2 Геодезическое ускорение
- 3 Пример
- 4 См. Также
- 5 Ссылки
- 6 Дополнительная литература
- 7 Внешние ссылки
Проблема
Основное применение алгоритма Левенберга – Марквардта - задача аппроксимации кривой наименьших квадратов: задан набор эмпирические пары независимых и зависимых переменных, найдите параметры модельной кривой так, чтобы сумма квадратов отклонений была свернуто:
- который предполагается непустым.
Решение
Как и другие алгоритмы числовой минимизации, алгоритм Левенберга – Марквардта является итеративной процедурой. Чтобы начать минимизацию, пользователь должен предоставить начальное предположение для вектора параметров . В случаях с одним минимумом используется неинформированное стандартное предположение, например будут работать нормально; в случаях с множественными минимумами алгоритм сходится к глобальному минимуму только в том случае, если первоначальное предположение уже несколько близко к окончательному решению.
На каждой итерации вектор параметров заменяется новой оценкой . Чтобы определить , функция аппроксимируется его линеаризацией :
где
- это градиент (вектор-строка в данном случае) относительно .
Сумма квадратных отклонений имеет минимум при нулевом градиенте относительно . Приведенное выше приближение первого порядка для дает
или в векторной записи
Взяв производную от относительно и установка результата на ноль дает
где - это матрица Якоби, - th ro w равно , а где и - векторы с -й компонент и соответственно. Вышеупомянутое выражение, полученное для , относится к методу Гаусса-Ньютона. Матрица Якоби, как определено выше, является (в общем случае) не квадратной матрицей, а прямоугольной матрицей размером , где - количество параметров (размер вектора ). Умножение матриц дает требуемый квадратная матрица и произведение матрица-вектор с правой стороны дает вектор размера . Результатом является набор из линейных уравнений, которые можно решить для .
Вклад Левенберга заключается в замене этого уравнения на «версию с затуханием»:
где - единичная матрица, давая как приращение к оценочному вектору параметров .
(Неотрицательный) коэффициент демпфирования корректируется на каждой итерации. Если уменьшение происходит быстро, можно использовать меньшее значение, приближая алгоритм к алгоритму Гаусса – Ньютона, тогда как если итерация дает недостаточное уменьшение остатка, может быть увеличено, делая шаг ближе к направлению градиентного спуска. Обратите внимание, что градиент из относительно равно . Следовательно, для больших значений шаг будет делаться примерно в направлении, противоположном градиенту. Если либо длина вычисленного шага , либо уменьшение суммы квадратов из последнего вектора параметров ниже предопределенных пределов, итерация останавливается, а вектор последнего параметра считается решением.
Алгоритм Левенберга имеет недостаток в том, что если значение коэффициента демпфирования велико, вообще не используется. Флетчер представил, что мы можем масштабировать каждый компонент градиента в соответствии с кривизной, чтобы было большее движение вдоль направлений, где градиент меньше. Это позволяет избежать медленного схождения в направлении небольшого градиента. Поэтому Флетчер в своей статье 1971 года «Модифицированная подпрограмма Марквардта для нелинейных наименьших квадратов» заменил единичную матрицу диагональной матрицей, состоящей из диагональных элементов , таким образом делая масштаб решения инвариантным:
Аналогичный коэффициент затухания появляется в регуляризации Тихонова, которая используется для решения линейных некорректных задач, так как а также в регрессии гребня, метод оценки в статистике.
Выбор параметра демпфирования
Были выдвинуты различные более или менее эвристические аргументы для лучший выбор для параметра демпфирования . Существуют теоретические аргументы, показывающие, почему некоторые из этих вариантов гарантируют локальную сходимость алгоритма; однако этот выбор может привести к тому, что глобальная сходимость алгоритма будет страдать от нежелательных свойств наискорейшего спуска, в частности, очень медленной сходимости, близкой к оптимальной.
Абсолютные значения любого выбора зависят от того, насколько хорошо масштабируется исходная проблема. Марквардт рекомендовал начинать со значения и множителя . Первоначальная установка и вычисление остаточной суммы квадратов после одного шага от начальной точки с коэффициентом демпфирования и, во-вторых, с . Если оба из них хуже начальной точки, то демпфирование увеличивается путем последовательного умножения на , пока не будет найдена лучшая точка с новым коэффициентом демпфирования для некоторых .
Если u se коэффициента демпфирования приводит к уменьшению квадрата невязки, затем это принимается как новое значение (и новое оптимальное местоположение принимается как полученное с этим коэффициентом демпфирования), и процесс продолжается; если использование привело к худшему остатку, но использование привело к лучше невязка, тогда остается без изменений, а новый оптимум принимается как значение, полученное с помощью как коэффициент демпфирования.
Эффективная стратегия управления параметром демпфирования, называемая отложенным удовлетворением, состоит в небольшом увеличении параметра для каждого шага вверх и уменьшении на большую величину для каждого шага вниз. Идея, лежащая в основе этой стратегии, заключается в том, чтобы избежать слишком быстрого спуска в начале оптимизации, тем самым ограничивая шаги, доступные в будущих итерациях, и, следовательно, замедляя сходимость. Было показано, что увеличение в 2 раза и уменьшение в 3 раза является эффективным в большинстве случаев, в то время как для больших задач могут работать более экстремальные значения с увеличением в 1,5 раза и уменьшением в раз. из 5.
Геодезическое ускорение
При интерпретации шага Левенберга – Марквардта как скорости вдоль геодезического пути в пространстве параметров, можно улучшить метод, добавив член второго порядка, который учитывает ускорение вдоль геодезической
где - решение
Поскольку этот член геодезического ускорения зависит только от производной по направлению по направлению скорости , он не требует вычисления полной производной матрицы второго порядка, требуя лишь небольших накладных расходов с точки зрения затрат на вычисления. Поскольку производная второго порядка может быть довольно сложным выражением, может быть удобно заменить ее конечно-разностным приближением
где и уже были вычислены алгоритмом, поэтому для вычисления требуется только одна дополнительная оценка функции . Выбор шага конечных разностей может повлиять на стабильность алгоритма, и значение около 0,1 обычно является разумным в целом.
Поскольку ускорение может указывать в направлении, противоположном скорости, чтобы предотвратить остановку метода в случае, если демпфирование слишком мало, добавляется дополнительный критерий ускорения, чтобы принять шаг, требующий, чтобы
где обычно фиксируется на значение меньше 1, с меньшими значениями для более сложных задач.
Добавление члена геодезического ускорения может позволить значительно увеличить скорость сходимости, и это особенно полезно, когда алгоритм движется через узкие каньоны в ландшафте целевой функции, где разрешенные шаги меньше и выше точность из-за se Условие порядка дает существенные улучшения.
Пример
Плохое соответствие
Лучшее соответствие
Лучшее соответствие
В этом примере мы пытаемся учесть функцию с использованием алгоритма Левенберга – Марквардта реализована в GNU Octave как функция leasqr. Графики показывают, что параметры , , использованные в исходной кривой, постепенно улучшаются. Только тогда, когда параметры на последнем графике выбраны наиболее близко к исходному, кривые точно соответствуют. Это уравнение является примером очень чувствительных начальных условий для алгоритма Левенберга – Марквардта. Одной из причин такой чувствительности является наличие нескольких минимумов - функция имеет минимумы при значении параметра и .
См. Также
- Доверительная область
- Метод Нелдера – Мида
- Для решения нелинейных систем уравнений также использовались варианты алгоритма Левенберга – Марквардта.
Ссылки
Дополнительная литература
Внешние ссылки
- Подробное описание алгоритма можно найти в Численные рецепты в C, Глава 15.5: Нелинейные модели
- C. Т. Келли, Итерационные методы оптимизации, SIAM Frontiers in Applied Mathematics, № 18, 1999 г., ISBN 0-89871-433-8. Онлайн-копия
- История алгоритма в новостях SIAM
- Учебник Ананта Ранганатана
- К. Мадсен, Х. Б. Нильсен, О. Тинглефф, Методы решения нелинейных задач наименьших квадратов (учебное пособие по нелинейному методу наименьших квадратов; код LM: аналитический якобиан секанс )
- T. Strutz: Data Fitting and Uncertainty (Практическое введение в метод взвешенных наименьших квадратов и не только). 2-е издание, Springer Vieweg, 2016 г., ISBN 978-3-658-11455-8.
- HP Gavin, Метод Левенберга-Марквардта для нелинейных задач аппроксимации кривой методом наименьших квадратов (MATLAB реализация включена)