Project Definition - kwsaxman/NeuralNetworks GitHub Wiki

Welcome to the NeuralNetworks wiki!

Git: https://github.com/kwsaxman/NeuralNetworks.git

Abstract

Create a framework to create neural networks capable of solving simple math problems. The framework should be provided with specific input and output. The framework will create a neural network which will produce the specified output when given the corresponding input. The framework should first be made to solve a small subset of math problems, but then it should be expanded to solve a larger variety of problems.

Design

The design consists of the following components

Neural Networks

Resembles logic circuits. Consists of Nodes and edges. Two types of nodes, AND (+) and NOT (-). Nodes can also be either starting, ending, or middle nodes.

Test Framework

Fairly simple framework to check how close a network is to a correct answer. Should provide more feedback than just “right” or “wrong”. Some kind of accuracy score should be used to determine if one Network was closer to being correct than another.

Evolutionary/Learning Algorithm

TBD - this is where the success/failure of this project lies. Could use known machine learning techniques.

Compression Algorithm

Searches for unnecessary complexity and removes it. Two types of compression, lossy and lossless. Lossless compression will not affect the output of the Network. Lossy compression should only affect output to a minimal degree. Networks which have been Lossy Compressed, can be put through the test framework again and can differ in accuracy score by a specified degree.

Driver

The driver should and input file and output file. The initializes a neural network. Runs the network through the test framework. If the network does not complete the tests with a high enough accuracy score, apply the evolutionary algorithm. Repeat this process until a high enough accuracy score is achieved.