Алгоритм, используемый для решения нелинейных задач наименьших квадратов
В математике и вычислениях алгоритм Левенберга-Марквардта ( LMA или просто LM ), также известный как метод затухающих наименьших квадратов ( DLS ), используется для решения нелинейных задач наименьших квадратов. Эти задачи минимизации возникают особенно при подгонке кривой наименьших квадратов . LMA интерполирует между алгоритмом Гаусса-Ньютона (GNA) и методом градиентного спуска . LMA более надежен , чем GNA, что означает, что во многих случаях он находит решение, даже если оно начинается очень далеко от конечного минимума. Для хорошо себя ведущих функций и разумных начальных параметров LMA имеет тенденцию быть медленнее, чем GNA. LMA также можно рассматривать как Гаусса -Ньютона с использованием подхода доверительной области .
LMA используется во многих программных приложениях для решения общих задач подгонки кривой. Используя алгоритм Гаусса–Ньютона, он часто сходится быстрее, чем методы первого порядка. [6] Однако, как и другие итерационные алгоритмы оптимизации, LMA находит только локальный минимум , который не обязательно является глобальным минимумом .
Проблема
Основное применение алгоритма Левенберга–Марквардта — задача подгонки кривой методом наименьших квадратов: для заданного набора эмпирических пар независимых и зависимых переменных найти параметры модельной кривой так, чтобы сумма квадратов отклонений была минимизирована:
который предполагается непустым.
Решение
Как и другие числовые алгоритмы минимизации, алгоритм Левенберга–Марквардта является итеративной процедурой. Чтобы начать минимизацию, пользователь должен предоставить начальное предположение для вектора параметров . В случаях только с одним минимумом неинформированное стандартное предположение вроде будет работать нормально; в случаях с несколькими минимумами алгоритм сходится к глобальному минимуму только в том случае, если начальное предположение уже несколько близко к окончательному решению.
На каждом шаге итерации вектор параметров заменяется новой оценкой . Для определения функция аппроксимируется ее линеаризацией :
где
— градиент (в данном случае вектор-строка) относительно .
Сумма квадратичных отклонений имеет минимум при нулевом градиенте относительно . Вышеприведенное приближение первого порядка дает
или в векторной записи,
Взяв производную этого приближения по и приравняв результат к нулю, получаем
где — матрица Якоби , чья -я строка равна , и где и — векторы с -й компонентой и соответственно. Полученное выше выражение для подпадает под метод Гаусса–Ньютона. Матрица Якоби, как определено выше, не является (в общем случае) квадратной матрицей, а является прямоугольной матрицей размера , где — число параметров (размер вектора ). Умножение матриц дает требуемую квадратную матрицу, а произведение матрицы на вектор в правой части дает вектор размера . Результатом является набор линейных уравнений, которые можно решить относительно .
Вклад Левенберга заключается в замене этого уравнения «затухающей версией»:
где — единичная матрица, дающая приращение к оцениваемому вектору параметров .
(Неотрицательный) коэффициент затухания корректируется на каждой итерации. Если уменьшение происходит быстро, можно использовать меньшее значение, приближая алгоритм к алгоритму Гаусса–Ньютона , тогда как если итерация дает недостаточное уменьшение остатка, можно увеличить, приблизив шаг к направлению градиентного спуска. Обратите внимание, что градиент относительно равен . Поэтому для больших значений шаг будет сделан примерно в направлении, противоположном градиенту. Если либо длина вычисленного шага , либо уменьшение суммы квадратов из последнего вектора параметров падают ниже предопределенных пределов , итерация останавливается, и последний вектор параметров считается решением.
Когда коэффициент затухания велик относительно , инвертирование не требуется, поскольку обновление хорошо аппроксимируется малым шагом градиента .
Чтобы сделать масштаб решения инвариантным, алгоритм Марквардта решил модифицированную задачу с каждым компонентом градиента, масштабированным в соответствии с кривизной. Это обеспечивает большее движение вдоль направлений, где градиент меньше, что позволяет избежать медленной сходимости в направлении малого градиента. Флетчер в своей статье 1971 года Модифицированная подпрограмма Марквардта для нелинейных наименьших квадратов упростила форму, заменив единичную матрицу на диагональную матрицу, состоящую из диагональных элементов :
Были выдвинуты различные более или менее эвристические аргументы в пользу наилучшего выбора параметра затухания . Существуют теоретические аргументы, показывающие, почему некоторые из этих выборов гарантируют локальную сходимость алгоритма; однако эти выборы могут привести к тому, что глобальная сходимость алгоритма пострадает от нежелательных свойств наискорейшего спуска , в частности, очень медленной сходимости вблизи оптимума.
Абсолютные значения любого выбора зависят от того, насколько хорошо масштабирована исходная задача. Марквардт рекомендовал начинать со значения и фактора . Сначала задайте и вычислите остаточную сумму квадратов после одного шага от начальной точки с коэффициентом затухания , а затем с . Если оба они хуже исходной точки, то затухание увеличивается путем последовательного умножения на , пока не будет найдена лучшая точка с новым коэффициентом затухания для некоторого .
Если использование коэффициента затухания приводит к уменьшению квадрата невязки, то это принимается за новое значение (а новое оптимальное положение принимается за полученное с этим коэффициентом затухания), и процесс продолжается; если использование привело к худшему остатку, но использование привело к лучшему остатку, то остается неизменным, а новый оптимум принимается за значение, полученное с в качестве коэффициента затухания.
Эффективная стратегия управления параметром затухания, называемая отложенным удовлетворением , состоит в увеличении параметра на небольшую величину для каждого шага подъема и уменьшении на большую величину для каждого шага спуска. Идея этой стратегии заключается в том, чтобы избежать слишком быстрого движения вниз в начале оптимизации, тем самым ограничивая шаги, доступные в будущих итерациях, и, следовательно, замедляя сходимость. [7] Увеличение в 2 раза и уменьшение в 3 раза, как было показано, эффективны в большинстве случаев, в то время как для больших задач более экстремальные значения могут работать лучше, с увеличением в 1,5 раза и уменьшением в 5 раз. [8]
Геодезическое ускорение
При интерпретации шага Левенберга–Марквардта как скорости вдоль геодезической траектории в пространстве параметров можно улучшить метод, добавив член второго порядка, который учитывает ускорение вдоль геодезической
где решение
Поскольку этот геодезический член ускорения зависит только от производной по направлению скорости , он не требует вычисления полной матрицы производной второго порядка, требуя лишь небольших накладных расходов с точки зрения стоимости вычислений. [9] Поскольку производная второго порядка может быть довольно сложным выражением, может быть удобно заменить ее приближением конечной разности
где и уже вычислены алгоритмом, поэтому требуется только одна дополнительная оценка функции для вычисления . Выбор шага конечной разности может повлиять на устойчивость алгоритма, и значение около 0,1 обычно является разумным в целом. [8]
Поскольку ускорение может быть направлено в противоположном направлении относительно скорости, чтобы предотвратить остановку метода в случае, если демпфирование слишком мало, добавляется дополнительный критерий ускорения для принятия шага, требующий, чтобы
где обычно фиксируется на значении меньше 1, с меньшими значениями для более сложных задач. [8]
Добавление члена геодезического ускорения может позволить значительно увеличить скорость сходимости, и это особенно полезно, когда алгоритм движется через узкие каньоны в ландшафте целевой функции, где допустимые шаги меньше, а более высокая точность из-за члена второго порядка дает значительные улучшения. [8]
Пример
В этом примере мы пытаемся подогнать функцию, используя алгоритм Левенберга–Марквардта, реализованный в GNU Octave как функция leasqr . Графики показывают постепенное улучшение подгонки для параметров , используемых в начальной кривой. Только когда параметры в последнем графике выбраны наиболее близкими к оригиналу, кривые подгоняются точно. Это уравнение является примером очень чувствительных начальных условий для алгоритма Левенберга–Марквардта. Одной из причин этой чувствительности является существование множественных минимумов — функция имеет минимумы при значении параметра и .
Варианты алгоритма Левенберга–Марквардта также использовались для решения нелинейных систем уравнений. [10]
Ссылки
^ Левенберг, Кеннет (1944). «Метод решения некоторых нелинейных задач методом наименьших квадратов». Quarterly of Applied Mathematics . 2 (2): 164–168. doi : 10.1090/qam/10666 .
^ Марквардт, Дональд (1963). «Алгоритм оценки нелинейных параметров методом наименьших квадратов». Журнал SIAM по прикладной математике . 11 (2): 431–441. doi :10.1137/0111030. hdl : 10338.dmlcz/104299 .
^ Жирар, Андре (1958). «Отрывок из Revue d'optique théorique et Instrumentale ». Рев. Опц . 37 : 225–241, 397–424.
^ Уинн, К. Г. (1959). «Проектирование линз с помощью электронного цифрового компьютера: I». Proc. Phys. Soc. Lond . 73 (5): 777–787. Bibcode : 1959PPS....73..777W. doi : 10.1088/0370-1328/73/5/310.
^ Моррисон, Дэвид Д. (1960). «Методы решения нелинейных задач наименьших квадратов и доказательства сходимости». Труды семинара Лаборатории реактивного движения по программам слежения и определению орбиты : 1–9.
^ Вильямовски, Богдан; Ю, Хао (июнь 2010 г.). «Улучшенные вычисления для обучения Левенберга–Марквардта» (PDF) . Труды IEEE по нейронным сетям и системам обучения . 21 (6).
^ Transtrum, Mark K; Machta, Benjamin B; Sethna, James P (2011). «Геометрия нелинейных наименьших квадратов с приложениями к неровным моделям и оптимизации». Physical Review E. 83 ( 3). APS: 036701. arXiv : 1010.1449 . Bibcode : 2011PhRvE..83c6701T. doi : 10.1103/PhysRevE.83.036701. PMID 21517619. S2CID 15361707.
^ abcd Transtrum, Mark K; Sethna, James P (2012). «Улучшения алгоритма Левенберга-Марквардта для минимизации нелинейного метода наименьших квадратов». arXiv : 1201.5885 [physics.data-an].
^ "Нелинейная подгонка по методу наименьших квадратов". GNU Scientific Library. Архивировано из оригинала 2020-04-14.
^ Канзов, Кристиан; Ямашита, Нобуо; Фукусима, Масао (2004). «Методы Левенберга–Марквардта со свойствами сильной локальной сходимости для решения нелинейных уравнений с выпуклыми ограничениями». Журнал вычислительной и прикладной математики . 172 (2): 375–397. Bibcode :2004JCoAM.172..375K. doi : 10.1016/j.cam.2004.02.013 .
Дальнейшее чтение
Море, Хорхе Дж.; Соренсен, Дэниел К. (1983). «Вычисление шага доверительной области» (PDF) . SIAM J. Sci. Stat. Comput . 4 (3): 553–572. doi :10.1137/0904038.
Гилл, Филип Э.; Мюррей, Уолтер (1978). «Алгоритмы решения нелинейной задачи наименьших квадратов». Журнал SIAM по численному анализу . 15 (5): 977–992. Bibcode : 1978SJNA...15..977G. doi : 10.1137/0715063.
Pujol, Jose (2007). «Решение нелинейных обратных задач и метод Левенберга-Марквардта». Геофизика . 72 (4). SEG: W1–W16. Bibcode : 2007Geop...72W...1P. doi : 10.1190/1.2732552.
Нокедаль, Хорхе; Райт, Стивен Дж. (2006). Численная оптимизация (2-е изд.). Springer. ISBN 978-0-387-30303-1.
Внешние ссылки
Подробное описание алгоритма можно найти в книге «Численные рецепты на языке C», глава 15.5: Нелинейные модели.
CT Kelley, Итеративные методы оптимизации , SIAM Frontiers in Applied Mathematics, № 18, 1999, ISBN 0-89871-433-8 . Электронная копия
История алгоритма в новостях SIAM
Учебное пособие от Ананта Ранганатана
К. Мэдсен, Х. Б. Нильсен, О. Тинглефф, Методы решения нелинейных задач наименьших квадратов (учебник по нелинейному методу наименьших квадратов; код LM: аналитический секанс Якобиана)
T. Strutz: Подгонка данных и неопределенность (Практическое введение в метод взвешенных наименьших квадратов и далее). 2-е издание, Springer Vieweg, 2016, ISBN 978-3-658-11455-8 .
HP Gavin, Метод Левенберга-Марквардта для нелинейных задач наименьших квадратов аппроксимации кривых ( включая реализацию MATLAB )