Neural network software
Neural network software is used to simulate, research, develop and apply artificial neural networks, biological neural networks and in some cases a wider array of adaptive systems.
Simulators
Neural network simulators are software applications that are used to simulate the behavior of artificial or biological neural networks. They focus on one or a limited number of specific types of neural networks. They are typically stand-alone and not intended to produce general neural networks that can be integrated in other software. Simulators usually have some form of built-in visualization to monitor the training process. Some simulators also visualize the physical structure of the neural network.
Research simulators
![](http://upload.wikimedia.org/wikipedia/en/thumb/e/ed/Snns_screen.jpg/250px-Snns_screen.jpg)
Historically, the most common type of neural network software was intended for researching neural network structures and algorithms. The primary purpose of this type of software is to, through simulation, gain a better understanding of the behavior and properties of neural networks. Today in the study of artificial neural networks, simulators have largely been replaced by more general component based development environments as research platforms.
Commonly used artificial neural network simulators include the Stuttgart Neural Network Simulator (SNNS), Emergent and JavaNNS.
In the study of biological neural networks however, simulation software is still the only available approach. In such simulators the physical biological and chemical properties of neural tissue, as well as the electromagnetic impulses between the neurons are studied.
Commonly used biological network simulators include XNBC and the BNN Toolbox for MATLAB. Neural Lab is free non-comercial software to design, test and simulate artificial neural networks download Neural Lab 2.1
Data analysis simulators
Unlike the research simulators, the data analysis simulators are intended for practical applications of artificial neural networks. Their primary focus is on data mining and forecasting. Data analysis simulators usually have some form of preprocessing capabilities. Unlike the more general development environments data analysis simulators use a relatively simple static neural network that can be configured. A majority of the data analysis simulators on the market use backpropagation networks or self-organizing maps as their core. The advantage of this type of software is that it is relatively easy to use. This however comes at the cost of limited capability. Some data analysis simulators work in conjunction with other computational environments, such as Microsoft Excel or MATLAB.
Development Environments
Development environments for neural networks differ from the software described above primarily on two accounts – they can be used to develop custom types of neural networks and they support deployment of the neural network outside the environment. In some cases they have advanced preprocessing, analysis and visualization capabilities.
Popular development environments are:
- the Wolfram Research Neural Network package which is based on the Mathematica computing environment;
- the AMORE and neural packages of the R programming language;
- the MathWorks Neural Network Toolbox which is based on the MATLAB computing environment;
- the GBLearn2 library of the Lush programming language.
- The Neural Lab software developed at the University of Guanajuato for research purposes only.
Component based
![](http://upload.wikimedia.org/wikipedia/en/thumb/2/2c/Synapse_screen.jpg/250px-Synapse_screen.jpg)
A more modern type of development environments that are currently favored in both industrial and scientific use are based on a component based paradigm. The neural network is constructed by connecting adaptive filter components in a pipe filter flow. This allows for greater flexibility as custom networks can be built as well as custom components used by the network. In many cases this allows a combination of adaptive and non-adaptive components to work together. The data flow is controlled by a control system which is exchangeable as well as the adaptation algorithms. The other important feature is deployment capabilities. With the advent of component-based frameworks such as .NET and Java, component based development environments are capable of deploying the developed neural network to these frameworks as inheritable components. In addition some software can also deploy these components to several platforms, such as embedded systems.
Component based development environments include: Peltarion Synapse, NeuroDimension NeuroSolutions and Scientific Software Neuro Laboratory.
Criticism
A disadvantage of component-based development environments is that they are more complex than simulators. They require more learning to fully operate and are more complicated to develop.
Custom neural networks
The majority implementations of neural networks available are however custom implementations in various programming languages and on various platforms. Basic types of neural networks are simple to implement directly. There are also many programming libraries that contain neural network functionality and that can be used in custom implementations.
Standards
In order for neural network models to be shared by different applications, a common language is necessary. Recently, the Predictive Model Markup Language (PMML) has been proposed to address this need.
PMML is an XML-based language which provides a way for applications to define and share neural network models (and other data mining models) between PMML compliant applications.
PMML provides applications a vendor-independent method of defining models so that proprietary issues and incompatibilities are no longer a barrier to the exchange of models between applications. It allows users to develop models within one vendor's application, and use other vendors' applications to visualize, analyze, evaluate or otherwise use the models. Previously, this was very difficult, but with PMML, the exchange of models between compliant applications is now straightforward.
PMML Consumers and Producers
A range of products are being offered to produce and consume PMML. This ever growing list includes the following neural network products:
- SAS Enterprise Miner: produces PMML for several mining models, including neural networks, linear and logistic regression, decision trees, and other data mining models.
- SPSS: produces PMML for neural networks as well as many other mining models.
- Zementis ADAPA: consumes PMML by providing batch and real-time scoring of PMML for neural networks as well as several other data mining models.
See also
- Adaptive system
- Artificial intelligence
- Artificial neural network
- Data Mining
- Integrated development environment
- Logistic regression
- Machine learning
External links
- An Implementation of Artificial Neural Networks For Image Recognition (C#)
- HNeT - Holographic Neural Technology
- Introduction to neural networks with a modular implementation of backpropagation algorithm in C# along with samples (BROKEN LINK)
- iSNS - an interactive neural network simulator
- Feed-forward neural network for python
- dlib C++ Library - Implements multilayer feed forward networks
- Feed-forward/Backpropagation neural network in C++
- Matlab Feed Forward Back Propagation Neural Network
- AiToolbox System: New Algorithms & Research
- PMML Specification
- MemBrain - Neural Network Editor and Simulator for Windows - Free for private and non-commercial use
- Application of Neural networks in finance and economics.
- NeuralOps (C++) Small source-code library implementing a basic feedforward neural network, and allowing for its training using different optimization methods including Particle swarm optimization and Differential evolution, as well as providing techniques for tuning the behavioural parameters of these optimization methods to perform their best in neural network training.
- Neural lab is a free non-commercial software for ANN analysis