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


19

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

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

σ2H−1=C
σ2

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

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

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

Ответы:


12

Хороший вопрос. Сначала вспомним, откуда берется это приближение Пусть ( 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 и т. Д.), Он уже аппроксимирует гессиан на каждой итерации. Аппроксимация может быть довольно хорошей, поскольку она использует целевую функцию и значения градиента от каждой итерации. Большинство решателей даст вам доступ к окончательной оценке Гессена (или ее обратной). Если это вариант для вас, я бы использовал это как оценку Гессиана. Это уже вычислено, и это, вероятно, будет довольно хорошей оценкой.


Отличный ответ, спасибо. Обоснование сравнения ошибки оценки в каждом случае очень поучительно. Могу ли я спросить , как вы знаете , что является шагом оптимальны для конечных разностей? Я никогда не видел этого раньше. ϵ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.