Giter Site home page Giter Site logo

mathieu-le-gouill / neural_network Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 18.91 MB

From scratch C++ Neural Network based on MNIST dataset using templated Tensors with SIMD intrinsics

C++ 99.75% C 0.25%
neural-network mnist-dataset avx from-scratch simd-optimizations

neural_network's Introduction

Neural_Network

What is an Artificial Neural Network ?

Artificial Neural Network is used in a particuliar domain of the machine learning : the deep learning. It's concept is actually inspired by the human brain, by simply replacing the synapses and neurons by numbers.

The network is composed of layers, themselves composed of neurons. Each neurons has a threshold to be activated, it is represented by a value called the bias. The network is composed by at least two layers, called respectively input layer and output layer. If there is more than these two layers, they should be between the both and are called "hidden layers" The layers are linked by what we called weights. A given neuron in a layer is linked with each neurons in the previous layer. So that each neurons in a given layer affect all the following layers neurons depending of the weights impact.

Here is the link of my source to get a better understanding of an artificial neural network : http://neuralnetworksanddeeplearning.com/chap1.html

How works a Neural Network ?

By processing data and the targeted output, the Neural Network use stochastic gradient descent to reduce how wrong the neural network's output is between its current result and the targeted value. So that it can reduce the error at each new steps.

-It works in two different ways :

The forward propagation :

It assign the given input to the input layer neuron's values, then compute the next layer using the biases and the weights linked between themselves and the latter neuron's. Keep repeating the operation for each hiddens layers until it reach the output layer and give the corresponding outpout.

The back propagation :

It compute the loss of the last layer, then propagate it using weights and biases to get the gradient of each layers so that we can use it for the gradient descent latter on.

neural_network's People

Contributors

mathieu-le-gouill avatar

Watchers

 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.