All Projects → jaygshah → Binary-Neural-Networks

jaygshah / Binary-Neural-Networks

Licence: GPL-3.0 license
Implemented here a Binary Neural Network (BNN) achieving nearly state-of-art results but recorded a significant reduction in memory usage and total time taken during training the network.

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Binary-Neural-Networks

Multi-Type-TD-TSR
Extracting Tables from Document Images using a Multi-stage Pipeline for Table Detection and Table Structure Recognition:
Stars: ✭ 174 (+216.36%)
Mutual labels:  machine-learning-algorithms
GDLibrary
Matlab library for gradient descent algorithms: Version 1.0.1
Stars: ✭ 50 (-9.09%)
Mutual labels:  machine-learning-algorithms
bristol
Parallel random matrix tools and complexity for deep learning
Stars: ✭ 25 (-54.55%)
Mutual labels:  machine-learning-algorithms
Sales-Prediction
In depth analysis and forecasting of product sales based on the items, stores, transaction and other dependent variables like holidays and oil prices.
Stars: ✭ 56 (+1.82%)
Mutual labels:  machine-learning-algorithms
Soomvaar
Soomvaar is the repo which 🏩 contains different collection of 👨‍💻🚀code in Python and 💫✨Machine 👬🏼 learning algorithms📗📕 that is made during 📃 my practice and learning of ML and Python✨💥
Stars: ✭ 41 (-25.45%)
Mutual labels:  machine-learning-algorithms
pyspark-ML-in-Colab
Pyspark in Google Colab: A simple machine learning (Linear Regression) model
Stars: ✭ 32 (-41.82%)
Mutual labels:  machine-learning-algorithms
Clustering Algorithms from Scratch
Implementing Clustering Algorithms from scratch in MATLAB and Python
Stars: ✭ 170 (+209.09%)
Mutual labels:  machine-learning-algorithms
machine-learning-implemetation-python
Basic Machine Learning implementation with python
Stars: ✭ 51 (-7.27%)
Mutual labels:  machine-learning-algorithms
sia-cog
Various cognitive api for machine learning, vision, language intent alalysis. Covers traditional as well as deep learning model design and training.
Stars: ✭ 34 (-38.18%)
Mutual labels:  machine-learning-algorithms
ParallelUtilities.jl
Fast and easy parallel mapreduce on HPC clusters
Stars: ✭ 28 (-49.09%)
Mutual labels:  reduction
mlreef
The collaboration workspace for Machine Learning
Stars: ✭ 1,409 (+2461.82%)
Mutual labels:  machine-learning-algorithms
mnist-neural-network-deeplearnjs
🍃 Using a Neural Network to recognize MNIST digets in JavaScript.
Stars: ✭ 26 (-52.73%)
Mutual labels:  machine-learning-algorithms
FinRL Podracer
Cloud-native Financial Reinforcement Learning
Stars: ✭ 179 (+225.45%)
Mutual labels:  machine-learning-algorithms
books-ML-and-DL
.pdf Format Books for Machine and Deep Learning
Stars: ✭ 105 (+90.91%)
Mutual labels:  machine-learning-algorithms
AI Learning Hub
AI Learning Hub for Machine Learning, Deep Learning, Computer Vision and Statistics
Stars: ✭ 53 (-3.64%)
Mutual labels:  machine-learning-algorithms
xgboost-smote-detect-fraud
Can we predict accurately on the skewed data? What are the sampling techniques that can be used. Which models/techniques can be used in this scenario? Find the answers in this code pattern!
Stars: ✭ 59 (+7.27%)
Mutual labels:  machine-learning-algorithms
bihm
Bidirectional Helmholtz Machines
Stars: ✭ 40 (-27.27%)
Mutual labels:  machine-learning-algorithms
vlainic.github.io
My GitHub blog: things you might be interested, and probably not...
Stars: ✭ 26 (-52.73%)
Mutual labels:  machine-learning-algorithms
Cerbo
Perform Efficient ML/DL Modelling easily
Stars: ✭ 12 (-78.18%)
Mutual labels:  machine-learning-algorithms
Moo-GBT
Library for Multi-objective optimization in Gradient Boosted Trees
Stars: ✭ 63 (+14.55%)
Mutual labels:  machine-learning-algorithms

Binary-Neural-Networks

Implemented here a Binary Neural Network (BNN) achieving nearly state-of-art results but recorded a significant reduction in memory usage and total time taken during training the network.

alt text

Through this project, we attempt to train Binary Neural Networks(BNNs) which are essentially Neural Networks with binary weights and activations i.e. +1 and -1. BNNs boost the performance in terms of memory usage and computation complexity during the forward propagation. This is achieved by replacing most arithmetic operations with bitwise boolean operations. We compare the performance of a traditional non- binary network with a network designed using two binariza- tion functions: Deterministic and Stochastic. We also compare the train times, performance, memory usage, and speed for the binary and non-binary versions on the fashion-MNIST dataset. We achieve significant improvements with binarized neural networks.

Results

We have implemented here a Binary Neural Network (BNN) that makes use of binarized weights and activations during the train time, as well as during the run-time. At the training time, these binarized values are used for computing gradients. This framework helps to train a network on machine with relatively fewer resources. We have used here two methodologies for binarizing the values of the network, deterministic and stochastic and compared both of them to two architectures of traditional non-binary implementation of a neural network on the Fashion-MNIST dataset. With both the binary versions we were not only able to achieve nearly state-of-art results but recorded a significant reduction in memory usage and total time taken during training the network. This was possible because the 32-bit arithmetic operation were replaced by bitwise operations.

In terms of total time taken for training, the deterministic binary version performed 28% and 42% better respectively for both the architectures. For the memory usage, the deter- ministic version performed 14% and 26% better respectively. We also compared the stochastic version of binary implemen- tation which again was able to reach state-of-art performance but also able to slightly improve the deterministic version’s memory usage and time taken for training. These results suggest that with minor trade-offs in performance, with binary neural networks, we can improve the memory and time consumption of training a neural network which is a key challenge in traditional neural networks.

Contact

Please reach out to me in case of any concerns with running the codes

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].