"New Neural"은 MetaTrader 5 플랫폼용 신경망 엔진의 오픈 소스 프로젝트입니다. - 페이지 5

 
레나트 :

"안전한 시스템" DLL이 없습니다.

나는 주장하지 않습니다 :) 아니오, 아니오.
 

순환 대신 재귀를 사용하여 범용 네트워크를 만들 것을 제안합니다. 네트워크 구축의 요점은 토폴로지 맵을 만드는 것입니다.

토폴로지 맵은 어느 지점이 어느 지점에 연결되어 있는지 기록되는 2차원 테이블입니다. 이러한 체계를 사용하면 기존 토폴로지를 등록하거나 그래픽 토폴로지 편집기를 사용하여 고유한 토폴로지를 만들 수 있습니다.

코드 설명 그림 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()
  {
//  вызов расчёта нейронов от последнего до  первого
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
 

뉴런, 뉴런, 입력 및 출력 연결 내부의 목록을 연결하면 학습 알고리즘 생성 문제(워크플로 문제도 포함)를 피할 수 있으며 네트워크 자체에서 무엇을 할당할지 알 수 있습니다.

 
레나트 :
그건 그렇고, 나는 당신의 내부 명명 및 인코딩 표준에 강력하게 반대합니다.
 
더엑스퍼트 :
그건 그렇고, 나는 당신의 내부 명명 및 인코딩 표준에 강력하게 반대합니다.

선택의 여지가 없습니다. 모든 사람은 자신의 표준과 확립된 원칙을 가지고 있습니다(저도 메타쿼타와 다릅니다).

그러나 메타쿼터 표준은 사용 가능한 최악의 것이 아닙니다. 따라서 아무도 손실로 인해 기분이 상하지 않도록 단일 표준을 사용해야합니다. 이 상황에서는 metaquote에서 가져옵니다.

 
sergeev : 이 상황에서는 metaquotes에서 가져옵니다.
내 게시물을 올릴 수 있습니까 ;)?
 
우크라이나 :

순환 대신 재귀를 사용하여 범용 네트워크를 만들 것을 제안합니다. 네트워크 구축의 요점은 토폴로지 맵을 만드는 것입니다.

토폴로지 맵은 어느 지점이 어느 지점에 연결되어 있는지 기록되는 2차원 테이블입니다. 이러한 체계를 사용하면 기존 토폴로지를 등록하거나 그래픽 토폴로지 편집기를 사용하여 고유한 토폴로지를 만들 수 있습니다.

2차원 배열이 다양한 토폴로지와 시각적 이해에 충분할까요?

 
세르게예프 :

2차원 배열이 다양한 토폴로지와 시각적 이해에 충분할까요?

아니요.
 
세르게예프 :

2차원 배열이 다양한 토폴로지와 시각적 이해에 충분할까요?


예, 토폴로지를 암호화하려면 전문가만 시각적으로 이해할 수 있도록 시각적 인식에서 올바르게 매핑되는 그래픽 코어가 있는 것이 더 좋습니다.

사실, 맵은 "from"과 "where" 두 개의 셀로 구성된 구조의 1차원 배열이며, 맵의 헤더에는 몇 개의 뉴런, 각 뉴런의 유형, 가중치가 몇 개 있어야 합니다. 각 뉴런에는 지연 연산자의 순위가 있습니다.

따라서 2차원에 대한 완전한 시각적 이해를 위해서는 2차원 구조의 배열이 더 낫습니다. 따라서 유형, 가중치 수, 지연 연산자의 순위 및 연결 각 입력 및 지연 셀의 연결.

PS 일반적으로 "지연 셀의 연결"은 불필요하며 입력에도 연결되어 있으므로 infa는 지연 연결에 대한 입력 연결에 저장됩니다.

 
온라인 다이어그램 그리기 등의 스레드를 누가 조언할 것입니까? 쓰레기?