"New Neural" ist ein Open-Source-Projekt für neuronale Netzwerke für die MetaTrader 5-Plattform. - Seite 60

 
joo:

Stück für Stück - ich verstehe.

Ich verstehe die anderen Optionen nicht. Wie kann ich alle Beispiele auf einmal einreichen? - Oder bin ich dumm?

Nun, Sie haben alle Beispiele auf einmal eingereicht (durch Berechnung des Gesamtwerts von FF auf allen Beispielen), Trainingsalgorithmen sind unterschiedlich, bekprops zum Beispiel reicht ein Beispiel auf einmal in zufälliger Reihenfolge ein, blättert aber die gesamte Liste der Beispiele mehrmals durch, warum also nicht dem Algorithmus alle Beispiele auf einmal geben, und schon wird er sie dem Raster entsprechend seiner Logik zuordnen.

HZ nicht dumm und weiß einfach nicht, was ich mir da gedacht habe, ich werde das alles mit Erklärungen in Ordnung bringen.

ZZZY Gerade jetzt ist nicht ganz bereit, alles zu erklären, würde ich mich zu verstehen :)

 
gpwr:

Rebyata, ya budu seldom syuda zahodit'. Esli est' voprosi or interes k sovmestnim razrabotkami, pishite na moy yahoo email (ukazan v profile).

Viel Erfolg mit dem EngiNeuro-Projekt!

Danke Vladimir, besuche uns weiterhin häufig :)

Urain:

Alles auf einmal

Ich war auch immer der Meinung, dass Stück für Stück am besten ist. Aber nein. Gradientenalgorithmen sind genau auf kumulative Fehler ausgelegt. Wenn Sie also stückweise füttern, ist das nicht gerade ein Gradientenabstieg.

Daher nur alles auf einmal, zumindest für die Vorwärtssteuerung

 
TheXpert:

Danke, Vladimir! Kommen Sie öfters wieder :)

Ich war auch immer der Meinung, dass Stück für Stück das Beste ist. Aber nein. Gradientenalgorithmen sind genau auf den Gesamtfehler ausgelegt. Wenn Sie also stückweise füttern, ist das nicht gerade ein Gradientenabstieg.

Also nur alles auf einmal, zumindest für die Vorwärtsbewegung


Ja, es hängt von der Algorithmus-Implementierung ab, ich bin gerade beim Brainstorming, ob ich etwas vergessen habe?
 

Hinweise zur NS-Ausbildung

1) Fitnessfunktion (Lernfunktion)

Jeder NS-Lernprozess läuft darauf hinaus, ein maximales (minimales) Funktional im Raum der adaptiven Argumente zu finden (in unserem Fall ist dies der Raum der Gewichte)

2) MSE

Die klassische Version des Funktionals ist MSE(mean square error)

Dabei können die partiellen Ableitungen für jeden adaptiven Parameter leicht gefunden werden, was die Verwendung einer Gradientenanpassung der Gewichte ermöglicht.

Für jedes Beispiel, das in den Eingang des NS eingespeist wird, erhalten wir die Antwort des Netzes - y- und wir haben eine "richtige Antwort" - y'.

Bei der inkrementellen Lernmethode werden die Gewichte nach jedem Beispiel angepasst. In diesem Fall MSE=MODUL(y-y')

Bei der Batch-Methode werden die Gewichte nach Durchlaufen der gesamten Trainingsstichprobe angepasst. Hier MSE=ROUND((AMOUNT(y-y'))^2)

Der größte Nachteil von MSE ist, dass man für jedes Beispiel die "richtige" Antwort haben muss

Diese Funktion ist z.B. für die Rekonstruktion eines "unbekannten" Indikatoralgorithmus nützlich, wenn seine "richtigen" Werte für jeden Balken bekannt sind

3) Nicht-Standard-Funktionalität

Ein breiteres Spektrum von Aufgaben kann mit nicht standardisierten Funktionen gelöst werden

Für die Suche nach synthetischen Handelsstrategien kann man zum Beispiel Neuronetze verwenden, die darauf trainiert sind, die Funktion F=Profit/MaxDownload zu maximieren

In diesem Fall erfolgt die Schätzung nach dem vollständigen Trainingslauf, da Sie die Leistung der Strategie erst am Ende des Zeitraums bewerten können.

Sehr schöner Hinweis - wir müssen nicht für jeden Takt die richtige Antwort haben

Es gibt ein unangenehmes "aber": Es gibt keine Möglichkeit, die partielle Ableitung des Funktionals für jedes Gewicht zu finden, so dass Gradientenmethoden für die Konstruktion von Gewichten inakzeptabel sind - wir sollten stochastische Methoden verwenden, wie GA

Hier kommen die GPUs ins Spiel, zu denen es noch keine preiswerte Alternative gibt.

P.S.

Im Gegensatz zum Optimierer der Parameter jeder einzelnen Handelsstrategie ermöglichen neuronale Netze das "Wachstum" vollständig synthetischer Algorithmen von Handelsstrategien )))

