《MATLAB Machine Learning》
《MATLAB Machine Learning》MATLAB机器学习
作者:
Michael Paluszek
Stephanie Thomas
出版社:Apress
出版时间:2017年
目录
About the Authors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XV
About the Technical Reviewer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XVII
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XIX
Part I Introduction to Machine Learning 1
Chapter 1: An Overview of Machine Learning . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Elements of Machine Learning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2.1 Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2.2 Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2.3 Training . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2.3.1 Supervised Learning . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2.3.2 Unsupervised Learning . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2.3.3 Semisupervised Learning . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2.3.4 Online Learning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3 The Learning Machine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.4 Taxonomy of Machine Learning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.5 Autonomous Learning Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.5.1 Regression . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.5.2 Neural Nets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.5.3 Support Vector Machines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.5.4 Decision Trees . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.5.5 Expert System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Chapter 2: The History of Autonomous Learning . . . . . . . . . . . . . . . . . . . . . . . . 17
2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.2 Artificial Intelligence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.3 Learning Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.4 Machine Learning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.5 The Future . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Chapter 3: Software for Machine Learning . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.1 Autonomous Learning Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.2 Commercial MATLAB Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.2.1 MathWorks Products . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.2.1.1 Statistics and Machine Learning Toolbox . . . . . . . . . . . . . . . 26
3.2.1.2 Neural Network Toolbox . . . . . . . . . . . . . . . . . . . . . . . . 26
3.2.1.3 Computer Vision System Toolbox . . . . . . . . . . . . . . . . . . . 26
3.2.1.4 System Identification Toolbox . . . . . . . . . . . . . . . . . . . . . 27
3.2.2 Princeton Satellite Systems Products . . . . . . . . . . . . . . . . . . . . . . . . 27
3.2.2.1 Core Control Toolbox . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.2.2.2 Target Tracking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.3 MATLAB Open-Source Resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.3.1 Deep Learn Toolbox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.3.2 Deep Neural Network . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.3.3 MatConvNet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.4 Products for Machine Learning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.4.1 R . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.4.2 scikit-learn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.4.3 LIBSVM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.5 Products for Optimization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.5.1 LOQO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.5.2 SNOPT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.5.3 GLPK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.5.4 CVX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.5.5 SeDuMi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.5.6 YALMIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Part II MATLAB Recipes for Machine Learning 33
Chapter 4: Representation of Data for Machine Learning in MATLAB . . . . . . . . . . . 35
4.1 Introduction to MATLAB Data Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.1.1 Matrices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.1.2 Cell Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
4.1.3 Data Structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.1.4 Numerics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
4.1.5 Images . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
4.1.6 Datastore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.1.7 Tall Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
4.1.8 Sparse Matrices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
4.1.9 Tables and Categoricals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
4.1.10 Large MAT-Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
4.2 Initializing a Data Structure Using Parameters . . . . . . . . . . . . . . . . . . . . . . . 44
4.2.1 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
4.2.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
4.2.3 How It Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
4.3 Performing mapreduce on an Image Datastore . . . . . . . . . . . . . . . . . . . . . . 46
4.3.1 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
4.3.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
4.3.3 How It Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
4.4 Creating a Table from a File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Chapter 5: MATLAB Graphics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
5.1 Two-Dimensional Line Plots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
5.1.1 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
5.1.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
5.1.3 How It Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
5.2 General 2D Graphics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
5.2.1 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
5.2.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
5.2.3 How It Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
5.3 Custom 2D Diagrams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
5.3.1 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
5.3.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
5.3.3 How It Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
5.4 Three-Dimensional Box . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
5.4.1 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
5.4.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
5.4.3 How It Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
5.5 Draw a 3D Object with a Texture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
5.5.1 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
5.5.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
5.5.3 How It Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
5.6 General 3D Graphics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
5.6.1 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
5.6.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
5.6.3 How It Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
5.7 Building a Graphical User Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
5.7.1 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
5.7.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
5.7.3 How It Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
Chapter 6: Machine Learning Examples in MATLAB . . . . . . . . . . . . . . . . . . . . . 85
6.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
6.2 Machine Learning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
6.2.1 Neural Networks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
6.2.2 Face Recognition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
6.2.3 Data Classification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
6.3 Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
6.3.1 Kalman Filters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
6.3.2 Adaptive Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
6.4 Artificial Intelligence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
6.4.1 Autonomous Driving and Target Tracking . . . . . . . . . . . . . . . . . . . . . 88
Chapter 7: Face Recognition with Deep Learning . . . . . . . . . . . . . . . . . . . . . . . . 89
7.1 Obtain Data Online: For Training a Neural Network . . . . . . . . . . . . . . . . . . . . 92
7.1.1 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
7.1.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
7.1.3 How It Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
7.2 Generating Data for Training a Neural Net . . . . . . . . . . . . . . . . . . . . . . . . . 93
7.2.1 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
7.2.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
7.2.3 How It Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
7.3 Convolution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
7.3.1 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
7.3.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
7.3.3 How It Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
7.4 Convolution Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
7.4.1 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
7.4.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
7.4.3 How It Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
7.5 Pooling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
7.5.1 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
7.5.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
7.5.3 How It Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
7.6 Fully Connected Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
7.6.1 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
7.6.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
7.6.3 How It Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
7.7 Determining the Probability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
7.7.1 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
7.7.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
7.7.3 How It Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
7.8 Test the Neural Network . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
7.8.1 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
7.8.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
7.8.3 How It Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
7.9 Recognizing an Image . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
7.9.1 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
7.9.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
7.9.3 How It Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
Chapter 8: Data Classification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
8.1 Generate Classification Test Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
8.1.1 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
8.1.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
8.1.3 How It Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
8.2 Drawing Decision Trees . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
8.2.1 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
8.2.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
8.2.3 How It Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
8.3 Decision Tree Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
8.3.1 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
8.3.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
8.3.3 How It Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
8.4 Implementing a Decision Tree . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
8.4.1 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
8.4.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
8.4.3 How It Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
8.5 Creating a Hand-Made Decision Tree . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
8.5.1 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
8.5.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
8.5.3 How It Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
8.6 Training and Testing the Decision Tree . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
8.6.1 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
8.6.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
8.6.3 How It Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
Chapter 9: Classification of Numbers Using Neural Networks . . . . . . . . . . . . . . . . . 143
9.1 Generate Test Images with Defects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
9.1.1 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
9.1.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
9.1.3 How It Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
9.2 Create the Neural Net Tool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
9.2.1 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
9.2.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
9.2.3 How It Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
9.3 Train a Network with One Output Node . . . . . . . . . . . . . . . . . . . . . . . . . . 156
9.3.1 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
9.3.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
9.3.3 How It Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
9.4 Testing the Neural Network . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
9.4.1 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
9.4.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
9.4.3 How It Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
9.5 Train a Network with Multiple Output Nodes . . . . . . . . . . . . . . . . . . . . . . . . 162
9.5.1 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
9.5.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
9.5.3 How It Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
Chapter 10: Kalman Filters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
10.1 A State Estimator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
10.1.1 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
10.1.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
10.1.3 How It Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
10.1.4 Conventional Kalman Filter . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
10.2 Using the Unscented Kalman Filter for State
Estimation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
10.2.1 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
10.2.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
10.2.3 How It Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
10.3 Using the UKF for Parameter Estimation . . . . . . . . . . . . . . . . . . . . . . . . . . 197
10.3.1 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
10.3.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
10.3.3 How It Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
Chapter 11: Adaptive Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
11.1 Self-Tuning: Finding the Frequency of an Oscillator . . . . . . . . . . . . . . . . . . . . 208
11.1.1 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
11.1.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
11.1.3 How It Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
11.2 Model Reference Adaptive Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
11.2.1 Generating a Square Wave Input . . . . . . . . . . . . . . . . . . . . . . . . . . 217
11.2.1.1 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
11.2.1.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
11.2.1.3 How It Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
11.2.2 Implement Model Reference Adaptive Control . . . . . . . . . . . . . . . . . . 219
11.2.2.1 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
11.2.2.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
11.2.2.3 How It Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
11.2.3 Demonstrate MRAC for a Rotor . . . . . . . . . . . . . . . . . . . . . . . . . . 222
11.2.3.1 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
11.2.3.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
11.2.3.3 How It Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
11.3 Longitudinal Control of an Aircraft . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
11.3.1 Write the Differential Equations for the Longitudinal
Motion of an Aircraft . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
11.3.1.1 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
11.3.1.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
11.3.1.3 How It Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
11.3.2 Numerically Finding Equilibrium . . . . . . . . . . . . . . . . . . . . . . . . . 231
11.3.2.1 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
11.3.2.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
11.3.2.3 How It Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
11.3.3 Numerical Simulation of the Aircraft . . . . . . . . . . . . . . . . . . . . . . . 233
11.3.3.1 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
11.3.3.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
11.3.3.3 How It Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
11.3.4 Find a Limiting and Scaling function for a Neural Net . . . . . . . . . . . . . . 235
11.3.4.1 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
11.3.4.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
11.3.4.3 How It Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
11.3.5 Find a Neural Net for the Learning Control . . . . . . . . . . . . . . . . . . . . 236
11.3.5.1 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
11.3.5.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
11.3.5.3 How It Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
11.3.6 Enumerate All Sets of Inputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240
11.3.6.1 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240
11.3.6.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240
11.3.6.3 How It Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
11.3.7 Write a General Neural Net Function . . . . . . . . . . . . . . . . . . . . . . . 242
11.3.7.1 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242
11.3.7.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242
11.3.7.3 How It Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242
11.3.8 Implement PID Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
11.3.8.1 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
11.3.8.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
11.3.8.3 How It Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
11.3.9 Demonstrate PID control of Pitch for the Aircraft . . . . . . . . . . . . . . . . . 251
11.3.9.1 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
11.3.9.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
11.3.9.3 How It Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
11.3.10 Create the Neural Net for the Pitch Dynamics . . . . . . . . . . . . . . . . . . . 256
11.3.10.1 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256
11.3.10.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256
11.3.10.3 How It Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256
11.3.11 Demonstrate the Controller in a Nonlinear Simulation . . . . . . . . . . . . . . 259
11.3.11.1 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259
11.3.11.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259
11.3.11.3 How It Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259
11.4 Ship Steering: Implement Gain Scheduling for Steering Control of a Ship . . . . . . . . . 261
11.4.1 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261
11.4.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261
11.4.3 How It Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268
Chapter 12: Autonomous Driving . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269
12.1 Modeling the Automobile Radar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269
12.1.1 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269
12.1.2 How It Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269
12.1.3 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270
12.2 Automobile Autonomous Passing Control . . . . . . . . . . . . . . . . . . . . . . . . . 274
12.2.1 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274
12.2.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274
12.2.3 How It Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274
12.3 Automobile Dynamics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276
12.3.1 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276
12.3.2 How It Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276
12.3.3 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279
12.4 Automobile Simulation and the Kalman Filter . . . . . . . . . . . . . . . . . . . . . . . 281
12.4.1 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281
12.4.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281
12.4.3 How It Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281
12.5 Perform MHT on the Radar Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288
12.5.1 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288
12.5.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288
12.5.3 How It Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292
12.5.4 Hypothesis Formation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301
12.5.4.1 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301
12.5.4.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301
12.5.4.3 How It Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301
12.5.5 Track Pruning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308
12.5.5.1 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308
12.5.5.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308
12.5.5.3 How It Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308
12.5.5.4 Simulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323
专业书籍
下载地址:(回复后可见)
**** Hidden Message ***** 谢谢分享。 so wonderful
学习雷锋好榜样 謝謝分享,謝謝! thanks 谢谢楼主分享! 非常感谢 学习好资源 谢谢