Interpolasi spline orde tinggi

8

Saya perhatikan bahwa interpolasi spline dengan derajat lebih tinggi dari 3 (segala sesuatu di luar splines kubik) memiliki kesalahan interpolasi yang sangat tinggi, oleh karena itu prediksi sebagian besar mengerikan. Saya telah menemukan berbagai catatan kuliah, slide, dan video Youtube yang hanya menunjukkan bahwa splines kubik (tingkat 3) optimal dan apa pun di luar itu adalah ide yang buruk. Namun sumber-sumber ini tidak pernah menyebutkan mengapa ini terjadi.

Adakah yang bisa menjelaskan kepada saya mengapa ini terjadi dan mungkin memberi saya judul / tautan ke jurnal / makalah konferensi yang menjelaskan hal ini atau bahkan mungkin memberikan bukti.

Goocreations
sumber
1
Saya harus merujuk fenomena berlebih ini, tetapi saya tidak dapat menemukan literatur akademik yang menyebutkan ini. Apakah kalian mungkin tahu artikel / buku / tesis yang bisa saya gunakan?
Goocreations

Jawaban:

10

Tidak ada bukti seperti itu karena itu tidak selalu benar. Ini adalah aturan praktis, karena saya jamin Anda dapat menemukan situasi - jumlah situasi yang tak terbatas sebenarnya - di mana spline orde tinggi akan lebih baik daripada spline kubik. Urutan spline optimal untuk setiap situasi tertentu adalah urutan yang sama persis dengan sistem yang Anda coba modelkan. Jika urutannya sama dan titik data Anda bebas kesalahan (tidak pernah terjadi, tentu saja, kecuali dalam masalah teoretis), maka Anda harus dapat memodelkan sistem dengan sempurna.

Alasan mereka merekomendasikan untuk tidak pergi lebih tinggi dari splines kubik adalah karena overfitting benar-benar buruk. Overfitting dapat memperbesar kesalahan, sementara "underfitting" (memilih metode spline dengan urutan lebih rendah dari urutan sistem yang Anda modelkan) memperkenalkan beberapa penyaringan lulus rendah yang tidak terlalu buruk atau kadang-kadang bahkan menguntungkan.

Jim Clay
sumber
+1. Perhatikan bahwa memilih kesesuaian urutan yang lebih rendah daripada model yang diwakili bukanlah penyaringan low-pass 'semu' - ini adalah bentuk penyaringan low pass dalam haknya sendiri.
Tarin Ziyaee
@ user4619 Anda benar. Maksud saya, itu bukan low-pass filtering dalam arti yang biasanya kita pikirkan dengan filter FIR dan IIR, tapi itu low-pass filtering, hanya saja tidak mudah dikarakterisasi. Diedit jawabannya.
Jim Clay
3

Berikut ini adalah garis besar kasar (yang mungkin atau mungkin tidak benar). Spline adalah interpolasi polinomial, yaitu setiap bagian kurva antara titik dukungan tetangga adalah polinomial. Polinomial orde N memiliki koefisien N + 1 (derajat kebebasan) dan karenanya dapat memenuhi 4 syarat batas per bagian. Pilihan kondisi batas menentukan jenis interpolasi. Untuk spline yang mengenai titik-titik pendukung dengan tepat dan menciptakan turunan pertama dan kedua yang berkelanjutan.

Untuk spline pesanan lebih tinggi, Anda juga bisa mendapatkan turunan pesanan lebih tinggi untuk kontinu, tetapi itu cenderung menambahkan banyak konten frekuensi tinggi pada transisi yang lebih tajam dan sering menghasilkan "deringan" atau osilasi berlebihan. Kata asli "spline" berasal dari penggaris fleksibel yang digunakan orang untuk membuat interpolasi "mekanis". Saya pikir Anda benar-benar dapat menunjukkan dengan menganalisis mekanika penggaris spline kubik cocok dengan perilaku itu.

Seperti kebanyakan hal, itu tergantung pada aplikasi Anda dan apa yang ingin Anda lakukan. Alternatif yang menarik untuk splines kubik adalah interpolasi hermit yang dapat menjamin monoton dan memastikan bahwa interpolasi tidak pernah berayun di luar poin pendukung. Dari fungsi bantuan MATLAB

Tips

spline constructs  in almost the same way pchip constructs . However, spline chooses the slopes at the  differently, namely to make even  continuous. This has the following effects:

   - spline produces a smoother result, i.e.  is continuous.    
   - spline produces a more accurate result if the data consists of values of a smooth function.    
   - pchip has no overshoots and less oscillation if the data are not smooth.    
   - pchip is less expensive to set up.
   - The two are equally expensive to evaluate.
Hilmar
sumber
2

Ada beberapa jenis splines, dengan tujuan yang saling bertentangan:

  • pergi dekat titik input data
  • kurva halus vs. wiggly

Untuk beberapa titik data, Anda mungkin ingin menginterpolasi secara tepat; tetapi untuk ribuan poin, atau bahkan selusin dengan suara, interpolasi pasti akan bergoyang. Kebanyakan spline fitter memiliki parameter untuk memperdagangkan kedekatan yang cocok vs kelancaran keseluruhan. Berikut adalah sebaris splines derajat 1 (sambungan linear, sambungan-titik) dengan data = garis + derau. Anda melihat bahwa pemasangan data tepat zig-zag ke atas dan ke bawah, sementara perataan maksimum memberikan garis lurus:

masukkan deskripsi gambar di sini Ada splines untuk pekerjaan yang berbeda, tergantung pada data input dan poin baru di antara: puluhan / jutaan poin, seberapa berisik, tersebar / pada kisi, 1d 2d 3d ... Pada kisi biasa dalam 3d misalnya, spline derajat akan melihat tetangga dari setiap titik permintaan: 1 (tetangga terdekat), 8 (trilinear), 27, 64 ... Bisakah Anda membeli 64? Apakah Anda memerlukan 64? Tergantung.d(d+1)3

(Sangat singkat, B-splines halus;
Catmull-Rom splines interpolasi, misalnya bingkai film;
campuran seperti 1/3 B + 2/3 CR berguna di antaranya.)

Bagaimana tingkat polinomial mempengaruhi kegoyahan? Lihat fenomena Runge .

Pada overshoot di 1d 2d 3d ... lihat (ahem) pertanyaan ini di math.stackexchange.
Tentang bahaya ekstrapolasi dengan splines di luar linear, lihat ini di SO.

Lihat juga stackoverflow.com/questions/tagged/spline .

denis
sumber
-1

Cara lain untuk melihatnya adalah dengan memperhatikan bahwa gambar dan set data yang paling menarik "halus" sampai tingkat tertentu. Interpolasi noise gaussian, misalnya, harus bekerja lebih baik dengan splines orde tinggi.

Hasan
sumber