Von Funktion zu NN

Sie haben ein bestimmtes Projekt zu bearbeiten und wissen nicht, wie Sie an die Aufgabe heran gehen sollen? Sie sind sich nicht sicher, ob Ihr Netzentwurf zu Ihrem Problem passt oder ob es da Optimierungsmöglichkeiten gibt? Ist es überhaupt sinnvoll an Ihre Daten mit einem NN basierten Ansatz heranzugehen? Ist MemBrain das richtige Werkzeug für Ihr Problem und Ihre Infrastruktur?

Hier ist der richtige Platz für diese Art von Fragen.
Post Reply
wemser
Posts: 3
Joined: Sun 7. Dec 2008, 13:20

Von Funktion zu NN

Post by wemser »

Hallo zusammen,

ich möchte gerne ein KNN zur Funktionsapproximation nutzen. Ich habe bereits die FUnktion, die approximiert werden soll und kann für diese Funktion Punkte bzw. Stützstellen berechen. Über ein KNN möchte ich die Zusammenhänge berechnen, die zwischen den Stützstellen sind.
Die Funktion ist mehrdimensional, ich habe ca. 5 unterschiedliche Variablen, von denen das Ergebnis abhängt.
Momentan habe ich das Problem, dass ich den Weg von der Funktion bis zur Übertragung nicht sehe, also welcher Netztyp ist der richtige usw.

Könnt Ihr mir weiterhelfen?

Vielen Dank schonmal,
DAniel
User avatar
Admin
Site Admin
Posts: 438
Joined: Sun 16. Nov 2008, 18:21

Re: Von Funktion zu NN

Post by Admin »

Hallo Daniel,

zur Funktionsapproximation ist auf jeden Fall ein MLP das Richtige, bevorzugt ein Feed Forward Netz. Deine Funktionsparameter sollten die Eingänge des Netzes werden, die Stützstellen der Ausgangswert (Annahme hier: Der Netzausgang ist ein Skalar. Wenn das nicht zutrifft, musst Du das Ergebnis Deiner Funktion zunächst auf mehrere Skalare umtransformieren und dann für jeden Skalar ein Ausgangsneuron vorsehen).

Mit den Parametern (Eingänge) und den zugehörigen Stützstellen (Ausgang/Ausgänge) erstellst Du dann einen Trainingsdatensatz (MemBrain-Jargon: eine Lesson). Mit dieser Lesson trainierst Du dann das Netz. Eine weitere Lesson mit nicht trainierten Wertepaaren solltest Du für die Validierung Deines Netzes bereithalten.
Eine Kernfrage ist immer, ob die Ausgabewerte nur von den momentanen Eingabewerten abhängen (dann tut es ein zeitinvariantes Netz) oder ob das Netz auch Reihenfolgebeziehungen zwischen den Ein-/Ausgabemustern erlernen soll (dann brauchst Di ein zeitvariantes Netz). Kannst Du dazu Angaben machen?

Soweit so gut, jetzt bin ich mir aber noch ganz unsicher, ob das Deine Frage wenigstens ein Stück weit beantwortet. Ich verstehe nämlich noch nicht, wieso Du eine Funktion über NN annähern möchstest, für die Du bereits eine mathematische Formulierung hast... Geht es um Rechenzeit-Ersparnis oder um einen Vergleich verschiedener neuronaler Netze / Trainingsalgorithmen?

Vielleicht kannst Du etwas genauer erläutern, was genau Deine Zielsetzung ist?

Viele Grüße
Thomas Jetter
wemser
Posts: 3
Joined: Sun 7. Dec 2008, 13:20

Re: Von Funktion zu NN

Post by wemser »

vielen dank, deine antwort wird mir auf jeden fall weiterhelfen...

Vielleicht habe ich das etwas ungeschickt ausgedrückt, ich berechne in einer Simulation aus diskreten Eingabevektoren (quasi Steuerungsvariablen) davon abhängige Vektoren (Zustandsvariablen). Steuerungs- und Zustandsvariablen sind dann die Eingabedaten für eine weitere Berechnung, die einen FUnktionswert ergibt. Die Zusammenhänge zwischen den Vektoren habe ich formal beschrieben. Ich kenne nur nicht den Rechenschritt, den die Simulation für die ERmittlung der Zustandsvariablen aus den Steuerungsvariablen durchführt. Dies möchte ich über ein neuronales Netz approximieren, um dann gezielt optimale Parameterkombinationen zu ermitteln.

Für die Konstruktion eines NN würde ich jetzt die Berechnung der Funktionswerte in kleine Schritte unterteilen und jeder Schritt wird dann ein Neuron, ist das ein sinnvolles Vorgehen?