Und das Potenzial eines solchen Ansatzes ist sehr groß

 

Ich bereite eine Funktion zum Speichern des Rasters in einer bin-Datei vor. Alle Informationen lassen sich leicht in ein Array von Ulongs verschlüsseln, aber was ich mit den Gewichten machen soll, weiß ich nicht.

Ich möchte die Standardfunktion zum Speichern von Arrays verwenden.

Hat jemand einen Algorithmus für wiederherstellbare doppelte Verschlüsselung in ulong?


Ich denke, dass ein Raster in einem einfachen Format gespeichert werden sollte, das für die Verwendung in MQL5 geeignet ist (wobei es als Grundlage dient), und ich muss es verwenden, um Konverter für verschiedene Formate verschiedener neuronaler Netzwerkpakete zu schreiben.

 
Urain:

Ich bereite eine Funktion zum Speichern des Rasters in einer bin-Datei vor. Alle Informationen lassen sich leicht in ein Array von Ulongs verschlüsseln, aber was ich mit den Gewichten machen soll, weiß ich nicht.

Ich möchte die Standardfunktion zum Speichern von Arrays verwenden.

Hat jemand einen Algorithmus zur wiederherstellbaren Verschlüsselung von double in ulong?


Ich denke, dass das Raster in einem einfachen Format gespeichert werden sollte, das für die Verwendung in MQL5 geeignet ist (wobei es als Grundlage dient), und die Konverter für die verschiedenen Formate der verschiedenen neuronalen Netzpakete sollten aus diesem Format heraus geschrieben werden.


Warum ist FileWriteArray für Sie nicht geeignet? Ich verstehe das Problem nicht. Können Sie uns ein Beispiel nennen?

Wie auch immer, die Gitterkonfiguration in einer Datei und die Gewichte in einer anderen.

Ich sehe nicht, was für MQL praktischer ist, und ich sehe auch nicht, warum wir die Verschlüsselungwiederherstellen müssen, da sie unnötige Bremsen verursacht.

 
her.human:

Was ist falsch an FileWriteArray? Ich verstehe das Problem nicht. Können Sie uns ein Beispiel nennen?

In jedem Fall ist die Gitterkonfiguration in einer Datei und die Gewichte in einer anderen.

Ich weiß nicht, was für MMS praktischer ist, und ich sehe nicht ein, warum ich die Verschlüsselungwiederherstellen soll, da sie unnötige Bremsen verursacht.

Ja, es wird langsam sein (nach meiner Schätzung wird es 5 Sekunden dauern, um 1 Meile Gewichte zu verschlüsseln), ich möchte nur sowohl Gewichte als auch die Konfiguration des Gitters in einer Datei speichern, und es ist mir egal, wie viele Dateien es braucht, ich werde es praktisch finden.

Für FileWriteArray nur und wollen zu schärfen, aber in Anwesenheit eines Arrays ulong bilden ein Netzwerk Beschreibung (Anzahl der Schichten, Anzahl der Neuronen, die Arten von Neuronen, die Beziehung zwischen ihnen) und es ist immer noch ein Array von Gewichten angebracht, aber in Duplikaten,

Wie kann man all dies in eine bin-Datei packen (unter der Annahme, dass die Aufteilung nicht klar ist, die Aufteilung selbst ist in den ersten Zahlen des Rasters kodiert)?

 
Urain:

