Levenberg-Marquardt-Algorithmus

Neue Frage »

Jayk Auf diesen Beitrag antworten »
Levenberg-Marquardt-Algorithmus
Hallo,

ich hab mir schon die Seite dazu auf der englischen und auf der deutschen Wikipedia angeguckt, und verstehe irgendwie nur Bahnhof. Liegt möglicherweise auch daran, dass ich nicht weiß, was die Doppel-Pipes (||) bedeuten.

Würde sich sonst vielleicht jemand die Zeit nehmen, mir an einem kleinen Beispiel den Algorithmus zu erleutern?

Oder vielleicht kennt ja auch jemand eine gute Implementation in C oder Pascal? Würde mir auch helfen.

Edit (mY+): Bitte keine Hilferufe im Titel! Titel modifiziert.
system-agent Auf diesen Beitrag antworten »

Diese "Doppelpipes" wie du es nennst ist das Symbol für die Norm.
Genauer:
Eine Norm ist eine Abbildung mit gewissen Eigenschaften [die kannst du bei Wikipedia finden].
Der Witz einer Norm ist einfach, dass sie eine "Längenmessung" für Vektoren bietet.
Nehmen wir mal die Ebene und definieren für einen Vektor die "2-Norm": .
Dass dies wirklich eine Norm ist kann man leicht sehen und du stellst fest dass es genau das ist, was du unter der "Länge" von kennst wenn du es mit Pythagoras bestimmst.
Jayk Auf diesen Beitrag antworten »

Ah, OK, danke! Vielleicht hilft das ja schon.

EDIT: Bisher war mir nur die Euklidische L-2-Norm bekannt. Augenzwinkern
system-agent Auf diesen Beitrag antworten »

Nur so aus reiner Neugierde: Wieso kennst du die L2-Norm aber dann nicht eine einfache Vektornorm?
Jayk Auf diesen Beitrag antworten »

Da ich (freizeitmäßig) in Delphi programmiere, habe ich mir mal die Math-Unit angeschaut. Und da gab's eine Funktion für die L-2-Norm.

Weil eigentlich war das noch nicht in der Schule dran. Augenzwinkern

Also so von der Wikipedia hab ich's noch nicht verstanden, aber ich kann auch noch mal googlen, ob ich da ein paar Beispiele finde.

EDIT: Sehe ich das jetzt richtig, dass:

system-agent Auf diesen Beitrag antworten »

Du musst ein bischen mit den Bezeichnungen aufpassen, deshalb auch meine Frage:
Es gibt wirklich eine -Norm, aber die ist leicht komplizierter und in dem Wiki-Artikel über deinen Algorithmus auch garnicht gemeint.
Da ist wirklich nur die 2-Norm gemeint.
 
 
Jayk Auf diesen Beitrag antworten »

OK, noch eine Frage:

Was ist die Jacobi-Matrix? Ich werde aus dem Wiki-Artikel da irgendwie gar nicht schlau. Weil ansonsten kapiere ich erst einmal ansatzweise den Gauß-Newton-Algorithmus. Angeblich baut Levenberg-Marquardt ja darauf auf?
tigerbine Auf diesen Beitrag antworten »

Was weißt du denn über das Problem, dass der Algorithmus lösen will?
Jayk Auf diesen Beitrag antworten »

Nun, ein Algorithmus für nichtlineare Least-Square-Probleme (bzw. deren Lösung), also nichtlineare Regression bzw. Curve-fitting.
tigerbine Auf diesen Beitrag antworten »

Und du weißt wie diese Probleme gelöst werden? Augenzwinkern
http://de.wikipedia.org/wiki/Jacobi-Matrix
system-agent Auf diesen Beitrag antworten »

Jetzt kommt gleich "mit dem Algorithmus" Big Laugh
tigerbine Auf diesen Beitrag antworten »

Big Laugh Willkommen in der Warteschleife
Jayk Auf diesen Beitrag antworten »

