![]() |
|
||
| Home | |||
NeuroSolutions Frequently Asked Questions (FAQ)Questions about the Technology
What is a neural network? Questions about the Technology in NeuroSolutions
What are some of the types of neural networks that I can build with NeuroSolutions?
Q. What is a Neural Network?
A neural network is a powerful data modeling tool that is able to capture and represent complex input/output relationships. The motivation for the development of neural network technology stemmed from the desire to develop an artificial system that could perform "intelligent" tasks similar to those performed by the human brain. Neural networks resemble the human brain in the following two ways:
The true power and advantage of neural networks lies in their ability to represent both linear and non-linear relationships and in their ability to learn these relationships directly from the data being modeled. Traditional linear models are simply inadequate when it comes to modeling data that contains non-linear characteristics.
The most common neural network model is the multilayer perceptron (MLP). This type of neural network is known as a supervised network because it requires a desired output in order to learn. The goal of this type of network is to create a model that correctly maps the input to the output using historical data so that the model can then be used to produce the output when the desired output is unknown. A graphical representation of an MLP is shown below.
Block diagram of a two hidden layer multiplayer perceptron (MLP). The inputs are fed into the input layer and get multiplied by interconnection weights as they are passed from the input layer to the first hidden layer. Within the first hidden layer, they get summed then processed by a nonlinear function (usually the hyperbolic tangent). As the processed data leaves the first hidden layer, again it gets multiplied by interconnection weights, then summed and processed by the second hidden layer. Finally the data is multiplied by interconnection weights then processed one last time within the output layer to produce the neural network output. The MLP and many other neural networks learn using an algorithm called backpropagation. With backpropagation, the input data is repeatedly presented to the neural network. With each presentation the output of the neural network is compared to the desired output and an error is computed. This error is then fed back (backpropagated) to the neural network and used to adjust the weights such that the error decreases with each iteration and the neural model gets closer and closer to producing the desired output. This process is known as "training".
Demonstration of a neural network learning to model the exclusive-or (Xor) data. The Xor data is repeatedly presented to the neural network. With each presentation, the error between the network output and the desired output is computed and fed back to the neural network. The neural network uses this error to adjust its weights such that the error will be decreased. This sequence of events is usually repeated until an acceptable error has been reached or until the network no longer appears to be learning. A good way to introduce the topic is to take a look at a typical application of neural networks. Many of today's document scanners for the PC come with software that performs a task known as optical character recognition (OCR). OCR software allows you to scan in a printed document and then convert the scanned image into to an electronic text format such as a Word document, enabling you to manipulate the text. In order to perform this conversion the software must analyze each group of pixels (0's and 1's) that form a letter and produce a value that corresponds to that letter. Some of the OCR software on the market use a neural network as the classification engine.
Demonstration of a neural network used within an optical character recognition (OCR) application. The original document is scanned into the computer and saved as an image. The OCR software breaks the image into sub-images, each containing a single character. The sub-images are then translated from an image format into a binary format, where each 0 and 1 represents an individual pixel of the sub-image. The binary data is then fed into a neural network that has been trained to make the association between the character image data and a numeric value that corresponds to the character. The output from the neural network is then translated into ASCII text and saved as a file. Q. What kind of real-world problems can neural networks solve?
A.
Neural networks can be applied to almost any problem where you have 1) historical data and 2) a need to create a model for that data. Neural networks have been successfully applied to broad spectrum of data-intensive applications, such as:
A.
Genetic algorithms are general-purpose search algorithms based upon the principles of evolution observed in nature. Even with today's high-powered computers, using an exhaustive search to find the optimal solution for even relatively small problems can be prohibitively expensive.
For many problems, genetic algorithms can often find good solutions (near-optimal) in around 100 generations. This can be many times faster than an exhaustive search. For example, a chromosome containing 32 binary genes would have 4,294,967,296 possible combinations (solutions) to evaluate when using an exhaustive search. If the same problem were to be solved with a genetic algorithm of population size 50, requiring 100 generations of evolution, the genetic algorithm would only need to evaluate 5000 possible solutions.
As mentioned previously, genetic algorithms are able to find optimal or near optimal solutions by using many of the principles of evolution that can be observed in nature. These include selection, crossover, and mutation. Below is an outline of how a genetic algorithm uses these principals to search for optimal solutions:
After the evolution of the initial population through many generations, the chromosomes (or solutions) within the final population will generally be much better as a whole than the chromosomes within the initial population. Also, the best chromosome in the final population will generally be near optimal if the genetic algorithm was run for enough generations.
A.
Genetic algorithms can be combined with neural networks to enhance their performance by taking some of the guesswork out of optimally choosing neural network parameters, inputs etc. In general, genetic algorithms can be used in conjunction with neural networks in the following four ways. They can be used to choose the best inputs to the neural network, optimize the neural network parameters (such as the learning rates, number of hidden layer processing elements, etc.), train the actual network weights (rather than using backpropagation), or to choose/modify the neural network architecture. In each of these cases, the neural network error is the fitness used to rank the potential solutions.
A.
NeuroSolutions includes two wizards to create neural networks for you based on your data and specifications. One of these wizards, the NeuralBuilder, centers the design specifications around the specific neural network architecture you wish to have built. Some of the most common neural network architectures include:
A.
The second of the two network construction wizards is called the NeuralExpert. The NeuralExpert centers the design specifications around the type of problem you wish the neural network to solve (Classification, Prediction, Function Approximation or Clustering). Given this problem type and the size of your data set, the NeuralExpert intelligently selects the neural network size and architecture that will most likely produce a good solution. There is an optional beginner level that hides some of the more advanced operations such as cross validation and genetic optimization. In other words, you don't have to be a neural network expert to develop successful models with NeuroSolutions!
![]()
Q. What if the neural network type I am interested in is not listed?
A.
NeuroSolutions was designed with flexibility in mind. It is based on the concept that neural networks can be broken down into a fundamental set of neural components. 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!
In addition, the 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! Q. Does NeuroSolutions work with Excel files? A. The best way to develop a neural network model from your Excel data is to use to use NeuroSolutions for Excel. This Microsoft Excel add-in simplifies and enhances the process of getting data into and out of a NeuroSolutions neural network. It benefits both the novice and the advanced neural network developer by allowing them to do everything from preprocessing the data, to designing the neural network, to generating reports of the results -- all directly from Excel! If you are not interested in this add-in product you can still use your Excel data within NeuroSolutions. All you need to do is save a copy of your Excel spreadsheet as a text file (e.g., *.txt, *.csv). Q. Once I develop a working neural network in NeuroSolutions, how do I use it?
A.
Once you've created your neural network and trained and tested it on the historical data, you are now ready to put the neural network to use. What you want to do is give the neural network current input data as it becomes available, and have it generate an output that you can utilize. There are several ways you can interface with your NeuroSolutions neural network to put it into production:
A.
The graphical user interface (GUI) of NeuroSolutions requires Windows 95, 98, NT, 2000, Me or XP.
NeuroSolutions neural networks can run under other operating systems such as UNIX, but without the GUI environment. The products required to run a NeuroSolutions neural network on a platform other than Windows are the Professional or Developers level of NeuroSolutions and the Source Code License. The process would be to design the neural network using a Windows computer, then generate the C++ source code for the neural network and compile that code on the target operating system.
|
"I have recently purchased a copy of NeuroSolutions 4 and am very happy with the software. It is amazing how many features are available within the network. I am also very impressed by the quality and the speed of the technical support provided by the NeuroSolutions staff."
-- Albrecht Stoecklein (MSc), Building Research Association of New Zealand
|
||||||||