Archive

Posts Tagged ‘Lush’

Popular Neural Network Toolboxes & Libraries

March 13th, 2008 Asiri Rathnayake No comments

Today i thought i should write about various toolboxes / libraries available for interested researchers / developers working in the area of Artificial Neural Networks.

The first toolbox i became familiar with is the MATLAB Neural Network Toolbox which is handy for various simulation / testing purposes. I did not work with this tool much, but I think it is not used as an implementation platform for ANNs (but it’s really good for testing out various ideas). One important aspect of MATLAB NN Toolbox is that it supports various types of networks and training algorithms. I think by far this is the most complete “ToolBox” out there for a researcher on ANNs.

Then there is FANN (Fast Artificial Neural Networks) which is equally suited for testing as well as implementations of ANNs. Although the types of ANNs currently supported by FANN is limited to standard multilayer back-propagation networks (fully connected as well as sparse connected) , there are / have been several attempts to include various other types of networks into FANN (GSoC projects, SOMS and various other types).

Lush (Lisp Universal Shell) is not an NN library but a programming language (a derivative of Lisp) which includes support for many research subjects (including ANNs). Lush also supports Convolutional Neural Networks (CNNs) and has bindings for OpenCV.

Apart from those three, I found conv-net to be a very specific ANN library which supports Convolutional Neural Networks. But it only supports simulation of CNNs which makes it pretty dumb because we cannot actually train any network using this library.

The final project i want to mention is hosted here. This is not a library nor is a toolbox. This is a very specific application which performs handwritten digit recognition using convolutional neural networks. Based on this project i was able to put up a stand-alone convolutional neural network library which can train, simulate and save trained networks. I had to do a lot of reverse engineering because this is a windows MFC application (was quite hard to adopt it into Linux – which is my OS). I wish to publish this library somewhere on the web (may be in this blog itself) but first, i need to get proper permissions from the original developer.