# NeuroSolutions

NeuroSolutions is a neural network development environment developed by NeuroDimension. It combines a modular, icon-based (component-based) network design interface with an implementation of advanced learning procedures, such as conjugate gradients, the Levenberg-Marquardt algorithm, and back-propagation through time. The software is used to design, train, and deploy artificial neural network (supervised learning and unsupervised learning) models to perform a wide variety of tasks such as data mining, classification, function approximation, multivariate regression and time-series prediction.

## Neural network construction wizards

NeuroSolutions provides three separate wizards for automatically building neural network models:

### Data Manager

The Data Manager module allows the user to import data from Microsoft Access, Microsoft Excel or text files and perform various preprocessing and data analysis operations. From the Data Manager, the user can load the data directly into a NeuroSolutions breadboard or use the data to create a new neural network.

### NeuralBuilder

The NeuralBuilder centers the design specifications on the specific neural network architecture the user wishes to build. Some of the most common architectures include:
* Multilayer perceptron (MLP)
* Generalized feedforward
* Modular (programming)
* Jordan/Elman
* Principal component analysis (PCA)
* Radial basis function network (RBF)
* General regression neural network (GRNN)
* Probabilistic neural network (PNN)
* Self-organizing map (SOM)
* Time-lag recurrent network (TLRN)
* Recurrent neural network
* CANFIS network (Fuzzy logic)
* Support vector machine (SVM)
Once the neural network architecture is selected, the user can customize parameters such as the number of hidden layers, the number of processing elements and the learning algorithm. A genetic algorithm can also be used to automatically optimize the settings.

### Neural Expert

The Neural Expert centers the design specifications around the type of problem the user would like the neural network to solve (classification, prediction, function approximation or clustering). Given this problem type and the size of the user's data set, the Neural Expert automatically selects the neural network size and architecture that will likely produce a good solution. A beginner setting also exists which hides some of the more advanced operations such as cross validation and genetic optimization.

### User-defined neural networks

NeuroSolutions is based on the concept that neural networks can be broken down into a fundamental set of neural components. Individually these components are relatively simplistic, but several components connected together can result in networks capable of solving very complex problems. The network construction wizards will connect these components based on the user's specifications. However, once the network is built, the interconnections can be arbitrarily changed and components can be added or removed. NeuroSolutions also allows for the integration of algorithms through dynamic link libraries (DLL). Every NeuroSolutions component implements a function conforming to a simple protocol in C. To add a new component, modify the template function for the base component and then compile the code into a DLL.

## Neural network deployment

NeuroDimension, Inc. provides three ways for NeuroSolutions to deploy a custom neural network solution for applications: code generation, DLL generation, and OLE generation.

### Code generation

NeuroSolutions can automatically generate C++ source code for a neural network designed within its graphical user interface. This provides the flexibility to customize the neural network code for that particular application. Since the generated code is ANSI-compliant, the user can deploy the neural network solution to other platforms such as UNIX.

### DLL generation

The Custom Solution Wizard is an optional add-on product that will take a neural network designed within NeuroSolutions and encapsulate it into a dynamic link library (DLL) that conforms to a simple protocol. The DLL can then be embedded into the user's own C++, Visual Basic, Microsoft Excel, Microsoft Access or Internet (ASP) application, without requiring advanced programming skills.

### OLE automation

This technology provides the ability to programmatically control NeuroSolutions from any external application that supports automation, such as Microsoft Excel, Microsoft Access, and applications developed with Visual Basic or Visual C++. In the simplest case, the application developer could send NeuroSolutions the data to process, tell it to begin processing, and then retrieve the results back into the application. However, with its extensive protocol, NeuroSolutions can also do more complex tasks.