Zitat:
Original von tigerbine
Und du weißt wie diese Probleme gelöst werden? Augenzwinkern
http://de.wikipedia.org/wiki/Jacobi-Matrix


Nein, ich kenne wie gesagt nur die Problemstellung. Sonst würde ich ja nicht fragen. Es gibt halt nirgens eine wirklich einfache Erklärung für sowas. Ich sehe gerade partielle Ableitung... Das verstehe ich nicht ganz. Die Ableitung ist doch die Steigung der Funktion, wie kann man das mit nur einem Parameter machen?Bei Wikipedia steht ja:



Was ist jetzt ? Und was ist h?

Und wenn ich sehe (Ausschnitt aus einem Physikbuch):



Ist das dasselbe?

Ich glaube, mir fehlt da noch ein wenig Hintergrundwissen (wie gesagt, in der Schule war das noch nicht dran). Gibt's irgendwo eine gute Einleitung in Analysis?
tigerbine Auf diesen Beitrag antworten »

Zitat:
Ich glaube, mir fehlt da noch ein wenig Hintergrundwissen (wie gesagt, in der Schule war das noch nicht dran). Gibt's irgendwo eine gute Einleitung in Analysis?


Meine Rückfrage war auch nicht böse gemeint. Nur sind wir mit dem Verfahren in der Mehrdimensionalen Analysis (meist Ana III), da kommen bei den Ableitungen dann Matrizen ins Spiel und partielle Ableitungen. In der Schule wird das imho gar nicht behandelt werden.

Ich will dir Überfliegerqualitäten nicht absprechen, aber wenn es dir hauptsächlich um das programmieren geht, würde ich mir im Moment ein anderes Thema suchen.

Zu diesem solltest du 3 Analysis-Skripte gelesen haben, und für Matrizen noch ein Grundwissen in linearer Algebra haben.

Wink
Jayk Auf diesen Beitrag antworten »

Mir geht es nicht hauptsächlich ums Programmieren. Dass ich den Algo dann auch coden möchte, ist eine andere Sache. Wichtiger wäre es mir, die Mathematik dahinter zu verstehen. Und mich nervt das mit den partiellen Ableitungen schon ziemlich lange.

Ich werde mich mal dazu belesen...
system-agent Auf diesen Beitrag antworten »

Du kennst schon Funktionen von einer Variablen, also zb
mit .

Man kann auch Funktionen betrachten die von mehr als einer Variablen abhängen. Nehmen wir mal eine die von 2 Variablen abhängt und wir schreiben vor, dass diese Variablen nicht negativ sein dürfen, dann schreibt man zb.
definiert durch


Solche Funktionen kennst du schon, zb ist die Formel für die Fläche eines Rechtecks so eine Funktion: Sie braucht zwei Angaben um ein Ergebnis zu liefern.

Nun kann man das Spiel weitertreiben und auch Variablen nehmen.
Man nummeriert diese dann eben einfach durch: und schreibt
, wobei man noch sagen muss was tut und den genauen Definitionsbereich braucht man auch noch.
Hält man nun alle Variablen bis auf eine, zb , fest, dann hat man eine Funktion von nur noch einer Variablen und man kann nach dieser ableiten und schreibt

Das ist in etwa die Idee der partiellen Ableitung.

Nehmen wir mal definiert durch .
Dann ist

Jayk Auf diesen Beitrag antworten »

Zum Beispiel:

d yx² (y) = 2xy ?

Ist das so richtig?
system-agent Auf diesen Beitrag antworten »

Das musst du nochmal schreiben, ich kann weder die Funktion erkennen noch nach was abgeleitet wird.
Jayk Auf diesen Beitrag antworten »

Sry, ich meine:



?
system-agent Auf diesen Beitrag antworten »

Nein, du leitest nach ab. Betrachte dabei alle anderen Variablen als Konstanten.
Jayk Auf diesen Beitrag antworten »

