Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Artificial Neural Networks Technology, Resumos de Computação Quântica

Artificial Neural Networks Technology

Tipologia: Resumos

2019

Compartilhado em 12/08/2019

jorge-costa-55
jorge-costa-55 🇧🇷

1 documento

1 / 87

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
ARTIFICIAL NEURAL
NETWORKS TECHNOLOGY
A DACS State-of-the-Art Report
Contract Number F30602-89-C-0082
(Data & Analysis Center for Software)
ELIN: A011
August 20 1992
Prepared for:
Rome Laboratory
RL/C3C
Griffiss AFB, NY 13441-5700
Prepared by:
Dave Anderson and George McNeill
Kaman Sciences Corporation
258 Genesse Street
Utica, New York 13502-4627
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d
pf3e
pf3f
pf40
pf41
pf42
pf43
pf44
pf45
pf46
pf47
pf48
pf49
pf4a
pf4b
pf4c
pf4d
pf4e
pf4f
pf50
pf51
pf52
pf53
pf54
pf55
pf56
pf57

Pré-visualização parcial do texto

Baixe Artificial Neural Networks Technology e outras Resumos em PDF para Computação Quântica, somente na Docsity!

ARTIFICIAL NEURAL

NETWORKS TECHNOLOGY

A DACS State-of-the-Art Report

Contract Number F30602-89-C- (Data & Analysis Center for Software)

ELIN: A

August 20 1992

Prepared for:

Rome Laboratory RL/C3C Griffiss AFB, NY 13441-

Prepared by:

Dave Anderson and George McNeill

Kaman Sciences Corporation 258 Genesse Street Utica, New York 13502-

i

i i i

  • 1.0 Introduction and Purpose TABLE OF CONTENTS
  • 2.0 What are Artificial Neural Networks?
    • 2.1 Analogy to the Brain
    • 2.2 Artificial Neurons and How They Work
    • 2.3 Electronic Implementation of Artificial Neurons..........................
    • 2.4 Artificial Network Operations
    • 2.5 Training an Artificial Neural Network
      • 2.5.1 Supervised Training..................................................................
      • 2.5.2 Unsupervised, or Adaptive Training....................................
      • and Expert Systems 2.6 How Neural Networks Differ from Traditional Computing
  • 3.0 History of Neural Networks.........................................................................
    • They Work........................................................................................................ 4.0 Detailed Description of Neural Network Components and How
    • 4.1 Major Components of an Artificial Neuron....................................
    • 4.2 Teaching an Artificial Neural Network............................................
      • 4.2.1 Supervised Learning.
      • 4.2.2 Unsupervised Learning............................................................
      • 4.2.3 Learning Rates.
      • 4.2.4 Learning Laws.............................................................................
  • 5.0 Network Selection
    • 5.1 Networks for Prediction
      • 5.1.1 Feedforward, Back-Propagation.
      • 5.1.2 Delta Bar Delta.
      • 5.1.3 Extended Delta Bar Delta.
      • 5.1.4 Directed Random Search..........................................................
      • Network 5.1.5 Higher-order Neural Network or Functional-link
      • 5.1.6 Self-Organizing Map into Back-Propagation........................
    • 5.2 Networks for Classification..................................................................
      • 5.2.1 Learning Vector Quantization.
      • 5.2.2 Counter-propagation Network.
      • 5.2.3 Probabilistic Neural Network..................................................
    • 5.3 Networks for Data Association
      • 5.3.1 Hopfield Network......................................................................
      • 5.3.2 Boltzmann Machine..................................................................
      • 5.3.3 Hamming Network...................................................................
      • 5.3.4 Bi-directional Associative Memory.
      • 5.3.5 Spatio-Temporal Pattern Recognition (Avalanche)...........
    • 5.4 Networks for Data Conceptualization...............................................
      • 5.4.1 Adaptive Resonance Network................................................
      • 5.4.2 Self-Organizing Map..................................................................
    • 5.5 Networks for Data Filtering................................................................. i i
      • 5.5.1 Recirculation...............................................................................
  • 6.0 How Artificial Neural Networks Are Being Used...................................
    • 6.1 Language Processing..............................................................................
    • 6.2 Character Recognition...........................................................................
    • 6.3 Image (data) Compression....................................................................
    • 6.4 Pattern Recognition...............................................................................
    • 6.5 Signal Processing....................................................................................
    • 6.6 Financial...................................................................................................
    • 6.7 Servo Control..........................................................................................
      • Candidate 6.8 How to Determine if an Application is a Neural Network
  • 7.0 New Technologies that are Emerging
    • 7.1 What Currently Exists...........................................................................
      • 7.1.1 Development Systems.
      • 7.1.2 Hardware Accelerators..............................................................
      • 7.1.3 Dedicated Neural Processors....................................................
    • 7.2 What the Next Developments Will Be.............................................
  • 8.0 Summary
  • 9.0 References.........................................................................................................
  • Figure 2.2.1 A Simple Neuron. List of Figures
  • Figure 2.2.2 A Basic Artificial Neuron..................................................................
  • Figure 2.2.3 A Model of a "Processing Element"................................................
  • Figure 2.2.4 Sigmoid Transfer Function...............................................................
  • Figure 2.4.1 A Simple Neural Network Diagram.
  • Figure 2.4.2 Simple Network with Feedback and Competition......................
  • Figure 4.0.1 Processing Element.............................................................................
  • Figure 4.1.1 Sample Transfer Functions...............................................................
  • Figure 5.0.1 An Example Feedforward Back-propagation Network...............
  • Figure 5.2.1 An Example Learning Vector Quantization Network................
  • Figure 5.2.2 An Example Counter-propagation Network.
  • Figure 5.2.3 A Probabilistic Neural Network Example.
  • Figure 5.3.1 A Hopfield Network Example..........................................................
  • Figure 5.3.2 A Hamming Network Example.......................................................
  • Figure 5.3.4 Bi-directional Associative Memory Example.
  • Figure 5.3.5. A Spatio-temporal Pattern Network Example..............................
  • Figure 5.4.2 An Example Self-organizing Map Network..................................
  • Figure 5.5.1 An Example Recirculation Network.
  • Table 2.6.1 Comparison of Computing Approaches........................................ List of Tables
  • Table 2.6.2 Comparisons of Expert Systems and Neural Networks.
  • Table 5.0.1 Network Selector Table......................................................................

