Giter Club home page Giter Club logo

mlbasicc's Introduction

Machine Learning Basics in C++

Copyright (c) Pius Braun 2018

Neural networks are one of the most important methods in machine learning.

This project implements some of the widely used components of neural networks in C++ using Back Propagation and Stochastic Gradient Descent.

The result is a very basic kernel for machine learning, that can train a neural network with different neurons and cost functions.

The following cost functions are implemented:

The following neuron functions are implemented:

All parameters of the network can be configured from the command line.

As an example, the network trains the MNIST Dataset and achieves an accuracy of up to 98.5 %.


Documentation

Section Content
Specification describes the Math behind Neural Networks
Implementation explains the Code
References contains the list of books, websites, tools and third party libraries

Contributing

If you want to contribute to the project:

  1. Write a specification, what you intend to achive, and what's the Math behind it.
  2. Send the sepcification to me: [email protected].
  3. Update the source code in a sandbox on your own system and test it for bugs.
  4. Run the tests similar to my Test section in the documentation.

To Do

There is room for improvements:

  • I did not implement the code for validation data.
  • The data input is restricted to the IDX format as defined by Jann LeCun. CSV would be better.
  • The results are stored to a CSV file without any real useful structure. Maybe there are better ideas to store training results.
  • The network is fully connected in all layers. Convolutional networks should be better for some purposes.
  • Some matrix operations in backprop() and feedforward() may run faster if I could dig deeper into the eigen matrix code.

mlbasicc's People

Contributors

pius-braun 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.