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

 
TheXpert:

Warum haben Sie dann die Maske am Ausgang und nicht wieder an den Neuronen angebracht?)

Und wie wollen Sie die Aktivierungsfunktion auf der GPU unterbringen?

Imho, wie beim letzten Mal, werden Sie pauken, was Sie nicht pauken können. Aber das ist imho so, dass man getrost darauf liegen kann.

Ich werde Sie nicht mehr belästigen, es sei denn, es geht um etwas Geschäftliches.

Ah, das Cogitron. Was sonst noch - das Hopfield-Netzwerk - bei dem die Eingabe die Ausgabe ist. Außerdem gibt es eine spärliche...

Antworten von unten nach oben,

die Eingaben sind die Ausgaben.

Die GPU ist einfach zu implementieren, da die gesamte Verarbeitung parallel erfolgt.

Die Änderung der Aktivierung oder eines anderen Prozesses kann durch dynamische Strings beschrieben werden, MetaDriver hat damit Erfahrung.

Maske, Gewichte, Ausgänge und Zeitdaten sind alle auf die gleiche Weise verbunden, obwohl es möglich ist, sie über ein Index-Array, das aus der Maske erstellt werden kann, zu entkoppeln.

Im Allgemeinen erstellt die Maske die Topologie und wird zusammen mit den Gewichten gespeichert.


Das Projekt selbst sieht folgendermaßen aus:

  • XML-Standard für die Netzwerkspeicherung (Laden/Speichern), obwohl ich zur binären Speicherung tendiere (aber das ist nicht entscheidend, die Leute wollen XML aus Gründen der Übersichtlichkeit)
  • GUI zum Erstellen eines neuen Netzes (Erstellen/Speichern)
  • Software-Schnittstelle zur Erstellung von Netzen (Erstellen/Speichern)
  • Modell eines universellen Netzes (Basis)
  • Klassen, die das grundlegende Netzmodell erweitern
  • Trainingsshell (erweiterbar)

Die letzten beiden Punkte sind Sache der Open Source.

 

Über spärliche Matrizen richtig bemerkt, wenn die Matrix spärlich ist, dann ist das Modell nicht sehr effizient, aber hier können Sie ein Array von Indizes gelten, wird es ein wenig langsamer als in der direkten Umsetzung zu arbeiten, aber immer noch auf einem Niveau, und für GPU macht es keinen Unterschied, ob spärlich oder voll verbunden alle die gleichen Fliegen zu addieren.

Hopfield Netz überhaupt kein Problem, was nicht klar ist, wie es zu implementieren fragen (weil ich nicht verstehe, wie ein so einfaches Beispiel verursacht Schwierigkeiten).

Ich habe doch nichts verpasst, oder?

ZZZ in der Regel eine recht lange Zeit überlegt, und diese Umsetzung X weiß, was, überlegte, was wäre unmöglich, dieses Modell zu implementieren, wenn ich nicht denken konnte, beschlossen, um Hilfe aus der Halle zu fragen.

 
Urain:

Die Änderung der Aktivierung oder eines anderen Prozesses kann durch dynamische Strings beschrieben werden, MetaDriver hat damit Erfahrung.

Bestätigt: Dies ist das geringste der geschilderten Probleme.

Zum Thema Sparsamkeit.

Meines Erachtens ist es auf der Ebene der Netzbeschreibung in Ordnung und sogar recht praktisch.

Man braucht nur einen Kompressor: einen "Packer" für eine kompakte Beschreibung, die ihrerseits bereits "Futter" für die anschließende Kompilierung in den Quellcode von mql und/oder OpenCL ist.

// Nun, oder für einen dynamischen "Universal Mesh"-Konfigurator, falls es noch Unterstützer gibt...

 

In Bezug auf die Sparsamkeit (ich schrieb oben), können Sie einen Index-Array für jedes Neuron auf der Grundlage der Maske, die nach der Zählung wird angeben, wo die Ausgänge zu platzieren erstellen. Und ganz allgemein können wir darüber diskutieren. Das Wichtigste ist nun, das Referenzmodell allgemein zu übernehmen.

Dieses Modell ist einfach zu verstehen, so dass es leicht sein wird, Lernalgorithmen dafür zu schreiben.

Für GPUs ist das ursprüngliche Modell immer noch besser (imho).

 
TheXpert:

