Introduction to Backpropagation Neural Networks.

In this article we will talk about one particular type of Neural Networks, called backpropagation networks. It is the most popular network for practical applications and a very powerful tool.

Visibility is very important for this site. If you like it please link to this URL or use our online form to add your reciprocal link. Learn more about reciprocal links


What to expect from this article?

While learning about the Neural Networks, I heve found two categories of tutorials. First is written by matematicians and for the matematicians. To understand it, you need to be used to use your brain in particular way, which most of the population can not do. From the user's point of view, this kind of tutorial is not very friendly, as it is offering no tools, just the theory. And from the programmer's point of view...

You see, there is a difference in the way matematician (x = f(y)) and a programmer (pnInput = GetMovingAverage(pnSensorInput)) thinks. The difference that makes understanding of the algorythms a complex task for people that prefer the Hungarian Notation. Also, the mathematical solution does not always focus on the implementation details, so when the algorythm described in the textbook is translated into computer program - it usually does not work. And then the programmer is left on his own.

In this article I will try to talk about one particular type of Neural Networks, called backpropagation networks. It is the most popular network for practical applications and a very powerful tool.

I am going to use examples produced by the program that you can find on this site, called Cortex.

This tutorial is NOT just for programmers. Anyone can read it and understand it. It's just I had a choice of using mathematical formulas or programming code to describe algorythms - and the choice was made to use programming code. Skip it, if you do not understand it.

What is a Neural Network?

The area of Neural Networks probably belongs to the borderline between the Artifficial Intelligence and Approximation Algorythms. Think of it as of algorythms for "smart approximation". The NNs are used in (to name few) universal approximation (mapping input to the output), tools capable of learning from their environment, tools for finding non-evident dependencies between data and so on.

The Neural Networking algorythms (at least some of them) are modelled after the brain (not necessarily - human brain) and how it processes the information. The brain is a very efficient tool. Having about 100,000 times slover responce time than computer chips, it (so far) beats the computer in complex tasks, such as image and sound recognition, motion control and so on. It is also about 10,000,000,000 times more efficient than the computer chip in terms of energy consumption per operation.

The brain is a multi layer structure (think 6-7 layers of neurons, if we are talking about human cortex) with 10^11 neurons, structure, that works as a parallel computer capable of learning from the "feedback" it receives from the world and changing its design (think of the computer hardware changing while performing the task) by growing new neural links between neurons or altering activities of existing ones. To make picture a bit more complete, let's also mention, that a typical neuron is connected to 50-100 of the other neurons, sometimes, to itself, too.

To put it simple, the brain is composed of neurons, interconnected.

Structure of a neuron.

Our "artifficial" neuron will have inputs (all N of them) and one output:

As you can see, the neuron has:
Set of nodes that connects it to inputs, output, or other neurons, these nodes are also called synapses.
A Linear Combiner, which is a function that takes all inputs and produces a single value. A simple way of doing it is by adding together the dInput (in the case if you are not a programmer - a "d" prefix means "double", we use it so that the name (dInput) represents the floating point number) multiplied by the Synaptic Weight dWeight:

for(int i = 0; i < nNumOfInputs; i++)
	dSum = dSum + dInput[i] * dWeight[i];

An Activation Function. We do not know what the Input will be. Consider this example - the human ear can function near the working jet engine and in the same time - if it was only ten times more sensitive, we would be able to hear a single molecule hitting the membrain in our ears! What does that mean? It means that the input should not be linear. When we go from 0.01 to 0,02, the difference should be comparable with going from 100 to 200.

How do we make a non-linear input? By applying the Activation function. It will take ANY input from minus infinity to plus infinity and squeeze it into the -1 to 1 or into 0 to 1 interval.

Finally, we have a treshold. What the INTERNAL ACTIVITY of a neuron should be when there is no input? Should there be some treshold input before we have the activity? Or should the activity be present as some level (in this case it is called a bias rather than a treshold) when the input is zero?

For simplicity, we (as well as the rest of the world) will replace the treshold with an EXTRA input, with weight that can change during the learning process and the input is fixed and always equal (-1). The effect, in terms of mathematical equations, is exactly the same, but the programmer has a little more breathing room ;)

A neural Net.

A single neuron by itself is not a very useful pattern recognition tool. The real power of neural networks comes when we combine neurons into the multilayer structures, called... well... neural networks.

