【实例简介】Practical MATLAB Deep Learning A Project-Based Approach by Michael Paluszek
【实例截图】










【核心代码】
Contents
About the Authors
XI
About the Technical Reviewer
XIII
Acknowledgements
XV
1 What Is Deep Learning?
1
1.1 Deep Learning
................................. 1
1.2 History of Deep Learning ............................ 2
1.3 Neural Nets ................................... 4
1.3.1 Daylight Detector ........................... 8
1.3.2 XOR Neural Net ........................... 9
1.4 Deep Learning and Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.5 Types of Deep Learning
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.5.1 Multilayer Neural Network . . . . . . . . . . . . . . . . . . . . . . 18
1.5.2 Convolutional Neural Networks (CNN) . . . . . . . . . . . . . . . 18
1.5.3 Recurrent Neural Network (RNN) . . . . . . . . . . . . . . . . . . 18
1.5.4 Long Short-Term Memory Networks (LSTMs) . . . . . . . . . . . 19
1.5.5 Recursive Neural Network . . . . . . . . . . . . . . . . . . . . . . 19
1.5.6 Temporal Convolutional Machines (TCMs) . . . . . . . . . . . . . 19
1.5.7 Stacked Autoencoders
. . . . . . . . . . . . . . . . . . . . . . . . 19
1.5.8 Extreme Learning Machine (ELM) . . . . . . . . . . . . . . . . . . 19
1.5.9 Recursive Deep Learning . . . . . . . . . . . . . . . . . . . . . . . 19
1.5.10 Generative Deep Learning . . . . . . . . . . . . . . . . . . . . . . 20
1.6 Applications of Deep Learning . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.7 Organization of the Book . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2 MATLAB Machine Learning Toolboxes
25
2.1 Commercial MATLAB Software
. . . . . . . . . . . . . . . . . . . . . . . 25
2.1.1 MathWorks Products . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.2 MATLAB Open Source
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.2.1 Deep Learn Toolbox . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.2.2 Deep Neural Network . . . . . . . . . . . . . . . . . . . . . . . . . 28
IIICONTENTS
2.2.3 MatConvNet
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.2.4 Pattern Recognition and Machine Learning Toolbox (PRMLT) . . . 28
2.3 XOR Example
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.4 Training . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
2.5 Zermelo’s Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3 Finding Circles with Deep Learning
43
3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
3.2 Structure
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
3.2.1 imageInputLayer . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
3.2.2 convolution2dLayer
. . . . . . . . . . . . . . . . . . . . . . . . . 44
3.2.3 batchNormalizationLayer . . . . . . . . . . . . . . . . . . . . . . . 46
3.2.4 reluLayer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
3.2.5 maxPooling2dLayer
. . . . . . . . . . . . . . . . . . . . . . . . . 47
3.2.6 fullyConnectedLayer . . . . . . . . . . . . . . . . . . . . . . . . . 48
3.2.7 softmaxLayer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
3.2.8 classificationLayer . . . . . . . . . . . . . . . . . . . . . . . . . . 49
3.2.9 Structuring the Layers
. . . . . . . . . . . . . . . . . . . . . . . . 50
3.3 Generating Data: Ellipses and Circles . . . . . . . . . . . . . . . . . . . . . 51
3.3.1 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
3.3.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
3.3.3 How It Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
3.4 Training and Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
3.4.1 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
3.4.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
3.4.3 How It Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
4 Classifying Movies
65
4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
4.2 Generating a Movie Database
. . . . . . . . . . . . . . . . . . . . . . . . . 65
4.2.1 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
4.2.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
4.2.3 How It Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
4.3 Generating a Movie Watcher Database . . . . . . . . . . . . . . . . . . . . . 68
4.3.1 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
4.3.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
4.3.3 How It Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
4.4 Training and Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
4.4.1 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
4.4.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
4.4.3 How It Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
IVCONTENTS
5 Algorithmic Deep Learning
77
5.1 Building a Detection Filter . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
5.1.1 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
5.1.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
5.1.3 How It Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
5.2 Simulating Fault Detection . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
5.2.1 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
5.2.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
5.2.3 How It Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
5.3 Testing and Training . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
5.3.1 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
5.3.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
5.3.3 How It Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
6 Tokamak Disruption Detection
91
6.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
6.2 Numerical Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
6.2.1 Dynamics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
6.2.2 Sensors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
6.2.3 Disturbances
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
6.2.4 Controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
6.3 Dynamical Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
6.3.1 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
6.3.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
6.3.3 How It Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
6.4 Simulate the Plasma
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
6.4.1 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
6.4.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
6.4.3 How It Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
6.5 Control the Plasma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
6.5.1 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
6.5.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
6.5.3 How It Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
6.6 Training and Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
6.6.1 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
6.6.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
6.6.3 How It Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
7 Classifying a Pirouette
115
7.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
7.1.1 Inertial Measurement Unit . . . . . . . . . . . . . . . . . . . . . . 117
7.1.2 Physics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
VCONTENTS
7.2 Data Acquisition
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
7.2.1 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
7.2.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
7.2.3 How It Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
7.3 Orientation
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
7.3.1 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
7.3.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
7.3.3 How It Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
7.4 Dancer Simulation
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
7.4.1 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
7.4.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
7.4.3 How It Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
7.5 Real-Time Plotting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
7.5.1 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
7.5.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
7.5.3 How It Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
7.6 Quaternion Display . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
7.6.1 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
7.6.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
7.6.3 How It Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
7.7 Data Acquisition GUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
7.7.1 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
7.7.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
7.7.3 How It Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
7.8 Making the IMU Belt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
7.8.1 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
7.8.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
7.8.3 How It Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
7.9 Testing the System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
7.9.1 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
7.9.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
7.9.3 How It Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
7.10 Classifying the Pirouette . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
7.10.1 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
7.10.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
7.10.3 How It Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
7.11 Hardware Sources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
8 Completing Sentences
155
8.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
8.1.1 Sentence Completion . . . . . . . . . . . . . . . . . . . . . . . . . 155
8.1.2 Grammar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
VICONTENTS
8.1.3 Sentence Completion by Pattern Recognition . . . . . . . . . . . . 157
8.1.4 Sentence Generation . . . . . . . . . . . . . . . . . . . . . . . . . 157
8.2 Generating a Database of Sentences . . . . . . . . . . . . . . . . . . . . . . 157
8.2.1 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
8.2.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
8.2.3 How It Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
8.3 Creating a Numeric Dictionary . . . . . . . . . . . . . . . . . . . . . . . . . 159
8.3.1 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
8.3.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
8.3.3 How It Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
8.4 Map Sentences to Numbers . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
8.4.1 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
8.4.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
8.4.3 How It Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
8.5 Converting the Sentences
. . . . . . . . . . . . . . . . . . . . . . . . . . . 161
8.5.1 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
8.5.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
8.5.3 How It Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
8.6 Training and Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
8.6.1 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
8.6.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
8.6.3 How It Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
9 Terrain-Based Navigation
169
9.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
9.2 Modeling Our Aircraft . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
9.2.1 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
9.2.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
9.2.3 How It Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
9.3 Generating a Terrain Model
. . . . . . . . . . . . . . . . . . . . . . . . . . 177
9.3.1 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
9.3.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
9.3.3 How It Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
9.4 Close Up Terrain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
9.4.1 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
9.4.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
9.4.3 How It Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
9.5 Building the Camera Model
. . . . . . . . . . . . . . . . . . . . . . . . . . 183
9.5.1 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
9.5.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
9.5.3 How It Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
9.6 Plot Trajectory over an Image
. . . . . . . . . . . . . . . . . . . . . . . . . 187
VIICONTENTS
9.6.1 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
9.6.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
9.6.3 How It Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
9.7 Creating the Test Images . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
9.7.1 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
9.7.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
9.7.3 How It Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
9.8 Training and Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
9.8.1 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
9.8.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
9.8.3 How It Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
9.9 Simulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
9.9.1 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
9.9.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
9.9.3 How It Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
10 Stock Prediction
203
10.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
10.2 Generating a Stock Market . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
10.2.1 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
10.2.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
10.2.3 How It Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
10.3 Create a Stock Market
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
10.3.1 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
10.3.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
10.3.3 How It Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
10.4 Training and Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
10.4.1 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
10.4.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
10.4.3 How It Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
11 Image Classification
219
11.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
11.2 Using a Pretrained Network
. . . . . . . . . . . . . . . . . . . . . . . . . . 219
11.2.1 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
11.2.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
11.2.3 How It Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
12 Orbit Determination
227
12.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
12.2 Generating the Orbits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
12.2.1 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
VIIICONTENTS
12.2.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
12.2.3 How It Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
12.3 Training and Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
12.3.1 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
12.3.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
12.3.3 How It Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
12.4 Implementing an LSTM
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
12.4.1 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
12.4.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
12.4.3 How It Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
12.5 Conic Sections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243
Bibliography
247
Index
249
网友评论
我要评论