NeuroSolutions Products Summary
Below is a summary of the key highlights of this product. After reading this you may want to review the level summary to determine which levels of NeuroSolutions include the features that interest you. We recommend that you contact us to provide a demonstration in order to gain a full understanding of the software. Once you've gone through the extensive set of live demos, you can try building and training a neural network with your own data.
The Latest in Neural Network TechnologiesOur strong ties with the world-renowned Computational Neural Engineering Lab at the University of Florida enable us to keep up with the state-of-the-art in neural network technology and incorporate it into the software. Here are some of the most recent additions to NeuroSolutions:
Temporal Neural NetworksNeuroSolutions is one of the few neural network development tools to fully support backpropagation through time (BPTT). Instead of mapping a static input to a static output, BPTT maps a series of inputs to a series of outputs. This provides the ability to solve temporal problems by extracting how data changes over time. Examples of temporal problems are digital signal processing, speech recognition, and time-series prediction.
User-defined Neural TopologiesNeuroSolutions 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 for you based on your specifications. However, once the network is built you can arbitrarily change interconnections and/or add in new components. In other words, a virtually infinite number of neural models are possible!
User-defined Neural ComponentsThe Developers and Developers Lite levels allow you to integrate your own algorithms into NeuroSolutions through dynamic link libraries (DLLs). Every NeuroSolutions component implements a function conforming to a simple protocol in C. To add a new component you simply modify the template function for the base component and compile the code into a DLL -- all directly from NeuroSolutions! Note: this feature requires that Microsoft Visual C++ (version 5.0 or higher) be installed on the same machine.
C++ Code GenerationAn application developer can integrate a NeuroSolutions neural network into their application by generating a DLL with the Custom Solution Wizard or by generating the C++ source code for the network using the Professional or Developers level of NeuroSolutions. The source code generation facility of NeuroSolutions is as robust as its object-oriented design environment. No matter how simple or complex of a network you create within the graphical user interface, NeuroSolutions will generate the equivalent neural network in ANSI C++ source code -- even those networks that contain your own algorithms implemented with DLLs! The generated network can be trained beforehand within the graphical design environment of NeuroSolutions or from within your C++ application.
The generated code links with a pre-compiled object library, which contains all of the neural component algorithms provided by NeuroSolutions. NeuroSolutions ships with the libraries for the Microsoft Visual C++ (5.0 and above) and Borland Builder (3.0 and above) compilers. However, some developers may wish to use a different Windows compiler, or a compiler on a different operating system entirely, such as UNIX. For this reason, NeuroDimension makes the source code for the entire object library available as a separate product called the Source Code License. This license also gives you the ultimate level of flexibility in that you can modify the component library code to meet your unique needs.
The license for the object library, as well as the Source Code License, entitles the licensee to distribute recall networks royalty-free. Learning networks are restricted to one machine per license, although royalty agreements for distribution can be formulated on a case-by-case basis. Note that learning DLLs generated with the Custom Solution Wizard are not subject to royalties.
Extensive Probing CapabilitiesNeural networks are often criticized as being a "black box" technology. With NeuroSolutions' extensive and versatile set of probing tools, this is no longer the case. Probes provide you with real-time access to all internal network variables, such as:
Probing is an important step in the neural network design process, therefore we have made it an integral part of NeuroSolutions. As with the neural components, the probe components are inherently modular; the way you view the data is independent of what the data represents. All network data are reported through a common protocol, and all NeuroSolutions probes understand this protocol. This provides you with access to all internal variables, along with a variety of ways to visualize them.
Genetic OptimizationThe Users level of NeuroSolutions and above include Genetic Optimization. Genetic Optimization allows you to optimize virtually any parameter in a neural network to produce the lowest error. For example, the number of hidden units, the learning rates, and the input selection can all be optimized to improve the network performance. Individual weights used in the neural network can even be updated through Genetic Optimization as an alternative to traditional training methods.
Sensitivity AnalysisAfter training a neural network, you may want to know the effect that each of the network inputs is having on the network output. The sensitivity analysis feature of NeuroSolutions can be used to perform this function. Sensitivity analysis is a method for extracting the cause and effect relationship between the inputs and outputs of the network. The basic idea is that each input channel to the network is offset slightly and the corresponding change in the output(s) is reported. The input channels that produce low sensitivity values can be considered insignificant and can most often be removed from the network. This will reduce the size of the network, which in turn reduces the complexity and the training time. Furthermore, this will likely also improve the network performance for the out-of-sample testing data.
Exemplar WeightingClassification problems often do not have an equal number of training exemplars (samples) for each class. For example, you may have a neural network application that detects the occurrence of cancer from clinical test data. The training data for this problem may contain 99 exemplars classified as non-cancerous for every one exemplar classified as cancerous. A standard neural network would most often train itself to classify all exemplars as non-cancerous so that it would be 99% correct. Since the goal is to detect the existence of cancer, this is a problem.
One way to overcome this problem would be to throw away most of the training exemplars so that there would be an equal number for each class. This would drastically reduce the amount of training data, and likely result in a network with poor generalization.
NeuroSolutions provides a better solution using a method called exemplar weighting. For the example above, each of the cancerous training exemplars would have 99 times more weight during the backpropagation procedure than the non cancerous exemplars. This balancing of the training data will most likely result in a system that does a much better job of detecting the cancerous cases.
MacrosNeuroSolutions has a comprehensive macro language, which allows the user to record a sequence of operations and store them as a program. Any action that can be performed using the mouse and keyboard can be duplicated with a macro statement. This powerful feature gives the user unprecedented flexibility in constructing, editing, and running neural networks. When running the demos of the of NeuroSolutions, keep in mind that they were constructed entirely with macros.
OLE AutomationNeuroSolutions is a fully compliant OLE Automation Server. This means that NeuroSolutions can receive control messages from OLE Automation Controllers, such as Visual C++, Visual Basic, Microsoft Excel, Microsoft Access, and Delphi.
Writing a fully-functioning VB program is as simple as recording a NeuroSolutions macro, clicking the "Convert to VB" button, and pasting the converted VB code into the desired VB application. A VB application might be written to set a network’s parameters, run the network, then retrieve the network’s output. When running the demos of NeuroSolutions, be sure to run the OLE Automation demo which shows a sample VB application that communicates with NeuroSolutions via OLE.
Network Construction WizardsNeuroSolutions has three separate wizards that you can use to automatically build a neural network to your design specifications:
Once you select the architecture you can customize parameters such as the number of hidden layers, the number of processing elements and the learning algorithm. If you don't know what a parameter should be set to, you can specify that a genetic algorithm be used to optimize the setting for you.