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

 
TheXpert:

Als erstes muss ein neues, einfaches Forum für das Projekt eingerichtet werden.

Ich denke, wir sollten ein Projekt auf der Sorsforge einrichten und die Diskussion sofort dorthin verlagern.

Als Erstes müssen wir ein Brainstorming durchführen. Wir brauchen eine Datenbank mit Ideen, wie surrealistisch sie auch sein mögen, und der Forumsthread ist (aufgrund seiner Offenheit) der beste Weg dazu.

Jeder darf die Foren stürmen, auch Nicht-Fachleute. Sturmanregungen werden besser farblich vom übrigen Text abgehoben.

Zum Beispiel: eine grafische Engine, um ein Gitter zu erstellen, vor dem Start der Maschine, stellen Sie die Anzahl der Schichten, dann das Eingabefenster für jede Schicht durch die Anzahl der Neuronen, dann Trendlinien, die der Benutzer fügt definieren Verbindungen.

 
TheXpert:

Andrei, macht es dir etwas aus, wenn wir aus diesem Thema eine Brainstorming-Sitzung machen?

Natürlich weiß ich das. Dafür ist dieser Thread gedacht.
 

Die Themen des Angriffs:

-- Art des Projekts (die Art und Weise, wie der Benutzer mit dem Projekt interagiert)

-- Netzwerke, die im Rahmen des Projekts implementiert werden sollen

-- Vorverarbeitung und alles, was dazugehört

-- Architektur, Schnittstellen

-- Umsetzung, Konnektivität.

-- Testen, Fehlersuche.

Es ist verboten, irgendetwas zu kritisieren, selbst die wahnhafteste Idee, die Überschwemmung. Der Grad der Kompetenz spielt keine Rolle. Wenn Sie interessiert sind und Gedanken haben, melden Sie sich!

Esist erwünscht, neue Ideen vorzuschlagen oder bereits vorhandene Ideen weiterzuentwickeln.

 
TheXpert:
...

Vielleicht sollte ich hinzufügen:

-- Nachbearbeitung

Besonderes Augenmerk sollte meines Erachtens auf die Schnittstellen der einzelnen Module gelegt werden, wobei eine Skalierbarkeit erwartet wird (Verbinden/Trennen verschiedener Signale, Möglichkeit zur Bildung von Netzausschüssen usw.). Daher ist es notwendig, das Netz selbst (das Netz selbst, z. B. MLP mit zwei versteckten Schichten, nimmt nur einige Dutzend Zeilen in Anspruch, Beispiel in atacha) vom Lernalgorithmus zu trennen.

Dateien:
F_MLP.mqh  5 kb
 

Normalisierung von Vektoren, Visualisierung von Eingangs- und Ausgangsdaten,

externen Konstruktor Neurosolutions verwenden, DLL mit Neurosolutions verwenden, niterface ...

Schnittstellen zum Hochladen und Entladen von Daten: Vektoren, Gewichte,

EDNA Evolutionäre Entwurfsnetzarchitektur

Die Möglichkeit, Aktivierungsfunktionen und Lernalgorithmen auszuwählen und anzupassen,

 
njel:
Wahrscheinlich ist einer der Chips, dass es keinen Dlloc geben wird.
 

...sieht es so aus:

Art des Projekts: Klassenbibliothek,

1) Methode der Interaktion - Verwendung einer (ausführlich dokumentierten) API im Code ihrer Systeme .

Ich gehe davon aus, dass die Bibliothek in der Praxis Anwendung finden wird:

  1. Schnelles Schreiben eigener Hilfsprogramme (wie soll ich sie nennen?) - den gewünschten Netzwerktyp angeben, seine Konfiguration bilden, vorschreiben, womit wir es füttern (Trainingsmuster), usw.
    Jedes dieser Dienstprogramme kann als separate Anwendung mit Eingabeparametern dienen. Führen Sie es im Testprogramm aus und erhalten Sie ein trainiertes Netz als Datei(FILE_COMMON)

  2. Wie kann man EAs schreiben, die Dateien mit trainiertenNetzen verwenden können?