Achso, ich hab gedacht, y ist die Konstante (aber beim Ableiten nach x wäre es richtig, oder?). Augenzwinkern

Dann also 0? Ableitung von f(y) = y ist ja 0, und 0 x² ist auch 0?
system-agent Auf diesen Beitrag antworten »

Alles falsch.

Das was du hingeschrieben hast, war .

Die partielle Ableitung nach ist nicht Null.
Jayk Auf diesen Beitrag antworten »

Ich glaub heute hab ich ein Brett vor'm Kopf. Ich probier's morgen nochmal.
Jayk Auf diesen Beitrag antworten »

Zitat:
Original von system-agent
Die partielle Ableitung nach ist nicht Null.


Was denn? geschockt
system-agent Auf diesen Beitrag antworten »

Du solltest dir erstmal angewöhnen Funktionen ordentlich aufzuschreiben. Gerade im Mehrdimensionalen ist das wichtig. Also du hast
gegeben durch .

Dann ist

denn man betrachtet alle Variablen ausser als Konstanten.
Ähnlich:

denn ist eine Konstante.
Elan Auf diesen Beitrag antworten »

@ Jayk

Du hast eine PN, wenn du magst, melde dich mal. Augenzwinkern
Jayk Auf diesen Beitrag antworten »

Zitat:
Original von system-agent
Du solltest dir erstmal angewöhnen Funktionen ordentlich aufzuschreiben. Gerade im Mehrdimensionalen ist das wichtig. Also du hast
gegeben durch .


OK, ich werd's mir angewöhnen (Problem war eher LaTeX, weil ich nicht wusste wie die Zeichen aussehen.

Zitat:
Original von system-agent
Dann ist

denn man betrachtet alle Variablen ausser als Konstanten.
Ähnlich:

denn ist eine Konstante.


Ah, OK, jetzt hab ich's fast kapiert, jedenfalls das Prinzip. Aber

Funktion yx^2 und alles außer x ist eine Konstante. Also hätte man dann nicht 2xy? Wie kommst du auf ?

@Elan: Schon geschehen.
system-agent Auf diesen Beitrag antworten »

Ich habe da einen Fehler, es müsst natürlich



heissen. Freude
Jayk Auf diesen Beitrag antworten »

Ah, OK. Jetzt hab ich's kapiert. smile

Jetzt sieht auch die Beschreibung auf Wikipedia nicht mehr so kryptisch aus. Danke euch! Wink
Jayk Auf diesen Beitrag antworten »

Hallo,

ich hab noch eine Frage zur partiellen Ableitung. Und ich bin mir nicht ganz sicher, ob ich das, was ich bei diesem Beispiel gemacht hab, wirklich machen darf (zweite Rechnung).

system-agent Auf diesen Beitrag antworten »

Es sind sogar beide partiellen Ableitungen falsch.
Ausserdem: wo hast du denn diese Funktion aufgegabelt? Man kann mit vereinfachen....
Das heisst du betrachtes eigentlich ein

mit .

Dann ist und .
Man muss aber auf den Definitionsbereich aufpassen !
Jayk Auf diesen Beitrag antworten »

Was bedeutet das \ {0} ? Wegen dem 1/y? Genau das hat mich so verunsichert...
system-agent Auf diesen Beitrag antworten »

Die Definition ist
.
Jayk Auf diesen Beitrag antworten »

Aha, also eine rationale Zahl <> 0? Weil y nicht null sein darf (x/0 = n. l.)?

Gibt's dafür irgendeinen Namen? Also für das \ {0}, dass ich mich darüber noch etwas belesen kann?
system-agent Auf diesen Beitrag antworten »

Da brauchst du keinen Namen:
Sei eine Menge und eine Untermenge von . Dann definiert man
.

Vielleicht nennen das gewisse Leute einfach Differenzmenge, wäre möglich.
Jayk Auf diesen Beitrag antworten »

Achso. Danke!
Neue Frage »
Antworten »



Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »