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

 
Roman #:

Erläutern Sie bitte, wie man mit der Verlustfunktion arbeitet
Wie verwendet man die Zielfunktion zur Minimierung?

Und die zweite Frage.
In Matlab verwendet die Funktion fminsearch() den Nelder-Mead-Algorithmus.
Dieser Algorithmus ist in ENUM_LOSS_FUNCTION nicht vorhanden.
Können wir damit rechnen, diesen Algorithmus hinzuzufügen?

Die Aufgabe beim Training eines neuronalen Netzes besteht darin, einen Algorithmus zu finden, der den Fehler in der Trainingsstichprobe minimiert; zu diesem Zweck wird eine Verlustfunktion verwendet. DieVerlustmethode wird verwendet, um die Abweichung zu berechnen, wobei Sie 1 der 14 Typen derENUM_LOSS_FUNCTION-Aufzählung angeben können.

Die erhaltenen Abweichungswerte werden dann verwendet, um die Parameter des neuronalen Netzes zu verfeinern. Dies geschieht mit der MethodeDerivative, die die Werte der Ableitung der Aktivierungsfunktion berechnet und in den übergebenen Vektor/die Matrix schreibt.

Dank der Möglichkeit, die Aufzählungen zu erweitern, können wir bei Bedarf neue Algorithmen hinzufügen.

 
Renat Fatkhullin #:

Die Aufgabe beim Training eines neuronalen Netzes besteht darin, einen Algorithmus zu finden, der den Fehler bei der Trainingsstichprobe minimiert; zu diesem Zweck wird eine Verlustfunktion verwendet. Zur Berechnung der Abweichung wird dieLoss-Methode verwendet, bei der Sie 1 von 14 Typen derENUM_LOSS_FUNCTION-Aufzählung angeben können.

Die erhaltenen Abweichungswerte werden dann verwendet, um die Parameter des neuronalen Netzes zu verfeinern. Dies geschieht mit der MethodeAbleitung, die die Werte der Ableitung der Aktivierungsfunktion berechnet und in den übergebenen Vektor/die Matrix schreibt.

Dank der Möglichkeit, die Aufzählungen zu erweitern, können wir bei Bedarf neue Algorithmen hinzufügen.


Ich habe es am Beispiel von MAPE herausgefunden .

Ich dachte, es sei eine Verlustfunktion, die die Zielfunktion minimiert.
Und das ist nur eine metrische Berechnung.

vector Forecast = {28.252177870295327, 1.386017247821653, 1.321279511381957};
vector Fact     = {45.979999999999997, 1.710000000000000, 1.340000000000000};

double MAPE = Forecast.Loss(Fact,LOSS_MAPE);

Print(DoubleToString(MAPE,2) + " %");
19.63 %


Was im Code das Gleiche ist

vector Forecast = {28.252177870295327, 1.386017247821653, 1.321279511381957};
vector Fact     = {45.979999999999997, 1.710000000000000, 1.340000000000000};

vector loss = {0.,0.,0.};

for(int i=0; i<3; i++)
   loss[i] = fabs(Forecast[i] - Fact[i]) / Fact[i];

double MAPE = loss.Mean()*100;

Print(DoubleToString(MAPE,2) + " %");
19.63 %



Dann gibt es noch eine Frage zur Beschreibung der Dokumentation.

Gibt es einen Fehler in der Beschreibung?

ll

Vielleicht wäre es richtiger:
Berechnet den Wert von Verlusten als Metrik MSE, MAE, etc...?
Die Funktion zur Minimierung von Verlusten sollte ja selbst geschrieben werden.


Und hier gibt es eine seltsame Beschreibung.

i

Документация по MQL5: Методы матриц и векторов / Машинное обучение / Loss
Документация по MQL5: Методы матриц и векторов / Машинное обучение / Loss
  • www.mql5.com
Loss - Машинное обучение - Методы матриц и векторов - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Aleksey Vyazmikin #:

Auf der Suche nach Begleitern für eine interessante und aufregende Reise auf unbekannten Pfaden auf der Suche nach geheimnisvollen Vorhersagen/Merkmalen/Zeichen.