The following image represents a simple neural net:

As you can see, there are 3 layers in our network (we can make it more, but if we make it less - we will have a less capable net. Making 4 layers is sometimes useful when you are looking for a non-evident things. And I have never seen a problem that requires 5 layers. For 99 percent of tasks, 3 layers is the best choice). There are N neurons in the first layer, where N equals number of inputs. There are M neurons in the output layer, where M equals number of outputs. For example, when you are building the network capable of predicting the stock price, you might want the (yesterday's) hi, lo, close, volume as inputs and close as the output.

You may have any number of neurons in the inner (also called "hidden") layers. Just remember, that if you have too few, the quality of a prediction will drop and the net doesn't have enough "brains". And if you make it too many - it will have a tendency to "remember" the right answers, rather than predicting them. Then your neural net will work very well on the familiar data, but will fail on the data that was never presented before. Finding the compromice is more of an art, than science.

Teaching the Neural Net.

The NN receives inputs, which can be a pattern of some kind. In case of an image recognition software, for example, it would be pixels from the photo sensitive matrix of some kind, in case of a stock price prediction, it would be the "hi" (input 1), "low" (input 2) and so on.

After the neuron in the first layer received its input, it applies the Linear Combiner and the Activation Function to the inputs and produces the Output. This output, as you can see from the picture, will become the input (one of them) for the neurons in the next layer. So the next layer will feed forward the data, to the next layer. And so on, until the last layer is reached.

Let's use our example with the stock price. We will try to use yesterday's stock price to predict today's price. Which is the same as using today's price to predict tomorrow's price...

When we work with yesterday's price, we not only know the price for the "day - 1", but also the price we are trying to predict, called the DESIRED OUTPUT of the Neural Net. When we compare the two values, we can compute the Error:
dError = dDesiredOutput - dOutput;

Now we can adjust this particular neuron to work better with this particular input. For example, if the dError is 10% of the dOutput, we can we can increase all synaptic weights of the neuron by 10%.

The problem with this approach is that the next input will require a different adjustment.

But what if for each pattern we perform a SMALL adjustment in the right direction? To do it, we need to introduce couple of new variables.

The learning rate. Say, we found that for this particular pattern, an adjustment should be 10%. Then we perform the following operation:
dNewWeight = dOldWeight * dAdjustment * dLearningRate.

The learning rate (dLearningRate) is a importance of a single pattern. For example, we can set it to 0.01, then it will take 100 patterns to make a 10% adjustment.

Momentum is not something that we NEED, but it can speed up calculations signifficantly. Consider this: we have 100 patterns and we noticed that each moves us 0.01% towards some value. Wouldn't it be better to move faster - as long as we keep moving in the same direction? Think of the learning rate as of acceleration and think of momentum as of the speed.

As the NN is learning, the errors will decrease (as the network is getting better) and we will have to adjust the learning rate and momentum. You can download the Cortex software that does it already ;)

Once we decided what adjustment we need to apply to the neurons in the output layer, we can backpropagate the changes to the previous layers of the network. Indeed, as soon as we have desired outputs for the output layer, we can make adjustment to reduce the error (the difference between the output and the desired output). Adjustment will change weights of the input nodes of the neurons in the output layer.

But the input nodes of the last layer are OUTPUT nodes of the previous layer! So we have the actual output of the previous layer and the desired output (after correction) - and we can adjust the previous layer of the net! And so on, until we reach the first layer.

If you know C++, consider this example:

double dOld;
for(int i = 0; i < m_nInputs - 1; i++)
{
	dOld = m_pdWeights[i];
	if(nLayerType != KH_INPUT_LAYER)
	{
		m_pdWeights[i] = m_pdWeights[i] + 
			m_dMomentum * (m_pdWeights[i] - m_pdOldWeights[i]) 
			+ m_dLr * m_dGrad * m_ppFrom[i]->m_dOutput;
	}
	else
	{
		m_pdWeights[i] = m_pdWeights[i] + 
			m_dMomentum * (m_pdWeights[i] - m_pdOldWeights[i]) 
			+ m_dLr * m_dGrad * pdIn[i];
	}
	m_pdOldWeights[i] = dOld;
}

dOld = m_pdWeights[i];
m_pdWeights[i] = m_pdWeights[i] + 
	m_dMomentum * (m_pdWeights[i] - m_pdOldWeights[i]) + 
	m_dLr * m_dGrad * (-1);
