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
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".
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.
Of course character recognition is not the only problem that neural networks can solve. Neural networks have been successfully applied to broad spectrum of data-intensive applications, such as:
Process Modeling and Control - Creating a neural network model for a physical plant then using that model to determine the best control settings for the plant.
Machine Diagnostics - Detect when a machine has failed so that the system can automatically shut down the machine when this occurs.
Portfolio Management - Allocate the assets in a portfolio in a way that maximizes return and minimizes risk.
Target Recognition - Military application which uses video and/or infrared image data to determine if an enemy target is present.
Medical Diagnosis - Assisting doctors with their diagnosis by analyzing the reported symptoms and/or image data such as MRIs or X-rays.
Credit Rating - Automatically assigning a company's or individuals credit rating based on their financial condition.
Targeted Marketing - Finding the set of demographics which have the highest response rate for a particular marketing campaign.
Voice Recognition - Transcribing spoken words into ASCII text.
Financial Forecasting - Using the historical data of a security to predict the future movement of that security.
Quality Control - Attaching a camera or sensor to the end of a production process to automatically inspect for defects.
Intelligent Searching - An internet search engine that provides the most relevant content and banner ads based on the users' past behavior.
Fraud Detection - Detect fraudulent credit card transactions and automatically decline the charge.
Neural Networks and Stock Prediction