Eine schnelle und kostenlose Bibliothek für MT4, sehr zur Freude der Neuralnetworker - Seite 15
![MQL5 - Sprache von Handelsstrategien, eingebaut ins Kundenterminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Ich füge hinzu. Oder im Falle eines Absturzes des Terminals. Aber es scheint eine Lösung gefunden worden zu sein.
Die Frage ist eine andere. Vladislav, Sie scheinen C++-Code ohne "Zwischenhändler" zu lesen.
Könnten Sie sich zu dem Problem der identischen Antworten des Netzausschusses und der korrekten Initialisierung der Gewichtungswerte äußern? (ausführlicher hier und weitere Protokolle, und hier eine Frage zu Gewichten)
Ich habe mir die Codes angesehen. Die Randomisierung ist vorhanden. Was nicht: da Standard-C/C++ einen Quasi-Zufallszahlengenerator hat, wird empfohlen, den Kernel neu zu initialisieren (seed - srand(int ) - move reference point vor jedem Aufruf von rand())
Ja. Die Eingaben sind für jedes Netz unterschiedlich, was aber nicht entscheidend ist. Sie können ein Standardsignal nehmen, z.B. den gleichen RSI und ein Raster, und trotzdem negative Werte an allen Eingängen der Bruteforce erhalten.
Initiale Initialisierung der Skalen -1, 1.
Über das Profil... Meinen Sie die Ergebnisdatei von trained net?
Nein. Wir sprechen über unterschiedliche Dinge. Ich habe Sie nach Outputs gefragt !? Bitte schauen Sie sich das hier an. D.h. wir haben einen Ausschuss von 16 Netzen, initialisieren sie mit zufälligen Gewichten, legen einen einzelnen &input_vector[] an jeden Eingang und als Ergebnis sind die Ausgaben die gleichen! (unter dem Link sind alle Protokolle aufgeführt).
Hier ist die Frage!!!
........
Ja. Die Ergebnisdatei des trainierten Netzwerks finden Sie hier oder per E-Mail an ..... Interessiert an den Werten der Gewichte. Es wäre auch gut, ein Profil des Netzes direkt nach der Initialisierung, ohne Training, zu haben. >> OK?
Nein. Wir reden über verschiedene Dinge. Ich habe Sie nach den Ausgängen gefragt!? Bitte greifen Sie hier zu. D.h. wir haben ein Komitee von 16 Netzen, initialisieren sie mit zufälligen Gewichten, legen einen einzelnen &input_vector[] an jeden Eingang, als Ergebnis sind die Ausgaben die gleichen!!! (unter dem Link sind alle Protokolle aufgeführt).
Hier ist die Frage!!!
........
Ja. Die Ergebnisdatei des trainierten Netzwerks finden Sie hier oder per E-Mail an ..... Interessiert an den Werten der Gewichte. Es wäre auch gut, ein Profil des Netzes direkt nach der Initialisierung, ohne Training, zu haben. Ist das in Ordnung?
Wir reden wirklich über verschiedene Dinge )) Ich verstehe Ihr Problem. Ich habe es überprüft. Und bestätigte, dass dieser Effekt tatsächlich vorhanden ist.
In meinem letzten Beitrag schrieb ich "Eine weitere Merkwürdigkeit", was bedeutet, dass sie nichts mit dem Problem der Randomisierung der Anfangsgewichte und der Identität der Operation der Ausschussmaschen mit einem einzigen Eingangsvektor zu tun hat.
Ich will damit sagen, dass bei redundantem Lernen (obwohl der Effekt auch bei normalem Lernen auftritt), mit, laut MSE, positiver Konvergenz, das Netz kein absolutes Minimum "findet", und nicht einmal ein lokales, sondern banal an die Bereichsgrenze rollt, was auf ein Problem im Lernalgorithmus hinweist...
Übrigens, ich habe die Initialisierung der Anfangsgewichte überprüft (unmittelbar nach der Erstellung aufgezeichnet). Alles funktioniert. Die Randomisierung ist vorhanden.
Aber hier ist ein seltsamer Eintrag, den ich im Profil gefunden habe:
layer_sizes=31 31 17 2
Und dies bei:
ann = f2M_create_standard (4, AnnInputs, AnnInputs, AnnInputs / 2 + 1, 1); mit AnnInputs=30
Die ausgeblendeten Schichten sind aus irgendeinem Grund eine mehr angegeben als deklariert. Was mich aber noch mehr verwirrt, ist die Größe der Ausgabeschicht "2", wenn "1" angegeben ist!!!
Übrigens, ich habe die Initialisierung der Anfangsgewichte überprüft (unmittelbar nach der Erstellung aufgezeichnet). Alles funktioniert. Die Randomisierung ist vorhanden.
Aber hier ist ein seltsamer Eintrag, den ich im Profil gefunden habe:
layer_sizes=31 31 17 2
Und dies bei:
ann = f2M_create_standard (4, AnnInputs, AnnInputs, AnnInputs / 2 + 1, 1); when AnnInputs=30
Aus irgendeinem Grund gibt es eine versteckte Schicht mehr als angegeben. Was mich aber noch mehr verwirrt, ist die Größe der Ausgabeschicht "2", wenn "1" angegeben wird!!!
Dort ist alles korrekt. Es gibt insgesamt 4 Schichten: Eingabeschicht, 2 versteckte Schichten, Ausgabeschicht. Jede Schicht hat einen Bias = 1, sie nimmt nicht an der Dimension "Benutzer" teil. Dies ist der FANN-Dokumentation entnommen.
Viel Glück!
Übrigens, ich habe die Initialisierung der Anfangsgewichte überprüft (unmittelbar nach der Erstellung aufgezeichnet). Alles funktioniert. Es gibt eine Randomisierung.
Ja, die Gewichte werden nach dem Zufallsprinzip verteilt. Aber ich wiederhole mich trotzdem:
Zur Kenntnis genommen. Die Randomisierung ist -1 bis 1, und im Netzprofil sind die Gewichte -10.0e--003 bis 10.0e-003
Beispiel: (12, -7,35577636217311400000e-003) (13, 7,639700053449810000e-002)
Ist dies richtig?
Deshalb habe ich Sie gebeten, Ihre Netzwerkprofile zu zeigen: ....
Ja, die Randomisierung der Skalen ist vorhanden. Aber ich sage es noch einmal:
Zur Kenntnis genommen. Die Randomisierung geht von -1 bis 1, und im Netzprofil liegen die Gewichte zwischen -10,0e--003 und 10,0e-003
Beispiel: (12, -7,35577636217311400000e-003) (13, 7,639700053449810000e-002)
Ist dies richtig?
Deshalb habe ich Sie gebeten, Ihre Netzwerkprofile zu zeigen: ....
Geprüft - meine Werte sind unterschiedlich und fast gleichmäßig gestreut. Hier ist eine der Initialisierungen:
connections (connected_to_neuron, weight)=(0, -9.946899414062500000000e-001) (1, -6.88415527343750000e-001) (2, 6.51367187500000000e-001) (3, -8.2067871093750000e-001) (4, 9.83703613281250000e-001) (5, -6.84936523437500000000e-001) (6, 3.6010742187500000000e-001) (7, 2.90527343750000e-001) (8, 7.546386718750000e-001) (9, -7.60314941406250000e-001) (10, -7.78137207031250000e-001) (11, 7554321289062500000000e-001) (12, -6.61560058593750000e-001) (13, 1.657714843750000e-001) (14, 5.710449218750000e-001) (15, -1.54785156250000e-001) (16, 9.851074218750000e-002) (17, -5.269165039062500000000e-001) (18, 8.58947753906250000e-001) (19, -5.6652832031250000e-001) (20, 7.3144531250000e-001) (21, -8.80310058593750000e-001) (22, 6.823730468750000e-002)
................................................................................................................................................................................................................................
(42, -6.953735351562500000000e-001) (43, -7.0153808593750000e-001) (44, -7.38952636718750000e-001) (45, -3.44238281250000e-002) (46, -1.994018554687500000000e-001) (47, 2.73132324218750000e-001) (48, 4.53186035156250000e-001) (49, -4.709472656250000e-001) (50, -7.741699218750000e-001) (51, -9.54711914062500000000e-001) (52, 8.09509277343750000e-001) (53, 9.92370605468750000e-001) (54, -4.13391113281250000e-001) (55, 6.672973632812500000000e-001) (56, 9.59289550781250000e-001) (57, 1.0925292968750000e-001) (58, -3.02551269531250000e-001) (59, -5.29785156250000e-001) (60, 5.857543945312500000000e-001) (61, 7.999877929968750000e-001) (62, -1.11999511718750000e-001) (63, -8.0749511718750000e-001) (64, -7.08862304687500000000e-001) (65, 8.05236816406250000e-001) (66, 2.9260253906250000e-001) (67, 3.6163333300781250000e-001) (68, -2.99011230468750000e-001) (69, 6.248168945312500000000e-001) (70, -7.15759277343750000e-001) (71, -7.5720214843750000e-001) (72, -1.31774902343750000e-001) (73, 5.53894042968750000e-001) (74, -3.85009765625000000000000e-001) (75, -3.3361816406250000e-001) (76, -9.587402343750000e-001) (77, -3.70544433593750000e-001) (78, 8.2690429468750000e-001)
SZZ Die Wahrheit stellt die Bibliothek selbst zusammen. Etwas anders als f2M. Obwohl, die Ideologie des Autors von f2M gefiel mir und führte zu einer ähnlichen Ansicht. Ich habe heute die Neuinitialisierung des Generators hinzugefügt - ich weiß nicht, inwieweit das Auswirkungen hat.
Geprüft - meine Werte sind unterschiedlich und fast gleichmäßig gestreut. Hier ist eine der Initialisierungen:
Ihre Gewichte sind mehr als korrekt, aber was sind die Werte der Netzausgänge, wenn der Eingangsvektor derselbe ist?
Ihre Gewichte sind mehr als korrekt, aber was sind die Netzausgänge für den gleichen Eingangsvektor?
Ich habe noch nicht alles vollständig getestet - solange der Optimierungstester läuft. Ich möchte sie nicht unterbrechen.
Ich kann dll, mqh und EA anhängen - es gibt einige Unterschiede zu den Originalen, vielleicht wird es schneller gehen, es zum Laufen zu bringen.