1.0 Introduction and Purpose

This report is intended to help the reader understand what Artificial Neural Networks are, how to use them, and where they are currently being used.

Artificial Neural Networks are being touted as the wave of the future in computing. They are indeed self learning mechanisms which don't require the traditional skills of a programmer. But unfortunately, misconceptions have arisen. Writers have hyped that these neuron-inspired processors can do almost anything. These exaggerations have created disappointments for some potential users who have tried, and failed, to solve their problems with neural networks. These application builders have often come to the conclusion that neural nets are complicated and confusing. Unfortunately, that confusion has come from the industry itself. A n avalanche of articles have appeared touting a large assortment of different neural networks, all with unique claims and specific examples. Currently, only a few of these neuron-based structures, paradigms actually, are being used commercially. One particular structure, the feedforward, back- propagation network, is by far and away the most popular. Most of the other neural network structures represent models for "thinking" that are still being evolved in the laboratories. Yet, all of these networks are simply tools and as such the only real demand they make is that they require the network architect to learn how to use them.

This report is intended to help that process by explaining these structures, right down to the rules on how to tweak the "nuts and bolts." Also this report discusses what types of applications are currently utilizing the different structures and how some structures lend themselves to specific solutions.

In reading this report, a reader who wants a general understanding of neural networks should read sections 2, 3, 6, 7 and 8. These sections provide an understanding of neural networks (section 2), their history (section 3), how they are currently being applied (section 6), the tools to apply them plus the probable future of neural processing (section 7), and a summary of what it all means (section 8). A more serious reader is invited to delve into the inner working of neural networks (section 4) and the various ways neural networks can be structured (section 5).

The individual neurons are complicated. They have a myriad of parts, sub-systems, and control mechanisms. They convey information via a host of electrochemical pathways. There are over one hundred different classes of neurons, depending on the classification method used. Together these neurons and their connections form a process which is not binary, not stable, and not synchronous. In short, it is nothing like the currently available electronic computers, or even artificial neural networks.

These artificial neural networks try to replicate only the most basic elements of this complicated, versatile, and powerful organism. They do it i n a primitive way. But for the software engineer who is trying to solve problems, neural computing was never about replicating human brains. It is about machines and a new way to solve problems.

2.2 Artificial Neurons and How They Work

