GithubHelp home page GithubHelp logo

basic-artificial-neural-network's Introduction

Basic Neural Network Architecture

This project is simply a demonstration of a basic neural network architecture. In the root directory you can find the neural network jar file which contains all the necessary tools of creating a network. This network was created by Jonathan Lee under the guidance of Dr. Eric Nelson of the Harker School.

What are neural networks and what purpose do they serve? The short answer: They are awesome and they make the world a better place. The long answer: Artificial neural network. You can also read one of my papers on neural networks or perceptrons to get an idea of what they are, how they are created and some of their applications. This one implements some form of gradient descent with backpropagation. The network is limited to one input layer, one hidden layer and one output layer.

This was originally a source file not a jar, so it is not really intended to be used. And even if you tried using it, the interface isn't really refined. If you really want to though, you can just import the jar file or the source code into your project. To create the neural network, You need to pass to the constructor some training sets (module can also be found in root directory) and Two double arrays of weights since there are three layers (technically these weights can be random, but choose your dimensions carefully as they correspond to the number of nodes in each layer). You also need to give it a lambda factor which just helps the learning rate and a maximum number of iterations. These last two matter only if you want to train the network. If you already have weights that work for you and you only want to run the network, you can give these random values.

It is recommended that you systematically normalize the inputs in some way usually so that they are between zero and one or negative one and one. There are some ways to do it that are better than others, but for something simple I recommend min-max normalization or just general scaling by a constant factor.

You can train the network by calling the minimization method and you can run the network by calling the calculateOutput method. You must pass the calculateOutput method a double array of inputs.

I haven't written any documentation here, but the source code is thoroughly documented.

UPDATE May 12, version 1.0.0: The current version of the network was the one used to demonstrate Optical Character Recognition not Facial Recognition.

basic-artificial-neural-network's People

Contributors

jon--lee avatar

Watchers

James Cloos avatar  avatar

Forkers

vburl

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.