Einen schönen 2. Adventsabend,

Daniel
User avatar
Admin
Site Admin
Posts: 438
Joined: Sun 16. Nov 2008, 18:21

Re: Von Funktion zu NN

Post by Admin »

Hallo Daniel,

Zunächst einmal muss ich nochmal rückfragen. Habe ich das so richtig verstanden:

A -> Simulation -> B

(A, B) -> Formale Berechnung -> C

Wobei A, B und C reelwertige Vektoren sind, also Tupel aus skalaren Größen?
Und Du möchtest die Simulation durch ein NN ersetzen, um die Parameter A im Hinblick auf das Endergebnis C zu optimieren, ja?
Für die Konstruktion eines NN würde ich jetzt die Berechnung der Funktionswerte in kleine Schritte unterteilen und jeder Schritt wird dann ein Neuron, ist das ein sinnvolles Vorgehen?
Ich verstehe die Unterteilung in 'kleine Schritte' noch nicht ganz. Ich hätte jetzt gesagt, Du brauchst viele Permutationen von Parametersätzen A mit den zugehörigen Ausgabesätzen B. Mit diesen trainierst Du Dein Netz, wobei jeder Skalar aus A (also jede Dimension des Vektors A) ein Eingabeneuron erhält und jeder Skalar aus B ein Ausgabeneuron.

Wenn Du viele Trainingsbeispiele hast, dann kannst Du es wahrscheinlich schaffen, Deine Simulation durch ein NN zu ersetzen (natürlich mit gewissen Unsicherheiten wie das bei NN eben so der Fall ist.).

Da Du von einer Simulation sprichst, denke ich, dass Deine Eingangsvektoren A eine feste Reihenfolge ('zeitliche Abfolge') aufweisen, oder? In diesem Fall brauchst Du ein zeitvariantes Netz und Du musst die Ein- und Ausgabedaten äquidistant und in der korrekten zeitlichen Reihenfolge aufzeichnen.

Bzgl. zeitvarianter Netze: Seit gestern Nacht gibt es eine neue MemBrain-Version, die hier bessere Unterstützung bei der Erstellung bietet und ein Tutorial als Teil des Beispiele-Pakets auf der MemBrain Homepage, das eine Zeitreihenvorhersage behandelt. Das ist nicht ganz das was Du brauchst, aber es wird ähnlich ablaufen. Bei der Zeitreihenvorhersage ist der Ausgangswert von der selben Art wie der Eingangswert nur um eine Anzahl Zeitpunkte in die Zukunft verschoben. Bei Deinem Problem sind die Vorgaben der Ausgangswerte dagegen die Berechnungsergebnisse der Simulation zum entsprechenden Zeitpunkt.

Viele Grüße
Thomas Jetter
wemser
Posts: 3
Joined: Sun 7. Dec 2008, 13:20

Re: Von Funktion zu NN

Post by wemser »

Admin wrote: Zunächst einmal muss ich nochmal rückfragen. Habe ich das so richtig verstanden:

A -> Simulation -> B

(A, B) -> Formale Berechnung -> C

Wobei A, B und C reelwertige Vektoren sind, also Tupel aus skalaren Größen?
Und Du möchtest die Simulation durch ein NN ersetzen, um die Parameter A im Hinblick auf das Endergebnis C zu optimieren, ja?
ja genau, das ist mein Ansatz. Zumindest will ich das versuchen...
Allerdings brauche ich keinen zeitlichen Bezug in meinem NN, da ich keine mein simuliertes System nicht direkt zeitabhängig ist. Es handelt sich hier um logistisches System, und die EIngabevektoren sind nicht zeitabhängig.
User avatar
Admin
Site Admin
Posts: 438
Joined: Sun 16. Nov 2008, 18:21

Re: Von Funktion zu NN

Post by Admin »

Hallo Daniel,

heisst das, Deine Eingabevektoren haben keinen Reihenfolgenbezug zueinander? Mit anderen Worten: Wenn Du einen Vektor A1 anlegst erwartest Du immer das Ergebnis B1 am Ausgang, egal ob vorher Vektor A2 oder A3 angelegen hat? Der Ausgang hängt also immer ausschließlich vom momentan angelegten Eingabevektor ab?

Wenn Du das alles mit 'Ja' beantworten kannst, dann brauchst Du kein zeitabhängiges Netz, dann tut es ein zeitinvariantes. Macht die Sache einfacher...

Viele Grüße und ebenfalls einen schönen 2. Adventsabend ;)
Thomas Jetter
Post Reply