The fundamental processing element of a neural network is a neuron. This building block of human awareness encompasses a few general capabilities. Basically, a biological neuron receives inputs from other sources, combines them in some way, performs a generally nonlinear operation o n the result, and then outputs the final result. Figure 2.2.1 shows the relationship of these four parts.

4 Parts of a Typical Nerve Cell

Dendrites: Accept inputs

Soma: Process the inputs

Axon: Turn the processed inputs into outputs

Synapses: The electrochemical contact between neurons

Figure 2.2.1 A Simple Neuron.

Within humans there are many variations on this basic type of neuron, further complicating man's attempts at electrically replicating the process of thinking. Yet, all natural neurons have the same four basic components. These components are known by their biological names - dendrites, soma, axon, and synapses. Dendrites are hair-like extensions of the soma which act like input channels. These input channels receive their input through the synapses of other neurons. The soma then processes these incoming signals over time. The soma then turns that processed value into an output which is sent out to other neurons through the axon and the synapses.

Recent experimental data has provided further evidence that biological neurons are structurally more complex than the simplistic explanation above. They are significantly more complex than the existing artificial neurons that are built into today's artificial neural networks. As biology provides a better understanding of neurons, and as technology advances, network designers can continue to improve their systems by building upon man's understanding of the biological brain.

But currently, the goal of artificial neural networks is not the grandiose recreation of the brain. On the contrary, neural network researchers are seeking an understanding of nature's capabilities for which people can engineer solutions to problems that have not been solved by traditional computing.

To do this, the basic unit of neural networks, the artificial neurons, simulate the four basic functions of natural neurons. Figure 2.2.2 shows a fundamental representation of an artificial neuron.

x (^0)

w (^0)

w (^2)

x (^) n wn

I = ∑

w i

x (^) j Summation Y = f(I) Transfer

Output Path

Processing Element

Sum Transfer

x (^) n (^) Inputs Weights

w (^) n

x (^2)

x (^1)

w (^1)

Figure 2.2.2 A Basic Artificial Neuron.

Inputs

SummationFunction TransferFunction

Learning andRecall Schedule

*wo

*w

*wn

Sum Max Min Average Or And etc.

Hyperbolic Tangent Linear Sigmoid Sine etc.

Outputs

Learning Cycle Figure 2.2.3 A Model of a "Processing Element".

In Figure 2.2.3, inputs enter into the processing element from the upper left. The first step is for each of these inputs to be multiplied by their respective weighting factor (w(n)). Then these modified inputs are fed into the summing function, which usually just sums these products. Yet, many different types of operations can be selected. These operations could produce a number of different values which are then propagated forward; values such as the average, the largest, the smallest, the ORed values, the ANDed values, etc. Furthermore, most commercial development products allow software engineers to create their own summing functions via routines coded in a higher level language (C is commonly supported). Sometimes the summing function is further complicated by the addition of an activation function which enables the summing function to operate in a time sensitive way.

Either way, the output of the summing function is then sent into a transfer function. This function then turns this number into a real output via some algorithm. It is this algorithm that takes the input and turns it into a zero or a one, a minus one or a one, or some other number. The transfer functions that are commonly supported are sigmoid, sine, hyperbolic tangent, etc. This transfer function also can scale the output or control its value via thresholds. The result of the transfer function is usually the direct output of the processing element. An example of how a transfer function works is shown in Figure 2.2.4.

This sigmoid transfer function takes the value from the summation function, called sum in the Figure 2.2.4, and turns it into a value between zero and one.

Figure 2.2.4 Sigmoid Transfer Function.

Finally, the processing element is ready to output the result of its transfer function. This output is then input into other processing elements, or to an outside connection, as dictated by the structure of the network.

All artificial neural networks are constructed from this basic building block - the processing element or the artificial neuron. It is variety and the fundamental differences in these building blocks which partially cause the implementing of neural networks to be an "art."

2.4 Artificial Network Operations

The other part of the "art" of using neural networks revolve around the myriad of ways these individual neurons can be clustered together. This clustering occurs in the human mind in such a way that information can be processed in a dynamic, interactive, and self-organizing way. Biologically, neural networks are constructed in a three-dimensional world from microscopic components. These neurons seem capable of nearly unrestricted interconnections. That is not true of any proposed, or existing, man-made network. Integrated circuits, using current technology, are two-dimensional devices with a limited number of layers for interconnection. This physical reality restrains the types, and scope, of artificial neural networks that can be implemented in silicon.

