Neuronale Netze - Seite 13

 
Kazam:
Wenn Sie eine gute Quelle für Informationen über HONNs suchen, besorgen Sie sich das Buch "Artificial Higher Order Neural Networks for Economics and Business". Es ist eine neue Veröffentlichung und enthält sehr gute Informationen. Der Preis ist ein Killer (180$), aber Sie können es in pdf finden.

Das ist das Buch, von dem ich gesprochen habe, es ist gut. Ich bin erst ein Stück weit durch, aber es hat mir schon eine Menge Ideen geliefert. Sie zu implementieren, für mich sowieso, ist ein wenig mehr knifflig, ich bin ein bisschen ein Neuling zu dieser Codierung malarky...

Danke für die Empfehlungen, ich werde mir das mal ansehen... Vielleicht habe ich ja Glück und finde ein paar davon in der Uni-Bibliothek. Sie haben gerade ein neues Gebäude für künstliche Intelligenz mit einer eigenen Bibliothek gebaut, also könnte dort etwas zu finden sein. Ansonsten lade ich sie einfach herunter...

Oh, ich habe meine 10-Jahres-Daten in zwei Teile aufgeteilt, 2/3 bzw. 1/3, das Netzwerk auf den ersten 2/3 trainiert (einschließlich der Aufteilung dieser 2/3 in Trainings-, Test- und CV-Teile) und dann das resultierende Netzwerk auf dem verbleibenden 1/3 getestet, und es schien genau zu bleiben. Es gab zwar einen minimalen Verlust an Genauigkeit, aber die Regressionslinie lag immer noch bei 0,9995. Könnte das immer noch durch eine Überanpassung an die vorherigen Trainingsdaten erklärt werden?

 
Kazam:

- "Gen Expression Programming" - von Candida Ferreira.

Ist Candida Ferreira nicht das Bakterium, das Soor verursacht?

 

surfeur

Ich handele nicht auf dem Forex mit ENN. Vielleicht fange ich bald damit an, aber wahrscheinlich werde ich Systeme zur Klassifizierung verwenden /Systeme, die entscheiden, wann man long/short handelt/, anstatt zu versuchen, den Preis vorherzusagen - Forex ist zu volatil.

Im Moment verwende ich ENN und genetische Algorithmen /und einige andere Dinge wie Fuzzy-Logik, Rough-Set-Theorie usw./ für das Portfoliomanagement /zur Vorhersage langfristiger Zinssätze für den Handel mit Schatzbriefen usw./.

Die Ergebnisse sind ziemlich gut. Sie werden noch besser sein, wenn nach dem Ende der Finanzkrise alles besser und stabiler wird.

mrwobbles

Für den Devisenhandel sollte man nicht auf die Fehlermessungen achten, sondern prüfen, ob die Vorhersagen die gleiche Richtung der Kursbewegung zeigen wie die gewünschte Ausgabe. Was ich meine: Wenn NN anzeigt, dass der nächste Kurs höher als der aktuelle schließen wird, sollten Sie erwarten, dass der Kurs mindestens x Pips über seinem Eröffnungsniveau liegt. Die Vorhersage des genauen Preisniveaus ist bei Zeitrahmen wie H1 oder H4 fast unmöglich.

Der kleine Fehler, den Sie jetzt haben, wird durch die falsche Methode der Messung verursacht.

Und Sie haben Recht - es gibt eine Gattung von Hefepilzen namens Candida

 

Ich habe versucht, sowohl den Schlusskurs als auch den Open-Close-Spread vorherzusagen, denn ich denke, Sie haben Recht, dass es nahezu unmöglich ist, den genauen Schlusskurs vorherzusagen. Ich denke aber, dass ein geeignetes Netzwerk mit genetisch optimierten Neuronen und Gewichten in der Lage wäre, dies bis auf 5 Pips genau zu tun, wenn man ihm die richtigen Eingaben gibt. Haben Sie in Erwägung gezogen, Kohonen Self Organizing Maps (SOMs) zu verwenden, um weiter in die Zukunft als t+1 vorauszusagen? Soweit ich weiß, können Kohonen-Netzwerke die Vorhersage für t+1 nehmen und diesen Wert dann für die Vorhersage aller Werte bis z. B. t+10 verwenden, aber ich könnte mich irren. Das wäre nützlich, obwohl alle Beispiele, die ich gesehen habe, weniger genau waren als das, wonach ich suche.

 

Für den Zweck der Vorhersage von Forex-Zeitreihen vergessen Sie SOMs. ENN sind viel besser.

Wenn Sie Schritte über t+1 /t+2, t+3 usw. vorhersagen wollen, verwenden Sie einfach einen anderen Zeitrahmen. Wenn Sie z. B. den Trend für die nächste Woche vorhersagen wollen, verwenden Sie den Zeitrahmen W1. Sagen Sie nicht t+n auf der Grundlage von t+n-1 voraus /weil Devisenkurse chaotisch und nicht linear sind/. Sie können auch ein Netzwerk zur Vorhersage von t+1 trainieren, ein zweites zur Vorhersage von t+2 /mit denselben Daten/ und so weiter.

Eine sehr gute Idee ist der Aufbau von Hybridsystemen. In einfachen Worten: Man nehme 5-6 der besten neuronalen Netze und kombiniere ihre Ergebnisse /dafür kann man eine einfache Mittelwertbildung verwenden [(out1+out2+...+outN)/N)], GEM, LWPR [LWPR ist IMO die beste Wahl] usw./

 

Das ist im Grunde das, was ich dachte. Ich habe einige Vorhersagen von SOMs gesehen, und sie könnten den Trend über einen Zeitraum von sagen wir 20 Schritten richtig getroffen haben, aber sie lagen weit daneben, was die tatsächliche Kursentwicklung anging. Ich denke, dass die genetische Optimierung der richtige Weg ist. Da NN entwickelt wurden, um biologische Systeme zu imitieren, scheint es logisch, dass die Hinzufügung einer Form von evolutionärem Prozess die Genauigkeit erhöhen wird.

Ich bin mir bei diesen Ergebnissen nicht sicher. Ich habe sie vergrößert, um zu prüfen, ob die Richtung stimmt, und es scheint sie öfter zu treffen als nicht. Es gibt ein paar anomale Ergebnisse (eines, bei dem er um 400 Pips = S daneben liegt), aber im Großen und Ganzen stimmt die Richtung. Das Bild zeigt die Vorhersagen (grün) gegen die Ziele (blau) für Close, High und Low. Ich habe eine Menge über ANNs gelesen, aber dies ist mein erster Streifzug in den Aufbau von ihnen, so dass ich nicht genau wissen, was ich bin auf der Suche nach anderen als die offensichtliche.

Dateien:
gbpjpy60-3.jpg  67 kb
 

Hallo

Ich werde dies wieder posten: vor einigen Jahren schrieb ich eine Dissertation über Fuzzy-Logik + Neuronales Netzwerk mit Backpropagation zur Vorhersage von Ölvorkommen in einem Bohrlochprotokollierungsprozess und das Ergebnis ist gut, also denke ich, dass Fuzzy-Logik mit NN-Backpropagation implementiert werden kann, um den Trend in diesem Geschäft vorherzusagen, aber es braucht mehr Daten zu trainieren, um ein besseres Ergebnis zu erhalten, ich habe 9 Knoten verwendet, um das Muster von Felsen vorherzusagen, ich weiß nicht, wie viele Knoten für ein Forex-Muster erkennen.

===================

Forex-Indikatoren-Sammlung

 
prasxz:
Ich werde dies wieder posten: vor einigen Jahren schrieb ich eine Diplomarbeit über Fuzzy-Logik + Neuronales Netzwerk mit Backpropagation zur Vorhersage von Ölvorkommen in einem Bohrlochprotokollierungsprozess und das Ergebnis ist gut, also denke ich, dass Fuzzy-Logik mit NN-Backpropagation implementiert werden kann, um den Trend in diesem Geschäft vorherzusagen, aber es braucht mehr Daten zu trainieren, um ein besseres Ergebnis zu erhalten, ich habe 9 Knoten verwendet, um das Muster von Felsen vorherzusagen, ich weiß nicht, wie viele Knoten für ein Forex-Muster erkennen.

===================

Forex-Indikatoren-Sammlung

Ich habe gelesen, dass es weitgehend von der Anzahl der Eingänge abhängt, die Sie dem Netzwerk geben. Ich gebe ihm 32 Eingänge und möchte 3 Ausgänge, also würde ich mit (32-3)/2=14,5 beginnen, also sagen wir 14 Neuronen und dann von dort aus arbeiten. Das Modell, das ich erstellt habe, verwendet 13 Knoten, und lustigerweise erhöht sich durch die Verringerung der Knoten sowohl die Genauigkeit als auch die Konvergenzzeit, obwohl sie nach einem gewissen Punkt abnimmt. Wenn man einen genetischen Algorithmus auf das Problem anwendet, um ein ENN zu erstellen, wie Kazam es erwähnte, sollte das Netzwerk in der Lage sein, das optimalste Netzwerk in einem Musterraum aller möglichen Netzwerke auszuwählen, die genaue Ergebnisse liefern. Das heißt, wenn ich verstanden habe, was ich über sie gelesen habe. Ich könnte mir jedoch vorstellen, dass dies die Zeit, die für den Aufbau des Netzes benötigt wird, erheblich verlängern würde.

 

prasxz

Unscharfe neuronale Netze und unscharfe hybride neuronale Systeme können eine sehr gute Wahl beim Aufbau von Handelssystemen sein. Für die Vorhersage chaotischer Zeitreihen sind sie möglicherweise weniger geeignet.

mrwobbles

Diese Diagramme zeigen die Trainingsdaten /gewünscht vs. vorhergesagt/?

Die Wahl einer geeigneten Anzahl von Knoten ist sehr, sehr schwierig. Die von Ihnen vorgestellte Formel ist nutzlos /aber sehr beliebt/ - es gibt keine deterministische Möglichkeit, eine optimale oder nahezu optimale NN-Architektur zu wählen.

