Neural network software is used to
simulateSimulation is the imitation of some real thing, state of affairs, or process. The act of simulating something generally entails representing certain key characteristics or behaviours of a selected physical or abstract system....
,
researchResearch can be defined to be search for knowledge or any systematic investigation to establish facts. The primary purpose for applied research is discovering, interpreting, and the development of methods and systems for the advancement of human knowledge on a wide variety of scientific matters of...
,
developSoftware development is the set of activities that results in software products. Software development may include research, new development, modification, reuse, re-engineering, maintenance, or any other activities that result in software products...
and apply
artificial neural networkAn artificial neural network , usually called "neural network" , is a mathematical model or computational model that tries to simulate the structure and/or functional aspects of biological neural networks. It consists of an interconnected group of artificial neurons and processes information using...
s,
biological neural networkIn neuroscience, a neural network describes a population of physically interconnected neurons or a group of disparate neurons whose inputs or signalling targets define a recognizable circuit. Communication between neurons often involves an electrochemical process...
s and in some cases a wider array of
adaptive systemThe term adaptation arises mainly in the biological scope as a trial to study the relationship between the characteristics of living beings and their environments...
s.
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.
Neural network software is used to
simulateSimulation is the imitation of some real thing, state of affairs, or process. The act of simulating something generally entails representing certain key characteristics or behaviours of a selected physical or abstract system....
,
researchResearch can be defined to be search for knowledge or any systematic investigation to establish facts. The primary purpose for applied research is discovering, interpreting, and the development of methods and systems for the advancement of human knowledge on a wide variety of scientific matters of...
,
developSoftware development is the set of activities that results in software products. Software development may include research, new development, modification, reuse, re-engineering, maintenance, or any other activities that result in software products...
and apply
artificial neural networkAn artificial neural network , usually called "neural network" , is a mathematical model or computational model that tries to simulate the structure and/or functional aspects of biological neural networks. It consists of an interconnected group of artificial neurons and processes information using...
s,
biological neural networkIn neuroscience, a neural network describes a population of physically interconnected neurons or a group of disparate neurons whose inputs or signalling targets define a recognizable circuit. Communication between neurons often involves an electrochemical process...
s and in some cases a wider array of
adaptive systemThe term adaptation arises mainly in the biological scope as a trial to study the relationship between the characteristics of living beings and their environments...
s.
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
visualizationThe term visualization or visualisation may refer to:* Creative visualization* Flow visualization* Geovisualization* Illustration* Information graphics, visual representations of information, data, or knowledge* Information visualization...
to monitor the training process. Some simulators also visualize the physical structure of the neural network.
Research simulators
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, through simulation, to 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, JavaNNS and
Neural LabNeural Lab is a neural network simulator developed at the University of Guanajuato. It is built for Windows and is free. The current version is . This version support classic artificial neural networks and introduces neural networks in the complex domain...
.
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
NeuronNEURON is a simulation environment for modeling individual neurons and networks of neurons.It was primarily developed by Michael Hines, John W. Moore, and Ted Carnevale at Yale and Duke....
,
GENESISGENESIS is a simulation environment for constructing realistic models of neurobiological systems at many levels of scale including subcellular processes, individual neurons, networks of neurons, and neuronal systems....
, and Nest. Other simulators are XNBC and the BNN Toolbox for
MATLABMATLAB is a numerical computing environment and fourth generation programming language. Developed by The MathWorks, MATLAB allows matrix manipulation, plotting of functions and data, implementation of algorithms, creation of user interfaces, and interfacing with programs in other languages...
.
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 ExcelMicrosoft Excel is a spreadsheet-application written and distributed by Microsoft for Microsoft Windows and Mac OS X. It features calculation, graphing tools, pivot tables and a macro programming language called VBA...
or
MATLABMATLAB is a numerical computing environment and fourth generation programming language. Developed by The MathWorks, MATLAB allows matrix manipulation, plotting of functions and data, implementation of algorithms, creation of user interfaces, and interfacing with programs in other languages...
.
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
deploymentThe deployment of a mechanical device, electrical system, computer program, etc., is its assembly or transformation from a packaged form to an operational working state....
of the neural network outside the environment. In some cases they have advanced preprocessing, analysis and visualization capabilities.
Component based
A more modern type of development environments that are currently favored in both industrial and scientific use are based on a
component based paradigmComponent-based software engineering is a branch of software engineering, the priority of which is the separation of concerns in respect of the wide-ranging functionality available throughout a given software system...
. 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
JavaJava is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...
, 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 systemAn embedded system is a computer system designed to perform one or a few dedicated functions , often with real-time computing constraints. It is embedded as part of a complete device often including hardware and mechanical parts. In contrast, a general-purpose computer, such as a personal...
s.
Component based development environments include:
PeltarionPeltarion Corporation is a European software development corporation with its headquarters in Stockholm, Sweden. It specializes in neural networks and adaptive systems and makes software tools for developing them....
SynapseSynapse is a component-based development environment for neural networks and adaptive systems. Created by Peltarion, Synapse allows data mining, statistical analysis, visualization, preprocessing, design and training of neural networks and adaptive systems and the deployment of them. It utilizes a...
,
NeuroDimensionNeuroDimension, Inc. is a software development company headquartered in Gainesville, Florida and founded in 1991. It specializes in neural networks, adaptive systems, and genetic optimization and makes software tools for developing and implementing these artificial intelligence technologies.The...
NeuroSolutionsNeuroSolutions is a neural network development environment developed by NeuroDimension. It combines a modular, icon-based network design interface with an implementation of advanced learning procedures, such as conjugate gradients, Levenberg-Marquardt and backpropagation through time...
and
Scientific SoftwareA software or program is called scientific, if the subject it addresses is scientific.Even if deep knowledge is needed for the creation of a particular software, this alone makes it not necessarily scientific...
Neuro LaboratoryNeuro Laboratory is a shareware scientific computing software for Windows and Linux platforms developed by Scientific Software. The current version is 1.1.-Introduction:...
.
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 LanguageThe Predictive Model Markup Language is an XML-based markup language developed by the Data Mining Group to provide a way for applications to define models related to predictive analytics and data mining and to share those models between PMML-compliant applications.PMML provides applications a...
(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:
- R: produces PMML for neural nets and other machine learning models via the package pmml.
- SAS Enterprise Miner: produces PMML for several mining models, including neural networks
Neural Networks is the official journal of the three oldest societies dedicated to research in neural networks: International Neural Network Society, European Neural Network Society and Japanese Neural Network Society, published by Elsevier. A subsription to the journal is part of the membership...
, 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
Neural Networks is the official journal of the three oldest societies dedicated to research in neural networks: International Neural Network Society, European Neural Network Society and Japanese Neural Network Society, published by Elsevier. A subsription to the journal is part of the membership...
as well as several other data mining models.
See also
- Adaptive system
The term adaptation arises mainly in the biological scope as a trial to study the relationship between the characteristics of living beings and their environments...
- Artificial intelligence
Artificial intelligence is the intelligence of machines and the branch of computer science which aims to create it. Textbooks define the field as "the study and design of intelligent agents,"...
- Artificial neural network
An artificial neural network , usually called "neural network" , is a mathematical model or computational model that tries to simulate the structure and/or functional aspects of biological neural networks. It consists of an interconnected group of artificial neurons and processes information using...
- Data Mining
Data mining is the process of extracting patterns from data. As more data are gathered, with the amount of data doubling every three years, data mining is becoming an increasingly important tool to transform these data into information...
- Integrated development environment
An integrated development environment also known as integrated design environment or integrated debugging environment is a software application that provides comprehensive facilities to computer programmers for software development...
- Logistic regression
In statistics, logistic regression is used for prediction of the probability of occurrence of an event by fitting data to a logistic curve. It is a generalized linear model used for binomial regression...
- Machine learning
Machine learning is a scientific discipline that is concerned with the design and development of algorithms that allow computers to learn based on data, such as from sensor data or databases. A major focus of machine learning research is to automatically learn to recognize complex patterns and...
- Memristor
A memristor is any of various kinds of passive two-terminal circuit elements that maintain a functional relationship between the time integrals of current and voltage. This function, called memristance, is similar to variable resistance. Specifically engineered memristors provide controllable...
- NeuronDotNet (C# Neural Network Engine)