Currently, neural networks are the simple clustering of the primitive artificial neurons. This clustering occurs by creating layers which are then connected to one another. How these layers connect is the other part of the "art" of engineering networks to resolve real world problems.

neurons in various interconnected structures. The inputs and outputs of each of these hidden neurons simply go to other neurons.

In most networks each neuron in a hidden layer receives the signals from all of the neurons in a layer above it, typically an input layer. After a neuron performs its function it passes its output to all of the neurons in the layer below it, providing a feedforward path to the output. (Note: in section 5 the drawings are reversed, inputs come into the bottom and outputs come out the top.)

These lines of communication from one neuron to another are important aspects of neural networks. They are the glue to the system. They are the connections which provide a variable strength to an input. There are two types of these connections. One causes the summing mechanism of the next neuron to add while the other causes it to subtract. In more human terms one excites while the other inhibits.

Some networks want a neuron to inhibit the other neurons in the same layer. This is called lateral inhibition. The most common use of this is in the output layer. For example in text recognition if the probability of a character being a "P" is .85 and the probability of the character being an "F" is .65, the network wants to choose the highest probability and inhibit all the others. It can do that with lateral inhibition. This concept is also called competition.

Another type of connection is feedback. This is where the output of one layer routes back to a previous layer. An example of this is shown i n Figure 2.4.2.

Inputs

Feedback

Outputs

Competition (or inhibition)

Feedback

Figure 2.4. Simple Network with Feedback and Competition.

The way that the neurons are connected to each other has a significant impact on the operation of the network. In the larger, more professional software development packages the user is allowed to add, delete, and control these connections at will. By "tweaking" parameters these connections can be made to either excite or inhibit.

2.5 Training an Artificial Neural Network

Once a network has been structured for a particular application, that network is ready to be trained. To start this process the initial weights are chosen randomly. Then, the training, or learning, begins.

There are two approaches to training - supervised and unsupervised. Supervised training involves a mechanism of providing the network with the desired output either by manually "grading" the network's performance or by providing the desired outputs with the inputs. Unsupervised training is where the network has to make sense of the inputs without outside help.

The vast bulk of networks utilize supervised training. Unsupervised training is used to perform some initial characterization on inputs. However, in the full blown sense of being truly self learning, it is still just a shining promise that is not fully understood, does not completely work, and thus is relegated to the lab.

2.5.1 Supervised Training.

In supervised training, both the inputs and the outputs are provided. The network then processes the inputs and compares its resulting outputs against the desired outputs. Errors are then propagated back through the system, causing the system to adjust the weights which control the network. This process occurs over and over as the weights are continually tweaked. The set of data which enables the training is called the "training set." During the training of a network the same set of data is processed many times as the connection weights are ever refined.

The current commercial network development packages provide tools to monitor how well an artificial neural network is converging on the ability to predict the right answer. These tools allow the training process to go on for days, stopping only when the system reaches some statistically desired point, or accuracy. However, some networks never learn. This could be because the input data does not contain the specific information from which the desired output is derived. Networks also don't converge if there is not enough data to enable complete learning. Ideally, there should be enough data so that part of the data can be held back as a test. Many layered networks with multiple nodes are capable of memorizing data. To monitor the network to determine if the system is simply memorizing its data in some nonsignificant way,

Yet, at the present time, the vast bulk of neural network work is in systems with supervised learning. Supervised learning is achieving results.

One of the leading researchers into unsupervised learning is Tuevo Kohonen, an electrical engineer at the Helsinki University of Technology. He has developed a self-organizing network, sometimes called an auto- associator, that learns without the benefit of knowing the right answer. It is an unusual looking network in that it contains one single layer with many connections. The weights for those connections have to be initialized and the inputs have to be normalized. The neurons are set up to compete in a winner-take-all fashion.

Kohonen continues his research into networks that are structured differently than standard, feedforward, back-propagation approaches. Kohonen's work deals with the grouping of neurons into fields. Neurons within a field are "topologically ordered." Topology is a branch of mathematics that studies how to map from one space to another without changing the geometric configuration. The three-dimensional groupings often found in mammalian brains are an example of topological ordering.

Kohonen has pointed out that the lack of topology in neural network models make today's neural networks just simple abstractions of the real neural networks within the brain. As this research continues, more powerful self learning networks may become possible. But currently, this field remains one that is still in the laboratory.

2.6 How Neural Networks Differ from Traditional Computing and Expert Systems