2) Zweite Möglichkeit der Interaktion. GUI-Anwendung zur Vereinfachung der Erstellung von Netzwerken/Trainingsprogrammen - soweit die Typ-Parameter usw. einfach sind. aber verschiedene Typen haben unterschiedliche Einstellungen? + Wie kann man in der UI einstellen, was in das Netzwerk eingespeist werden soll? Es ist einfacher, dies im Code einzustellen. Ist es möglich, die Erstellung einer Vorlage für ein Dienstprogramm zur Netzgenerierung in den Meta-Editor einzubetten, wie einen Assistenten zur Erstellung neuronaler Netze? Die Ausgabe ist der fertige Code, das Einzige, was Sie angeben müssen, ist, was in den Eingang des Netzes eingespeist wird?


P.S. Oben wurde joo vorgeschlagen, "Schnittstellen einzelner Module mit der Erwartung der Skalierbarkeit" zu verwenden, sie müssen nur im Meta-Editor auf der Grundlage des Assistenten erstellt werden, und der Lernalgorithmus sollte fertig sein

 
joo:

Hier schlage ich vor, die Ziele des Projekts zu umreißen. Erörtern Sie Details und Nuancen.

Wenn ich das richtig verstanden habe, geht es um etwas Ähnliches wie FANN, nur viel breiter und allgemeiner? Ich weiß nicht einmal, wie ich die Aussichten eines solchen Ungetüms einschätzen soll, es ist so eine riesige Ebene der Unermesslichkeit. Auch in dem kleinen Stück Code gepostet joo, nicht ohne Schärfung zu einer bestimmten Umsetzung (die Zahl 7 in der Aktivierungsfunktion ist wahrscheinlich aus diesem Werk). Neuronale Netze bestehen ausschließlich aus solchen Teilen. Mit Interesse werde ich das Projekt verfolgen und versuchen, nicht im Weg zu stehen, aber bis jetzt habe ich keine Ahnung - ist es im Prinzip von ein paar Enthusiasten möglich ....

 

Modulare neuronale Netze

Es ist möglich, ein großes Netz in Teilen zu trainieren, d. h. es handelt sich um ein Ausschuss-Training, aber ohne die Probleme, die bei der Kombination von Netzen in einem System auftreten.
Модулярні нейронні мережі — Вікіпедія
  • uk.wikipedia.org
Модулярна нейронна мережа (англ. ) — група нейронних мереж (які в даному випадку називаються модулями), що керуються певним посередником. Кожна нейронна мережа слугує модулем і оперує окремими входами для вирішення певних підзавдань із групи завдань, які повинна виконати модулярна нейронна мережа. [1] Посередник приймає вихідні сигнали кожного...
 
Figar0:

Wenn ich das richtig verstanden habe, geht es um etwas Ähnliches wie FANN, nur viel breiter und allgemeiner?

Viel "breiter" und "allgemeiner". :)

Warum sollte man sich sonst die Mühe machen?

Figar0:

So viele Details und Nuancen. Auch in dem kleinen Stück Code gepostet joo, nicht ohne Schärfung zu einer bestimmten Umsetzung (die Zahl 7 in der Aktivierungsfunktion ist wahrscheinlich aus diesem Werk). Neuronale Netze bestehen ausschließlich aus solchen Teilen.

Das ist genau der Punkt, an dem es nicht der Fall ist. Die Ziffer 7 in der Aktivierungsfunktion ist der Skalierungsfaktor, so dass die sigmoide Krümmung in den Bereich [-1,0;1,0] fällt.

Ich schlage außerdem vor, diesen Bereich für Ein- und Ausgänge aller Gittertypen zu verwenden, um Verwechslungen zu vermeiden und eine einheitliche Schnittstelle zu gewährleisten. Deshalb habe ich dort 7 eingetragen - im Vorgriff auf meine zukünftigen Entwürfe.

Dieser Koeffizient kann jedoch als Variable gebildet werden, dann wird es möglich, die Krümmung des Sigmoids in allen Neuronen mit FA einzustellen (von der logischen Umschaltung bis zur einfachen linearen Skalierung, einschließlich eines Zwischenabschnitts mit nichtlinearer S-Transformation)