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

 
In welchem Stadium befindet sich das Projekt derzeit? Wer ist die Aufsichtsperson?
 
Besser:
In welchem Stadium befindet sich das Projekt derzeit? Wer ist der Chef?

Es gibt keine Chefs, du kannst derjenige sein, der es will.

ZS: Ich denke, morgen Mittag wäre ein besserer Zeitpunkt für ein Gespräch.

 
Besser:
In welchem Stadium befindet sich das Projekt derzeit? Wer ist der Chef?
Ist der Wettende nicht derjenige, der neulich die Meisterschaft gewonnen hat?
 
shyma:
Ist der Wettende nicht derselbe Wettende, der mit Eulenneuron einst die Meisterschaft gewann?
Diese. Er hatte irgendwo ein PAMM-Konto... Googeln Sie es.
 
R0MAN:
Diese. Er hatte irgendwo ein PAMM-Konto... Googeln Sie es.
Über sein Profil:-)
 
aharata:
Über das Profil:-)
Das ist das erste, was ich mir angesehen habe - ich konnte es nicht finden... auf die Schnelle... :-) Ich war noch nicht wach... :-)
 

Ich dachte, ich hole einen alten Thread zurück.

Ich schlage ein universelles NS-Modell zur Prüfung vor.

Die Gegner sind aufgefordert, eine Art von Gitter vorzuschlagen, die sich mit diesem Modell nicht beschreiben lässt!!!

Der Code ist grob, also gehen Sie ihm auf den Grund.

Die vorgeschlagene Implementierung ist sowohl für CPU als auch für GPU leicht umsetzbar. Auch Verzögerungsoperatoren sind im Netz vorhanden.

Es gibt 3 Arten der Transformation:

unverändert lassen (alle 4 Arrays sind 2D), geeignet für GPU

out ist ein eindimensionales Array, verwendet aber auch eine zweidimensionale boolsche Maske

out ein eindimensionales Array ist und ein aus der Maske konstruiertes Index-Array anstelle der Maske verwendet wird.

(wir haben bereits über binäre Masken gesprochen; es ist eine solche Maske, die Nullen und Einsen verwendet, um zu zeigen, ob es eine Verbindung gibt oder nicht, in diesem Fall ist ein Neuron ein horizontales Array und seine Verbindungen mit anderen werden in seinem Horizont durch entsprechende Werte einer binären Maske angezeigt, in den gleichen Zellen, aber in parallelen Arrays werden Gewichte, Ausgänge und zeitliche Daten gespeichert, Zx sind Verzögerungsoperatoren im x-Bereich)

Modell Netz

class CDmem
  {
public:
                     CDmem(void){};
                    ~CDmem(void){};
   double            m[];
  };
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
class CBmem
  {
public:
                     CBmem(void){};
                    ~CBmem(void){};
   bool              m[];
  };
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
class CProcessing
  {
public:
                     CProcessing(void){};
                    ~CProcessing(void){};
   virtual void      Processing(int i,CBmem &mask[],CDmem &weg[],CDmem &out[],CDmem &temp[],int I,int J)
     {
      for(int j=0;j<J;j++)
        {
         temp[i].m[j]=mask[i].m[j]*weg[i].m[j]*out[i].m[j];
        }
      double sum=0;
      for(int j=0;j<J;j++)
        {
         sum+=temp[i].m[j];
        }

      double outt=2./(1.+exp(-sum));
      for(int j=0;j<J;j++)
         out[i].m[j]=outt;
     };
   void              DelayOperator(int i,CDmem &out[])
     {
      // тут мы сдвишаем от конца к началу, реализуем оператор задержки
     };
  };
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
class Unet
  {
   int               cnt_prcss;
   CBmem             mask[];
   CDmem             weg[];
   CDmem             out[];
   CDmem             temp[];
   CProcessing      *prcss[];
   void              Init()
     {
      ArrayResize(mask,5);
      ArrayResize(weg,5);
      ArrayResize(out,5);
      ArrayResize(temp,5);
      for(int i=0;i<5;i++)
        {
         ArrayResize(mask[i].m,19);
         ArrayResize(weg[i].m,19);
         ArrayResize(out[i].m,19);
         ArrayResize(temp[i].m,19);
        }
     };
   void              InitProcessing(CProcessing *p)
     {
      prcss[cnt_prcss]=p;
      cnt_prcss++;
     };
public:
                     Unet(void){Init(); cnt_prcss=0;};
                    ~Unet(void)
     {
      for(int i=0;i<cnt_prcss;i++)
         delete prcss[i];
     };
   void              DonwloadMask(){};
   void              DonwloadWeg(){};
   void              Processing()
     {
      for(int i=0;i<cnt_prcss;i++)
         prcss[i].Processing(i,mask,weg,out,temp,5,19);
     };
   void              DelayOperator()
     {
      for(int i=0;i<cnt_prcss;i++)
         prcss[i].DelayOperator(i,out);
     };
  };
 

Das ist kein Modell. Wo sind die Neuronen? Wo sind die Verbindungen? Wo ist der Prozess? Wo sind die Rückmeldungen?

Und noch eine Frage: Warum sollte man ein universelles Modell für alle Netze entwickeln?

Ich würde lieber ein universelles Netz für die meisten Dinge schaffen (heh)).

Und warum gehen Sie gleich zur Umsetzung über? Sie haben noch keine fertige Architektur.

 
TheXpert:

Es handelt sich nicht um ein Modell. Wo sind die Neuronen? Wo sind die Verbindungen? Wo ist der Prozess? Wo sind die Rückmeldungen?

Und noch eine Frage: Warum sollte man ein universelles Modell für alle Netze entwickeln?

Besser ein universelles Netz für die meisten Aufgaben (hehe) )

Die Neuronen sind in der Abbildung horizontal angeordnet, die Verbindungen sind mit einer booleschen Maske kodiert.

Stellen Sie Suggestivfragen, ich erkläre, was nicht klar ist, ich kann nicht alles auf einmal beschreiben.

Die Architektur ergibt sich aus dem Modell und wird es auch bleiben.

Besser als ein universelles Netz für die meisten Aufgaben (heh) )

ZZZY und ich wollen prüfen, ob das Modell für alle Aufgaben geeignet ist oder nicht. Ein Kopf ist gut, aber ein Chor ist besser.

Indem Sie die Nachkommen der Klasse CProcessing ändern, können Sie die Neuronentypen nacheinander ändern.

Sie können zusätzlich eine Reihe von Neuronentypen hinzufügen und jedem einen anderen Typ zuweisen (durch Auswahl aus dem Nachfahren CProcessing).

ZZZZY Die umgekehrten Verbindungen sind in der Abbildung mit Zx bezeichnet

 
Urain:

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

Und wie wollen Sie die Aktivierungsfunktion in der GPU unterbringen?

Imho werden Sie, wie beim letzten Mal, das pauken, was Sie nicht pauken können. Aber es ist eine imho, also können Sie es einfach auf die Linie legen.

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...

Grund der Beschwerde: