/Neural-Network

A Basic ANN implementation using Python, and the NetworkX graph library.

Primary LanguagePython

Neural-Network

A Basic ANN implementation using Python, Numpy, and the NetworkX graph library. Currently it exclusively uses a genetic algorithm to train, but that will change in the future.

Usage

It's essentially just a reimplementation of a generic neural network for ML that can employ the use of a Genetic Algorithm and Monte-Carlo Markov Chains (MCMC), though more methods may be available in the future. The program has some options for configury, but for the most part they are coded directly in so, in order to use them, you need to go and change some variable in the script itself.

Configuration:

  • You can change the num_hidden_layers, layer_size, input_shape, and output_shape through parameters in the constructor of the Network class.
  • You can change the generation_size, num_generations, filter_size (Parameters of the genetic algorithm) in the section labeled 'Configuring training' of main.py.
  • You can change up the data itself in the area of main.py labeled 'Loading in Dataset' (will likely automate process soon).

Scripts + Analytics:

  • The main.py script will train and store the model to a file.
  • The Draw_network.py script will write a visual graph-based representation of the model into a .png file.
  • The Display_metrics script will display the time complexity, and plot some graphs to show the models performance.