Ich habe eine Karte, um sie zu finden, brauche Hände, um Fallen zu stellen und über die Gewohnheiten und den Heiligenschein dieser erstaunlichen Phänomene nachzudenken.

Die Reise ist nicht einfach, lang, aber aufregend und ich bin sicher, dass wir nicht ohne Trophäen dastehen werden!

Wenn Sie interessiert sind - stellen Sie Fragen!

Alles ist schon vor uns erfunden worden, also möchte ich einfach auf den Zug aufspringen.

Jetzt bekommen wir neuronale Netze in Metatrader und dann können wir uns entspannen.

Im Allgemeinen können wir einfach Gas-Futures kaufen und sie dann verkaufen.
 
Maxim Dmitrievsky #:
Es ist also schon alles vor uns erfunden worden, also möchte ich einfach auf den Zug aufspringen

Vielleicht erfunden, aber eindeutig nicht an der Oberfläche in offenen Quellen.

Für die Suche und Auswahl von Prädiktoren entwickle ich einen systematischen Ansatz, d. h. es wird eine Typisierung von Prädiktoren geben, die u. a. auf Indikatordaten beruhen. Ich möchte die Codebasis auf der Suche nach interessanten Dingen durchsuchen. Im Allgemeinen gibt es in meinem Paradigma ein Konzept "Ereignis", also etwas, das den Preis beeinflussen kann, und es wird durch Prädiktoren beschrieben. Es wird verschiedene Arten von Ereignissen geben, z. B. "Preis hat das Niveau durchbrochen" (was durch den Indikator erzeugt wird), und die Beschreibung dieser Ereignisse sind Prädiktoren, die für die Zeit, die Geschichte des Ereignisses, die Relativität des Ereignisses (Normalisierung) verantwortlich sind - das Koordinatensystem wird ebenfalls ausgewählt.

Die Methode selbst funktioniert, sie erlaubt es, interessante Varianten auszuwählen, aber wir müssen diese Varianten generieren.

Ich suche Leute, die den Prozess beschleunigen und das kritische und kreative Denken fördern.

Ja, es wird keine interessierten Leute geben, ich werde alleine auswählen - langsam und mühsam.

 
Aleksey Vyazmikin #:

Das könnte erfunden sein, ist aber in den offenen Quellen nicht zu sehen.

Für die Suche und Auswahl von Prädiktoren entwickle ich einen systematischen Ansatz, d. h. es wird eine Typisierung von Prädiktoren geben, die u. a. auf Indikatordaten beruhen. Ich möchte die Codebasis auf der Suche nach interessanten Dingen durchsuchen. Im Allgemeinen gibt es in meinem Paradigma ein Konzept "Ereignis", also etwas, das den Preis beeinflussen kann, und es wird durch Prädiktoren beschrieben. Es wird verschiedene Arten von Ereignissen geben, z. B. "Preis hat das Niveau gebrochen" (was durch den Indikator erzeugt wird), und die Beschreibung dieser Ereignisse sind Prädiktoren, die für die Zeit, die Geschichte des Ereignisses, die Relativität des Ereignisses (Normalisierung) verantwortlich sind - das Koordinatensystem wird ebenfalls ausgewählt.

Die Methode selbst funktioniert, sie erlaubt es, interessante Varianten auszuwählen, aber man muss diese Varianten generieren.

Ich suche Leute, die diesen Prozess beschleunigen und das kritische und kreative Denken fördern.

Ja, es wird keine Interessenten geben, ich werde einen auswählen - langsam und mühsam.

Ich habe das alles schon erstellt
 
Aleksey Vyazmikin #:

Es könnte erfunden sein, aber in den offenen Quellen ist es nicht zu sehen.

Für die Suche und Auswahl von Prädiktoren entwickle ich einen systematischen Ansatz, d. h. es wird eine Typisierung von Prädiktoren geben, die u. a. auf Indikatordaten beruhen. Ich möchte die Codebasis auf der Suche nach interessanten Dingen durchsuchen. Im Allgemeinen gibt es in meinem Paradigma ein Konzept "Ereignis", also etwas, das den Preis beeinflussen kann, und es wird durch Prädiktoren beschrieben. Es wird verschiedene Arten von Ereignissen geben, z. B. "Preis hat das Niveau gebrochen" (was durch den Indikator erzeugt wird), und die Beschreibung dieser Ereignisse sind Prädiktoren, die für die Zeit, die Geschichte des Ereignisses, die Relativität des Ereignisses (Normalisierung) verantwortlich sind - das Koordinatensystem wird ebenfalls ausgewählt.

