N N E
Neural Network Explorer, Desktop Software Application
mac - win - unix - linux
Project Goal & User Story:
Rapid visual prototyping of small Artificial Neural Networks (ANNs) for K-12, college, research, or general academic environments.
Beta Version (Free)
Download Link: NeuralNetworkExplorer_Beta.jar
Size: 329 KB
Download Example File: NNEMemory.nne
Size: 7 KB
- Place the NeuralNetworkExplorer_Beta.jar file on the Operating System Desktop or in a folder in the file system.
- Place the example file NNEMemory.nne in the same location as the jar. (this step is not necessary, but will help you get started)
- Double click on the NeuralNetworkExplorer_Beta.jar file to run the Neural Network Explorer application.
- On Mac OS X: Right Mouse Click -> Open With -> Jar Launcher ...(if security warning comes up, just click ok or accept)
When the Neural Network Explorer starts up, it will look for NNEMemory.nne in the working directory and open it up.
If NNEMemory.nne is not found, then Neural Network Explorer will start up with a fresh blank workspace and you have to create your
own graph.
This is a desktop application written entirely in Java 8, runnable with a
JVM installed on user's OS.
Screen Shot
Features
- Create from 3 different Neuron types
- Connect a Neuron to another Neuron(s), (one to many relationship)
- Internal DAG (Directed Acyclic Graph) built with automatic calculation functionality for all outputs.
- Disconnect Neuron from another Neuron or all other Neurons
- Modify input weights for individual Neuron dendrites
- Select the type of Neuron Activation Function for each Neuron.
- Delete individual Neurons
- Move clusters of Neurons with square or circular selection tool
- Save the Neural Network to your hard drive.
- Open any previously saved Neural Network from your hard drive.
Architecture & Design Patterns
Architecturally, the Neural Network Explorer application adheres to the Model Viewer Controller (MVC) design pattern.
Shown below is a visual mapping of how MVC is segmented with respect to this project.
-
The Model is a componentized Object Oriented data structure used to create a Directed Acyclic Graph,
whose nodes comprise a doubly linked list with a many-to-one relationship. The small node icon at the top of this
page shows a visual representation of one logical Neuron Unit.
- The Viewer is a graphical panel in the GUI that allows the user to see a representation of the Artificial Neural Network.
The viewer allows the user to drag Neurons around and connect them together, but the actual logical connections are made in the Model.
- The Controller is responsible for program start up, and directing communication between the Model and the Viewer, as well
as all other tasks associated general program overhead.
The Controller does have it's own portion of the GUI footprint shown in the middle layer of the sandwiched image below.
Developers -> A brief Object Oriented Class architecture explanation and java class definitions can be found on the
github link for this project.
Publications for this Project
Object Oriented Programming: Neural Networks, Part 1, by Lance Dooley 2017
In this article, we focus our attention on how Object Oriented Programming techniques can represent a biological system such as a Neural Network.
Object Oriented Programming: Neural Networks, Part 2, by Lance Dooley 2017
We continue refining our digital model of a neuron, define the Net Input Function, and begin discussing how a neuron processes information.
Object Oriented Programming: Neural Networks, Part 3, by Lance Dooley 2017
Complete modeling the logical Neuron unit and look at a few simple test cases using the Sigmoid Function for the Activation Function
This section is for developers who wish to take a look at or utilize the source code for the
Data Structure(s) for the Neural Network Explorer.
"GitHub is a development platform inspired by the way you work. From open source to business, you can host and review code, manage projects, and build software alongside millions of other developers."
Contact
There is no official support for this project, but you can send questions to: lance@lancedooley.com