/nnffs

Neural Network Framework From Scratch

Primary LanguageC++

NNFFS - Neural Network Framework From Scratch

Description

The aim of this project is to create an ML (Machine Learning) framework, focussing primarily on Deep Neural Networks (DNNs), for C++. The framework will be created in a somewhat similar style to Tensorflow and it's Keras API.

The purpose for creating this framework is to help me learn C++ and CMake, as well as reinforcing my understanding of neural networks and other ML models.

It is important to understand there are ML libraries already available for C++, and that there is nothing novel about this framework.

In addition, there are external mathematical & linear algebra libraries that would make the development of this framework easier, however creating the functionality for neural networks from scratch will better help me develop my understanding.

External libraries will be used for other things, such as logging and testing.

Installation

Currently the best way to use this framework is to download the source code from this GitHub repository, add it to your project locally, and compile it with your executable.

Usage

TBC...

Future Plans

Further development will include:

  • Building upon the framework to allow for creation of more advanced networks, such as:
    • Convolutional Neural Netowrks (CNNs)
    • Recurrent Neural Networks (RNNs)
    • etc...
  • Adding functionality to read data in a wider variety of formats and in a robust manner.
  • Formally deploying framework as a library for public use.
  • Building functionality in framework for other ML models, such as:
    • Naive-Bayes
    • Linear/Logistic Regression
    • K-Means Clustering
    • K-Nearest Neighbours (KNN)
    • Support Vector Machines (SVM)
  • Building functionality in framework for other ML specialities, such as:
    • Time Seires Analysis
    • Reinforcement Learning (RL)