Home Page


- overview

- data structures

- preprocessing

- networks

- classification

- graphing

- examples



There are many neural packages around, some obviously bigger, with plenty of network architectures, so what was the reason to make another one?

  • Most of the packages let you create and play with a single network at a time; I would say, they are a bit network-oriented. NetMaker is rather job-oriented: you can have multiple networks, data sets, connect them, reconnect, apply preprocessing, or not... I will develop it in this direction, so you will not see unreadable images of spaghetti of hundreds of neuron connections, but more flexible data flow instead.
  • Still, few packages offer automatic adjustment of the network size. NetMaker development concentrates on such an architectures. Now there are two network models implemented: Cascade-Correlation (growing only), and MLP with my growing/pruning algorithm and OBS weights elimination.
    Implementation of Bayesian Framework allows to judge the resulting network (now it is prepared for function approximation, but will be extended to classification problems too).
  • There are various error (cost) functions that network can minimize, not only the standard MSE. It's true, that in many cases you won't feel the difference, but there are applications where appropriate function is crucial. Not many other packages give a choice in this field.
  • screenshot


    Smart wizard is planned to help building basic solutions. For now, project must be created manually (or you may reuse one of the projects from examples section). To start work, first, choose menu File - New Project and create a new project window. Then:

    1) Add new DataSet blocks and fill them with training/testing data (menu Edit - Add Component - Data Set). Special syntax is used in the DataSet block for description of the file contents. You can read about it in data structures - formatting string syntax section.

    2) Optional. If any preprocessing is required (usually normalization to zero-mean and unitary standard deviation), add the Transform blocks (menu Edit - Add Component - Transform). Connect the DataSet's outputs to the Transform's inputs (push corresponding "I/O" or ">>" buttons - common Connection Add dialog window will appear), black lines represent established connections. Then set up appropriate transformation and choose the block containing data that will be used to calculate parameters of the transformation algorithm (light blue lines represent these connections). Add new DataSet blocks that will receive transformed data and turn on Internal source in block's setup. Then connect output of the Transform to the input of the DataSet (violet lines). Again, go to the setup of the Transform, select Output Format tab and put desired formatting expressions. Now, the Transform block is ready and you can push Go! button to perform calculations.

    3) When training/testing sets are ready, add Network block (menu Edit - Add Component - Network) and set up its structure or read it from a file (use Setup button). Both, DataSet and Network blocks should be set up before the connection between them is established. To connect the Network to the DataSet push the I/O button on one of them. Use Go button to select training algorithm and its parameters, then push Go! button in the dialog window to start the training process. There are many options in the network setup dialog window - see networks section for more details. Save the project to a file (menu File - Save).

    4) When training is finished save the network coefficients to a file (Network's Setup button, Committee & Files tab). Connect DataSet containing testing data to the network and run the network on it (Go button, JustRun method). Network response is stored in the connected DataSets, in the output vectors - you can view the values through the DataSet's Setup button and Preview tab, or plot them using one of the graphs.

    There are lots of options not mentioned here, like triggering chains or pre-/post-run commands. Probably, the easiest way to get familiar with them is to go through examples.

    The project development was suspended for a really long time. Now the neural network topic becomes hot again... We are happy with the performance of NetMaker engine, but it absolutely needs modernization on the interface! It will come - as a part of the new, simple programming language POOL.