Populationsdynamik mit einem rekurrenten KNN

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
lampengott
Posts: 3
Joined: Thu 27. May 2010, 13:13

Populationsdynamik mit einem rekurrenten KNN

Post by lampengott »

Hallo liebe Forengemeinde!

Ich habe ein Problem. Ich möchte eine Populationsdynamik mit Hilfe eines KNN nachstellen. Da es sich um ein zeitabhängiges System handelt, dachte ich an ein rekurrentes Netz.

Modellgleichung: I dx/dt = a*x*(1-x/k)-b*x*y
II dy/dt = c*x*y-d*y

Als Input habe ich X(t) und Y(t) mit X,Y Populationsgrößen
Als Output habe ich X(t+1) und Y(t+1)
Test- und Trainigsdatenvorhanden.

Ich habe es mit Delay- Neuronen und auch mit Rückkopllungen probiert, aber eine zufriedenstellende Lösung war nicht dabei.

Daher meine Frage:

Was mache ich falsch?

Ist ein rekurrentes KNN für diese Simulaion überhaupt geeignet bzw. wie mächtig muss solch ein Netz sein?

Das Projekt läuft im Rahmen meiner Diplomarbeit.

Edit: 28.05.2010 10:00 Rechtsschreibung korrigiert
Last edited by lampengott on Fri 28. May 2010, 10:14, edited 1 time in total.
User avatar
Admin
Site Admin
Posts: 438
Joined: Sun 16. Nov 2008, 18:21

Re: Populationsdynamik mit einem rekurrenten KNN

Post by Admin »

Hallo und herzlich willkommen im Forum!

Zeitabhängige Netze sind extrem kritisch zu handhaben, können leicht instabil werden und dann eskalieren. Außerdem muss man beim Training und Validieren auf so manches achten, da das Netz bei jedem Berechnungsschritt seinen internen Zustand ändert.

Am Einfachsten postest Du hier mal Dein Netz und einen repräsentativen Datensatz, sowie die Datei 'Teachers.mbt', die Du auf Deinem System unter:

C:\Dokumente und Einstellungen\<User>\Anwendungsdaten\MemBrain\Config

finden solltest.

Ich hoffe, dass ich mir das dann in den nächsten Tagen mal anschauen und dann etwas mehr dazu sagen kann.

Viele Grüße
Thomas Jetter
lampengott
Posts: 3
Joined: Thu 27. May 2010, 13:13

Re: Populationsdynamik mit einem rekurrenten KNN

Post by lampengott »

Schonmal vielen Dank für die schnelle Hilfe!

Das mit den Datensatz habe ich garnicht so beachtet. Ich habe einfach einen Datensatz genommen und den dann gesplitet.

Das Netz trainiert nämlich ganz gut, nur die Evaluierung geht immer schief.

Eventuell ist das Netz etwas überdimensioniert.

Herzlichen Dank und ein schönes Wochenende wünschend

Michael
Attachments
MemBrain.rar
(11.08 KiB) Downloaded 642 times
User avatar
Admin
Site Admin
Posts: 438
Joined: Sun 16. Nov 2008, 18:21

Re: Populationsdynamik mit einem rekurrenten KNN

Post by Admin »

Hallo Michael,

anbei findest Du ein kleines Script nebst Trainings- und Validierungslesson. Einfach alles in ein Verzeichnis packen und dann in MemBrain das Script 'TrainValidate.as' über das Menü <Scripting><Execute Script...> starten.

Wichtig: Vorher die Eigenschaft 'Lesson Pattern Selection' des RPROP Teachers in MemBrain auf 'Ordered' stallen. Auch die Option 'Reset Net Before Every Lesson' sollte aktiviert sein.

Das Script erledigt alles für Dich, Training und Validierung, Du musst nur zuschauen.
Die Trainingslesson habe ich aus den ersten 300 Mustern Deiner Lesson abgespaltet, die Validierungslesson besteht aus den restlichen 200 Mustern.
Das Skript lädt die Lessons, startet das Training auf Basis der Trainingslesson und schaltet die 'Net Error Lesson' während des Trainings immer mal wieder zwischen Trainings- und Validierungslesson hin und her, so dass alles immer mal zur Anzeige kommt. Das Umschalten der Net Error Lesson besinflusst das Training nicht: Das Netz traininert immer nur auf Basis der Trainingslesson, die Wahl der Net Error Lesson beeinflusst nur, was die Basis für die Anzeige im Error Viewer und im Pattern Error Viewer ist.

Ich finde die Validierungsergebnisse recht beeindruckend, für ein zeitabhängiges Netz. Das hätte ich nicht gedacht!

PS: Während des Trainings wird auch immer mal wieder das im Pattern Error Viewer überwachte Outputneuron umgeschaltet, so dass sowohl X(t+1) als auch Y(t+1) immer mal wieder angezeigt werden. Im Script-Trace Fenster siehst Du außerdem immer, welche der Lessons gerade zur Anzeige kommt.
Das Timing kannst Du im Script leicht selbst einstellen, ich bin sicher, Du findest mit Hilfe der Kommentare im Code die richtigen Stellen. Das Script ist auch nicht kopmpliziert, ich denke, Du wirst es verstehen, selbst wenn Du kein Programmierer sein solltest.

Noch ein PS: Das Script benutzt ein Netz von mir: Ich habe aus Deinem Netz einige Hidden-Neuronen rausgeschmissen und dafür noch Links von den Inputs X(t) und Y(t) in das Netz geführt. Diese haben aus Meiner Sicht noch gefehlt. Wenn Du das Script mit Deinem Netz ausprobieren willst, musst Du nur im Script oben den Dateinamen ändern.

Viele Grüße und lass hören, ob alles klappt bzw. was Deine Meinung zur Validierung ist.
Attachments
TrainValidateScriptPackage.rar
Lessons und Script zum Training und zur Validierung
(13.76 KiB) Downloaded 618 times
Thomas Jetter
lampengott
Posts: 3
Joined: Thu 27. May 2010, 13:13

Re: Populationsdynamik mit einem rekurrenten KNN

Post by lampengott »

Hallo,

funktioniert alles super und die Validierung ist auch richtig gut.

Ich danke für die Hilfe!

Das Programm ist wirklich super una auch gut zu bedienen. Wenn ich da an das Programm an der Hochschule denke... teuer und kann weitaus weniger.

Das mit dem Script ist auch eine super Sache, gerade bei Präsentationen.

Also alles im allen eine super Sache!

Viele Grüße und dankend

Michael
Post Reply