Arka plan ve sorun
Regresyon ve sonraki Bayes optimizasyonu (BO) için Gauss İşlemleri'ni (GP) kullanıyorum. Regresyon için, MATLAB için gpml paketini birkaç özel yapım modifikasyonla kullanıyorum, ancak sorun genel.
İki eğitim girdisi girdi alanında çok yakın olduğunda, kovaryans matrisinin pozitif olmayan bir kesin hale gelebileceği iyi bilinen bir gerçektir (bu sitede bunun hakkında birkaç soru vardır). Sonuç olarak, çeşitli GP hesaplamaları için gerekli olan kovaryans matrisinin Cholesky ayrışması sayısal hata nedeniyle başarısız olabilir. Kullandığım objektif işlevlerle BO yaparken bazı durumlarda bu oldu ve düzeltmek istiyorum.
Önerilen çözümler
Kötü koşulların hafifletilmesinde standart çözüm olan AFAIK, kovaryans matrisinin köşegenine bir sırt veya külçe eklemektir. GP regresyonu için bu, gözlem gürültüsü eklemek (veya zaten varsa arttırmak) anlamına gelir.
Çok uzak çok iyi. Ben tam çıkarım için kod modifiye gpml Choleskey çözümleme başarısız olduğunda, ben esinlenerek Frobemino norm en yakın simetrik pozitif tanımlı (SPD) matrikse kovaryans matrisi düzeltmeye çalışmadan ki bu MATLAB kodu John d'Errico tarafından. Gerekçe, orijinal matrise müdahaleyi en aza indirmektir.
Bu geçici çözüm işi yapar, ancak BO'nın performansının bazı işlevler için önemli ölçüde azaldığını fark ettim - muhtemelen algoritmanın bir alanda yakınlaştırma yapması gerektiğinde (örneğin, minimum seviyeye yaklaştığı veya uzunluk ölçekleri nedeniyle) sorunun eşit olmayan bir şekilde küçük hale gelir). Bu davranış mantıklıdır çünkü iki giriş noktası çok yaklaştığında gürültüyü etkili bir şekilde artırıyorum, ancak elbette ideal değil. Alternatif olarak, sadece sorunlu noktaları kaldırmak, ancak yine de bazen ben gerek yakın olmak giriş noktaları.
Soru
GP'nin kovaryans matrislerinin Cholesky çarpanlarına ayırımı ile ilgili sayısal sorunların yeni bir problem olduğunu düşünmüyorum, ancak sürpriz bir şekilde, gürültüyü arttırmak veya birbirine çok yakın olan noktaları kaldırmak dışında pek çok çözüm bulamadım. Öte yandan, bazı işlevlerimin oldukça kötü davrandığı doğrudur, bu yüzden belki de durumum çok tipik değildir.
Burada yararlı olabilecek herhangi bir öneri / referans var mı?