المهندس سعد عيادة الحديثي Admin الحديثي صاحب الامتياز
عدد الرسائل : 874 البلد الذي تنتمي الية : العراق نقاط : 305339 تاريخ التسجيل : 17/08/2007
| موضوع: INTRDUCTION TO NEURAL SYSTEM APPLICATION الأحد مايو 25, 2008 12:32 am | |
| 2-1 INTRODUCTION
Neural systems employ some of the properties of biological neural networks, such as brains and nervous systems, for computational tasks such as prediction and regression. Artificial neural networks learn to compute a function using example inputs and outputs. Neural networks have been used for a variety of applications, including pattern recognition, classification[7], and image understanding .The general idea of neural computation is that many processing nodes, known as neurons, are connected to each other in a network. Data are fed into input unit neurons, and propagated through the network to output unit neurons, where the results of the computation can be read. A training algorithm strengthens or weakens the connections between neurons. Neural systems learn a general solution to a problem from specific examples. Generally, the more examples there are, the better the solution will be. Neural systems seem particularly well suited for microarchitectural prediction problems, since processors execute hundreds of millions of instructions each second, providing ample learning examples. An artificial neural network (ANN), often just called a "neural network" (NN), is a mathematical model or computational model based on biological neural networks. It consists of an interconnected group of artificial neurons and processes information using a connectionist approach to computation. In most cases an ANN is an adaptive system that changes its structure based on external or internal information that flows through the network during the learning phase. In more practical terms neural networks are non-linear statistical data modeling tools. They can be used to model complex relationships between inputs and outputs or to find patterns in data
2.2 Background There is no precise agreed-upon definition among researchers as to what a neural network is, but most would agree that it involves a network of simple processing elements (neurons), which can exhibit complex global behavior, determined by the connections between the processing elements and element parameters. The original inspiration for the technique was from examination of the central nervous system and the neurons (and their axons, dendrites and synapses) which constitute one of its most significant information processing elements (see Neuroscience). In a neural network model, simple nodes (called variously "neurons", "neurodes", "PEs" ("processing elements") or "units") are connected together to form a network of nodes — hence the term "neural network." While a neural network does not have to be adaptive per se, its practical use comes with algorithms designed to alter the strength (weights) of the connections in the network to produce a desired signal flow. These networks are also similar to the biological neural networks in the sense that functions are performed collectively and in parallel by the units, rather than there being a clear delineation of subtasks to which various units are assigned (see also connectionism). Currently, the term Artificial Neural Network (ANN) tends to refer mostly to neural network models employed in statistics, cognitive psychology and artificial intelligence. Neural network models designed with emulation of the central nervous system (CNS) in mind are a subject of theoretical neuroscience (computational neuroscience). In modern software implementations of artificial neural networks the approach inspired by biology has more or less been abandoned for a more practical approach based on statistics and signal processing. In some of these systems neural networks, or parts of neural networks (such as artificial neurons) are used as components in larger systems that combine both adaptive and non-adaptive elements. While the more general approach of such adaptive systems is more suitable for real-world problem solving, it has far less to do with the traditional artificial intelligence connectionist models. What they do, however, have in common is the principle of non-linear, distributed, parallel and local processing and adaptation. 2.3 A Simple Neural Net Before devising a neural net for recognizing digits, let’s look at a simple example in an effort to explain the basic ideas. What is commonly called a neural net is an interconnected set of processing elements (PE), each of which performs a very simple calculation. A single processing element, as seen in Figure 1, has some number of inputs, a weight value for each input, and an output value, which can be fanned out and used as inputs by other elements. Each of these values is numeric. The value associated with any node is called its activation, and is simply the sum of each input value multiplied by its respective weight value. The output of the PE may be simply the activation value, but is most often a function of the activation: the activation function, sometimes called the output function A processing element is a primitive model of a neuron. Like a real neuron, there are many input values which interact (are summed) to produce an output. The response of a neuron is to fire, or to send a pulse-like signal to its output. In a real neuron some of the inputs actually inhibit the firing; these would correspond to PE inputs having a negative weight value. Other neuronal inputs encourage the neuron to fire, which corresponds to a positive weight. Often a single input is not sufficient to cause firing, which is why a PE sums all of the weighted inputs. The activation function ensures that the PE output values fall into a predefined legal range. For example, the PE in Figure 4b accepts binary input values and generates a binary output value. Since there are two inputs, and both weights are 1, the four possible activations for this PE are:
Fig(2-1) Neural net basics. (a) A single processing element with three inputs. (b) A processing element configured to operate as an AND function with two inputs
Since the output is supposed to be binary, some thresholding must be performed, and this is done by the activation function. Suppose that this PE is to respond in the same way as a Boolean AND; in that case, the output should be 0 unless both inputs are 1, in which case the output should be 1. An activation function that performs in this manner is: Since the output is supposed to be binary, some thresholding must be performed, and this is done by the activation function. Suppose that this PE is to respond in the same way as a Boolean AND; in that case, the output should be 0 unless both inputs are 1, in which case the output should be 1. An activation function that performs in this manner is:
That is, if the activation is 1 or less the output is 0, otherwise it is 1. Processing elements are not used alone, but are connected as a graph, more commonly called a network. The output from a set of PEs can be used as inputs to another, or to many. There can be as many stages (layers) as is desired, and as many elements in each layer as needed.
2.2 Potential Applications to Microarchitecture Neural learning methods have the potential to enhance microarchitectural techniques, replacing the more primitive predictors currently used. Some possible applications are the following.
• —Branch Prediction. For dynamic branch prediction, the inputs to a neural learning method are the binary outcomes of recently executed branches, and the output is a prediction of whether a branch will be taken. Each time a branch is executed and the true outcome becomes known, the history that led to this outcome can be used to train the neural method online to produce a more accurate result in the future.
• —Value Prediction. Neural networks could be used to predict which of a set of values is likely to be the result of a load operation, enabling speculation on that value.
• —Indirect Branch Prediction. Indirect branches, such as virtual method calls in object-oriented programs, also need to be predicted. Neural networks could be used to help predict the targets of such indirect branches.
• —Next Trace Prediction. As a natural extension of the branch prediction capabilities of neural learning techniques, neural networks could be used to predict which of several possible traces should be fetched from a trace cache.
• —Cache Replacement Policy. Neural networks could be used to implement specialized cache replacement policies that reduce cache miss rates by adapting to the program’s access patterns.
It is not trivial to extend our work on branch prediction to these other microarchitectural problems. Neural learning works best when classifying an input as coming from one of a few classes. Predicting branch directions requires a single perceptron to classify a pattern as either taken or not taken. Predicting a value or a branch target would require more than one perceptron for each prediction, as well as an auxiliary table of choices, for example, previously observed targets or values.
| |
|