Хороший вопрос. Сначала вспомним, откуда берется это приближение Пусть ( x i , y i ) будут вашими точками данных, f ( ⋅H≈JTJ(xi,yi) будет вашей моделью, а β будет параметрами вашей модели. Тогда целевая функция нелинейной задачи наименьших квадратов равна 1f(⋅)βгдеr- вектор невязок,ri=yi-f(xi,β). Точный гессиан целевой функции естьH=JTJ+∑ri∇2ri. Таким образом, ошибка в этом приближенииH-JTJ=∑ri∇2ri12rTrrri=yi−f(xi,β)H=JTJ+∑ri∇2riH−JTJ=∑ri∇2ri, Это хорошее приближение, когда сами остатки невелики; или когда 2-я производная от остатков мала. Линейные наименьшие квадраты можно считать частным случаем, когда вторая производная от остатков равна нулю.
Что касается конечно-разностного приближения, то оно относительно дешевое. Чтобы вычислить центральную разницу, вам нужно оценить якобиан дополнительно раз (а вперед разница будет стоить вам п дополнительных оценок, так что я бы не стал). Погрешность центральной разностной аппроксимации пропорциональна ∇ 4 г и ч 2 , где ч является размером шага. Оптимальный размер шага h ∼ ϵ 12nn∇4rh2h , гдеϵ- точность станка. Таким образом, если производные от остатков не взорвутся, вполне очевидно, что приближение конечных разностей должно быть ОЧЕНЬ лучше. Я должен отметить, что, хотя вычисления минимальны, бухгалтерия нетривиальна. Каждое конечное различие по якобиану даст вам один ряд гессиана для каждого остатка. Затем вам придется заново собрать гессиан, используя формулу выше.h∼ϵ13ϵ
Есть, однако, третий вариант. Если ваш решатель использует квазиньютоновский метод (DFP, BFGS, Bryoden и т. Д.), Он уже аппроксимирует гессиан на каждой итерации. Аппроксимация может быть довольно хорошей, поскольку она использует целевую функцию и значения градиента от каждой итерации. Большинство решателей даст вам доступ к окончательной оценке Гессена (или ее обратной). Если это вариант для вас, я бы использовал это как оценку Гессиана. Это уже вычислено, и это, вероятно, будет довольно хорошей оценкой.
h_actual = (x + h_desired) - x