Maschinelles Lernen im Handel: Theorie, Modelle, Praxis und Algo-Trading - Seite 521

 
Grigoriy Chaunin:

Lesen Sie über die Aktivierungsfunktionen von Neuronen. Sie können der Ausgabe beliebige Werte zuweisen, aber die falsche Aktivierungsfunktion wird negative Werte erzeugen. Dies ist normalerweise eine hyperbolische Tangente. Die Softmax-Verlustfunktion wird damit nicht korrekt funktionieren. Allerdings hängt viel von der Bibliothek und der Implementierung der Verlustfunktion ab. Zum Beispiel sollten in Tensorflow die Ausgangsneuronen für die Verlustfunktion softmax keine Aktivierungsfunktion haben. Und für die korrekte Nutzung des trainierten Netzes sollten wir Softmax-Aktivierung hinzufügen. Ichhabe nicht mit derALGLIB gearbeitet, vielleicht haben sie etwas falsch gemacht. In jedem Fall sollte ein mit Softmax trainiertes Netz keine negativen Werte liefern.

Softmax ist keine Verlustfunktion. Sie sind über etwas verwirrt. Softmax ist eine Aktivierungsfunktion der Ausgabeschicht für Klassifizierungsaufgaben. Verwirren Sie den Mann nicht, er wird selbst verwirrt werden.

Die Nutzung von Alglib erfolgt auf eigene Gefahr. Machen Sie einfach alles in Rstudio.

Viel Glück!

 
Dr. Trader:

Dies ist der Fall, wenn eine der Klassen im Vergleich zu den anderen Klassen eine sehr große Anzahl von Trainingsbeispielen hat. Zum Beispiel 2000 Trainingsbeispiele für den Kauf und nur 1000 für den Verkauf. Das Neuron kann immer "Kaufen" zurückgeben, und in diesem Fall wird es in 66 % der Fälle richtig liegen. Es ist besser, die Anzahl der Trainingsbeispiele für jede Klasse gleich zu halten.

NA-Klasse - wird sich durchsetzen, von 50% bei häufigem Handel bis 99% bei seltenem Handel. Aber ich habe es auf Platz 3, und ich habe die NA-Klasse 1 eingeklemmt.

Ich frage mich, warum in den Artikeln keine Übungsbeispiele für Momente verwendet werden, in denen nichts getan werden muss? Weil es auch wichtig ist, in den richtigen Momenten nichts zu tun, denn das sind in der Regel die Momente, in denen der Handel zu einem Verlust führen wird.
Ohne zu lernen, wie man eine Pause einlegt, kann es passieren, dass NS mit dem Handel beginnt und die Einlage verliert.

 
Vladimir Perervenko:

Softmax ist keine Verlustfunktion. Sie sind über etwas verwirrt. Softmax ist eine Aktivierungsfunktion der Ausgabeschicht für Klassifizierungsaufgaben. Verwirren Sie den Mann nicht, er wird sich selbst verwirren.

Die Nutzung von Alglib erfolgt auf eigene Gefahr. Machen Sie einfach alles in Rstudio.

Viel Glück!


Um genau zu sein, heißt die Verlustfunktion Softmax Crossentropy. Ja, ich habe mich nicht klar ausgedrückt.

 
Vladimir Perervenko:

Softmax ist keine Verlustfunktion. Sie sind über etwas verwirrt. Softmax ist eine Aktivierungsfunktion der Ausgabeschicht für Klassifizierungsaufgaben. Verwirren Sie den Mann nicht, er wird sich selbst verwirren.

Die Nutzung von Alglib erfolgt auf eigene Gefahr. Machen Sie einfach alles in Rstudio.

Viel Glück!

Wahrscheinlich werde ich die R-Bindung nach Ihrem nächsten Artikel verwenden (wo es eine Verbindung mit dem Terminal geben wird).
 

Übrigens ist es interessant, dass das obige Beispiel

Kaufen Verkaufen NA
0.10302356, 0.01091621, 0.88606040
0.09705416, 0.01083526, 0.89211080
0.08283979, 0.12548789, 0.79167247
1.02522414,-0.00119697,-0.02403573
0.09498582, 0.01529507, 0.88971917
1.01878489,-0.00111341,-0.01767998
0.07906346, 0.05960769, 0.86132762
0.00201949, 0.00497863, 0.99300189

Die Summe der einzelnen Zeilen ist 1. (die ersten 4 angekreuzt). D.h. eine gewisse Analogie zu Softmax, wo die Summe (d.h. die Wahrscheinlichkeit) ebenfalls = 1 ist. Dies geschah jedoch durch NS-Regression mit linearem Ausgang.

 
elibrarius:

NA-Klasse - wird sich durchsetzen, von 50 % bei häufigem Handel bis 99 % bei unregelmäßigem Handel.

Es ist sehr gefährlich, einem Lehrer willkürlich Klassen zuzuteilen, z. B. indem man einen Indikator zur Bildung von Lehrerklassen nimmt und dann einige der Werte durch NA ersetzt.

Selbst wenn es gute Prädiktoren und gute Klassen gibt, die unterrichtet werden können, und das Modell bei neuen Daten gute Ergebnisse erzielt, kann jeder Versuch, die Klassenwerte zu verändern, das Modell vollständig zerstören. Es ist ein großer Erfolg, Indikatoren für Prädiktoren und einen Indikator für Klassen zu finden, die das Modell bei neuen Daten rentabel halten.

