Analitik Jakobyan mevcut olduğunda, daha iyi tarafından Hessian yaklaştığı olan


19

Diyelim ki toplam kare artıklarını en aza indirdiğim bazı model parametrelerini hesaplıyorum ve hatalarımın Gaussian olduğunu varsayıyorum. Modelim analitik türevler ürettiğinden, optimize edicinin sonlu farklar kullanmasına gerek yoktur. Uyum tamamlandığında, takılan parametrelerin standart hatalarını hesaplamak istiyorum.

Genel olarak, bu durumda, hata fonksiyonunun Hessianı kovaryans matrisi ile ilişkili olarak alınır:

σ2H1=C
burada σ2 artıkların varyansıdır.

Hata ve analitik türevleri mevcut olduğunda bu nedenle, tipik olarak, Hessian hesaplamak için pratik değildir JTJ iyi bir yaklaşım olarak kabul edilir.

Ancak, benim durumumda, bir analitik J var, bu yüzden sonlu J'yi H ile hesaplamak nispeten ucuz.

Yani, sorum şu: Tam J'yi kullanarak ve yukarıdaki yaklaşımı uygulayarak H'ye yaklaşmak ya da sonlu J'yi sonlandırarak H'ye yaklaşmak daha doğru olur mu?

Yanıtlar:


12

İyi soru. Bu yaklaşım burada İlk olarak, geri çağırma gelir. Let ( x i , y i ) Veri puan olması, f ( ) için model ve P için model parametreler. Sonra doğrusal olmayan en küçük kareler sorununun amaç fonksiyonu 1HJTJ(xi,yi)f()βburadarartıkların vektörüdür,ri=yi-f(xi,β). Amaç fonksiyonunun tam Hessian olan, H=JTJ+Σri2ri. Dolayısıyla bu yaklaşımdaki hataH-JTJ=ri2ri12rTrrri=yif(xi,β)H=JTJ+ri2riHJTJ=ri2ri. Artıklar kendileri küçük olduğunda iyi bir yaklaşımdır; veya tortuların 2. türevi küçük olduğunda. Doğrusal en küçük kareler, artıkların 2. türevinin sıfır olduğu özel bir durum olarak kabul edilebilir.

Sonlu farklar yaklaşımına gelince, nispeten ucuzdur. Merkezi bir farkı hesaplamak için, Jakobiyen ek değerlendirmek gerekir (bir ileri fark size mal olacak defa n rahatsız olmaz bu yüzden, ek değerlendirmeler). Merkezi fark yaklaşım hata ile orantılı olduğu 4 r ve h 2 , h adım boyutudur. En uygun adım boyutu h ϵ 12nn4rh2h , buradaεmakine kesinlik. Bu nedenle, artıkların türevleri patlamıyorsa, sonlu fark yaklaşımının çok daha iyi olması gerektiği açıktır. Şunu belirtmeliyim ki, hesaplama az olsa da, defter tutma önemsizdir. Jacobian'daki her sonlu fark, her bir artık için size bir Hessian sırası verecektir. Daha sonra yukarıdaki formülü kullanarak Hessian'ı yeniden birleştirmeniz gerekecek.hϵ13ϵ

Ancak, üçüncü bir seçenek var. Çözücünüz bir Quasi-Newton yöntemi (DFP, BFGS, Bryoden vb.) Kullanıyorsa, her yinelemede zaten Hessian'a yaklaşmaktadır. Her yinelemede nesnel işlev ve gradyan değerlerini kullandığından yaklaşım oldukça iyi olabilir. Çoğu çözücü, son Hessian tahminine (veya tersine) erişmenizi sağlayacaktır. Bu sizin için bir seçenekse, bunu Hessian'ın tahmini olarak kullanırdım. Zaten hesaplanmış ve muhtemelen oldukça iyi bir tahmin olacak.


ϵ1/3

5
hhh2f(x)ϵf(x)hhhϵ13

3
hϵ12hhh_actual = (x + h_desired) - xhactual=hdesiredh=0.0001

Belki bu içerik yorumlara değil cevabınıza eklenebilir. Bu şekilde, gelecekteki kullanıcıların, doğrudan yanıtta iddialarla ilgili materyal bulmak için genişletilmiş bir yorum bölümünden geçmesi gerekmez.
Sycorax, Reinstate Monica'ya

2
Aman tanrım. Hessian'ın bir Quasi-Newton yaklaşımı, Hessian için korkunç bir tahmin olabilir ve bu nedenle kovaryans matrisinin çok zayıf bir tahminiyle sonuçlanır. Algoritmanın optimum seviyeye ilerlemesini kolaylaştırmak iyi olabilir, ancak Hessian'ın bir tahmini olarak oldukça zayıf olabilir.
Mark L. Stone
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.