m_pdOldWeights[i] = dOld;

Notice the last few lines - we are dealing with an "extra" node that represents a treshold.

Feedforward Backpropagation Algorythm summary.

Initialization.

We need to create a network and to set the synaptic weights to some random values.

Feed forward the training patterns.

Generally, we want to have two different sets of data, one for "training" and one for "testing". The reason for that is simple - if we only test the NN on the same set of data, that was used for the training, we do not know if it learned to "predict" or to "memorize" the patterns.

Present a training example:

double Neuron::Forward(double* pnInput, int nLayerType)
{
	double dLinearCombiner = (-1) * m_pdWeights[m_nInputs - 1];
	
	if(nLayerType != KH_INPUT_LAYER)
		for(int i = 0; i < m_nInputs - 1; i++)
			dLinearCombiner += 
				m_pdWeights[i] * m_ppFrom[i]->m_dOutput;
	else
		for(int i = 0; i < m_nInputs - 1; i++)
			dLinearCombiner += pnInput[i] * m_pdWeights[i];

	m_dOutput = Activation(dLinearCombiner);

	return m_dOutput;
}

Back propagation.

After the input pattern was presented to the network and processed by all layers, we have errors (the difference between what we want and what we got) that can be used to adjust the network.

double Neuron::Back(double* pdIn, double dDesiredOutput, 
	int nNum, int nLayerType, BOOL nDoUpdates)
{
	if(nLayerType == KH_OUTPUT_LAYER)
		m_dError = (dDesiredOutput - m_dOutput);
	else
	{
		double d = 0.0;
		for(int i = 0; i < m_nOutputs; i++)
			d += m_ppTo[i]->m_dError 
				* m_ppTo[i]->m_pdWeights[m_pnNodeNumber[i]];
		d /= m_nOutputs;
		m_dError = d;
	}
	
	m_dGrad = m_dError * m_dOutput * (1 - m_dOutput);

	if(nDoUpdates)
	{
		double dOld;
		for(int i = 0; i < m_nInputs - 1; i++)
		{
			dOld = m_pdWeights[i];
			if(nLayerType != KH_INPUT_LAYER)
				m_pdWeights[i] = m_pdWeights[i] + 
					m_dMomentum * (m_pdWeights[i] 
					- m_pdOldWeights[i]) +
					m_dLr * m_dGrad * m_ppFrom[i]->m_dOutput;
			else
				m_pdWeights[i] = m_pdWeights[i] + 
					m_dMomentum * (m_pdWeights[i] 
					- m_pdOldWeights[i]) + 
					m_dLr * m_dGrad * pdIn[i];
			m_pdOldWeights[i] = dOld;
		}

		dOld = m_pdWeights[i];
		m_pdWeights[i] = m_pdWeights[i] + 
			m_dMomentum * (m_pdWeights[i] 
			- m_pdOldWeights[i]) + m_dLr * m_dGrad * (-1);
		m_pdOldWeights[i] = dOld;
	}

	// Fuzzy controller

	...
}

The "fuzzy controller" is used to come up with the creative values of learning rate and momentum, as without them the Neural Networks can be extremely slow as sometimes the oscillations, local minimums and other obstacles can take a lot of processor time.

Practical considerations.

Regardles if you are using the Cortex neural network solution, or your own program, there are come things to keep in mind.

Speed.

The neural networks are very fast when implemented as a hardware structure, but not all of them are fast on the computer (designed as a non-parallel tool). The smaller the NN is, the faster it works, which is especially important when you work with real time applications, like voice recognition, for example.

The right choice of data.

You can feed ANYTHING into the NN. And it can become a problem. By providing the irrelevant data (is "open" relevant for the stock price prediction? How about 100 stock indicators that you can get online? How about currency exchange rates?) you are introducing the noice to the system and making the learning more difficult.

Stability of a solution.

When you perform training of a NN, you might see the error decreasing for the learning set of data, and increasing for the "test" data. It might be because the network is "overtrained" and is now memorizing the patterns rather than learning to be creative. Or it can be due to some local minimum - and in this case the situation may improve as the training continues. See the Cortex tutorial for examples.

When the NN parameters are wrong or when your algorythm for adjusting weights, learning rate and momentum is not working well, the oscillations may happen. Imagine the network that produced an error -2. And it was adjusted. And the new error is +2. And the next error is -2 again... How long will it take for this system to learn? Very long... On the other side, if the learning rate and momentum are small, the network parameters will improve towards the best solution - but at a very low speed. It might take hours or days even on the fastest computer to optimize such a network for a simple problem.

The solution is to use what I called a Fuzzy Controller, which is basically the way to dynamically adjust learning rate and momentum depending on the current and past values of network errors. It is implemented in the Cortex software.

Can we use our results?

When it comes to practical applications, we need to consider the fact that data are constantly changing. The network that works today may not work tomorrow - so we have to create (teach) a new one. Do we have enough time? Do we know for sure that it will work?

Consider the following example. We created a neural network that produces "buy", "sell" and "hold" signals for the stock market. It worked fine for few days, and then we decided to teach a new net with the new data. And it works fine - except there is a "hold" where we had a "sell" yesterday. We already sold our shares, but this new network does not approve - what should we do?

This problem has nothing to do with neural computations, by the way. If done properly, it will work just fine.

Where now?

Download the Cortex package. It is a simple interface and powerful underlying neural network. You can use it as a data analysing tool (which means - by itself) or - if you are an advanced user - you can teach a NN and then use the result from your own application. You can also use the built-in scripting language, to perform some tasks in automatic way.

How? The Cortex comes as three pieces. One is the user interface, another is a scripting language, and the last one is a DLL. After you have teached the NN, you don't need the User Interface - just the DLL.

If you don't know how - read the manual. And if you still don't understand, or simply do not want to concern yourself with DLL, C++ and other programming issues - keep using the Cortex user's interface - it can do everything you need.

As for the scripting language... Imagine, that you have data that need to be converted to the form Cortex can understand. You can do it using the scripting language.

Or imagine, that you want to find out, what MINIMUM number of neurons you can use in your network. You can do it by hand, trying N=5, N=6, N=7 and so on, and waiting for each NN to learn, so that you can take a look at the charts it produces. Or you can write a simple script (based on the examples that come with Cortex, so all you need to do is to edit existing code), and Cortex will AUTOMATICALLY try all the necessary combinations of parameters you want, while you are doing something else.

Or let's say, you want to create and test a complete trading system, one that you can then use for a "real" trading. You can do it, using the Cortex and its scripting language, no mater if this trading system uses Neural Networks, or not.


There are more types of the neural networks, some of them are very specialized. I might write about them, so keep checking this page.

And do not forget about the navigation bar at the bottom of the page - it will take you to other pages, some of them using neural networks, and all of them facinating ;)



Free intros:

State of Power Tutorial

Hypnosis Tutorial

NLP Tutorial

Working with the Future Tutorial

Hypnotic Inductions

Working with Money

Working with Habits

Manipulation Tutorial


Karate online tutorial

Chi Gun online tutorial

Tai Chi 24 forms online tutorial

Tai Chi 40 forms online tutorial

Tai Chi 108 forms online tutorial

Tai Chi Chi Gun 18 forms online tutorial

Chi Gun (Dao In) Heart and Blood Vessels 8 forms online 
tutorial

Chi Gun (Dao In) Kidneys 8 forms online tutorial

Joints Gymnastics, Chi Gun warm-up online tutorial

Chi Gun tao of Dr. Shi online tutorial


Sore back treatment

Headache Relief Pressure Points Tutorial


Stock trading - technical analysis

Making a small profitable web site

Neural Networks

Flow Charts and decision trees for web sites and 
presentations

Another powerfull Flow Charts Designer

Site Downloader

Thumbnails Generator

Calendar Creator

Touch Typing


Photo gallery


Jewelry: Pearl. How to choose, price estimation,
					take care, history, legends, classification Pearl. How to choose, price estimation, take care, history, 
legends, classification Artifficial Pearl. Links to: How to choose pearl, estimate price, 
take care, history, legends, classification Buying Pearl. Links to: How to choose, estimate price, take care, 
history, legends, classification Jewelry: Pearl. Taking care. Links to: How to choose, estimate 
price, history, legends, classification Jewelry: Classification of Pearl. Links to: How to choose, 
estimate price, take care, history, legends Jewelry: Cultivated Pearl. Links to: How to choose, estimate 
price, take care, history, legends, classification Jewelry: Pearl. History and legends. Links to: How to choose, 
estimate price, take care, classification Jewelry: Pearl. Price estimation. Links to: How to choose, take 
care, history, legends, classification Jewelry: Pearl. What is it? Links to: How to choose, estimate 
price, take care, history, legends, classification