Ich würde empfehlen, mit zwei einfachen Klassen zu beginnen - die Farbe des nächsten Balkens (d.h. Kauf/Verkauf). Nehmen Sie mindestens 10000 Trainingsbeispiele (historische Balken), trainieren Sie das Modell und bewerten Sie das Ergebnis anhand der nächsten 10000 historischen Balken (die dem Modell während des Trainings unbekannt waren). Wenn es uns gelingt, Prädiktoren zu finden, die die Genauigkeit des Modells bei alten und neuen Daten auf demselben Niveau halten, können Sie damit beginnen, einen Indikator für die Klassen einer Lehrkraft auszuwählen. Und es wird sich herausstellen, dass das Modell die Genauigkeit bei neuen Daten nicht beibehält, wenn man einfach den ersten verfügbaren Indikator nimmt. Warum einige Indikatoren für einen Lehrer geeignet sind und andere nicht - ich weiß es nicht.

 
elibrarius:

Mit der SOFTMAX-Version von NS auf ALGLIB stimmt etwas nicht. Alle Antworten sind auf den ersten Ausgang ausgerichtet (bei mir ist es BUY).
Bei denselben NS-Daten liefert die Regression mit 3 Ausgängen (mit linearer Aktivierung) zuverlässigere Ergebnisse:

Kaufen Verkaufen NA
0.10302356, 0.01091621, 0.88606040
0.09705416, 0.01083526, 0.89211080
0.08283979, 0.12548789, 0.79167247
1.02522414,-0.00119697,-0.02403573
0.09498582, 0.01529507, 0.88971917
1.01878489,-0.00111341,-0.01767998
0.07906346, 0.05960769, 0.86132762
0.00201949, 0.00497863, 0.99300189

in >0,5 werden plausible Antworten geben.

Lesa, übrigens, auch auf der 1. Ausgabe verzerrt.


Haben Sie die Summe der 2 Ausgänge auf eins gesetzt? Ich weiß nicht, bei mir hat es gut funktioniert, keine Verzerrungen. Ich mochte den Softmax.

Und ja, wenn ich mich recht erinnere, habe ich bei Softmax die Eingaben von 0 auf 1 rationiert.

Wälder funktionieren im Allgemeinen immer eindeutig für Regression und Klassifizierung. Manchmal erhalte ich nur Kauf- oder Verkaufssignale, aber dann habe ich in der Trainingsstichprobe gegraben, und es gab einige Verzerrungen in den Beispielen, also kein Wunder (weil sie sich in bestimmten Intervallen neu trainieren und ich vorher nicht weiß, was in der Stichprobe erscheinen kann). Vergessen Sie auch nicht, dass ein Gerüst nicht extrapoliert werden kann. Sie müssen alle künftig bekannten Werte vermitteln.

 

Übrigens scheint das nicht einmal notwendig zu sein:

Vorverarbeitung der Daten

Um die Konvergenzgeschwindigkeit und die Qualität der Lösungen zu verbessern, implementiert ALGLIB eine Vorverarbeitung der Daten (Standardisierung des Trainingssatzes). Die Vorverarbeitung wird implizit für den Benutzer durchgeführt - bevor die Daten an das neuronale Netz übertragen werden, werden sie automatisch vorverarbeitet, das Ergebnis des Netzes wird zurücktransformiert.

 

Hier ist eine NS-Prüfung des Einmaleins

Ich habe das gleiche für Gerüste gemacht und es funktioniert gut.

Библиотеки: ALGLIB - библиотека численного анализа
Библиотеки: ALGLIB - библиотека численного анализа
  • 2012.10.12
  • www.mql5.com
Статьи и техническая библиотека по автоматическому трейдингу: Библиотеки: ALGLIB - библиотека численного анализа
 
Maxim Dmitrievsky:

Haben Sie die Summe der 2 Ausgänge auf eins gesetzt? Ich weiß nicht, bei mir hat es gut funktioniert, keine Verzerrungen. Ich mochte den Softmax.

Und ja, soweit ich mich erinnere, habe ich bei Softmax die Eingaben von 0 bis 1 rationiert.

Wälder funktionieren im Allgemeinen immer eindeutig für Regression und Klassifizierung. Manchmal erhalte ich nur Kauf- oder Verkaufssignale, aber dann habe ich in der Trainingsstichprobe gegraben, und es gab einige Verzerrungen in den Beispielen, also kein Wunder (weil sie sich in bestimmten Intervallen neu trainieren und ich vorher nicht weiß, was in der Stichprobe erscheinen kann). Vergessen Sie auch nicht, dass ein Gerüst nicht extrapoliert werden kann. Sie müssen alle bekannten Werte für die Zukunft trainieren.

Ich habe die Summe von 3 Ausgängen=1, oder eher nicht die Summe, sondern nur 1 der Ausgänge =1, der Rest=0.
Ich habe die Eingaben nicht normalisiert, Sie haben weiter unten bestätigt, dass dies nicht notwendig ist. Ich habe die Multiplikationstabelle überprüft (aber es handelt sich nicht um eine Softmax).
Wenn softmax bei Ihnen funktioniert hat, werde ich versuchen, es noch etwas weiter zu drehen, vielleicht klappt es ja (obwohl bei absolut gleichen Daten die Regression mit lin. Ausgaben funktioniert, wie sie sollte).