0 Ich bereite eine Funktion zum Speichern des Rasters in einer bin-Datei vor. Alle Informationen lassen sich leicht in ein Array von Ulongs verschlüsseln, aber was ich mit den Gewichten machen soll, weiß ich nicht.

Ich würde gerne die Standard-Array-Funktion verwenden, aber ich weiß nicht, was ich mit ihnen machen soll.

1. Hat jemand einen wiederherstellbaren doppelten Verschlüsselungsalgorithmus für ulong?


Ich denke, dass ein Raster in einem einfachen Format gespeichert werden sollte, das für die Verwendung in MQL5 geeignet ist (wobei es als Grundlage dient), und dass dieses Format verwendet werden sollte, um Konverter für verschiedene Formate verschiedener neuronaler Netzwerkpakete zu schreiben.

0. Das ist extrem verfrüht. Zunächst müssen Sie unbedingt den gesamten Datensatz klären und vereinbaren, der auf einer logischen Ebene eindeutig in der Struktur und Konfiguration des Netzes abgebildet ist. Die physische Lagerung ist kein Problem.

1. Es ist ganz einfach. In mql5 gibt es ein spezielles Loch für solche Konvertierungen - Strukturen unterschiedlichen Typs können ohne Einschränkung einander zugewiesen werden, sofern sie die gleiche Größe haben.

// ulong und double sind genau dasselbe.

Ein perverses Beispiel finden Sie hier: https: //www.mql5.com/ru/forum/3775/75737#comment_75743

2. Mmmm... Einerseits stimme ich zu - das Format sollte bequem und einfach sein, andererseits sollte es sehr universell sein, wie xml. Planen Sie vielleicht zwei Optionen (so weit wie möglich): eine als Text, die andere als Binärdatei. Und btw - siehe #0.

---

Ich bin in dieser Filiale herumgelaufen und habe immer noch gezögert, ob ich mich einmischen soll oder nicht... Ich konnte also nicht widerstehen.

Ein Gedanke kommt mir in den Sinn. Einer // Ich meine, ich habe viele Gedanken, aber nur einen. :)

Die Idee ist folgende: Der Grid-Code muss nach der Vorkonfiguration im "Grid-Editor" (Konfigurator) generiert werden. // Diese Idee wurde schon oft vorgeschlagen, und ich kann mich nicht erinnern, dass sie abgelehnt wurde.

Daher das Schema - obligatorische Zwischendarstellung (z. B. in Form einer xml-Datei), die vollständige Informationen über die Struktur des Neuronetzes enthält .

Eine Zwischendarstellung wird sorgfältig durchdacht, auf Vollständigkeit und andere Feinheiten hin analysiert, validiert und behoben durch.

Erst danach können Sie (separat) programmieren: (1) alle Arten von Grid-Konfiguratoren, (2) Codogeneratoren - die die Zwischendarstellung in mql5-Code übersetzen.

Es kann mehrere Umsetzungen von beidem geben - was gut und richtig ist.

 
Urain:

Ja Bremsen werden (1 Tausend Gewichte nach meiner Schätzung wird 5 Sekunden verschlüsseln), nur wollen und Gewicht und das Gitter-Gerät in einer Datei zu speichern, und dann streuen ein Bündel von Dateien und der Teufel selbst wird ein Bein zu brechen, in diesem sehe ich die Bequemlichkeit.

Ich möchte FileWriteArray schärfen, aber ich habe ein Array ulong bilden Netzwerk-Beschreibung (Anzahl der Schichten, Anzahl der Neuronen, Arten von Neuronen, Verbindungen zwischen ihnen) und ein Array von Gewichten, die es angehängt, aber in Duplikaten,

wie kann man alles in eine bin-Datei packen (unter der Annahme, dass die Aufteilung nicht klar ist, die Aufteilung selbst ist in den ersten Zahlen des Rasters verschlüsselt)?

Ich bin kategorisch dagegen, alles in eine Datei zu packen. Beschreibung des Netzes getrennt - Gewichte getrennt. Andernfalls werden weitere unnötige Probleme entstehen.

 
Warum eine Tonne? Wäre eine einfache Textdatei nicht besser, damit man sie mit den Augen sehen kann?
Grund der Beschwerde: