Алгоритм Гаусса –Ньютона используется для решения нелинейных задач наименьших квадратов, что эквивалентно минимизации суммы квадратов значений функции. Это расширение метода Ньютона для нахождения минимума нелинейной функции . Поскольку сумма квадратов должна быть неотрицательной, алгоритм можно рассматривать как использующий метод Ньютона для итеративного приближения нулей компонентов суммы и, таким образом, минимизации суммы. В этом смысле алгоритм также является эффективным методом решения переопределенных систем уравнений. Его преимущество в том, что не требуются вторые производные, вычисление которых может быть сложным. [1]
Нелинейные задачи наименьших квадратов возникают, например, в нелинейной регрессии , где параметры в модели ищутся таким образом, чтобы модель хорошо согласовывалась с имеющимися наблюдениями.
Метод назван в честь математиков Карла Фридриха Гаусса и Исаака Ньютона и впервые появился в работе Гаусса 1809 года Theoria motus corporum coelestium insectionibus conicis solemambitum . [2]
Описание
Заданные функции (часто называемые остатками) переменных с алгоритмом Гаусса-Ньютона итеративно находят значение , которое минимизирует сумму квадратов [3]
Начиная с первоначального предположения о минимуме, метод продолжается итерациями
На каждой итерации обновление можно найти, переставив предыдущее уравнение в следующие два шага:
При подстановках , , и это превращается в обычное матричное уравнение вида , которое затем можно решить различными методами (см. Примечания).
Если m = n , итерация упрощается до
что является прямым обобщением метода Ньютона в одном измерении.
При подгонке данных, когда целью является нахождение параметров таким образом, чтобы заданная модельная функция наилучшим образом соответствовала некоторым точкам данных , функции являются остатками :
Тогда метод Гаусса–Ньютона можно выразить через якобиан функции как
Обратите внимание, что это левая псевдообратная матрица .
Примечания
Предположение m ≥ n в формулировке алгоритма необходимо, так как в противном случае матрица необратима и нормальные уравнения не могут быть решены (по крайней мере, однозначно).
Алгоритм Гаусса–Ньютона может быть получен путем линейной аппроксимации вектора функций r i . Используя теорему Тейлора , мы можем записать на каждой итерации:
с . Задача нахождения минимизации суммы квадратов правой части; т.е.
Если является сложным, следует использовать сопряженную форму: .
Пример
В этом примере алгоритм Гаусса–Ньютона будет использоваться для подгонки модели к некоторым данным путем минимизации суммы квадратов ошибок между данными и прогнозами модели.
В биологическом эксперименте по изучению связи между концентрацией субстрата [ S ] и скоростью реакции в ферментативной реакции были получены данные, представленные в следующей таблице.
я
1
2
3
4
5
6
7
[ С ]
0,038
0,194
0,425
0,626
1.253
2.500
3.740
Ставка
0,050
0,127
0,094
0,2122
0,2729
0,2665
0,3317
Требуется найти кривую (модельную функцию) вида
который наилучшим образом соответствует данным в смысле наименьших квадратов, с параметрами и , которые предстоит определить.
Обозначим через и значения [ S ] и скорости соответственно, причем . Пусть и . Найдем и такие, что сумма квадратов остатков
сведено к минимуму.
Якобиан вектора остатков относительно неизвестных представляет собой матрицу, в -й строке которой находятся элементы
Начиная с начальных оценок и , после пяти итераций алгоритма Гаусса–Ньютона получены оптимальные значения и . Сумма квадратов остатков уменьшилась с начального значения 1,445 до 0,00784 после пятой итерации. График на рисунке справа показывает кривую, определенную моделью для оптимальных параметров с наблюдаемыми данными.
Свойства сходимости
Итерация Гаусса-Ньютона гарантированно сходится к точке локального минимума при выполнении 4 условий: [4] Функции дважды непрерывно дифференцируемы в открытом выпуклом множестве , якобиан имеет полный ранг столбца, начальная итерация близка к , а значение локального минимума мало. Сходимость квадратичная, если .
Можно показать [5] , что приращение Δ является направлением спуска для S , и, если алгоритм сходится, то пределом является стационарная точка S. Однако для большого минимального значения сходимость не гарантируется, даже локальная сходимость , как в методе Ньютона , или сходимость при обычных условиях Вульфа. [6]
Скорость сходимости алгоритма Гаусса–Ньютона может приближаться к квадратичной . [7] Алгоритм может сходиться медленно или не сходиться вообще, если начальное предположение далеко от минимума или матрица плохо обусловлена . Например, рассмотрим задачу с уравнениями и переменной, заданной как
Оптимум находится при . (На самом деле оптимум находится при для , поскольку , но .) Если , то задача фактически линейна, и метод находит оптимум за одну итерацию. Если |λ| < 1, то метод сходится линейно, а ошибка уменьшается асимптотически с множителем |λ| на каждой итерации. Однако если |λ| > 1, то метод даже локально не сходится. [8]
Если решение не существует, но начальная итерация близка к точке , в которой сумма квадратов достигает небольшого локального минимума, итерация Гаусса-Ньютона линейно сходится к . Точку часто называют решением наименьших квадратов переопределенной системы.
Вывод из метода Ньютона
В дальнейшем алгоритм Гаусса–Ньютона будет выведен из метода Ньютона для оптимизации функций через аппроксимацию. Как следствие, скорость сходимости алгоритма Гаусса–Ньютона может быть квадратичной при определенных условиях регулярности. В общем случае (при более слабых условиях) скорость сходимости линейна. [9]
Рекуррентное соотношение для метода Ньютона для минимизации функции S параметров имеет вид
где g обозначает вектор градиента S , а H обозначает матрицу Гессе S.
Так как , градиент задается выражением
Элементы гессиана вычисляются путем дифференцирования элементов градиента, , по :
Метод Гаусса–Ньютона получается путем игнорирования членов производной второго порядка (второй член в этом выражении). То есть гессиан аппроксимируется как
где — элементы якобиана J r . Обратите внимание, что когда точный гессиан оценивается вблизи точного соответствия, мы имеем почти ноль , поэтому второй член также становится близким к нулю, что оправдывает приближение. Градиент и приближенный гессиан можно записать в матричной записи как
Эти выражения подставляются в рекуррентное соотношение выше для получения рабочих уравнений
Сходимость метода Гаусса–Ньютона не гарантируется во всех случаях. Аппроксимация
которое необходимо для того, чтобы можно было игнорировать производные второго порядка, может быть справедливо в двух случаях, для которых следует ожидать сходимости: [10]
Значения функции малы по величине, по крайней мере, около минимума.
Функции лишь «слегка» нелинейны, поэтому их величина относительно мала.
Улучшенные версии
При использовании метода Гаусса–Ньютона сумма квадратов остатков S может не уменьшаться на каждой итерации. Однако, поскольку Δ является направлением спуска, если только не является стационарной точкой, то для всех достаточно малых . Таким образом, если возникает расхождение, одним из решений является использование дроби вектора приращения Δ в формуле обновления:
Другими словами, вектор приращения слишком длинный, но он все еще указывает «вниз», поэтому прохождение только части пути уменьшит целевую функцию S . Оптимальное значение для можно найти с помощью алгоритма линейного поиска , то есть величина определяется путем нахождения значения, которое минимизирует S , обычно с использованием метода прямого поиска в интервале или линейного поиска с возвратом, такого как поиск Armijo-line . Как правило, следует выбирать так, чтобы он удовлетворял условиям Вульфа или условиям Голдштейна . [11]
В случаях, когда направление вектора сдвига таково, что оптимальная доля α близка к нулю, альтернативным методом обработки расхождения является использование алгоритма Левенберга–Марквардта , метода доверительной области . [3] Нормальные уравнения модифицируются таким образом, что вектор приращения поворачивается в направлении наискорейшего спуска ,
где D — положительная диагональная матрица. Обратите внимание, что когда D — единичная матрица I и , то , поэтому направление Δ приближается к направлению отрицательного градиента .
Так называемый параметр Марквардта также может быть оптимизирован линейным поиском, но это неэффективно, так как вектор сдвига должен быть пересчитан каждый раз, когда изменяется. Более эффективная стратегия такова: когда происходит расхождение, увеличивайте параметр Марквардта до тех пор, пока не уменьшится S. Затем сохраняйте значение от одной итерации к другой, но уменьшайте его, если это возможно, пока не будет достигнуто пороговое значение, когда параметр Марквардта можно будет установить равным нулю; минимизация S тогда становится стандартной минимизацией Гаусса–Ньютона.
Масштабная оптимизация
Для крупномасштабной оптимизации метод Гаусса–Ньютона представляет особый интерес, поскольку часто (хотя, конечно, не всегда) верно, что матрица более разрежена , чем приближенный гессиан . В таких случаях сам расчет шага обычно должен выполняться с помощью приближенного итерационного метода, подходящего для больших и разреженных задач, например, метода сопряженных градиентов .
Чтобы этот подход заработал, нужен как минимум эффективный метод вычисления произведения
для некоторого вектора p . При хранении разреженных матриц обычно практично хранить строки в сжатом виде (например, без нулевых записей), что делает прямое вычисление вышеуказанного произведения сложным из-за транспонирования. Однако, если определить c i как строку i матрицы , выполняется следующее простое соотношение:
так что каждая строка вносит аддитивный и независимый вклад в продукт. Помимо соблюдения практической разреженной структуры хранения, это выражение хорошо подходит для параллельных вычислений . Обратите внимание, что каждая строка c i является градиентом соответствующего остатка r i ; с учетом этого, приведенная выше формула подчеркивает тот факт, что остатки вносят вклад в проблему независимо друг от друга.
Связанные алгоритмы
В квазиньютоновском методе , таком как метод Дэвидона, Флетчера и Пауэлла или метод Бройдена–Флетчера–Гольдфарба–Шанно ( метод BFGS ), оценка полного гессиана строится численно с использованием только первых производных, так что после n циклов уточнения метод приближается по производительности к методу Ньютона. Обратите внимание, что квазиньютоновские методы могут минимизировать общие функции с действительными значениями, тогда как методы Гаусса–Ньютона, Левенберга–Марквардта и т. д. подходят только для нелинейных задач наименьших квадратов.
Другим методом решения задач минимизации с использованием только первых производных является градиентный спуск . Однако этот метод не учитывает вторые производные даже приблизительно. Следовательно, он крайне неэффективен для многих функций, особенно если параметры имеют сильные взаимодействия.
Примеры реализации
Джулия
Следующая реализация в Julia предоставляет один метод, который использует предоставленный якобиан, и другой метод, вычисляющий с автоматическим дифференцированием .
""" гауссньютон(r,J,β₀,макситер,тол)Выполнить оптимизацию Гаусса-Ньютона для минимизации остаточной функции `r` с якобианом `J`, начиная с `β₀`. Алгоритм завершается, когда норма шага меньше `tol` или после итераций `maxiter`. """ function gaussnewton ( r , J , β₀ , maxiter , tol ) β = copy ( β₀ ) for _ in 1 : maxiter Jβ = J ( β ); Δ = - ( Jβ '* Jβ ) \ ( Jβ '* r ( β )) β += Δ if sqrt ( sum ( abs2 , Δ )) < tol break end end return β endimport AbstractDifferentiation as AD , Zygote backend = AD.ZygoteBackend () # доступны другие бэкенды""" гауссньютон(r,β₀,макситер,тол)Выполнить оптимизацию Гаусса-Ньютона для минимизации остаточной функции `r`, начиная с `β₀`. Соответствующий якобиан вычисляется с помощью автоматического дифференцирования. Алгоритм завершается, когда норма шага становится меньше `tol` или после итераций `maxiter`. """ function gaussnewton ( r , β₀ , maxiter , tol ) β = copy ( β₀ ) for _ in 1 : maxiter rβ , Jβ = AD . value_and_jacobian ( backend , r , β ) Δ = - ( Jβ [ 1 ] '* Jβ [ 1 ]) \ ( Jβ [ 1 ] '* rβ ) β += Δ if sqrt ( sum ( abs2 , Δ )) < tol break end end return β end
Примечания
^ Миттельхаммер, Рон К.; Миллер, Дуглас Дж.; Джадж, Джордж Г. (2000). Основы эконометрики. Кембридж: Cambridge University Press. С. 197–198. ISBN0-521-62394-4.
^ ab JE Dennis, Jr. и RB Schnabel (1983). Численные методы неограниченной оптимизации и нелинейных уравнений . SIAM 1996, воспроизведение издания Prentice-Hall 1983 года. стр. 222.
^ Бьёрк (1996), стр. 260.
^ Маскаренас (2013), «Расхождение методов BFGS и Гаусса-Ньютона», Математическое программирование , 147 (1): 253–276, arXiv : 1309.7922 , doi : 10.1007/s10107-013-0720-6, S2CID 14700106
^ Бьорк (1996), с. 341, 342.
^ Флетчер (1987), стр. 113.
^ "Архивная копия" (PDF) . Архивировано из оригинала (PDF) 2016-08-04 . Получено 2014-04-25 .{{cite web}}: CS1 maint: archived copy as title (link)
Вероятность, статистика и оценка. Алгоритм подробно описан и применен к биологическому эксперименту, обсуждаемому в качестве примера в этой статье (стр. 84 с неопределенностями оценочных значений).
Реализации
Artelys Knitro — нелинейный решатель с реализацией метода Гаусса–Ньютона. Написан на языке C и имеет интерфейсы к C++/C#/Java/Python/MATLAB/R.