"New Neural", MetaTrader 5 platformu için bir sinir ağı motorunun Açık Kaynak projesidir. - sayfa 5

 
Renat :

"Güvenli sistem" DLL'leri yoktur.

ısrar etmiyorum :) hayır, hayır.
 

Döngüler yerine özyinelemeli evrensel bir ağ yapmayı öneriyorum. Bir ağ oluşturmanın tüm amacı, bir topoloji haritası oluşturmaktır.

Topoloji haritası, hangi noktanın hangi noktaya bağlı olduğunun yazıldığı iki boyutlu bir tablodur. Böyle bir şema kullanarak, klasik topolojileri kaydetmek veya bir grafik topoloji düzenleyicisi kullanarak kendinizinkini oluşturmak mümkün olacaktır.

Kod açıklayıcı resim sayfa 12

 //+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
class Mem
  {
   double             m;
public :
                     Mem( void ){};
                    ~Mem( void ){};
   void                set ( double m_){m=m_;};
   double              get (){ return (m);};
  };
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
class ObjMem
  {
public :
   ObjMem           *prev; // предыдущий
   Mem              *obj; // объект памяти
   ObjMem           *next; // последующий
   ObjMem           *side; // боковой
                     ObjMem( void ){obj= new Mem();};
                    ~ObjMem( void ){delete obj;};
   void               ListPrev(ObjMem *obj){prev=obj;};
   void               ListNext(ObjMem *obj){next=obj;};
  };
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
class NeuroBase
  {
public :
   ObjMem           * in []; // входы
   ObjMem           *wg[]; // веса
   ObjMem           *zo[]; // задержка
   Mem              *ou;   // выход
                     NeuroBase( void ){ou= new Mem();};
                    ~NeuroBase( void ){delete ou;};
   void               ExportMem_In(Mem *ex, int i){ in [i].obj=ex;};
   void               ExportMem_Wg(Mem *ex, int i){wg[i].obj=ex;};
   void               ExportMem_Zo(Mem *ex){zo[ 0 ].obj=ex;};
   Mem              *ImportMem_In( int i){ return ( in [i].obj);};
   Mem              *ImportMem_Wg( int i){ return (wg[i].obj);};
   Mem              *ImportMem_Zo( int i){ return (zo[i].obj);};
   virtual void       work(){ /* вызов суммирования перемноженных пар*/ };
   virtual void       training(){ /* вызов расчёта ошибки*/ };
  };
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
class Net
  {
   NeuroBase        *n[];
public :
                     Net( void ){};
                    ~Net( void ){};
   void               direct();   // прямой ход
   void               revers();   // обратный ход
   void               topology(); // создание топологии
  };
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void Net::topology()
  {
/*    создаём массив нейронов
      связываем массив в список
      создаём связные списки нейновесов и боковые пары
      создаём связывание входов и выходов
      создаём связывание входов и операторов задержки (если нужно)
      связывем веса нейронов с внешним массивом
      связываем выходы последнего слоя с внешним массивом
      связываем входы первогого слоя с внешним массивом      
   */
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void Net::direct()
  {
//  вызов расчёта нейронов от первого до последнего
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void Net::revers()
  {
//  вызов расчёта нейронов от последнего до  первого
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
 

Nöron içindeki listelerde bağlantı, nöronlar ve giriş ve çıkışların bağlantıları, öğrenme algoritmaları oluşturma problemlerinden (ve iş akışı problemlerinden) kaçınmanıza izin verir, ağın kendisi neyi nereye atayacağını bilir.

 
Renat :
Bu arada, dahili adlandırma ve kodlama standardınıza şiddetle karşıyım.
 
TheXpert :
Bu arada, dahili adlandırma ve kodlama standardınıza şiddetle karşıyım.

başka seçenek yok. Herkesin kendi standartları ve yerleşik ilkeleri vardır (benimki de metakotalardan farklıdır).

Ancak metakota standardı, mevcut olan en kötü standart değildir. Bu nedenle, kimsenin kaybından rahatsız olmaması için tek bir standart kullanmak zorunda kalacaklar. Bu durumda, meta alıntılardan olacaktır.

 
sergeev : Bu durumda meta alıntılardan olacak.
Benimkini yayınlayabilir miyim ;)?
 
Ukrayna :

Döngüler yerine özyinelemeli evrensel bir ağ yapmayı öneriyorum. Bir ağ oluşturmanın tüm amacı, bir topoloji haritası oluşturmaktır.

Topoloji haritası, hangi noktanın hangisine bağlı olduğunun yazıldığı iki boyutlu bir tablodur. Böyle bir şema kullanarak, klasik topolojileri kaydetmek veya bir grafik topoloji düzenleyicisi kullanarak kendinizinkini oluşturmak mümkün olacaktır.

Çeşitli topolojiler ve görsel anlayış için iki boyutlu bir dizi yeterli olacak mı?

 
sergeev :

Çeşitli topolojiler ve görsel anlayış için iki boyutlu bir dizi yeterli olacak mı?

hayır.
 
sergeev :

Çeşitli topolojiler ve görsel anlayış için iki boyutlu bir dizi yeterli olacak mı?


Topolojiyi şifrelemek için, evet, sadece uzmanlar için görsel bir anlayış için, yine de görsel algıdan doğru şekilde eşlenecek bir grafik çekirdeğine sahip olmak daha iyidir.

Aslında harita, "nereden" ve "nereden" iki hücreden oluşan tek boyutlu bir yapı dizisidir, ayrıca haritanın başlığında kaç nöron, her nöronun türü, kaç ağırlık bilgisi olmalıdır. hangi nöronun sahip olduğu, gecikme operatörünün rankı nedir.

Bu nedenle, iki boyutlu tam bir görsel anlayış için yeterli değildir, iki boyutlu bir yapı dizisi daha iyidir, böylece türün, ağırlıkların sayısının, gecikme operatörünün sıralamasının ve bağlantının nereye yazılacağı vardır. her giriş ve gecikme hücrelerinden gelen bağlantılar.

Genel olarak PS, "ve gecikme hücrelerinden gelen bağlantılar" gereksizdir, ayrıca girişlere de bağlanırlar, bu nedenle infa, gecikmeli bağlantılar hakkında girişlerin bağlantılarında saklanır.

 
Çevrimiçi bir diyagram çiziminin bazı iş parçacığını kim önerecek, vb. saçmalık?