Genetische Algorithmen überwinden dieses Problem. Man gibt einem genetischen Algorithmus zwei Gruppen vor - eine mit Terminalsymbolen (Eingänge, Konstanten usw.) und die andere mit Funktionen (Knoten mit verschiedenen Aktivierungsfunktionen, trigonometrischen Funktionen usw.), und der Algorithmus "baut" NNs aus Mitgliedern dieser Gruppen. Auf diese Weise können Sie ein NN mit 3 Knoten und 5 Eingaben oder ein NN mit 30 Knoten und 50 Eingaben erhalten. Je mehr Generationen man wartet, desto bessere NNs erhält man /Lesen Sie über das Holland'sche Schema-Theorem, wenn Sie wissen wollen, warum dies so geschieht

http://en.wikipedia.org/wiki/Holland%27s_schema_theorem

/.

 
Kazam:

mrwobbles

Diese Diagramme zeigen die Trainingsdaten /gewünscht vs. vorhergesagt/?

Die Auswahl einer geeigneten Anzahl von Knoten ist sehr, sehr schwierig. Die von Ihnen vorgestellte Formel ist nutzlos /aber sehr beliebt/ - es gibt keine deterministische Möglichkeit, eine optimale oder nahezu optimale NN-Architektur zu wählen.

Genetische Algorithmen überwinden dieses Problem. Sie geben einem genetischen Algorithmus zwei Gruppen vor - eine mit Terminalsymbolen (Eingänge, Konstanten usw.) und die andere mit Funktionen (Knoten mit verschiedenen Aktivierungsfunktionen, trigonometrischen Funktionen usw.), und der Algorithmus "baut" NNs aus Mitgliedern dieser Gruppen. Auf diese Weise können Sie ein NN mit 3 Knoten und 5 Eingaben oder ein NN mit 30 Knoten und 50 Eingaben erhalten. Je mehr Generationen Sie warten, desto bessere NNs erhalten Sie (lesen Sie über das Holland'sche Schema-Theorem, wenn Sie wissen wollen, warum das so ist).

http://en.wikipedia.org/wiki/Holland%27s_schema_theorem
/.

Ja, Training vs. Vorhersage. Ich habe ein neues Netzwerk mit den ersten 6-7 Jahren an Daten erstellt, die zum Trainieren, Testen und Kreuzvalidieren verwendet wurden. Dann habe ich es mit den restlichen 3 Jahren an Daten gefüttert, um einen Live-Test zu simulieren, ohne zu lernen. Die Trainingsregressionslinie hatte eine Steigung von 0,99995, und als ich sie mit etwa 3 Jahren zuvor ungesehener Daten fütterte, sank sie auf 0,9995. Ich bin mir nicht sicher, wie ich das interpretieren soll. Es scheint mir etwas zu genau für etwas, das ich in weniger als einer Stunde zusammengestellt habe.

Ja, ich bin auf diese Formel in einem Buch zur Einführung in neuronale Netze gestoßen, das ich in der Bibliothek gefunden habe. Es behandelt die Grundlagen und war für mich eine gute Einführung in die Welt der neuronalen Netze. Für jemanden, der damit anfängt, ist es ein guter Einstieg, bevor er sich mit schwierigeren Konzepten wie genetischen Algorithmen befasst.

Wenn ich es richtig verstanden habe, geht es darum, eine zunächst zufällige Population von Programmen (Eingangsgewichte, versteckte Schichten, Neuronen usw.) zu erzeugen, die das Problem lösen könnten, und dann optimale Elternprogramme zu verwenden, um eine neue Generation von Programmen zu züchten, die hoffentlich besser als die letzte sein sollte. Wenn Sie die erste Population nach dem Zufallsprinzip erzeugen, besteht dann nicht die Möglichkeit, dass Sie eine Population erzeugen, in der kein Programm das Problem löst? Oder ist die Idee, mit einer Population zu beginnen, die das Problem nicht löst, und dann eine zu entwickeln, die es löst? Das würde doch sicher eine Menge Berechnungen erfordern? Mehr als der durchschnittliche Desktop-Rechner bewältigen könnte? Ich könnte mir vorstellen, dass eine parallele Grafikkartenverarbeitung oder noch besser ein massiv paralleles System erforderlich wäre. Davon abgesehen scheint dies jedoch der beste Ansatz zu sein, um die optimalste Lösung zu finden.

Wäre es nicht besser, mit einer Population von z. B. 12 Netzen zu beginnen, die durch Training mit bestehenden Methoden erstellt wurden, und diese Programme dann zu verwenden, um untereinander Nachkommen zu erzeugen? Sie könnten dann eine stammbaumartige Struktur erstellen und die von Ihnen vorgeschlagenen Methoden verwenden, um eine bessere Population zu entwickeln, erfolglose Nachkommen zu beschneiden und die 12 optimalsten Programme als Eltern der nächsten Generation auszuwählen? Die Idee ist, mit einer Population zu beginnen, von der man weiß, dass sie das Problem löst, und dann aus den daraus resultierenden Nachkommen ein effizienteres Programm zu evolvieren.