NLP, Hypnosis, Power, Manipulation Tai Chi, Chi Gun Neural Networks
Joints Gymnastics Photo album generator
Habit Management Karate tutorial Flow charts for Presentations and Web

Sore back treatment Calendar Creator
Building a small profitable site
Another powerfull Flow Charts Designer
Profitable web site in 9 days Web programming : Perl, XML Site Downloader
Web positioning Shareware Directory


Touch Typing
Stock and FOREX Trading Stock Photo Gallery


Neural Networks
Neural networks are modelled after the brain (not necessarily a human brain) and provide the learning algorythm that does not require any knowkedges of the formulas for the process being researched, instead, it is based on the familiarity and pattern recognition.

data mining
The neural networks have unique ability to extract the relevant information from the noisy and incomplete data. In terms of machine learning, it is a valuable feature.

machine learning
The machine learning using the neural networks consists of two stages (repeated many times). First, we present the system with the input data and obtain the output. Second, we adjust the system, to make output closer to what it should be.
The first stage is refered as feedforward, the second - as a backpropagation.

neural net methodology
On this site you will find free tutorial, covering basics of the Feedforward Backpropagation neural networks.

knowledge discovery
Knowledge based algorythms are often considered as something opposite to the data based algorythms. However, the Neural Networks are both - they store the information, as a internal structure of a network, making possible to recognize the patterns, including those, that the system never seen before.

speech recognition neural networks
The recognition of speech is an example of the problem that neural networks can solve. The patterns are noisy, they are different from time to time and from person to person, and they are not presented in a form that can be used by algorythm based programs.

Stock market neurals network
There are endless discussions on stock market prediction using neural networks, and the argument are pretty much the same as in discussions about the technical analysis in general.
Neural networks can be used to predict the stock price, to a reasonable extent, they are valuab;e part of modern automated trading systems.

neural networks extrapolation
Neural Networks can work with the data they never seen before, and therefore, can be used for extrapolation. The problem appears when the data go outside the range for which the network was trained. There are tips, described in neural networks introduction to handle this problem.

neural networks stock prediction
The Cortex neural networks software that you can download from this site comes with the network trained to predict the price of a stock.
Usually, this kind of networks are working well only for limited time range, and have to re re-trained to handle new data.

neural networks download
Download the Cortex neural networks software from this site.

free neural networks software
The Cortex neural networks software is feature limited, however you can use even a free version to solve many practical tasks.

neural networks introduction
A free introduction to neural networks is available on this site. It explains the algorythm of the so called Feedforward Backpropagation networks, the most commonly used and probably the most powerfull.

tutorial on neural networks
On this site you will find both the tutorial on the neural nets and the user guide for the Cortex program, the easy to use and powerfull neural networks software.

neural networks book
Check out our list of recommended books of Neural Networks and related subjects of data mining.

neural network course
The Introduction to Neural Networks, available from this site, is a good (and free) start, if you want to learn the algorythms of Feedforward Backpropagation neural networks.

Feedforward
The word Feedforward stands for the first stage of the Neural Network learning process, when the system is presented with the input data.

Backpropagation
The word Backpropagation stands for the second stage of the Neural Network learning process, when the system is adjusted, to make its output closer to what it should be.

network neural type
There are few types of Neural Networks and many variations of the types. On this site you will find the information and software on Feedforward Backpropagation Neural Networks.

neural network free software
Download and try the Cortex program, the easy to use and powerfull neural networks software.

invest network neural
The neural networks are used in the investment analysis, particularly in the stock prediction. The Neural Networks tutorial, available from this site, has an example of such a network.


fuzzy network neural
Fuzzy logic deals with the rules taht are flexible or not constant. That is exactly how the Neural Network works, by recognizing "fuzzy", noisy or incomplete data.

stock market neural network
The Cortex neural networks software works with stock data as with any other data. The Trader stock trading simulator can use these neural networks to generate trading signals.

feed forward network neural
The Feedforward stage of Neural Network algorythm takes the input data and presents it to the first layer of the neurons. The output of the first layer is presented to the second layer, and so on.

trend data mining
Knowing the current trend provides us with some ability to predict the future price change. It is possible to use Neural Networks for this task. Alternatively, check out the Trader stock trading simulator.

basics data mining
Using some kind of tools to extract data, satisfying to some criteria, from the large amount of raw data.

stock data mining
Using the Neural Networks you can detect tendencies in a stock price, even if they are small or hidden. It requires some work on the side of data preparation.

data knowledge mining
The Neural Networks can be used to filter the data, in order to extract the relevant data.

advantage data mining
See the list of recommended books

neural network book
See the list of recommended books for a list of the most relevant books on Neural Networks and related totics.

neural network tool box
The Cortex neural networks software provides you with the easy to use interface, allowing to create, teach and use the Neural Networks with your data.

neural network financial
The algorythm can be used in any area, where the data can be presented in a tabular form.

data mining article
See the list of recommended books

data mining neural network
As the computer systems become faster, the value of the NN as the data mining tool will only increase.

future neural network
The ability ot the Neural Networks to predict the future is limeted, as one can expect, to the common sence. For example, if the way the market is treating the stock changes, the old network may become useless, and a new one will have to be trained, using new data.

data mining case study
See the list of recommended books for the data mining tutorials and case studies.

algorithm backpropagation
During the Backpropagation stage of the neural network training, the output layer of neurons is adjusted, to make the output closer to what it need to be. Then the layer before is adjusted, based on the adjusted last layer and so on.

application data mining
The Cortex neural networks software can be used to create the neural networks, that can become part of the custom data mining tools.

data mining example
See the list of recommended books for the data mining tutorials and examples.

neural network artificial intelligence
Neural Networks are considered important step in our understanding of the way human brain works.

data mining papers
As large amounts of data are usually processed during the data mining, the neural networks applications may become the bottle neck. The hardware is available to make it fast, as a mater of fact, hardware based NN are fast enough for almost any task.

network neural programming
The software that you find on this site allows seamless neural network programming, it includes both creating neural networks and teaching them using the feedforward backpropagation algorythm.

stock neural network
One of the most demanded areas of the neural networks prediction is predicting stock prices, as this task is one of the most difficult to formalize, and neural networks do not require the formal task description.

fuzzy network neural
To some extent, neural networks DO implement fuzzy logic, as they can produce results, that are close to correct ones, based on samples, that are close to familiar ones.

boosting data mining
Data mining can be boosted, in some cases, by applying neural network algorythms. It may involve predicting optimal ways to a place, where the information is located, rather than brutal search, however, this approach shouls be used with caution, as with neural networks, there is always a risk of finding a local minimum solution, instead of a global one.

neural network free software
On this site, you will find a feature-limited free trial version of the software.

stock market neural network
Stock market predictions are not as easy, as people usually think. One of the most important reasons for this to be true is the way data are organized. Generally, we need to know exactly what we use as an input and what we are expecting as an output, rather than feeding the network the raw data, hoping to get meaningfull results.

invest network neural
Before investing your time in the solution, based on neural networks, do a homework to figure out, what the exact nature of a task is. The nn can do anything, but WHAT to do - this is a human's decision.

data decision mining tree
As in any decision making process, there may be a way to speed up the data decision tree crawling, by applying the neural network algorythms.

bots data mining
As for the data mining bots, the use of neural networks is limited, if any. There is, of course, always a chance of adopting a new technology in a new way.

data mining benefit
The main benefit of data mining approach is in reducing the dimension of a task, making it more manageable, and less complex. Often, most important moving forces are hidden behind the scene, and neural networks are very good in finding them.

data mining resume
What is he data mining? Looking up for the relevant information in a large multidimentional data continuum, with little, if any, advance knowlege of the dependencies the data have.

neural network financial
Financial area is one where neural computations are used heavily. There are many areas where they provide signifficant help, and some areas, where they are the only solution.

neural network book
There are many books on the general neural networks theory available at Amazon, as well as few articles on this site, both general-purpose basic introductions, and specialized ones.

data mining article
There are many data mining articles and books, available in the Internet.

data mining neural network
The importance of neural networks in data mining is in their ability to find non-evident dependencies, thereby reducing dimension and increasing the quality of an answer.

data mining storage
As data mining storage, the object databases of hypercubes are often used.

