liquidcarrot / carrot

🥕 Evolutionary Neural Networks in JavaScript
https://liquidcarrot.io/carrot/
MIT License
296 stars 34 forks source link

Moved: Shared weights #37

Open dan-ryan opened 5 years ago

dan-ryan commented 5 years ago

This suggestion was moved from Neataptic. https://github.com/wagenaartje/neataptic/issues/54

In order to amplify the results of neural networks on larger datasets (i.e. MNIST), we need to implement shared weights. This will also allow the creation of convolutional networks.

luiscarbonell commented 5 years ago

Just putting this here for near future reference:

raimannma commented 4 years ago

With shared weights we could evolve convolutional neural networks. But I think we need speciation, to really evolve those.

raimannma commented 4 years ago

I want to use atomic numbers like the AtomicInteger class in Java.

So we can set the same atomic number to each node in a bundle with weight sharing. And all nodes could use and change the weight.

A first implementation could be found here: https://github.com/raimannma/carrot/blob/add-convolution/src/utils/Atomic.ts

We could also use this, to share biases and other things through many nodes / connections.