Spline-Interpolation höherer Ordnung


8

Ich habe festgestellt, dass die Spline-Interpolation mit einem Grad höher als 3 (alles jenseits der kubischen Splines) einen sehr hohen Interpolationsfehler aufweist, daher ist die Vorhersage meistens schrecklich. Ich bin auf verschiedene Vorlesungsunterlagen, Folien und Youtube-Videos gestoßen, die einfach darauf hinweisen, dass kubische Splines (3. Grad) optimal sind und dass alles darüber hinaus eine schlechte Idee ist. Diese Quellen erwähnen jedoch nie, warum dies der Fall ist.

Kann mir jemand erklären, warum dies der Fall ist und mir vielleicht einen Titel / Link zu einem Journal / Konferenzpapier geben, der dies erklärt, oder vielleicht sogar einen Beweis geben.


1
Ich muss mich auf dieses Überanpassungsphänomen beziehen, aber ich kann keine akademische Literatur finden, die dies erwähnt. Kennt ihr vielleicht einen Artikel / ein Buch / eine These, die ich verwenden kann?
goocreations

Antworten:


10

Es gibt keinen solchen Beweis, weil es nicht immer wahr ist. Dies ist eine Faustregel, da ich garantiere, dass Sie eine Situation entwickeln können - eine unendliche Anzahl von Situationen -, in denen Splines höherer Ordnung besser abschneiden als kubische Splines. Die optimale Spline-Reihenfolge für eine bestimmte Situation entspricht genau der Reihenfolge des Systems, das Sie modellieren möchten. Wenn die Reihenfolge gleich ist und Ihre Datenpunkte fehlerfrei sind (natürlich nie, außer bei theoretischen Problemen), sollten Sie in der Lage sein, das System perfekt zu modellieren.

Der Grund, warum sie empfehlen, nicht höher als kubische Splines zu gehen, ist, dass Überanpassung wirklich sehr, sehr schlecht ist. Eine Überanpassung kann Fehler erheblich vergrößern, während eine "Unteranpassung" (Auswahl einer Spline-Methode mit einer niedrigeren Reihenfolge als der Reihenfolge des zu modellierenden Systems) eine Tiefpassfilterung einführt, die entweder nicht so schlecht oder manchmal sogar vorteilhaft ist.


+1. Man beachte , dass eine niedrigere Ordnung fit als das Modell der Wahl zu sein darstellen , ist nicht ‚pseudo‘ Tiefpaßfilterung - es ist eine Form von Tiefpaßfiltern in seinem eigenen Recht.
Tarin Ziyaee

@ user4619 Du hast recht. Ich meinte, dass es keine Tiefpassfilterung in dem Sinne ist, wie wir es normalerweise bei FIR- und IIR-Filtern denken, aber es ist eine Tiefpassfilterung, es ist einfach nicht leicht zu charakterisieren. Antwort bearbeitet.
Jim Clay

3

Hier ist eine grobe Gliederung (die möglicherweise korrekt ist oder nicht). Spline ist eine Polynominterpolation, dh jeder Abschnitt der Kurve zwischen benachbarten Stützpunkten ist ein Polynom. Ein Polynom der Ordnung N hat N + 1 Koeffizienten (Freiheitsgrade) und kann daher 4 Randbedingungen pro Abschnitt erfüllen. Die Wahl der Randbedingungen bestimmt die Art der Interpolation. Für einen Spline, der genau auf die Stützpunkte trifft und eine kontinuierliche erste und zweite Ableitung erzeugt.

Bei Splines höherer Ordnung können Ableitungen höherer Ordnung ebenfalls kontinuierlich sein. Dies führt jedoch dazu, dass bei schärferen Übergängen viel Hochfrequenzgehalt hinzugefügt wird, und führt häufig zu "Klingeln" oder übermäßiger Schwingung. Die ursprünglichen Wörter "Spline" stammen von einem flexiblen Lineal, mit dem "mechanische" Interpolationen durchgeführt wurden. Ich denke, Sie können tatsächlich zeigen, indem Sie die Linealmechanik analysieren, dass der kubische Spline diesem Verhalten entspricht.

Wie bei den meisten Dingen hängt es von Ihrer Anwendung ab und davon, was Sie tun möchten. Eine interessante Alternative zu kubischen Splines sind hermitische Interpolationen, die Monotonie garantieren und sicherstellen können, dass die Interpolation niemals außerhalb der Stützpunkte schwingt. Über die MATLAB-Hilfefunktion

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.

2

Es gibt verschiedene Arten von Splines mit widersprüchlichen Zielen:

  • Gehen Sie in die Nähe der Eingabedatenpunkte
  • glatte Kurven gegen wackelig

Für einige Datenpunkte möchten Sie möglicherweise genau interpolieren. Aber für Tausende von Punkten oder sogar ein Dutzend mit Rauschen wird die exakte Interpolation wackeln. Die meisten Spline-Monteure haben Parameter, um die Nähe der Passform gegenüber der Gesamtglätte abzuwägen. Hier ist eine Darstellung von Splines Grad 1 (stückweise linear, Punkte verbinden) mit Daten = Linie + Rauschen. Sie sehen, dass die Daten genau im Zick-Zack nach oben und unten passen, während die maximale Glättung eine gerade Linie ergibt:

Geben Sie hier die Bildbeschreibung eind(d+1)3

(Sehr kurz, B-Splines glatt;
Catmull-Rom-Splines interpolieren, z. B. Frames von Filmen;
Mischungen wie 1/3 B + 2/3 CR liegen sinnvoll dazwischen.)

Wie wirkt sich der Polynomgrad auf die Wackeligkeit aus? Siehe Runges Phänomen .

Beim Überschwingen in 1d 2d 3d ... siehe (ahem) diese Frage auf math.stackexchange.
Auf die Gefahren der Extrapolation mit Keilen über linear finden diese auf SO.

Siehe auch stackoverflow.com/questions/tagged/spline .


-1

Eine andere Möglichkeit, dies zu betrachten, besteht darin, festzustellen, dass die interessantesten Bilder und Datensätze bis zu einem gewissen Grad "glatt" sind. Das Interpolieren von Gaußschem Rauschen sollte beispielsweise bei Splines höherer Ordnung besser funktionieren.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.