Ich habe das Modell .
Anstatt das Modell direkt zu beobachten, beobachte ich die Ableitungen des Modells + etwas Rauschen (e):
Aus Messungen von p (x, y und q (x, y) möchte ich s (x) schätzen. Angenommen, ich weiß, dass s (0,0) = 0 ist.
Nach dem Gradientensatz gilt:
unabhängig davon, auf welchem Weg wir integrieren.
Als kleines Experiment (in Matlab) habe ich normalverteiltes Rauschen N (0,1) zu p = 2x und q = 2y hinzugefügt. Dann habe ich zuerst entlang x integriert, gefolgt von y: SXY. Als nächstes habe ich zuerst entlang y integriert, gefolgt von x: SYX.
Die Ergebnisse zeigen, dass der Gradientensatz in diesem Fall (aufgrund des Rauschens) nicht gilt:
Die quadratischen mittleren Fehler in Bezug auf das Modell sind:
ErmsXY =
0.1125
ErmsYX =
0.0920
Wie kann ich eine bessere (weniger RMS-Fehler und glattere) Schätzung von s aus p und q finden?
BEARBEITEN:
Nach dem, was ich gelesen habe; Die Verwendung des Kurvenintegrals wird als lokale Integration bezeichnet. Es gibt auch globale Integrationsmethoden, bei denen stattdessen versucht wird, ein S (x, y) zu wählen, das Folgendes minimiert:
Globale Integrationsmethoden sollen bessere Ergebnisse liefern, wenn der Gradient verrauscht ist. Wie mache ich das in der Praxis?
EDIT 2:
Ein Ansatz, den ich verwendet habe, ist folgender:
Zuerst führen wir lineare Ableitungsoperatoren ein: .
Das Ergebnis ist das folgende lineare Gleichungssystem:
Als nächstes finden Sie eine Least Square Error-Lösung für diese Gleichungen. Eine LSE-Lösung für diese Gleichungen soll der Minimierung des Integrals von oben entsprechen. Wie kann das gezeigt werden?
Die Ergebnisse sind gut:
Der RMS-Fehler beträgt etwa 1/5 des von SXY und SYX, und die Lösung ist auch glatter.
Dieser Ansatz weist jedoch einige Nachteile auf:
es ist schwer umzusetzen; muss zentrale Differenzen verwenden und die 2D-Matrix in einen Vektor usw. "abflachen".
Die Ableitungsmatrizen sind sehr groß und spärlich, so dass sie möglicherweise viel RAM verbrauchen.
Ein anderer Ansatz, der möglicherweise sowohl einfacher zu codieren als auch weniger RAM verbraucht und schneller zu sein scheint, ist die Verwendung von FFT. Im Fourierraum werden diese pdes zu einer algebraischen Gleichung. Dies ist als Frankot-Chellappa-Algorithmus bekannt, aber leider kann ich meine Beispieldaten nicht bearbeiten.