Warum haben Sie dann die Maske am Ausgang und nicht wieder an den Neuronen angebracht?)

Und wie wollen Sie die Aktivierungsfunktion auf der GPU unterbringen?

Imho, wie beim letzten Mal, werden Sie pauken, was Sie nicht pauken können. Aber das ist imho so, dass man getrost darauf liegen kann.

Ich werde Sie nicht mehr belästigen, es sei denn, es geht um etwas Geschäftliches.

Ah, das Cogitron. Was sonst noch - das Hopfield-Netzwerk - bei dem die Eingabe die Ausgabe ist. Und dann ist da noch die spärliche...

Sparsame Kodierung - großartige Sache! Ich habe vor einem halben Jahr damit herumgespielt und nach Mustern auf dem Markt gesucht. Das tut sie. Und sie scheint zu verallgemeinern. Aber wie sich bei meinen Experimenten herausstellte, wiederholen sich vergangene Kursmuster nicht in der Zukunft. Ich habe diese Methode angewandt, um nach Mustern in Bildern und Tönen zu suchen. Das hat ganz gut funktioniert. Ich habe meinen Kollegen, die seit drei Jahren versuchen, dasselbe mit Spike-Neuronen zu tun, einen Bericht zukommen lassen. Alle waren begeistert. Zwei Doktoranden wollten, dass ich ihr Berater werde (und natürlich, dass ich meine Ergebnisse in ihren Dissertationen verwende). Einer bot an, einen Zeitschriftenartikel zu schreiben. Ich habe nur ein paar Wochen gebraucht, um den Code zu schreiben, ihn auf verschiedenen Daten laufen zu lassen und den Bericht zu erstellen. Kurz gesagt: Rarefied Coding hat ein großes Potenzial, aber wahrscheinlich nicht auf dem Markt, sondern dort, wo es eine gewisse Struktur gibt.

Übrigens kann ich zu dem oben beschriebenen universellen NS-Modell noch nicht viel sagen, weil ich nicht verstehe, wie die Neuronen in Schichten aufgeteilt werden, wie ihnen die Funktion der Verarbeitung von Eingaben zugewiesen wird und wie Verbindungen hergestellt werden.

 
gpwr:

Sparsame Kodierung ist großartig! Ich habe vor einem halben Jahr damit herumgespielt und nach Mustern auf dem Markt gesucht. Das tut sie. Und sie scheint zu verallgemeinern. Aber wie sich bei meinen Experimenten herausstellte, wiederholen sich vergangene Kursmuster nicht in der Zukunft. Ich habe diese Methode angewandt, um nach Mustern in Bildern und Tönen zu suchen. Das hat ganz gut funktioniert. Ich habe meinen Kollegen, die seit drei Jahren versuchen, dasselbe mit Spike-Neuronen zu tun, einen Bericht zukommen lassen. Alle waren begeistert. Zwei Doktoranden wollten, dass ich ihr Berater werde (und natürlich, dass ich meine Ergebnisse in ihren Dissertationen verwende). Einer bot an, einen Zeitschriftenartikel zu schreiben. Ich habe nur ein paar Wochen gebraucht, um den Code zu schreiben, ihn auf verschiedenen Daten laufen zu lassen und den Bericht zu erstellen. Kurz gesagt: Rarefied Coding hat ein großes Potenzial, aber wahrscheinlich nicht auf dem Markt, sondern dort, wo es eine gewisse Struktur gibt.

Übrigens kann ich zu dem oben beschriebenen universellen NS-Modell noch nicht viel sagen, weil ich nicht verstehe, wie die Neuronen in Schichten aufgeteilt werden, wie ihnen Funktionen zur Verarbeitung von Eingaben zugewiesen werden und wie Verbindungen hergestellt werden.

In dem vorgeschlagenen Modell sind die Neuronen überhaupt nicht durch Schichten begrenzt, d. h. jedes vorhergehende Neuron kann theoretisch ein Signal an ein nachfolgendes Neuron ausgeben.

Aber es ist möglich, eine Einschränkung einzuführen!!!, Schichten des Netzes festzulegen und in Verbindung mit diesen Schichtregeln die Maske zu überprüfen (es wird den Algorithmus nicht beeinflussen, aber es wird eine zusätzliche Überprüfung beim Laden geben).

