So I haven’t actually updated the Sandbox project for quite some time (December 9th I believe). Since then, I’ve actually torn out the core of the code and rewritten it to actually be a game, rather than another clone of the general Falling Sand games. Rather than explain in detail what I’ve done (I’ll get to that later), I’ll start with screenshots of the new version.
They say a picture is worth a thousand words:
One Thousand Words
The old GUI framework just wasn’t working out (so far as adding new features went). So, long story short, I’ve switched GUI layout.
As expected, I’ve decided to change libraries from the** **poor results with the original tests may have been a direct results of a misunderstanding with the code base. I think that the layers were not being hooked up correctly, resulting in low/random values.
After my meeting yesterday with my thesis advisers, I have a number of new ideas to try to improve the efficiency of the neural networks. The most promising of those are described below.
The first idea was to replace the idea of applying the most common frequencies directly with a sliding window (almost a directly analogue to the nGrams themselves). The best way that we could come up to implent this would be to give the neural networks some sort of memory which brought up recurring networks (see below).
For now, I’ve chosen to work with C# Neural network library. It was the easiest to get off the ground and running, so it seemed like a good place to start.
I’ve been looking for a good Neural Network library to use with the AnnGram project and so far I’ve come across a couple of possibilities:
The top link on Google was an aptly named C# Neural network library. Overall, it looks clean and easy to use and is licensed under the GPL, so should work well for my needs. The framework has two types of training methods: genetic algorithms and backward propagation. In addition, there are at least three different activation functions included: linear, signmoid, and heaviside functions. The main problem with this framework is the spare documentation. The only that I’ve been able to find so far is a generated API reference and a few examples (using their included GUI framework).