Neural networks offer a different way to analyze data, and to recognize patterns within that data, than traditional computing methods. However, they are not a solution for all computing problems. Traditional computing methods work well for problems that can be well characterized. Balancing checkbooks, keeping ledgers, and keeping tabs of inventory are well defined and do not require the special characteristics of neural networks. Table 2.6. identifies the basic differences between the two computing approaches.

Traditional computers are ideal for many applications. They can process data, track inventories, network results, and protect equipment. These applications do not need the special characteristics of neural networks.

Expert systems are an extension of traditional computing and are sometimes called the fifth generation of computing. (First generation computing used switches and wires. The second generation occurred because of the development of the transistor. The third generation involved solid- state technology, the use of integrated circuits, and higher level languages like

COBOL, Fortran, and "C". End user tools, "code generators," are known as the fourth generation.) The fifth generation involves artificial intelligence.

CHARACTERISTICS TRADITIONAL

COMPUTING

(including Expert Systems)

ARTIFICIAL NEURAL

NETWORKS

Processing style Sequential Parallel Functions Logically (left brained) via Rules Concepts Calculations

Gestault (right brained) via Images Pictures Controls Learning Method by rules (didactically) by example (Socratically) Applications Accounting, word processing, math, inventory, digital communications

Sensor processing, speech recognition, pattern recognition, text recognition

Table 2.6.1 Comparison of Computing Approaches.

Typically, an expert system consists of two parts, an inference engine and a knowledge base. The inference engine is generic. It handles the user interface, external files, program access, and scheduling. The knowledge base contains the information that is specific to a particular problem. This knowledge base allows an expert to define the rules which govern a process. This expert does not have to understand traditional programming. That person simply has to understand both what he wants a computer to do and how the mechanism of the expert system shell works. It is this shell, part of the inference engine, that actually tells the computer how to implement the expert's desires. This implementation occurs by the expert system generating the computer's programming itself, it does that through "programming" of its own. This programming is needed to establish the rules for a particular application. This method of establishing rules is also complex and does require a detail oriented person.

Efforts to make expert systems general have run into a number of problems. As the complexity of the system increases, the system simply demands too much computing resources and becomes too slow. Expert systems have been found to be feasible only when narrowly confined.

Artificial neural networks offer a completely different approach to problem solving and they are sometimes called the sixth generation of computing. They try to provide a tool that both programs itself and learns o n its own. Neural networks are structured to provide the capability to solve

are not complete solutions. They offer a capability that is not ironclad, such as a debugged accounting system. They learn, and as such, they do continue to make "mistakes." Furthermore, even when a network has been developed, there is no way to ensure that the network is the optimal network.

Neural systems do exact their own demands. They do require their implementor to meet a number of conditions. These conditions include:

  • a data set which includes the information which can characterize the problem.
  • an adequately sized data set to both train and test the network.
  • an understanding of the basic nature of the problem to be solved so that basic first-cut decision on creating the network can be made. These decisions include the activization and transfer functions, and the learning methods.
  • an understanding of the development tools.
  • adequate processing power (some applications demand real-time processing that exceeds what is available in the standard, sequential processing hardware. The development of hardware is the key to the future of neural networks).

Once these conditions are met, neural networks offer the opportunity of solving problems in an arena where traditional processors lack both the processing power and a step-by-step methodology. A number of very complicated problems cannot be solved in the traditional computing environments. For example, speech is something that all people can easily parse and understand. A person can understand a southern drawl, a Bronx accent, and the slurred words of a baby. Without the massively paralleled processing power of a neural network, this process is virtually impossible for a computer. Image recognition is another task that a human can easily do but which stymies even the biggest of computers. A person can recognize a plane as it turns, flies overhead, and disappears into a dot. A traditional computer might try to compare the changing images to a number of very different stored patterns.

This new way of computing requires skills beyond traditional computing. It is a natural evolution. Initially, computing was only hardware and engineers made it work. Then, there were software specialists - programmers, systems engineers, data base specialists, and designers. Now, there are also neural architects. This new professional needs to be skilled different than his predecessors of the past. For instance, he will need to know statistics in order to choose and evaluate training and testing situations. This

skill of making neural networks work is one that will stress the logical thinking of current software engineers.

In summary, neural networks offer a unique way to solve some problems while making their own demands. The biggest demand is that the process is not simply logic. It involves an empirical skill, an intuitive feel as to how a network might be created.