Giter Club home page Giter Club logo

neuralduino's Introduction

neuralDuino

extendable perceptron library to build dynamic and reconfigurable Artificial Neural networks with back-propagation for arduino

Note : This library sways away from the conventional layered architecture that is taught in most youtube videos but it definitely supports it. Now you have the power to make you arduino actually LEARN from the environment.

Pre-Requisites

  • Tested using Arduino v1.6.5(windows) on UNO and Mega but should work on any board really and since it is based on C++ it can be ported to any platform easily

Background

  • this library imagines neural networks as connected individual neurons, obvious?, not so much because conventional libraries think of neural networks as layers of nodes.
  • Due to the above ideology the library creates a neuron object that has synapses incoming to it and a single output going from it
  • This design method gives the flexibility of making the most designer and complex ANN networks and have the control of designing and connecting the nodes to each other on the fly as well (Possibility of cascaded Neural Nets) with a very simple API
  • Read the header file comments for general usage of the library and examples to use it

Instructions

  • Start with the examples, read the comments and move from there
  • for any problems post an issue

Features

  • supports back-propagation , by calling backpropagate on a neuron the library backpropagates the beta to all the neurons that this neuron is onnected to
  • Non layered architecture to support any ANN design required by the user
  • choose your own activation function from the main sketch for each neuron individually
  • connect the neurons to each other as you like
  • each neuron is an object and whatever network you draw on the paper can be realized with this library
  • Layer management (Construction and connections) given to the user with a default back-propagation and adjWeights implementation that needs to be called by the programmer as and when they wish.
  • Lots of examples with different neural net architectures ;-P

Read the story on hackaday - http://bit.ly/neuralDuino_H

neuralduino's People

Contributors

pranavgulati avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

neuralduino's Issues

Cascade Neural networks

Read about cascade neural networks which provide a faster convergence, make some example perhaps demonstrating the same.

bad variable naming

byte inCount in "neuralduino.h" is commented to count only the no. of nodes connected to the neuron and not the total no. of inputs to the neuron.
the name is therefore misleading
choose a better name

When we want to make a looping network it overflows in backward propagation

I use a esp32 and wit only 14 neurons it crashes because the propagation is looping and consuming memory (to fix such issues make it that the backwards propagation number is limited by like
Define x 1
X (number of neurons) = max backwards going for a propagation
X (number of neurons)² = max num of propagation for all the network

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.