You've asked for it, so we've made it for you!
Our users are very impressed with our NeuroShell Predictor and Classifier neural networks, including Turboprop 2. We're not surprised. We spent over three years of research building these powerful, state-of-the-art neural network algorithms. So, at your request, we're now selling a product that will allow you to embed these neural networks, including training, into your own programs.
The new product is called the NeuroShell Engine. It is an Active X control that can be loaded into your Visual Basic, C++, or C# programs to bring the neural network power of the NeuroShell Predictor and Classifier to your programs. Incorporating the best neural networks on the planet is a piece of cake!
I. Background
The NeuroShell Engine is a product that most of our users will never need, because our other programs allow you to call your networks from computer programs you write. Such computer programs can be distributed throughout your company and to your customers. If you purchase the NeuroShell Predictor or NeuroShell Classifier, you simply have to purchase the NeuroShell Runtime Server in order to place calls to your nets into your Windows programs written in Visual Basic, C++, Delphi, and other languages. If you purchase NeuroShell 2, it includes a runtime server so you can call your programs from the aforementioned languages in Windows, and you can also generate source code so your nets can be compiled on mainframes or Unix workstations.
So why do we sell the NeuroShell Engine? In case you want to embed the TRAINING portion of the process into your Windows programs. Let us explain further.
Use of neural nets involves two stages:
Stage 1, TRAINING. In this stage, the historic or sample observations are collected to build the neural model. The process is called training, where the neural net "learns" the sample observations. The end result is a model that can be used in stage 2.
Stage 2, FIRING (executing). In this stage, the model built in stage 1 is called (or "fired") to produce answers for new input data, data that was normally not used in stage 1 to build the model. This is the production environment where you utilize the model to make predictions, classifications, or other decisions.
Of course, our programs (NeuroShell Predictor, NeuroShell Classifier and NeuroShell 2) provide both stage 1 and stage 2 in them in graphical user interfaces. However, only stage 2 can be controlled from within your own computer programs written by your own programmers. (NeuroShell 2 includes this capability; NeuroShell Predictor and Classifier require the Runtime Server.)
Stage 1, in all of our other products, is accomplished only from a graphical user interface that is built into our products. That's where the NeuroShell Engine comes in. The Engine lets you call stage 1 (training) from your computer programs. In essence, it allows you to build your own neural network products for distribution! You can build custom designed neural network product interfaces too, by dropping our engine into your chassis.
II. What is the NeuroShell Engine
The NeuroShell Engine is only for the most serious neural network users, and only those who are programmers or have programmers on staff. The NeuroShell Engine contains the
neural and genetic training methods that we have used ourselves in the NeuroShell
Predictor, the NeuroShell Classifier, and the NeuroShell Trader. They are available to be
integrated into your own computer programs for both training and firing neural networks.
Basically there are four algorithms:
1. the neural method (Turboprop 2) used in the Predictor and Trader
2. The genetic method (Advanced GRNN) used in the Predictor
3. The neural method (Turboprop 2) used in the Classifier
4. The genetic method (Advanced PNN) used in the Classifier
III. Technical Details
If you are not a programmer, you will probably not understand the following description.
The NeuroShell Engine is an Active X control which can be utilized in modern compilers
like Microsoft Visual Basic and Microsoft Visual C++. The control can be added to a
program just as other controls are added, like combo boxes and text boxes. Once the
control is added to a program, the programmer can create "neural network" objects that
can be trained and fired. Neural Network objects have properties and methods. The properties
allow access to parameters of the neural networks you build, like the number of inputs, maximum
number of hidden neurons, etc. The methods facilitate training and firing of the neural network.
All of these things are accessed and manipulated from within your programs.
The picture below shows the NeuroShell Engine control after it has been added to a
Visual Basic Program:
click the image for a better picture
Methods and Properties
The NeuroShell Engine allows you to set the following methods and properties:
Methods
CalcROCcurve
Calculates the Receiver Operating Characteristic (ROC) curve and the area under it.
Convert2Binary
Converts neural network classification probabilities into binary 0/1 numbers and creates an array
of winner indexes
CreateNet
Creates a neural network
ErrMessage
Returns a string associated with a specific error code.
FireNet
Fires the neural network with new input data and produces neural network predictions.
GetInputsImportance
Retrieves the input importance factors for the neural network currently in the memory.
GetMatrix
Retrieves the statistics matrix for the Classifier neural network.
LoadNet
Loads a neural network into memory from a file on the disk.
SaveNet
Saves a neural network currently in memory into a file on the disk.
SetFitnessMatrix
Sets a fitness function penalty matrix for the Classifier Genetic network.
TrainNet
Performs one cycle of the neural network training.
Properties
ClassNames
Sets/returns the name of a class (category) for a classification neural network.
ContinueTraining
Sets/returns a flag, instructing the control to allow training continuation (Genetic
strategy only).
GeneticPenalty
Sets/returns the genetic penalty flag to minimize the number of unpredictable patterns (Predictor/Genetic only). This property is identical to the “Minimize number of unpredictable patterns” check box found on the “Advanced Genetic” tab under the Options menu in NeuroShell Predictor.
InRangeTolerance
Sets/returns the tolerance value (Predictor/Neural and Predictor/Genetic only).
TighterOptimization
Sets/returns tighter optimization flag for the best curve fitting (Predictor/Genetic only). This property is identical to the “Favor tighter fitting during optimization” check box found on the “Advanced Genetic” tab under the Options menu in NeuroShell Predictor.
EnhancedGeneralization
Sets/returns the enhanced generalization level at which the neural network fires new data to
produce predictions.
FitnessFunctionMode
Sets/returns the fitness function mode, which determines how the Classifier Genetic
network is trained.
GenerationsWithNoChange
Returns number of generations, which the neural network has been trained without improvement
(Genetic training only).
InNames
Sets/returns the name of an input variable in the network.
MaxNumHiddens
Returns maximum number of hidden neurons, which the Neural type of network can train
(Neural training strategy only).
MissingValue
Returns a special constant value to be used instead of missing input data.
NetType
Returns type of the neural network currently in the memory.
NumCategories
Returns number of categories (classes) in the classification neural network.
NumInputs
Returns number of inputs to the neural network.
OptimalHiddens
Returns/sets the optimal number of hidden neurons in the neural network (Neural training only).
OutNames
Sets/returns the name of an output variable in the neural network.
ProgramType
Returns type of the program used to create and train the neural network currently in the memory.
IV. Licensing and Pricing
Please don't look for this engine to be inexpensive like most of our products have always
been. We're letting you have the crème de la crème of neural network modeling, the
technological heart of our most powerful products. If you aren't a very serious user, you
will not want to pay the price for serious networks. We aren't talking about the classic
"backprop" neural network paradigms that every college student learns. If you
are looking for an inexpensive solution, we recommend backprop, which is not in the
NeuroShell Engine.
There will be two different types of licenses:
1. Internal use only license. With this license, you can use the
NeuroShell Engine in all programs which you intend to distribute only within your company
or government agency. There will be no restrictions of what type of program you may build,
but the license will not allow it to be used by anyone but your own employees. All of your
programmers in one physical location may use the software.
2. External use license. With this license, which will be the more
expensive of the two, you may use the NeuroShell Engine in a specified program which you
intend to sell or otherwise distribute outside of your company or government agency. We
must approve the program to be sure that it does not directly compete with any of our
products. Once your application program is approved, you may embed our technology and sell
or distribute the program with no royalty payments. All of your programmers working on
your application may use the software.
The Engine is not sold as an off-the-shelf product as our other software is. It sold with a
license agreement between Ward Systems Group and your company. Therefore, we do not sell or discuss it via email. Please
call Marge Sherald at 301-662-7950 to discuss pricing and all other issues related to the Engine.
V. Frequently Asked Questions
Here are answers to the most frequently asked questions about the NeuroShell Engine.
Q. How can I tell if the NeuroShell Engine will do the job for me?
A. Purchase either the NeuroShell Predictor or the NeuroShell
Classifier and see if the results satisfy you. The results will be the same with the
NeuroShell Engine.
Q. Is this the same neural network that is in the NeuroShell Trader?
A. Yes
Q. Will it contain both prediction and classification modes in both
neural and genetic forms?
A. Yes, so there are essentially four paradigms.
Q. Is this an off-the-shelf product?
A. No, not really. Your company will be required to execute a license agreement with Ward System Group, Inc.
Q. Does the license include source code and a description of the
internal mechanisms?
A. No. However, our methods are already generally described in
the public domain literature.
Q. What are the payment terms?
A. One payment due at the time the license is signed. There will be no
royalty arrangements.
Q. Is this a one machine license?
A. No, all of your programmers at one primary site will be allowed to use
the control.
Q. Is there any tech support?
A. Yes, we will allow your programmers to get help from us, but not your
end users, obviously.