Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/CodingTrain/Toy-Neural-Network-JS
Neural Network JavaScript library for Coding Train tutorials
https://github.com/CodingTrain/Toy-Neural-Network-JS
Last synced: 3 months ago
JSON representation
Neural Network JavaScript library for Coding Train tutorials
- Host: GitHub
- URL: https://github.com/CodingTrain/Toy-Neural-Network-JS
- Owner: CodingTrain
- License: mit
- Created: 2018-02-02T17:50:25.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2023-03-27T10:25:43.000Z (over 1 year ago)
- Last Synced: 2024-05-01T09:38:36.951Z (7 months ago)
- Language: JavaScript
- Size: 13 MB
- Stars: 420
- Watchers: 33
- Forks: 241
- Open Issues: 63
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Toy-Neural-Network-JS
![ci](https://github.com/CodingTrain/Toy-Neural-Network-JS/actions/workflows/ci.yml/badge.svg)
Neural Network JavaScript library for Coding Train tutorials
## Examples / Demos
Here are some demos running directly in the browser:
* [XOR problem](https://codingtrain.github.io/Toy-Neural-Network-JS/examples/xor/), [Coding Challenge on YouTube](https://www.youtube.com/watch?v=188B6k_F9jU)
* [Handwritten digit recognition](https://codingtrain.github.io/Toy-Neural-Network-JS/examples/mnist/)
* [Doodle classifier](https://codingtrain.github.io/Toy-Neural-Network-JS/examples/doodle_classification/), [Coding Challenge on YouTube](https://www.youtube.com/watch?v=pqY_Tn2SIVA&list=PLRqwX-V7Uu6Zs14zKVuTuit6jApJgoYZQ)## To-Do List
* [x] Redo gradient descent video about
* [x] Delta weight formulas, connect to "mathematics of gradient" video
* [x] Implement gradient descent in library / with code
* [x] XOR coding challenge [live example](https://codingtrain.github.io/Toy-Neural-Network-JS/examples/xor/)
* [ ] MNIST coding challenge [live example](https://codingtrain.github.io/Toy-Neural-Network-JS/examples/mnist/)
* redo this challenge
* cover softmax activation, cross-entropy
* graph cost function?
* only use testing data
* [ ] Support for saving / restoring network (see [#50](https://github.com/CodingTrain/Toy-Neural-Network-JS/pull/50))
* [ ] Support for different activation functions (see [#45](https://github.com/CodingTrain/Toy-Neural-Network-JS/pull/45), [#62](https://github.com/CodingTrain/Toy-Neural-Network-JS/pull/62))
* [ ] Support for multiple hidden layers (see [#61](https://github.com/CodingTrain/Toy-Neural-Network-JS/pull/61))
* [ ] Support for neuro-evolution
* [ ] play flappy bird (many players at once).
* [ ] play pong (many game simulations at once)
* [ ] steering sensors (a la Jabril's forrest project!)
* [ ] Combine with ml5 / deeplearnjs## Getting Started
If you're looking for the original source code to match the videos [visit this repo](https://github.com/CodingTrain/Rainbow-Code/tree/master/Courses/natureofcode/10.18-toy_neural_network)
### Prerequisites
You need to have the following installed:
1. Nodejs
2. NPM
3. Install the NodeJS dependencies via the following command:```
npm install
```### Installing
This Project doesn't require any additional Installing steps
### Documentation
* `NeuralNetwork` - The neural network class
* `predict(input_array)` - Returns the output of a neural network
* `train(input_array, target_array)` - Trains a neural network## Running the tests
The Tests can either be checked via the automatically running CircleCI Tests or you can also run `npm test` on your PC after you have done the Step "Prerequisites"
## Built With
* [Nodejs](https://nodejs.org/) - The code language used
* [CircleCI](https://circleci.com/) - Automated Test Service
* [Jest](https://facebook.github.io/jest/) - Testing Framework used## Contributing
Please send PullRequests. These need to pass a automated Test first and after it will get reviewed and on that review either denied or accepted.
## Libraries built by the community
Here are some libraries with the same or similar functionality to this one built by the community:
- [Java Neural Network Library](https://github.com/kim-marcel/basic_neural_network) by [kim-marcel](https://github.com/kim-marcel)
- [Library-less Java Neural Network](https://github.com/Fir3will/Java-Neural-Network) by [Fir3will](https://github.com/Fir3will)
- [Python Neural Network Library](https://github.com/Gabriel-Teston/Machine-Learning) by [Gabriel-Teston](https://github.com/Gabriel-Teston)
- [Python Neural Network Library](https://github.com/GypsyDangerous/simple-deep-neural-network/blob/master/README.md) by [David Snyder](https://github.com/GypsyDangerous)
- [JavaScript Multi-Layer Neural Network Library](https://github.com/notshekhar/neuralnet) by [Shekhar Tyagi](https://github.com/notshekhar)
- [F# Neural Network Library](https://github.com/jackroi/NeuralNetwork-fsharp) by [jackroi](https://github.com/jackroi)
- [TinyNeuralNetwork4Java](https://github.com/anirudhgiri/TinyNN4J) by [Anirudh Giri](https://github.com/anirudhgiri)
- [miniANN Neural Network Library JavaScript](https://github.com/savvysiddharth/mini-ANN-js) by [Siddharth Maurya](https://github.com/savvysiddharth)
- [Convolutional Neural Network Library JavaScript](https://github.com/therealyubraj/CNN_JS) by [Yubraj Sharma](https://github.com/therealyubraj)Feel free to add your own libraries.
## Versioning
We use [SemVer](http://semver.org/) for versioning. For the versions available, see the [tags on this repository](https://github.com/CodingTrain/Toy-Neural-Network-JS/tags).
## Authors
* **shiffman** - *Initial work* - [shiffman](https://github.com/shiffman)
See also the list of [contributors](https://github.com/CodingTrain/Toy-Neural-Network-JS/contributors) who participated in this project.
## License
This project is licensed under the terms of the MIT license, see LICENSE.