shimazadeh / Neural_Networks

the implementation of a multilayer perceptron
0 stars 0 forks source link
backpropagation dropout feedforward-neural-network gradient-descent machine-learning neural-network optuna regularization-methods

Neural Network From Scratch

Description

This program construct a neural network that can be used with different options for binary classification.

Prerequisites

Getting Started

  1. Clone this repository to your local machine.
  2. Place your dataset in a file named data.csv. And place it under the data folder.

Usage

Training and Optimization

There are two modes to this program: 1. trial 2.model. If you already know the parameters of your NN architecture you can use option 2 directly but if you don't know the best parameters that should be used for your data set you can use trial mode. ensure you adjust the "Objective" method in the main.py to adjust the range of the parameters you want to study:

- Command for Trial mode: python main.py --mode trial: 
- Command for Model mode: python main.py --mode model --layers <layers> --epochs <epochs> --learning_rate <learning_rate>

The result of the model performance, including loss curves, accuracy, and evaluation metrics, will be displayed in the terminal during training and the associated graphs are saved as .png file.

Methodology

For this dataset, we conducted an initialize analysis before training. The analysis results can be found in the "DataAnalysis.pdf" document. The following steps outline our approach to building and training the neural network:

Alt text Alt text