Marktknigge oder gute Manieren im Minenfeld - Seite 31

 
paralocus писал(а) >>

Hallo Neurton! Wie auch immer, ich habe noch kein Glück mit der doppelten Schicht.

Ich habe ein einschichtiges Perzeptron mit ORO geschrieben und es gestern den ganzen Tag laufen lassen. Es verhält sich seltsam. Es lernt und lernt nicht und ist in katastrophaler Weise von der Anzahl der Epochen abhängig.

Meine Ergebnisse lauten also wie folgt: 8 Epochen - das Gitter lernt nicht, 12 Epochen - das Gitter lernt, 13 Epochen - das Gitter lernt nicht.

Kurz gesagt, die Ergebnisse rühmen, dass ich noch nicht kann.

Auf jeden Fall werde ich einen Algorithmus beschreiben, den ich implementiert habe. Sehen Sie nach, ob ich etwas übersehen habe.

1. Das Perzeptron hat D binäre Eingänge, von denen einer eine Konstante +1 ist.

(2) Der verwendete Blutdruck ist ein sequentieller Kegelschritt über eine Reihe von offenen Stellen.

3. Alle Gewichte werden vor dem Start mit kleinen Zufallswerten aus dem Bereich +/-1 initialisiert.

4. Die Länge des Trainingsvektors wird berechnet als P = 4 * D*D/D = 4*D.

5. Der Trainingsvektor wird in den Gittereingang eingespeist, und der Gitterfehler wird berechnet als Qs = Test - OUT, wobei Test der Wert von BP bei n+1, d.h. der nächsten Auslesung, und OUT die Gitterausgabe bei n Auslesungen ist.

6. Um den Wert des Fehlers an den Eingängen Qs zu erhalten, wird der Gitterfehler Qs mit der Ableitung der Quetschfunktion (1 - OUT+OUT) multipliziert: Q = Qs *(1 - OUT*OUT).

7. Der Korrekturvektor für jedes in ein Neuron eingehende Gewicht COR[i] += Q*D[i] wird berechnet und während der Epoche akkumuliert.

8. SQR[i] += COR[i]*COR[i] wird separat berechnet und während der gesamten Epoche für jedes Gewicht akkumuliert, das in das Neuron einbezogen ist.

9. Am Ende einer Epoche wird für jedes Gewicht die persönliche Korrektur berechnet und zu diesem Gewicht hinzugefügt W[i] += COR[i]/SQR[i]

Es wurde versucht, einen Koeffizienten von (1 - j/N) zu verwenden und Gewichte, deren absolute Werte über 20 gewachsen sind, zu randomisieren. Die Zufallsauswahl hilft besser.

P.S. Ich habe einen Fehler im Text korrigiert.

Paralocus, stecken Sie Ihre Freundin auf den Eingang Dies:

Anstelle der Eröffnungspreise. Und veröffentlichen Sie das Ergebnis. Wenn es nicht lernt, dann ist der Fehler katastrophal und Sie müssen sich ernsthaft auf die Suche machen.

P.S. Teilt man durch die Vektornorm oder durch das Quadrat? Ich sollte es nach der Norm machen, aber was du geschrieben hast, sieht aus wie die Summe der Quadrate, ohne die Wurzel zu ziehen.

 

Danke, ich werde es ausprobieren.

Hier sind die Ergebnisse für AUDUSD, H4, D = 13, 33 Epochen. Die Prüfung wurde für einen Teil der Geschichte vom 08.01.2009 bis zum 21.05.2009 durchgeführt.

Es gibt noch einige weitere Punkte (Anzahl der Epochen: 31, 25, 14, 10, 7), die mit dem Optimierer erreicht wurden, aber die Ergebnisse sind schlechter als bei diesen.





P.S. Genau! Die Wurzel ist... quadratisch... Ich habe vergessen, es zu extrahieren!

 
paralocus писал(а) >>

P.S. Genau! Die Wurzel ist... quadratisch... Ich habe vergessen, sie herauszunehmen!

Genau wie in dem Witz von Chapaev! :-)

 
Neutron >> :

