GithubHelp home page GithubHelp logo

heidar-an / neuralnetwork Goto Github PK

View Code? Open in Web Editor NEW
1.0 2.0 0.0 38 KB

A library written using Go. The library allows users to create a neural network with a configurable number of neurons and layers. The library also implements backpropgation using gradient descent to gradually reduce the cost function.

Go 100.00%

neuralnetwork's Introduction

Neural Network Go Library

What is this?

A library written using Go. The library allows users to create a neural network with a configurable number of neurons and layers.
The library also implements backpropgation using gradient descent to gradually reduce the cost function.
I tested the neural network library against the MNIST database: http://yann.lecun.com/exdb/mnist/, a list of handwritten digits.
I went through the MNIST dataset using the GoMNIST package: https://github.com/petar/GoMNIST
Lastly, I also implemented a graphical user design so that users could draw digits themselves, and test it against the neural network. This was done using the ebitengine graphical library https://ebitengine.org/

Why I did this

A feeling of wanting to learn how to use Go, and understand more about the intuition about neural networks.
Implementing backpropagation was especially difficult, (but rewarding!) as it required me to really understand how it works
Overall, it was a good project for an introduction to neural networks, and I hope to develop it further in the future!

Technologies

Go - v1.18
ebiten, ebitengine - v2.4.4
GoMNIST - v0.0.0-20150320212226-2fbe10d0fa63

Future Plans/Improvements

I plan to add some optimisers, to make it faster such as optimising matrix multiplication for caching, concurrent computation, or SIMD. I could utilise some optimsers for gradient descent such as RMSProp and Adam too.
Furthermore, I plan on augmenting it to make it a convolutional neural network. However, I might redo the project in Rust instead for that.

neuralnetwork's People

Contributors

heidar-an avatar

Stargazers

 avatar

Watchers

 avatar  avatar

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.