Алгоритм Левенберга–Марквардта (англ.Levenberg–Marquardt algorithm, LMA або просто LM), також відомий як метод сгасних найменших квадратів (англ.damped least-squares, DLS) використовується у математиці та обчислювальній техніці для розв'язування нелінійних задач найменших квадратів. Такі задачі мінімізації особливо актуальні при підборі кривої методом найменших квадратів. LMA інтерполює між алгоритмом Гаусса–Ньютона (GNA) та методом градієнтного спуску. LMA є більш надійним, ніж GNA, що означає, що в багатьох випадках він знаходить рішення, навіть якщо воно починається дуже далеко від кінцевого мінімуму. Для нормальної роботи функцій і розумних стартових параметрів LMA, як правило, повільніше, ніж GNA. LMA також можна розглядати як Гаусса–Ньютона, використовуючи підхід довіри до регіону.
LMA використовується в багатьох програмних додатках для розв'язання загальних задач допасовування кривої[en]. Використовуючи алгоритм Гаусса–Ньютона, він часто сходиться швидше, ніж методи першого порядку.[6] Однак, як і інші алгоритми ітераційної оптимізації, LMA знаходить лише локальний мінімум, який не обов'язково є глобальним мінімумом.
Проблема
Основне застосування алгоритму Левенберга–Марквардта полягає в задачі допасовування кривої[en] методом найменших квадратів: для заданого набору емпіричних пар незалежних і залежних змінних, знайти параметри модельної кривої так, щоб суму квадратів відхилень було зведено до мінімуму:
набір вважається непорожнім.
Рішення
Як і інші алгоритми чисельної мінімізації, алгоритм Левенберга–Марквардта є ітераційною процедурою. Щоб почати мінімізацію, користувач повинен надати початкове припущення для вектора параметрів . У випадках лише з одним мінімумом, ненавчені стандартні припущення, як буде працювати нормально; у випадках з кількома мінімумами алгоритм сходить до глобального мінімуму лише в тому випадку, якщо початкове припущення вже дещо близько до остаточного рішення.
На кожному кроці ітерації вектор параметрів замінюється на нову оцінку . Щоб визначити , функція апроксимується його лінеаризацією:
де
є градієнтом (в даному випадку вектором рядка) з відношенням до .
Сума квадратних відхилень має свій мінімум при нульовому градієнті по відношенню до . Наведене вище наближення першого порядку дає
або у векторному позначенні,
Візьмемо похідну від з відношенням до і встановлення результату на нуль, що дає
де є матриця Якобі, у якій -й ряд дорівнює , і де і є векторами з -ї компоненти і відповідно. Наведений вище вираз отримано для підпадає під метод Гаусса–Ньютона. Матриця Якобі, як визначено вище, є (загалом) не квадратною матрицею, а прямокутною матрицею розміру , де — кількість параметрів (розмір вектора ). Матричне множення дає необхідну квадратну матрицю і добуток матриці-вектору з правого боку дають вектор розміру . В результаті виходить набір лінійних рівнянь, які можна розв'язувати для .А
Внесок Левенберга полягає в тому, щоб замінити це рівняння на «згасну версію»:
де є одиничною матрицею, що дає приріст до розрахункового вектора параметрів .
Коефіцієнт (невід'ємного) демпфування коригується на кожній ітерації. Якщо зменшення є швидким, можна використовувати менше значення, наближаючи алгоритм до алгоритму Гаусса–Ньютона, тоді як, якщо ітерація дає недостатнє зменшення залишку, можна збільшити, наблизивши на крок до напрямку градієнтного спуску. Зверніть увагу, що градієнт з відношенням до дорівнює . Тому для великих значень , крок буде зроблено приблизно в напрямку, протилежному градієнту. Якщо будь-яка довжина обчисленого кроку або зменшення суми квадратів з останнього вектора параметрів падають нижче попередньо визначених меж, ітерація зупиняється та останній вектор параметра вважається рішенням.
Коли коефіцієнт демпфування є великим відносно , інвертувати не потрібно, оскільки оновлення добре апроксимується невеликим кроком градієнта .
Щоб зробити масштаб рішення інваріантним, алгоритм Марквардта розв'язав модифіковану задачу з кожним компонентом градієнта, масштабованим відповідно до кривизни. Це забезпечує більший рух уздовж напрямків, де градієнт менший, що дозволяє уникнути повільної збіжності в напрямку малого градієнта. Флетчер у своїй статті 1971 року Модифікована підпрограма Марквардта для нелінійних найменших квадратів спростив форму, замінивши ідентичну матрицю з діагональною матрицею, що складається з діагональних елементів :
Для кращого вибору параметра демпфування були висунуті різні більш-менш евристичні аргументи . Існують теоретичні аргументи, які показують, чому деякі з цих варіантів гарантують локальну збіжність алгоритму; однак ці варіанти можуть призвести до того, що глобальна збіжність алгоритму страждає від небажаних властивостей найкрутішого спуску, зокрема, дуже повільної збіжності, близької до оптимальної.
Абсолютні значення будь-якого вибору залежать від того, наскільки добре масштабована початкова проблема. Марквардт рекомендував починати зі значення і фактор . Спочатку налаштування і обчислення залишкової суми квадратів через один крок від початкової точки з коефіцієнтом демпфування а по-друге з . Якщо обидва ці показники гірші за початкову точку, то згасання збільшується шляхом послідовного множення на поки не буде знайдено кращу точку з новим коефіцієнтом демпфування для деяких .
Якщо використати коефіцієнт демпфування це призводить до зменшення квадрата залишку, то це приймається за нове значення (і нове оптимальне розташування приймається як те, що отримано з цим коефіцієнтом демпфування) і процес продовжується; якщо використовувати це призведе до гіршого залишку, але використання призведе до кращого залишку, тоді залишається без змін, а новий оптимум приймається за значення, отримане с як демпфуючий фактор.
Ефективна стратегія для контролю параметра демпфування, що називається відкладеним задоволенням, полягає у збільшенні параметра на невелику величину для кожного кроку на підйом і зменшення на велику величину для кожного кроку вниз. Ідея цієї стратегії полягає в тому, щоб уникнути занадто швидкого спуску на початку оптимізації, отже, обмежуючи кроки, доступні в майбутніх ітераціях, і, отже, сповільнюючи зближення[7]. Збільшення в 2 рази і зменшення в 3 рази виявилося ефективним у більшості випадків, тоді як для великих проблем більш екстремальні значення можуть працювати краще, зі збільшенням у 1,5 раза та зменшенням у 5 раз.[8]
Геодезичне прискорення
При інтерпретації кроку Левенберга–Марквардта як швидкості вздовж геодезичної траєкторії в просторі параметрів можна покращити метод, додавши член другого порядку, що враховує прискорення вздовж геодезичної
де є рішенням
Оскільки цей член геодезичного прискорення залежить лише від похідної за напрямком вздовж напрямку швидкості , він не вимагає обчислення повної похідної матриці другого порядку, вимагаючи лише невеликих накладних обчислювальних витрат.[9] Оскільки похідна другого порядку може бути досить складним виразом, може бути зручно замінити її наближенням скінченної різниці
де і вже були обчислені за допомогою алгоритму, тому для обчислення потрібна лише одна додаткова оцінка функції . Вибір скінченного різницевого кроку може вплинути на стабільність алгоритму, вибір значення близько 0,1 зазвичай є розумним.
Оскільки прискорення може вказувати в напрямку, протилежному швидкості, щоб запобігти зупинці методу, якщо демпфування занадто мале, додається додатковий критерій прискорення, щоб прийняти крок, який вимагає, що
де зазвичай фіксується до значення менше ніж 1, з меншими значеннями для складніших задач.[8]
Додавання геодезичного члена прискорення може дозволити суттєво збільшити швидкість збіжності, і це особливо корисно, коли алгоритм рухається через вузькі каньйони в ландшафті цільової функції, де дозволені кроки менші, а точність вища завдяки другому порядку термін дає значні покращення.[8]
Приклад
У цьому прикладі ми намагаємося підібрати функції використовуючи алгоритм Левенберга–Марквардта, реалізований в GNU Octave, як функцію leasqr. Графіки показують, що вони все краще відповідають параметрам , що використовується на початковій кривій. Лише тоді, коли параметри останнього графіка вибрано найближчими до оригіналу, криві точно підходять. Це рівняння є прикладом дуже чутливих початкових умов для алгоритму Левенберга–Марквардта. Однією з причин такої чутливості є існування кількох мінімумів — функції що має мінімуми при значенні параметра і .
↑Morrison, David D. (1960). Methods for nonlinear least squares problems and convergence proofs. Proceedings of the Jet Propulsion Laboratory Seminar on Tracking Programs and Orbit Determination: 1—9.
↑ абвTranstrum, Mark K; Sethna, James P (2012). Improvements to the Levenberg-Marquardt algorithm for nonlinear least-squares minimization. arXiv:1201.5885 [physics.data-an].
T. Strutz: Data Fitting and Uncertainty (A practical introduction to weighted least squares and beyond). 2nd edition, Springer Vieweg, 2016, ISBN 978-3-658-11455-8.