Die Methode selbst funktioniert, sie ermöglicht es, interessante Varianten auszuwählen, aber man muss diese Varianten generieren.

Ich suche Leute, die diesen Prozess beschleunigen und das kritische und kreative Denken fördern.

Ja, es wird keine interessierten Leute geben, ich werde alleine auswählen - langsam und mühsam.

Vergessen Sie nicht, Echtzeit hinzuzufügen... sonst enden Sie wie alle anderen :-)

a la 2 pcs: y=abs(sin(x))*sin(x) ; mit einer Frequenz von 1 Tag und 1 Woche ; Phasenverschiebung ist besser im Voraus zu berechnen

weil die Wahrscheinlichkeiten von Indikatoren und Linienkreuzungen von ihnen abhängen.

es ging übrigens um schädliche, hier verhasste Fourier :-)

 
mytarmailS #:
Ich habe bereits alles erschaffen.

Du bist so gut!

Und Sie fanden eine Menge interessanter und nachhaltiger?

Ist das Problem mit der Lösung arbeiten im Terminal gelöst?

 
Maxim Kuznetsov #:

Vergessen Sie nicht, die Echtzeit hinzuzufügen... sonst geht es Ihnen wie allen anderen :-)

a la 2 pcs: y=abs(sin(x))*sin(x) ; mit einer Frequenz von 1 Tag und 1 Woche ; die Phasenverschiebung wird besser im Voraus berechnet

weil die Wahrscheinlichkeiten von Indikatoren und Linienkreuzungen von ihnen abhängen.

es ging übrigens um schädliche, hier verhasste Fourier :-)

Nun, ich bin nicht klug, in meiner Phantasie.... Was bedeutet "Echtzeit"?

 
Aleksey Vyazmikin #:

0)Was bist du doch für ein braver Junge!

1)Und hast du viele interessante und nachhaltige Dinge gefunden?

2)Ist das Problem mit der Arbeit der Lösung im Terminal gelöst?

0) Ja, ich bin so...)

1) Ich habe die ganze Sache noch nicht implementiert,
1) Es gibt Probleme mit dem Fluch der Dimensionalität und der kombinatorischen Explosion, aber es ist theoretisch lösbar, zugunsten der Genauigkeit....
2. Es gibt ein Problem mit der Tatsache, dass der Suchalgorithmus langsam ist, viele Dinge müssen in C oder C++ geschrieben werden, und ich weiß nicht, wie man das macht.
3. Selbst ein optimierter Algorithmus wird nicht in der Lage sein, in einem großen Datenbestand nach Mustern zu suchen, man muss lokal nach Mustern suchen....
Aber im Allgemeinen gilt: Wenn es nicht funktioniert, funktioniert nichts....

2) Ja.


Übrigens, das Wort "Ereignis" kann durch das Wort "Regel" ersetzt werden.


 
Aleksey Vyazmikin #:

Nun, ich bin nicht schlau, in meiner Fantasie..... Was meinst du mit "Echtzeit"?

Die Wahrscheinlichkeit, dass der Kurs eine beliebige Linie überschreitet (und Indikatorsignale auslöst), hängt von der Tageszeit und dem Wochentag ab.

Es ist notwendig, die zyklische Zeit zu NN und DL hinzuzufügen. Der einfachste Weg ist eine Sinuswelle. Da die Abhängigkeiten nichtlinear sind, wird sie einfach quadriert, wobei das Vorzeichen berücksichtigt wird. Es gibt zwei zusätzliche Eingänge, die für die Zeitreferenzen zuständig sind. Mitternacht/Mittag ist überall anders, daher ist es besser, die Phase im Voraus zu berechnen und anzugeben. Dies ist die Verbindung des Modells zur realen Welt und ihrer Zeit.

Wenn man sie nicht explizit angibt, dann bekommt man IMHO entweder einen Kürbis oder das Ganze versucht, sie selbst zu ermitteln und auszugeben.