Interested Article - Алгоритм Гаусса — Ньютона
- 2020-10-06
- 1
Алгоритм Гаусса — Ньютона используется для решения задач . Алгоритм является модификацией метода Ньютона для нахождения минимума функции . В отличие от метода Ньютона, алгоритм Гаусса — Ньютона может быть использован только для минимизации суммы квадратов, но его преимущество в том, что метод не требует вычисления вторых производных, что может оказаться существенной трудностью.
Задачи, для которых применяется нелинейный метод наименьших квадратов, возникают, например, при нелинейной регрессии , в которой ищутся параметры модели, которые наиболее соответствуют наблюдаемым величинам.
Метод назван именами математиков Карла Фридриха Гаусса и Исаака Ньютона .
Описание
Если задано m функций r = ( r 1 , …, r m ) (часто называемых невязками) от n переменных β = ( β 1 , …, β n ), при m ≥ n . Алгоритм Гаусса — Ньютона итеративно находит значения переменных, которые минимизируют сумму квадратов
Начав с некоторого начального приближения , метод осуществляет итерации
Здесь, если рассматривать r и β как вектор-столбцы, элементы матрицы Якоби равны
а символ означает транспонирование матрицы .
Если m = n , итерации упрощаются до
- ,
что является прямым обобщением одномерного метода Ньютона .
При аппроксимации данных, где целью является поиск параметров β , таких, что заданная модель функций y = f ( x , β ) наилучшим образом приближает точки данных ( x i , y i ), функции r i являются
Тогда метод Гаусса — Ньютона можно выразить в терминах якобиана J f функции f
Заметим, что является псевдообратной матрицей к .
Замечания
Требование m ≥ n в алгоритме необходимо, поскольку в другом случае матрица J r T J r не имеет обратной и нормальные уравнения нельзя решить (по меньшей мере однозначно).
Алгоритм Гаусса — Ньютона можно получить с помощью линейного приближения вектора функций r i . Используя теорему Тейлора , мы можем для каждой итерации записать:
- ,
где . Задача нахождения Δ, минимизирующего сумму квадратов в правой части, т.е.
- ,
является линейной задачей нахождения наименьших квадратов , которую можно решить явно, что даёт нормальные уравнения.
Нормальные уравнения — это m линейных уравнений по неизвестным приращениям Δ. Уравнения могут быть решены за один шаг, если использовать разложение Холецкого , или, лучше, QR-разложение матрицы J r . Для больших систем итеративный метод может оказаться более эффективным, если используются такие методы, как метод сопряжённых градиентов . Если имеется линейная зависимость столбцов матрицы J r , метод итераций завершается неудачей, поскольку J r T J r становится вырожденной.
Пример
В этом примере используется алгоритм Гаусса — Ньютона для построения модели данных путём минимизации суммы квадратов отклонений данных и модели.
В экспериментальной биологии изучение связей между концентрацией субстрата [ S ] и скоростью реакции в реакции энзимомодуляции, были получены следующие данные.
-
i 1 2 3 4 5 6 7 [ S ] 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 к пятой итерации. График справа показывает кривую с оптимальными параметрами.
Сходимость
Можно показать , что направление увеличения Δ является для S , и, если алгоритм сходится, пределом будет стационарная точка для S . Однако сходимость не гарантируется, даже когда начальная точка , что происходит в или методе BFGS при обычных условиях Фольфе .
Скорость сходимости алгоритма Гаусса — Ньютона близка к квадратичной . Алгоритм может сходиться медленнее или не сходиться совсем, если начальное приближение далеко от минимального или если матрица плохо обусловлена . Например, представим задачу с уравнениями и переменной
Полученное оптимальное решение — . (Настоящий оптимум — для , поскольку , в то время как .) Если , то задача, фактически, линейна и метод находит решение за одну итерацию. Если |λ| < 1, то метод сходится линейно и ошибка убывает со скоростью |λ| на каждой итерации. Однако, если |λ| > 1, то метод не сходится даже локально .
Алгоритм на основе метода Ньютона
Далее предполагается, что алгоритм Гаусса — Ньютона основан на для минимизации функции с помощью аппроксимации. Как следствие, скорость сходимости алгоритма Гаусса — Ньютона может быть квадратична, если выполнены некоторые условия. В общем случае (при более слабых условиях), скорость сходимости может оказаться линейной .
Рекуррентное отношение метода Ньютона для минимизации функции S от параметров
где g означает вектор-градиент функции S , а H обозначает гессиан функции S . Поскольку , градиент задаётся равенством
Элементы гессиана вычисляются путём дифференцирования элементов градиента по
Метод Гаусса — Ньютона получается путём отбрасывания второй производной (второго члена в выражении). То есть гессиан аппроксимируется
- ,
где — элементы якобиана J r . Градиент и приближённый гессиан можно записать в матричной нотации
Эти выражения подставляются в рекуррентное отношение выше для получения операционных уравнений
Сходимость метода Гаусса — Ньютона в общем случае не гарантирована. Аппроксимация
- ,
которая должна выполняться для возможности отбрасывания членов со второй производной, может быть получена в двух случаях, для которых сходимость ожидается
- Значения функции малы по величине, по меньшей мере, рядом с минимумом.
- Функции лишь "слегка" нелинейны, то есть относительно малы по величине.
Улучшенные версии
В методах Гаусса — Ньютона сумма квадратов остатков S может не уменьшаться на каждой итерации. Однако, поскольку Δ направлен в сторону уменьшения функции, если не является стационарной точкой, выполняется неравенство для достаточно малых . Таким образом, если обнаруживается расходимость, можно использовать долю вектора приращения Δ в формуле обновления:
- .
Другими словами, вектор приращения слишком длинный, но он указывает направление «спуска», так что если пройти лишь часть пути, можно уменьшить значение функции S . Оптимальное значение может быть найдено с помощью алгоритма , то есть величина определяется путём нахождения значения, минимизирующего S с помощью на интервале .
В случаях, когда в направлении вектора приращения оптимальная доля близка к нулю, альтернативным методом отработки расходимости является использование алгоритма Левенберга — Марквардта , известного также как «метод доверительных областей» . Нормальные уравнения, модифицированные таким образом, что вектор спуска поворачивается в направлении наискорейшего спуска ,
- ,
где D — положительная диагональная матрица. Заметим, что если D является единичной матрицей E и , то . Таким образом, направление Δ приближает направление отрицательного градиента .
Так называемый параметр Марквардта может также быть оптимизирован путём линейного поиска, но смысла особого нет, поскольку вектор сдвига нужно каждый раз пересчитывать, когда меняется . Более эффективная стратегия такая. Если обнаруживается расхождение, увеличиваем параметр Марквардта, пока S убывает. Затем сохраняем значение между итерациями, но уменьшаем его, если возможно, пока не достигнем значения, когда параметр Марквардта не может быть обнулён. Минимизация S тогда становится стандартной минимизацией Гаусса — Ньютона.
Оптимизация больших задач
Для оптимизации большого размера метод Гаусса — Ньютона особенно интересен, поскольку часто (хотя, определённо, не всегда) матрица более разрежена , чем приближённый гессиан . В таких случаях шаг вычисления сам по себе, обычно, требует применения итеративного приближённого метода, такого как метод сопряжённых градиентов .
Чтобы этот подход работал, необходим как минимум эффективный метод вычисления произведения
для некоторого вектора p . Для хранения разреженной матрицы практично хранить строки матрицы в сжатом виде (т.е. без нулевых элементов), что делает прямое вычисление приведённого выше произведения (ввиду транспозиции) сложным. Однако, если определить c i как строку i матрицы , выполняется следующее отношение:
так что любая строка делает вклад в произведение аддитивно и независимо. Кроме того, это выражение хорошо изучено для применения параллельных вычислений . Заметим, что любая строка c i является градиентом соответствующей невязки r i . При учёте этого обстоятельства вышеприведённая формула подчёркивает факт, что невязки вносят вклад в результат независимо друг от друга.
Связанные алгоритмы
В квазиньютоновских методах , таких как методы или Бройдена — Флетчера — Голдфарба — Шэнно ( метод БФГШ ) приближение полного гессиана строится с помощью первых производных так, что после n уточнений метод по производительности близок к методу Ньютона. Заметим, что квазиньютоновские методы могут минимизировать вещественные функции общего вида, в то время как методы Гаусса — Ньютона, Левенберга — Марквардта и т.д. применимы только к нелинейным задачам наименьших квадратов.
Другой метод решения задач минимизации, использующий только первые производные, это метод градиентного спуска . Однако этот метод не принимает во внимание вторые производные, даже приблизительные. Как следствие, метод крайне малоэффективен для многих функций, особенно в случае сильного взаимного влияния параметров.
Примечания
- ↑ .
- , с. 260.
- , с. 253–276.
- , с. 341, 342.
- , с. 113.
- .
- , с. 259-262.
Литература
- A. Björck. Numerical methods for least squares problems. — Philadelphia: SIAM, 1996. — ISBN 0-89871-360-9 .
- Roger Fletcher. . — 2nd. — New York: John Wiley & Sons , 1987. — ISBN 978-0-471-91547-8 .
- Walter F. Mascarenhas. // Mathematical Programming. — 2013. — Т. 147 , вып. 1 . — doi : .
- S. Gratton, A.S. Lawless, N.K. Nichols. . NUMERICAL ANALYSIS REPORT 9/04 (англ.) . The University of Reading (январь 2007). Дата обращения: 20 июля 2017. Архивировано из 4 августа 2016 года.
- Jorge Nocedal, Stephen J. Wright. Numerical optimization / Peter Glynn, Stephen M. Robinson. — New York: Springer, 1999. — (Springer Series in Operations Research). — ISBN 0-387-98793-2 .
Ссылки
Реализации
- . Система для решения нелинейных задач с импленментацией метода Гаусса — Ньютона. Система написана на C и имеет интерфейсы для C++/C#/Java/Python/MATLAB/R.
- 2020-10-06
- 1