Skip to content

sherwyn11/Skyplay-NN

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Skyplay-NN

A neural network playground built from scratch using Python.

So, What is a Neural Network?

It’s a set of algorithms designed to recognise patterns for building a computer program that learns from data. It is based very loosely on how we think the human brain works. First, a collection of software “neurons” are created and connected together, allowing them to send messages to each other. Next, the network is asked to solve a problem, which it attempts to do over and over, each time strengthening the connections that lead to success and diminishing those that lead to failure.

Where Are They Used?

Today, neural networks are used for solving many business problems such as sales forecasting, customer research etc. They have turned into a very popular and useful tool in solving many problems such as text Classification and Categorization, Regression, pattern recognition, Named Entity Recognition (NER), Part-of-Speech Tagging, Language Generation and Multi-document Summarization, etc.

What are Parameters & Hyperparameters

A model parameter is a configuration variable that is internal to the model and whose value can be estimated from data. Parameters are key to machine learning algorithms. Hyperparameters are adjustable parameters that must be tuned in order to obtain a model with optimal performance. They are the part of the model that is learned from historical training data and are often not set manually by the practitioner.

So, how can we improve the accuracy of the model? Is there any way to speed up the training process? These are critical questions to ask, whether you’re in a hackathon setting or working on a client project. And these aspects become even more prominent when you’ve built a deep neural network. Features like hyperparameter tuning, regularization, batch normalization, etc. helps in fine tuning your model.

Parameters

Weights - When input enters the neuron, it is multiplied by a weight.For example, if a neuron has two inputs, then each input will have has an associated weight assigned to it. We initialize the weights randomly and these weights are updated during the model training process.

Biases - A bias is added to the result of weight multiplication to the input. It is basically added to change the range of the weight multiplied input. This is the final linear component of the input transformation.

For more information on this we recommend going through Part 2 of the deeplearning.ai course (Deep Learning Specialization) taught by the great Andrew Ng. We saw the basics of neural networks and how to implement them in part 1, and I recommend going through that if you need a quick refresher.

Hyperparameters

  • No. of Epochs
  • Batch Size
  • #layers
  • Learning Rate
  • Hidden Units
  • Activation Function
  • Train/Test/Dev Split

Methods Used to Tune Hyperparameters

  • Manual Search
  • Grid Search
  • Random Search
  • Bayesian Optimization

What Are We Using?

We wrote this neural network code completely from scratch. We were inspired by our course instructor Andrew Ng and felt the urge to create a platform where everybody could visualise the effects of tuning different parameters, building your own neural network, uploading different datasets and so on.

Getting started

1. Clone the repository

git clone https://github.com/sherwyn11/Skyplay-NN.git

2. Start a virtual environment eg. conda (Recommended)

conda activate <my_virtual_env>

3. Download the requirements

cd Skyplay-NN
pip install requirements.txt

4. Start the server

python wsgi.py

Working Demonstration

Technology Stack

  • Python3
  • Flask
  • Numpy
  • Pandas
  • Matplotlib
  • Seaborn
  • D3.js
  • JavaScript
  • jQuery
  • HTML5
  • CSS3
  • Bootstrap
  • Material Design Lite

Task List

  • Classification/Regression on single class structured data
  • Added activation functions
  • Added layers
  • Added optimizers
  • Added loss functions
  • Added regularization
  • Created UI for model visualization and testing
  • Multi-class Classification/Regression
  • Unstructured Data Classification/Regression
  • Fix small bugs

For more details about our model architecture and components Click here

References

Contributors

Made with 💙 by Darlene Nazareth and Sherwyn D'souza

License

License: MIT

MIT License Link

© 2020 Copyright