Neural-Network

A simple neural network written in rust.

About

This implementation of a neural network using gradient-descent is completely written from ground up using rust. It is possible to specify the shape of the network, as well as the learning-rate of the network. Additionally, you can choose from one of many predefined datasets, for example the XOR- and CIRCLE Datasets, which represent the relative functions inside the union-square. As well as more complicated datasets like the RGB_DONUT, which represents a donut-like shape with a rainbow like color transition.

Below, you can see a training process, where the network is trying to learn the color-values of the RGB_DONUT dataset.

Features

The following features are currently implemented:

Usage

The process of creating and training the neural network is pretty straightforwards:

carbon

Example Training Process

Below, you can see how the network learns:

Learning Animation

https://user-images.githubusercontent.com/54124311/195410077-7a02b075-0269-4ff2-965f-97f224ab2cf1.mp4

Final Result

RGB<em>DONUT</em>SGD_ 2,64,64,64,64,64,3

Cool training results

RGB_DONUT

Big Network

RGB<em>DONUT</em>RMS<em>PROP</em> 2,128,128,128,3 RGB<em>DONUT</em>RMS<em>PROP</em> 2,128,128,128,3 _history

Small Network

RGB<em>DONUT</em>SGD_ 2,8,8,8,3 RGB<em>DONUT</em>SGD_ 2,8,8,8,3 _history

XOR_PROBLEM

XOR<em>SGD</em> 2,8,8,8,1 XOR<em>SGD</em> 2,8,8,8,1 _history