|
|



|
Simbey's Neural Net
Having always been interested in neural networks, I decided one day to build a neural net
simulator. This is a very simple simulator that runs on Windows 98 and newer. It
supports a couple of interesting features. First, you can use VBScript to write
complex behaviors for "scripted neurones." The download contains a text file on using
VBScript in the Neural Net Creator. Second, you can import other neural net files that
you previously created into new files. The import brings in the existing neural net as
a "neural chip," allowing you to import multiple copies of the same neural net. I/O
neurones are used inside the neural chip to communicate with the host net.
It's really easy to build neural nets once you get the hang of it, although writing scripts
is a little more involved. I'd be happy to answer any scripting questions.
The old paragraph that used to say "If anyone wants to build SkyNet using this program,
let me know, and I'll add networking to the system. Currently, neural nets cannot
interface across a network, but I may add that someday when I'm bored," is now
obsolete! As of 2/8/2006, users may now connect neural nets using UDP on port
1220. The VBScript host also allows scripts to send packets using UDP. SkyNet,
anyone?
If you are interested in using this program to build a neural net, please let me know what
kind of network you are going to build. If you have a completed network that is
interesting, I would love to see it!
Download the Neural Net Creator
Click to read the development history
An interesting side note about this program is that the inspiration for it came from a
program I found on the Internet about ten years ago. It was simple, colorful, and
intuitive. I don't know whatever happened to that program, and I haven't been able to
find it again, so my neural net simulation is a bit of a recreation of that program, based on
what I think I remember from it.
|
 |
 |
There are many excellent resources available on the Internet for learning about neural
nets. I used this
page to learn about Hebbian learning. My neural net simulator has a vague
understanding of this table:
| State of first neuron in connection |
State of second neuron in connection |
What happens to the link between them? |
| Inactive |
Inactive |
Nothing |
| Inactive |
Active |
It weakens |
| Active |
Inactive |
It weakens |
| Active |
Active |
It strengthens |
One of the challenges I've faced with building this program is that it runs on a very high
level. It's very time consuming to lay out several dozen neurones and draw connections
between them, although being able to work like this makes it easy to build arbitrary
networks. However, building ordered networks with hundreds of neurones per layer isn't
reasonable.
For a while now I've been giving some thought (and my thoughts are already divided between
enough things) to building another kind of node that can be inserted into the network that
would have an internal structure similar to what you'd find in other kinds of neural network
programs. The idea is that you would place one of these nodes and tell it how many
layers it has with how many neurones per layer, and then you could train the networks
individually using special interfaces. The program as it exists today would allow you
to connect these networks up to each other as well as to the other high level neural
components.
This is a ways off, but I think this is the right thing to do.
|
|