Das ist wie der Witz von Chapaev! :-)

-:) ... Weinend, aber seinen Säbel schärfend...

 

Nein, Petya hat alle Büsche auf dem Hof ausgerissen - er sollte die Quadratwurzel finden:-)

Hier, sehen Sie. Es handelt sich um ein zweischichtiges Ns-ca mit zwei Eingängen und 8 Trainingsepochen für jede Probe. Es handelt sich um insgesamt 500 Stichproben, und die Wahrscheinlichkeit einer korrekten Vorhersage wird als Durchschnitt von 10 unabhängigen Experimenten berechnet (zur statistischen Signifikanz der Ergebnisse):

Rot zeigt das Ergebnis für die Trainingsstichprobe, blau für die Teststichprobe. Sie können sehen, dass die Ergebnisse nicht sehr unterschiedlich sind, und das ist gut, denn es zeigt, dass das Netzwerk nicht übertrainiert ist. Oft liegt der Fehler darin, dass wir einen zu kurzen Trainingsvektor auswählen (weniger als die optimale Länge), und fast 100 % der Auswirkungen auf die Trainingsstichprobe. Gleichzeitig werden die Vorhersageergebnisse der Stichprobe, die nicht an der Schulung teilgenommen hat, nicht berücksichtigt! In diesem Fall liegt das Ergebnis in der Regel nahe bei Null. Das ist Übertraining, das Netz hat die Lektion einfach auswendig gelernt und ist nicht in der Lage, sich zu sortieren. Dann fragen sie sich, warum sie durchfallen.

 

Hurra!!!

Meine Einzahlung hat gerade 1K überschritten!

Neutron, werden die binären Einträge für das Gitter durch die Formel Ihrer Testprobe trainiert?

 

Ich teile den nach dieser Formel erstellten BP in Segmente mit der gleichen Preisstufe H und nehme die erste Differenz. Ich runde die Schritte auf +/- 1 auf und versuche, sie vorherzusagen. Hn Abb. Der Handelshorizont H ist auf der Abszissenachse in Pips und die Wahrscheinlichkeit auf der Ordinatenachse aufgetragen. Die Einträge sind also binär.

 

So habe ich es herausgefunden. Um diese Formel mit meinen Augen zu sehen, habe ich sie als Indikator in das Diagramm eingefügt. Ich habe all diese Dinge in das Eingaberaster eingegeben, aber ich weiß nicht, wie ich die Ergebnisse sehen kann.

Das heißt, ich kann es nicht mit einem Tester machen. Sie können nur die Gewichte ausdrucken und sehen, wie es ist... lebend oder nicht.

Nein, so ist es nicht. Ich habe den sich ergebenden Blutdruck nicht in Segmente gleicher Schrittweite unterteilt, sondern aufeinanderfolgende Schrittweiten des Blutdrucks bei D-Zählungen genommen.

 
paralocus писал(а) >>

So habe ich es herausgefunden. Um diese Formel mit meinen Augen zu sehen, habe ich sie als Indikator in das Diagramm eingefügt. Ich habe all diese Dinge in das Eingaberaster eingegeben, aber ich kann nicht herausfinden, wie ich die Ergebnisse sehen kann.

Das heißt, ich kann es nicht mit einem Tester machen. Sie können nur die Gewichte ausdrucken und sehen, wie es ist... lebend oder nicht.

Nein, so ist es nicht. Ich habe den sich ergebenden Blutdruck nicht in Segmente mit gleichen Schritten unterteilt, sondern habe aufeinanderfolgende Schritte des Blutdrucks bei D-Zählungen genommen.

Wie wäre es, die Gewichte über Comment() anzuzeigen?

 
FION >> :

Können Gewichte durch Comment() angezeigt werden?

Das ist zwar möglich, aber unpraktisch, da jeder nachfolgende Aufruf von Comment() die Ergebnisse der vorherigen Ausgabe "verstopft", da er unter Verwendung derselben grafischen Koordinaten wie die vorherige Ausgabe durchgeführt wird. Daher ist Print() besser geeignet;