Neural Network Toolbox
For Use with MATLAB
®Howard Demuth
Mark Beale
contents
Neural Networks
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xviiiBasic Chapters
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxMathematical Notation for Equations and Figures
. . . . . . . xxiBasic Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
xxiLanguage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
xxiWeight Matrices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
xxiLayer Notation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
xxiFigure and Equation Examples . . . . . . . . . . . . . . . . . . . . . . . .
xxiiMathematics and Code Equivalents
. . . . . . . . . . . . . . . . . . . xxiiiNeural Network Design Book
. . . . . . . . . . . . . . . . . . . . . . . . . xxivAcknowledgments
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxv1
Introduction
Getting Started
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-2Basic Chapters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1-2Help and Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1-2What’s New in Version 4.0
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-3Control System Applications . . . . . . . . . . . . . . . . . . . . . . . . . . .
1-3Graphical User Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1-3New Training Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1-3Design of General Linear Networks . . . . . . . . . . . . . . . . . . . . . .
1-4Improved Early Stopping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1-4iv
ContentsGeneralization and Speed Benchmarks . . . . . . . . . . . . . . . . . . .
1-4Demonstration of a Sample Training Session . . . . . . . . . . . . . .
1-4Neural Network Applications
. . . . . . . . . . . . . . . . . . . . . . . . . . 1-5Applications in this Toolbox . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1-5Business Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1-5Aerospace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1-5Automotive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1-5Banking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1-5Credit Card Activity Checking . . . . . . . . . . . . . . . . . . . . . . . . . .
1-5Defense . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1-6Electronics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1-6Entertainment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1-6Financial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1-6Industrial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1-6Insurance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1-6Manufacturing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1-6Medical . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1-7Oil and Gas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1-7Robotics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1-7Speech . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1-7Securities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1-7Telecommunications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1-7Transportation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1-7Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1-72
Neuron Model and Network Architectures
Neuron Model
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-2Simple Neuron . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2-2Transfer Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2-3Neuron with Vector Input . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2-5Network Architectures
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-8A Layer of Neurons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2-8Multiple Layers of Neurons . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2-11v
Data Structures
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-13Simulation With Concurrent Inputs in a Static Network . . . .
2-13Simulation With Sequential Inputs in a Dynamic Network . .
2-14Simulation With Concurrent Inputs in a Dynamic Network .
2-16Training Styles
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-18Incremental Training (of Adaptive and Other Networks) . . . .
2-18Batch Training . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2-20Summary
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-24Figures and Equations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2-253
Perceptrons
Introduction
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-2Important Perceptron Functions . . . . . . . . . . . . . . . . . . . . . . . . .
3-3Neuron Model
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-4Perceptron Architecture
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-6Creating a Perceptron (newp)
. . . . . . . . . . . . . . . . . . . . . . . . . . 3-7Simulation (sim) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3-8Initialization (init) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3-9Learning Rules
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-12Perceptron Learning Rule (learnp)
. . . . . . . . . . . . . . . . . . . . 3-13Training (train)
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-16Limitations and Cautions
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-21Outliers and the Normalized Perceptron Rule . . . . . . . . . . . . .
3-21vi
ContentsGraphical User Interface
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-23Introduction to the GUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3-23Create a Perceptron Network (nntool) . . . . . . . . . . . . . . . . . . .
3-23Train the Perceptron . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3-27Export Perceptron Results to Workspace . . . . . . . . . . . . . . . . .
3-29Clear Network/Data Window . . . . . . . . . . . . . . . . . . . . . . . . . .
3-30Importing from the Command Line . . . . . . . . . . . . . . . . . . . . .
3-30Save a Variable to a File and Load It Later . . . . . . . . . . . . . . .
3-31Summary
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-33Figures and Equations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3-33New Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3-364
Linear Filters
Introduction
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-2Neuron Model
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-3Network Architecture
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-4Creating a Linear Neuron (newlin) . . . . . . . . . . . . . . . . . . . . . . .
4-4Mean Square Error
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-8Linear System Design (newlind)
. . . . . . . . . . . . . . . . . . . . . . . . 4-9Linear Networks with Delays
. . . . . . . . . . . . . . . . . . . . . . . . . 4-10Tapped Delay Line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4-10Linear Filter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4-10LMS Algorithm (learnwh)
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-13Linear Classification (train)
. . . . . . . . . . . . . . . . . . . . . . . . . . 4-15vii
Limitations and Cautions
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-18Overdetermined Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4-18Underdetermined Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4-18Linearly Dependent Vectors . . . . . . . . . . . . . . . . . . . . . . . . . . .
4-18Too Large a Learning Rate . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4-19Summary
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-20Figures and Equations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4-21New Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4-255
Backpropagation
Overview
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-2Fundamentals
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-4Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5-4Simulation (sim) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5-8Training . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5-8Faster Training
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-14Variable Learning Rate (traingda, traingdx) . . . . . . . . . . . . . .
5-14Resilient Backpropagation (trainrp) . . . . . . . . . . . . . . . . . . . . .
5-16Conjugate Gradient Algorithms . . . . . . . . . . . . . . . . . . . . . . . .
5-17Line Search Routines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5-23Quasi-Newton Algorithms . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5-26Levenberg-Marquardt (trainlm) . . . . . . . . . . . . . . . . . . . . . . . .
5-28Reduced Memory Levenberg-Marquardt (trainlm) . . . . . . . . .
5-30Speed and Memory Comparison
. . . . . . . . . . . . . . . . . . . . . . . 5-32Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5-49Improving Generalization
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-51Regularization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5-52Early Stopping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5-55Summary and Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5-57viii
ContentsPreprocessing and Postprocessing
. . . . . . . . . . . . . . . . . . . . . 5-61Min and Max (premnmx, postmnmx, tramnmx) . . . . . . . . . . .
5-61Mean and Stand. Dev. (prestd, poststd, trastd) . . . . . . . . . . . .
5-62Principal Component Analysis (prepca, trapca) . . . . . . . . . . . .
5-63Post-Training Analysis (postreg) . . . . . . . . . . . . . . . . . . . . . . . .
5-64Sample Training Session
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-66Limitations and Cautions
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-71Summary
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-736
Control Systems
Introduction
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-2NN Predictive Control
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-4System Identification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6-4Predictive Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6-5Using the NN Predictive Controller Block . . . . . . . . . . . . . . . . .
6-6NARMA-L2 (Feedback Linearization) Control
. . . . . . . . . . 6-14Identification of the NARMA-L2 Model . . . . . . . . . . . . . . . . . .
6-14NARMA-L2 Controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6-16Using the NARMA-L2 Controller Block . . . . . . . . . . . . . . . . . .
6-18Model Reference Control
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-23Using the Model Reference Controller Block . . . . . . . . . . . . . .
6-25Importing and Exporting
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-31Importing and Exporting Networks . . . . . . . . . . . . . . . . . . . . .
6-31Importing and Exporting Training Data . . . . . . . . . . . . . . . . .
6-35Summary
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-38ix
7
Radial Basis Networks
Introduction
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-2Important Radial Basis Functions . . . . . . . . . . . . . . . . . . . . . . .
7-2Radial Basis Functions
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-3Neuron Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7-3Network Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7-4Exact Design (newrbe) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7-5More Efficient Design (newrb) . . . . . . . . . . . . . . . . . . . . . . . . . .
7-7Demonstrations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7-8Generalized Regression Networks
. . . . . . . . . . . . . . . . . . . . . . 7-9Network Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7-9Design (newgrnn) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7-10Probabilistic Neural Networks
. . . . . . . . . . . . . . . . . . . . . . . . 7-12Network Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7-12Design (newpnn) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7-13Summary
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-15Figures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7-16New Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7-188
Self-Organizing and
Learn. Vector Quant. Nets
Introduction
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-2Important Self-Organizing and LVQ Functions . . . . . . . . . . . . .
8-2Competitive Learning
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-3Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8-3Creating a Competitive Neural Network (newc) . . . . . . . . . . . .
8-4Kohonen Learning Rule (learnk) . . . . . . . . . . . . . . . . . . . . . . . . .
8-5Bias Learning Rule (learncon) . . . . . . . . . . . . . . . . . . . . . . . . . . .
8-5x
ContentsTraining . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8-6Graphical Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8-7Self-Organizing Maps
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-9Topologies (gridtop, hextop, randtop) . . . . . . . . . . . . . . . . . . . .
8-10Distance Funct. (dist, linkdist, mandist, boxdist) . . . . . . . . . .
8-14Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8-17Creating a Self Organizing MAP Neural Network (newsom) .
8-18Training (learnsom) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8-19Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8-23Learning Vector Quantization Networks
. . . . . . . . . . . . . . . 8-31Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8-31Creating an LVQ Network (newlvq) . . . . . . . . . . . . . . . . . . . . .
8-32LVQ1 Learning Rule(learnlv1) . . . . . . . . . . . . . . . . . . . . . . . . .
8-35Training . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8-36Supplemental LVQ2.1 Learning Rule (learnlv2) . . . . . . . . . . .
8-38Summary and Conclusions
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-40Self-Organizing Maps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8-40Learning Vector Quantizaton Networks . . . . . . . . . . . . . . . . . .
8-40Figures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8-41New Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8-429
Recurrent Networks
Introduction
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-2Important Recurrent Network Functions . . . . . . . . . . . . . . . . . .
9-2Elman Networks
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-3Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9-3Creating an Elman Network (newelm) . . . . . . . . . . . . . . . . . . . .
9-4Training an Elman Network . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9-5xi
Hopfield Network
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-8Fundamentals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9-8Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9-8Design (newhop) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9-10Summary
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-15Figures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9-16New Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9-1710
Adaptive Filters and
Adaptive Training
Introduction
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-2Important Adaptive Functions . . . . . . . . . . . . . . . . . . . . . . . . .
10-2Linear Neuron Model
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-3Adaptive Linear Network Architecture
. . . . . . . . . . . . . . . . 10-4Single ADALINE (newlin) . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10-4Mean Square Error
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-7LMS Algorithm (learnwh)
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-8Adaptive Filtering (adapt)
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-9Tapped Delay Line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10-9Adaptive Filter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10-9Adaptive Filter Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10-10Prediction Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10-13Noise Cancellation Example . . . . . . . . . . . . . . . . . . . . . . . . . .
10-14Multiple Neuron Adaptive Filters . . . . . . . . . . . . . . . . . . . . . .
10-16Summary
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-18Figures and Equations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10-18New Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10-26xii
Contents11
Applications
Introduction
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-2Application Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11-2Applin1: Linear Design
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-3Problem Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11-3Network Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11-4