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

 
더엑스퍼트 :
나는 그 과정에서 동시에 구현 또는 에코 또는 SOM을 위한 첫 번째 것을 제안하고 인터페이스는 마침내 정착될 수 있습니다.

자, 당신은 무엇을 선호합니까?

위협은 일반적인 MLP에서 가장 간단합니다.

 
우크라이나 :
자, 당신은 무엇을 선호합니까?
더 가까운 에코, 더 가벼운 SOM. SOM이 아마도 더 나을 것입니다. 교사가 있든 없든 할 수 있습니다.
 
더엑스퍼트 :
더 가까운 에코, 더 가벼운 SOM. SOM이 아마도 더 나을 것입니다. 교사가 있든 없든 할 수 있습니다.

음 메기 그래서 메기.

1. 그리드 초기화
2. 그리드 작업 스트로크
3. 메쉬 트레이닝

누가 무엇을 하고 있습니까?

아니면 클래스 계층 구조를 먼저 해결할까요?

 
우크라이나 :

이걸 어떻게 망쳐놔서 학습할 때 새로운 뉴런이 올바른 위치에서 태어나도록 할까 고민했지만, 알고리즘을 연구한 결과, 일반적인 공식화도 없고 교차점도 거의 없다는 결론에 이르렀습니다. 따라서 그는 네트워크의 수직적 구성에 집중하기를 거부했습니다. 유형:

데이터 --> 뉴런 --> 캡슐화된 신경망 --> 컨테이너 신경망

GA를 무정형으로 만드는 것이 가능합니다. 인간 게놈이 항상 28,000개의 유전자로 구성된 것은 아닙니다.

아야...

 
:
오, 당신은 온라인 상태입니다. 토폴로지에 대한 답변
 

첫 번째 견적

 class IEvolvable // интерфейс для подключения эволюционных алгоритмов
{
public :
   virtual void GetWeightsAsVector( double & weights[]) const ; // получаем все изменяемые веса собранные в одном векторе для генетики
   virtual void ApplyWeightsVector( double weights[]); // применяем подобранные генетикой веса к сети
   
   virtual void FeedInput( double inData[]); // подаем вход
   virtual void PropagateSignal(); // прогоняем входной сигнал
   virtual void GetOutput( double & outData[]) const ; // берем выход
};

class ISerializable // сохранение
{
public :
   virtual bool LoadFromFile( string filePath);
   virtual bool SaveToFile( string filePath) const ;
};

class IBasicNet
   : public IEvolvable
   , public ISerializable
{
public :
   virtual void FeedInput( double inData[]); // вход можно брать из коллекции или отдельно. Подразумевается, что коллекция включает в себя обработку входов, поэтому отдельные входы надо преобразовывать коллекцией
   virtual void FeedInput( int index);
   virtual void PropagateSignal();
   virtual void GetOutput( double & outData[]) const ;
   virtual void Init(); // инициализация. Инициализатор можно подавать в конструкторе, можно в функцию, посмотрим как будет удобно
}

class ISupervised // сеть с учителем
   : public IBasicNet
{
public :
   virtual void SetPatternCollection(PatternCollection* collection); // у сетей с учителем обязательно каждому входному образу соответствует выходной поэтому лучше их сразу организовывать по парам
   virtual void CountError(); // подсчет ошибки. сюда например будет входить ОРО для MLP
   virtual void Learn(); // изменение весов. никаких итераций внутри , чтобы можно было на каждом шаге просмотреть состояние
};

class IUnsupervised // сеть без учителя
   : public IBasicNet
{
public :
   virtual void SetInputCollection(InputCollection* collection); // у сетей без учителя только входы
   virtual void Learn();
};

class IInitializer // инициализатор
{
public :
   virtual void Init( double & value );
   virtual void Init( double & value []);
   virtual void Init(Matrix& value );
};

 
더엑스퍼트 :
오, 당신은 온라인 상태입니다. 토폴로지에 대한 답변
이것이 "오"입니다. 내 생각에 따르면 토폴로지 제어는 유전 프로그래밍으로 간주될 수 있고 고려해야 합니다. 여기에서 나는 그다지 강하지 않습니다. 이것은 별도의 광대한 지식 영역입니다. 그러나 필요한 경우 이 문제를 자세히 다루겠습니다. 이것은 염색체의 길이가 동적으로 변할 수 있는 그러한 GA입니다. 내 GA는 고정된 길이의 염색체를 가지고 있습니다. 여기에서 개별 유전자를 동결하기 위한 추가 플래그를 도입하여 여기에서 고안하는 것이 가능하지만, 여백을 두고 염색체의 길이를 취하는 것이 가능합니다.
 
더엑스퍼트 :

첫 번째 견적

의견 보내기
 
:
이것이 "오"입니다.
좋아, 지금까지 문제에 대한 해결 방법이 있습니다. 유전학을 왜곡할 때를 생각해 봅시다.
 
우크라이나 :
이것은 다음 단계이며 엔진과 직접적인 관련이 없습니다. 구현은 다른 엔진의 개체를 초기화하는 다른 토폴로지를 생성하는 외부 GA를 통해 이루어집니다.

그리고 예, 아마도 여러 GA를 사용할 가치가 있습니다. 하나는 토폴로지용이고 다른 하나는 모든 네트워크의 모든 가중치를 조정하기 위한 것입니다. 그런 다음 두 번째 GA는 현재 토폴로지에 따라 일부 유전자를 단순히 동결합니다.