Monday, November 17, 2008

Features

The following are the planned features for the GUI helper tool. Any suggestions and improvements are highly appreciated. We’ll try to implement any new features you may suggest.

1) An intuitive GUI with five tabs
  • Network designer
  • Training Data
  • Validation Data
  • Training analysis
  • Performance analyzer
2) The minimum data you’ll have to provide is the training data or the data set. The remainder of the configuration, i.e. network design, choice of validation data and choice of training algorithm to be used can be configured optimally by an ‘Auto Configure’ button.

3) Training and performance analysis shows a graphical display (thanks to JFreeChart project) conveying the necessary information to the user. The necessary information can be logged (uses log4j) for later analysis and the graphs can be saved in any of the image formats.

4) Can export and import the neural network. At this point we’re at a bit of confusion. Should the save be exported in XML format or should serialization be used? If XML is used what could be the potential advantages? Please comment on this issue. Current object serialization is used.

Take a look at the usage doc, UML model we’ve prepared. Is it overly complex?, can it be simplified further?? We look forward for your comments on this issue.

Why another framework?

There are many frameworks that exist to simplify the Neural Network creation and training. My personal favorite is the JOONE engine. It provides an intuitive GUI and a well defined engine that is capable of creating modular neural networks (combination of one or more types).

When I first used the JOONE engine, I was overwhelmed with possibilities. It had too many menus and advanced functionalities and took me a while to understand the functionality. Essentially there are five reasons why we chose to design a new framework.

1) 90% of neural network related problems are focused around supervised networks; the back propagation network is the most popular amongst them. Hence the idea of creating a framework exclusively for supervised BP networks.

2) I have seen many students who were interested in neural networks, but backed off due to the underlying mathematical complexity. The aim of the project is to abstract the mathematical complexity while providing the necessary flexibility for an advanced user to fiddle with various parameters for research.

3) As JOONE was designed by keeping a broader perspective in mind, instead of reusing it, we’ve defined a simpler framework exclusively for the back propagation network.

4) We have planned to include a basic GUI helper tool and an advanced GUI tool targeting both the beginner and advanced counterparts.

5) Most of the people are overwhelmed by number of adjustable parameters to design that perfect neural network tailored for your needs. For this we’ll soon be providing and ‘auto configure’ option that sets the most optimal architecture for a given data set by using genetic algorithms.

In summary, emphasis is laid on the simplicity of usage and at the same time giving it sufficient flexibility for customization. Moreover, creating a neural network is as simple as following 5 steps.