data mining job
Neural networks can be used as a part of a data mining software. Their job in this tast may differ from identifiying binary or stored in tables data patterns, to suggesting the most promicing approach to a search.

data data mining mining
As a data mining algorythm per se, neural computations are just a tool. Using it depends on the person, specifying the mining algorythms.

data mining case study
To get a better idea of possible scenarios of data mining usage, we suggest performing the search in the Internet.

data mining warehouse
Data mining warehouses often use their own software, optimized, depending of the task it performs. For example, in face recognition, neural networks can be used, as a low level algorythm, while the generic database is used to store and maintain records.

algorithm backpropagation
Backpropagation algorythm is one of the most promicing. It uses the data pattern (so called supervised learning) to compute the signal (during the feedforward part of the learning), and then uses the error, to adjust the weights of the neurons (during the backpropagation part).

data mining concept
The overall concept of the data mining is based on the assumption, that the multi dimensional data continuum can be cross-cut by the (again - multi dimensional) surface, and that the intersection will contain a result we are after.

neural stock
As a demonstration of the complexity of the stock trading using neural networks, we provided, on this site, a simple article, that is attempting to do a small case study, examining the pitfalls of the task, as they arrive.

application data mining
"Cortex", the neural networks package, may, to some extent, be considered as a data mining tool.

data mining definition
Data mining requires the search (mining) algorythm to be provided, without such definition, it will not be usefull. Here, you will find a small article about stock price prediction. We start with a simple (and incorrect) task, and arrive to a more or less correct one.

data mining example
In that example (see the previous paragraph), it is interesting to mention, that in order to solve the problem, we had to re-state it. Indeed, we do not care about the stock price, we need trading signals instead!

neural network artificial intelligence
Some most promicing solutions in the area of artifficial intelligence use neural networks. This is not surprising, as the very idea of neural networks is copied from the structure of brain.

data mining papers, data mining sas
Data mining information is available online, both as whitepapers, articles and reviews.

fuzzy neural system
Neural networks do implement some kind of the fuzzy logic, though it is not the fuzzy logic as it is formally defined.

classification data mining
Classification is another area, where neural networks shine. It is possible to write both supervised classification software, for example, using feedforward backpropagation algorythms, and not-superwised automatic classification, where the network will break the data into the cetegories.

neural network for pattern recognition
Pattern recognition is one of the most important areas of neural networks application. The pattern may be provided as a text or binary (sound, image) sequence, and similarity between it and previously seen patterns used for classification.

data mining tutorial
This site is not intended as the data mining tutorial, except for a small subset, related to neural networks. You can find all the necessary information in the Internet.

neural network tutorial
On this site, you will find few tutorials, covering different aspects of the neural computations. First, these are introductions, and second, in-depth stock and FOREX trading.

data mining training
The most important - and the most confusing - part of the data mining using neural networks, is not in thaining itself, but in defining the algorythms, inputs and outputs, as well as finding the inner logic in data.

introduction to neural network
The articles on this site may be used as a good basic introduction to neural network computations.

data mining multimedia
When data mining is performed on a database, using the criteria that are not part of the index, neural networks can be used to do a recognition task. It is particularly true with analog, multimedia records.

introduction data mining
For an introductory data mining information, the best source is probably the Amazon book collection.

data mining on the web
To perform data mining on the web, we can use so called bots. Collected information can then be treated as any database, and data mining applies, as always. Also, the neural networks may be used to figure out ways of accelerating the web crawling.

neural network computer
To perform neural network computation faster, high degree of parallelism is required, ideally, every neuron should have its own thread. To implement it, special hardware exists, called neuristors.

data mining internet
The Internet is a very promicing media for data mining. As the mater of fact, the very nature of the Internet, created by people, and therefore, structured according to some intelligent logic, allows us to look for hidden important dependencies in it. For example, Google uses this approach to find "true meaning" of words and even phrases.

data mining conference
There are many, happening online and offline.

data mining course
There are many, happening online and offline.

neural network hardware
As was mentioned above, some very fast chips are available for neural computations.

matlab neural network
Matlab is one of the general purpose applications, that inclused neural networks block.

data mining data warehouse
Data warehouse software (used for data mining against large data arrays) is available off-the-shelf (do an online research).

business intelligence data mining
The term "business intelligence" is not strict enough. The data mininng can be performed to improve business, and yes, neural networks can be part of it.