Когда имеется аналитический якобиан, лучше ли аппроксимировать гессиан или конечными разностями якобиана?


19

Допустим, я вычисляю некоторые параметры модели, минимизирую сумму квадратов невязок и предполагаю, что мои ошибки гауссовские. Моя модель производит аналитические производные, поэтому оптимизатору не нужно использовать конечные различия. После завершения подгонки я хочу вычислить стандартные ошибки подгоночных параметров.

Как правило, в этой ситуации гессиан функции ошибки считается связанным с ковариационной матрицей: где - дисперсия невязок.

σ2H1=C
σ2

Когда аналитические производные ошибки отсутствуют, обычно нецелесообразно вычислять гессиан, поэтому в качестве хорошего приближения используется .JTJ

Тем не менее, в моем случае у меня есть аналитическая J, так что мне сравнительно дешево вычислить H с помощью конечной разности J.

Итак, мой вопрос таков: будет ли более точным приближать H, используя мой точный J и применяя вышеупомянутое приближение, или приближать H путем конечного разностного J?

Ответы:


12

Хороший вопрос. Сначала вспомним, откуда берется это приближение Пусть ( x i , y i ) будут вашими точками данных, f ( HJTJ(xi,yi) будет вашей моделью, а β будет параметрами вашей модели. Тогда целевая функция нелинейной задачи наименьших квадратов равна 1f()βгдеr- вектор невязок,ri=yi-f(xi,β). Точный гессиан целевой функции естьH=JTJ+ri2ri. Таким образом, ошибка в этом приближенииH-JTJ=ri2ri12rTrrri=yif(xi,β)H=JTJ+ri2riHJTJ=ri2ri, Это хорошее приближение, когда сами остатки невелики; или когда 2-я производная от остатков мала. Линейные наименьшие квадраты можно считать частным случаем, когда вторая производная от остатков равна нулю.

Что касается конечно-разностного приближения, то оно относительно дешевое. Чтобы вычислить центральную разницу, вам нужно оценить якобиан дополнительно раз (а вперед разница будет стоить вам п дополнительных оценок, так что я бы не стал). Погрешность центральной разностной аппроксимации пропорциональна 4 г и ч 2 , где ч является размером шага. Оптимальный размер шага h ϵ 12nn4rh2h , гдеϵ- точность станка. Таким образом, если производные от остатков не взорвутся, вполне очевидно, что приближение конечных разностей должно быть ОЧЕНЬ лучше. Я должен отметить, что, хотя вычисления минимальны, бухгалтерия нетривиальна. Каждое конечное различие по якобиану даст вам один ряд гессиана для каждого остатка. Затем вам придется заново собрать гессиан, используя формулу выше.hϵ13ϵ

Есть, однако, третий вариант. Если ваш решатель использует квазиньютоновский метод (DFP, BFGS, Bryoden и т. Д.), Он уже аппроксимирует гессиан на каждой итерации. Аппроксимация может быть довольно хорошей, поскольку она использует целевую функцию и значения градиента от каждой итерации. Большинство решателей даст вам доступ к окончательной оценке Гессена (или ее обратной). Если это вариант для вас, я бы использовал это как оценку Гессиана. Это уже вычислено, и это, вероятно, будет довольно хорошей оценкой.


Отличный ответ, спасибо. Обоснование сравнения ошибки оценки в каждом случае очень поучительно. Могу ли я спросить , как вы знаете , что является шагом оптимальны для конечных разностей? Я никогда не видел этого раньше. ϵ1/3
Колин К

5
Это старый трюк, чтобы сбалансировать ошибку усечения и ошибку округления. Очевидно, чтобы минимизировать ошибку усечения, вы должны сделать как можно меньше. Но когда h становится слишком маленьким, вы начинаете испытывать значительную ошибку округления. Вывод относительно прост. Предполагая центральную разницу, ошибка усечения пропорциональна h 2 f ( x ) . Ошибка округления всегда пропорциональна ϵ f (hhh2f(x) . Добавьте два и уменьшите в течениечаса. Вы получаетечϵϵf(x)hh . hϵ13
Билл Весснер

3
Это касается только центральных различий. Для прямых различий оптимальный размер шага . Есть и другие хитрости. Например, убедитесь, что вы действительно знаете, что такоеh. Я знаю, это звучит глупо, но в арифметике с плавающей точкой могут происходить странные вещи. Вот простой способ убедитьсячтовас есть правильное значениечасов:. С математической точки зрения, конечно,hactual=hdesired. Но если вы используете значения, которые не могут быть точно представлены в плавающей запятой (например,h=0,0001,hϵ12hhh_actual = (x + h_desired) - xhactual=hdesiredh=0.0001 ), вы увидите, что это не так.
Билл Весснер

Возможно, этот контент мог бы быть добавлен к вашему ответу, а не к комментариям. Таким образом, будущие пользователи не должны просматривать расширенный раздел комментариев, чтобы найти материал, непосредственно связанный с утверждениями, сделанными в ответе.
Sycorax говорит восстановить Monica

2
О Боже мой. Квазиньютоновское приближение гессиана может быть ужасной оценкой гессиана и, следовательно, привести к очень плохой оценке ковариационной матрицы. Это может хорошо помочь в продвижении алгоритма к оптимальному, но может быть довольно плохим, как оценка гессиана.
Марк Л. Стоун
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.