Dann kann die GPU übrigens nicht mit einzelnen Neuronen gefüttert werden, sondern mit Paketen von Neuronen, die als Schicht bezeichnet werden. Aber auch hier gilt, dass das Modell selbst nicht durch Schichten eingeschränkt wird, und dass die Frage der Schichten eine zusätzliche einschränkende Regel ist (wie das Anhalten auf Abruf), ob sie nun zutrifft oder nicht.

HI Bei der schichtlosen Konstruktion wird das oberste Dreieck der Maske (hinter den Eingängen) auf Null gesetzt, was die Abwesenheit von Rückkopplungen in der Hauptmatrix beschreibt; wenn Schichten auftreten, wird die Nullsetzung mit einem Eintrag unterhalb der Diagonale hinzugefügt. Genau darum geht es bei der Maskenkontrolle.

 
Urain:
In dem vorgeschlagenen Modell sind die Neuronen überhaupt nicht auf Schichten beschränkt, d.h. jedes vorherige Neuron kann theoretisch ein Signal an ein nachfolgendes Neuron ausgeben.

Aber es ist möglich, eine Einschränkung einzuführen!!!, Schichten des Netzes festzulegen und in Verbindung mit diesen Schichtregeln die Maske zu überprüfen (es wird den Algorithmus nicht beeinflussen, aber es wird eine zusätzliche Überprüfung beim Laden geben).

Die GPU kann übrigens nicht an einzelne Neuronen, sondern an Gruppen von Neuronen, die als Schicht bezeichnet werden, geleitet werden. Aber auch hier ist das Modell selbst nicht durch Schichten begrenzt, und die Frage der Schichten ist eine zusätzliche einschränkende Regel (wie das Anhalten auf Abruf), kann oder auch nicht sein.

Bei der schichtlosen Konstruktion wird das oberste Dreieck der Maske (hinter den Eingängen) auf Null gesetzt, was das Fehlen von Rückkopplungen in der Hauptmatrix beschreibt; wenn Schichten hinzugefügt werden, wird die Nullsetzung mit einem Eintrag unterhalb der Diagonale hinzugefügt. Genau darum geht es bei der Maskenprüfung.

Schichten werden benötigt, weil in einigen Netzwerken verschiedene Schichten unterschiedliche Verarbeitungen von Eingaben und unterschiedliche Verbindungen der Neuronen untereinander innerhalb der Schicht haben. Eigentlich verstehe ich nicht, warum das Ziel, ein universelles Netzwerk zu bauen, so praktisch ist. Es gibt viele Netze mit ihren Nuancen (Funktionen der Neuronen in verschiedenen Schichten, ihre Verbindung, Training der Gewichte usw.). Sie alle in einem Modell zu beschreiben, erscheint mir unmöglich oder ineffizient. Warum nicht eine Bibliothek mit verschiedenen Netzen anlegen?
 
gpwr:
Warum nicht eine Bibliothek mit verschiedenen Netzen anlegen?
Wo. Eine GPU für ein bestimmtes Gitter wäre sogar noch schneller.
 
TheXpert:
Wo. Eine GPU für ein bestimmtes Netz wäre sogar noch schneller.
Aber: Dieser Ansatz enthält nicht einmal den Keim für den Versuch, Topologien genetisch zu kreuzen.
 
MetaDriver:
Aber: Dieser Ansatz enthält nicht einmal den Keim für den Versuch, Topologien genetisch zu kreuzen.

Jetzt liegst du falsch. Erstens: Wenn die Ausgänge des Netzes nicht in die Eingänge eines anderen Netzes eingespeist werden können, um welche Art von Netz handelt es sich dann?

Zweitens können alle Topologien größtenteils durch die Implementierung von Schichten mit Funktionen für verschiedene Netze realisiert werden.

Durch die Verbindung von Ebenen mit Gewichten (Maske und Gewichte selbst) erhalten Sie jede beliebige Mischung von Topologien. Die Umwandlung erfolgt durch das Neuron; die Synapse überträgt lediglich das Signal.

Das Wichtigste ist, dass die Mischung Sinn macht.

Für die Genetik ist die einzige notwendige und hinreichende Bedingung die Fähigkeit, den Output und die Cloud der Einstellungen zu erhalten. Damals habe ich mir das alles gut überlegt.