Hallo,
Blu3Scr33n wrote:Ich habe jetzt beide Varianten (in abgekürzter Millionen-Schreibweise und in ausgeschriebenen Zahlen) getestet und komme mit der zweiten Variante zu besseren Ergebnissen.
Versuchen Sie doch auch einmal 'LOGISTIC' als Aktivierungsfunktion bei den Hidden- und Outputneuronen. Ich mache damit meist bessere Erfahrungen als mit TAN-HYP, insbesondere, wenn die Daten alle das selbe Vorzeichen haben.
Blu3Scr33n wrote:Wie bekomme ich es hin, dass mir Membrain die Regressionsformel ausspuckt, mit der ich weitere Daten auf Grundlage der Prognose berechnen kann?
Gar nicht. Der Grund dafür liegt im Prinzip: MemBrain ermittelt keine kompakte 'Formel', sondern berechnet die Outputs aus den Inputs über die Neuronen und die Links, die Sie auf dem Bildschirm sehen. Das Ganze über Berechnungsvorschriften für jedes Neuron, wie Sie sie in der MemBrain Hilfe (F1) finden können, im Abschnitt 'Neurons in MemBrain' - 'Neuron Model and Operation'. Gut ist auch der Hilfe-Einstieg über den Abschnitt 'Neural Networks'.
Generell möchte ich Ihnen ans Herz legen, sich einmal grob durch die Hilfe zu lesen, anhand der Registerkarte 'Inhalt'. Ich weiß, das ist etwas mühsam, aber die Hilfe ist bewusst so gestaltet, dass sie nicht nur Alibi-Funktion hat, es steht tatsächlich sehr viel drin
Wenn Sie das Netz nutzen wollen, um Berechnungen durchzuführen, haben Sie generell vier Möglichkeiten:
- Manuell durch Klicks in MemBrain (im Wesentlichen Buttons des Lesson Editors)
- Über Skripte (wie im Beispiel-Skript für Training und Validierung
viewtopic.php?f=13&t=232, ich denke, das haben Sie bereits erfolgreich eingesetzt, oder?
- Über die MemBrain DLL, die Sie in eigene Software einbinden können, so dass sie MemBrain quasi 'unsichtbar' in Ihrer eigenen Software zur Verfügung haben
- In dem Sie C-Quellcode in Ihre eigene Software einbinden, den Sie aus Ihrem Netz mittels MemBrain generieren.
Blu3Scr33n wrote:- Mein Netz ist ein simples Feed-Forward Net ohne Backpropagation. Im Teacher Manager ist allerdings von mir eingestellt BP mit vollem loop support (Was die besten Ergebnisse auswirft). Kann mir jemand erklären warum das so ist oder habe ich grade einen Denkfehler und mein Netz ist doch mit Backpropagation?
Hier verwechseln Sie zwei Begriffe: 'Backpropagation' ist der grundsätzliche Lernalgorithmus, der verwendet wird, um ein Netz zu trainieren (typischerweise ein solches simples Feed-Forward Netz, das sie benutzen). Dass der Teacher (= Lernalgorithmus) auch sogenannte 'Loopbacks' im Netz unterstützt (= Rückkopplungslinks), ist eine andere Sache. Der Teacher unterstützt diese Links zwar, das Netz muss aber keine solchen enthalten.
Im Übrigen würde ich Ihnen den Teacher 'RPROP' mit Default-Einstellungen empfehlen, dieser liefert in aller Regel die besten Ergebnisse. RPROP sollte bei einer MemBrain Neuinstallation eigentlich als Default eingestellt sein, ich vermute, Sie haben bewusst etwas anderes eingestellt. Darf ich fragen, warum? Ich frage deshalb, weil das häufig vorkommt, und ich noch nicht herausgefunden habe, warum das so viele Benutzer tun...
Blu3Scr33n wrote:- Mit "Start Teacher" kann ich das Netz trainieren lassen. Was passiert allerdings, wenn ich auf "Start Thinking" klicke?
MemBrain beginnt dann, selbsttätig und permanent, sogenannte 'Think Steps' ablaufen zu lassen. Ein Think Step ist ein Rechenschritt des Netzes, d.h., eine einmalige Berechnung des Outputs aus den Inputs.
Bei Ihrem zeitunabhängigen Netz hat diese Funktion keine Bedeutung: Ihre Outputs ändern sich nach dem ersten Think Step nicht mehr, da sie ausschließlich von den (konstanten) inputs abhängen.
Das ist bei Netzen mit Rückkopplungslinks und anderen zeitanhängigen Elementen anders. Wenn Sie die Sache interessiert, dann schlage ich vor sich die Netzbeispiele von der MemBrain Homepage herunterzuladen und der Hilfe-Datei darin zu folgen: Eines dieser Beispiele zeigt die Funktion sehr schön an einem chaotischen Netz.
Blu3Scr33n wrote:- Würde es Sinn machen, wenn ich die Daten der Tageshöchst- und -tiefstpreise des Vortages als Inputneuronen definiere oder besteht dann die Gefahr, dass das Netz zu stark auswendig lernt?
Das könnte sehr viel Sinn machen, ja. Ich würde sogar sagen, dass die Daten mehrerer Vortage Sinn machen könnten. Der Ansatz, diese als weitere Inputs hinzuzunehmen, ist zwar der aufwändigste, was die Datenaufbereitung angeht, ist aber der einfachste, was das Handling des Netzes angeht. Eine Alternative wäre ein zeitabhängiges Netz. Die Netzbeispiele der MemBrain Homepage zeigen ein zeitabhängiges Netz am Beispiel der Mackey-Glass Zeitreihe. Zeitabhängige Netze haben es allerdings 'in sich', was das Handling und das Training angeht, da kann man viel falsch machen. Für erste Versuche würde ich wie gesagt empfehlen, die Daten einiger Vortage als zusätzliche Netz-Inputs aufzunehmen.
Blu3Scr33n wrote:- Ich wollte das Netz im Nachhinein in sofern verändern, dass ich überprüfe, ob die Ergebnisse noch besser werden, wenn ich Hidden Neuronen hinzufüge (Ich hatte an 5-9 HN gedacht). Macht das Sinn und macht es evtl. auch Sinn weniger HN zu benutzen?
Solche Versuche machen absolut Sinn, ja. Allerdings erst, wenn die Sache grob funktioniert, also quasi als 'Feintuning'. Meine Erfahrungen aus mittlerweile sehr vielen Prohejten zeigen, dass die Architektur des Netzes bzgl. der Anzahl der Hidden-Neuronen um ein Vielfaches unwichtiger ist, als die Qualität der Daten selbst (und ihre Auswahl).
Also erst schauen, welche Daten die besten Ergebnisse bringen, dann am Netz optimieren.
Viele Grüße und viel Erfolg!