Skip to content
flajann2Public

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Repository files navigation

Rhayader – A collection of alternative machine learning enginges

The usual stuff

./images/rhayader_silloute_0.jpg

Author: Fred Mitchell

License: MIT

Documentation

Rhayader comprises multiple Machine Learning engines, allowing you to compose them using Rhayader Combinators. TBD

Spiking NEAT

Introduction

What is Spiking NEAT?

Spiking NEAT is an enhancement of the NEAT algorithm to leverage **Izhikevich Logistics** as the activation function. This will require several iterations to converge on the activation, and the resultant spike trains shall be encoded.

Installation

Development

This Project
  • We have some default extensions set up in the Cabal file.
Interfacing witth Spiking NEAT (Preliminary)
  • During the initial handshake, SN will send to the Dealers(s) the initial Population ID(s)
  • The Dealer will start streaming to SN.
  • SN (the Router) will receive this stream, and give it to the population(s) for

result evaluations

  • SN, asynchronously, will send this result vector back to the Dealer
  • The dealer – during the training phase – will compute the error vectors
  • The Dealer will send the error vectors back to SN
  • Upon receiving the error vector, SN will evolve the population, along with a new population number.
  • The Delear will receive the updated population ID(s) and discard the old ones.

Sequence Diagram (not to e confused with Sequence IDs!)

StepSN RouterData ClientEval ClientGo to?
0Start SNafter SN, Start Client
1prep initial PopIDs<– send StartStrean
2send PopIDs –>recd PopIDs
3get data
4recd Payload<– Payload Stream(w/PopIDs)
5Result vectors –>–>recd Result Vectors
6compute errors
7recd error vectors<–<– send error vectors
8Evolve populations
9new PopIDs –>recd PopIDs update
10if not doneGoto 3
11tidy up resources<– otherwise send EndStream
Multiple simultaneous populations?

Since we will initially train on the crypto market, we will look at multiple time periods. Like 5-minute, 10-minute, 30-minute, 1-hour, 1-day, etc. Why not have a different population for each? And we can allow cross-breeding among populations. A critter that does well in one time period is likely to also do well in an adjacent time period. So multiple result vectors will be sent back to the Dealer, one for each time period. Error vectors will then be sent to SN for evolution.

  • There is no need to send all of the population error vectors back right away, since what might be done on the 5-minute klines may not be complete on the 15-minute klines.
Seperate Eval Client?

The Eval Client, while could be a part of the Data Client, is made a sperate module for scalabiliy purposes. Since the clients can be written in any language, the intent is to offer the greatest flexibility possible.

Heirarchial Temporal Memory (HTM)

PyTorch Integration

TensorFlow Integration

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages