第一部分 机器学习概论 2
第1章 机器学习概述 2
1.1引言 2
1.2机器学习基础 3
1.2.1数据 3
1.2.2模型 3
1.2.3训练 4
1.3学习机 5
1.4机器学习分类 6
1.5自主学习方法 7
1.5.1回归 8
1.5.2神经网络 10
1.5.3支持向量机 11
1.5.4决策树 11
1.5.5专家系统 12
参考文献 13
第2章 自主学习的历史 14
2.1引言 14
2.2人工智能 14
2.3学习控制 17
2.4机器学习 18
2.5未来 19
参考文献 19
第3章 机器学习软件 20
3.1自主学习软件 20
3.2商业化MATLAB软件 21
3.2.1 MathWorks公司产品 21
3.2.2普林斯顿卫星系统产品 22
3.3 MATLAB开源资源 23
3.3.1深度学习工具箱 23
3.3.2深度神经网络 23
3.3.3 MatConvNet 23
3.4机器学习工具 23
3.4.1 R语言 23
3.4.2 scikit-learn 24
3.4.3 LIBSVM 24
3.5优化工具 24
3.5.1 LOQO 24
3.5.2 SNOPT 25
3.5.3 GLPK 25
3.5.4 CVX 25
3.5.5 SeDuMi 25
3.5.6 YALMIP 26
参考文献 26
第二部分 机器学习的MATLAB实现 28
第4章 用于机器学习的MATLAB数据类型 28
4.1 MATLAB数据类型概述 28
4.1.1矩阵 28
4.1.2元胞数组 29
4.1.3数据结构 30
4.1.4数值类型 31
4.1.5图像 31
4.1.6数据存储 33
4.1.7 Tall数组 34
4.1.8稀疏矩阵 35
4.1.9表与分类数组 35
4.1.10大型MAT文件 36
4.2使用参数初始化数据结构 37
4.2.1问题 37
4.2.2方法 37
4.2.3步骤 37
4.3在图像数据存储上执行mapreduce 39
4.3.1问题 39
4.3.2方法 39
4.3.3步骤 39
总结 41
第5章MATLAB图形 42
5.1二维线图 42
5.1.1问题 42
5.1.2方法 42
5.1.3步骤 43
5.2二维图形 47
5.2.1问题 47
5.2.2方法 47
5.2.3步骤 47
5.3定制二维图 51
5.3.1问题 51
5.3.2方法 51
5.3.3步骤 51
5.4三维盒子 57
5.4.1问题 57
5.4.2方法 57
5.4.3步骤 57
5.5用纹理绘制三维对象 59
5.5.1问题 59
5.5.2方法 59
5.5.3步骤 59
5.6三维图形 61
5.6.1问题 61
5.6.2方法 61
5.6.3步骤 61
5.7构建图形用户界面 62
5.7.1问题 62
5.7.2方法 62
5.7.3步骤 63
总结 72
第6章MATLAB机器学习示例 73
6.1引言 73
6.2机器学习 73
6.2.1神经网络 73
6.2.2面部识别 74
6.2.3数据分类 74
6.3控制 74
6.3.1卡尔曼滤波器 74
6.3.2自适应控制 75
6.4人工智能 76
第7章 基于深度学习的面部识别 77
7.1在线获取数据:用于训练神经网络 80
7.1.1问题 80
7.1.2方法 80
7.1.3步骤 80
7.2生成神经网络的训练数据 80
7.2.1问题 80
7.2.2方法 80
7.2.3步骤 81
7.3卷积 85
7.3.1问题 85
7.3.2方法 85
7.3.3步骤 85
7.4卷积层 87
7.4.1问题 87
7.4.2方法 87
7.4.3步骤 87
7.5池化 89
7.5.1问题 89
7.5.2方法 90
7.5.3步骤 90
7.6全连接层 91
7.6.1问题 91
7.6.2方法 91
7.6.3步骤 91
7.7确定输出概率 93
7.7.1问题 93
7.7.2方法 93
7.7.3步骤 93
7.8测试神经网络 95
7.8.1问题 95
7.8.2方法 95
7.8.3步骤 95
7.9识别图像 97
7.9.1问题 97
7.9.2方法 97
7.9.3步骤 97
总结 98
参考文献 98
第8章 数据分类 99
8.1生成分类测试数据 99
8.1.1问题 99
8.1.2方法 99
8.1.3步骤 99
8.2绘制决策树 102
8.2.1问题 102
8.2.2方法 102
8.2.3步骤 102
8.3决策树的算法实现 106
8.3.1问题 106
8.3.2方法 106
8.3.3步骤 106
8.4生成决策树 109
8.4.1问题 109
8.4.2方法 109
8.4.3步骤 109
8.5手工创建决策树 114
8.5.1问题 114
8.5.2方法 114
8.5.3步骤 114
8.6训练和测试决策树 118
8.6.1问题 118
8.6.2方法 118
8.6.3步骤 119
总结 124
参考文献 124
第9章 基于神经网络的数字分类 125
9.1生成带噪声的测试图像 125
9.1.1问题 125
9.1.2方法 125
9.1.3步骤 126
9.2创建神经网络工具箱 128
9.2.1问题 128
9.2.2方法 129
9.2.3步骤 129
9.3训练单一输出节点的神经网络 138
9.3.1问题 138
9.3.2方法 139
9.3.3步骤 139
9.4测试神经网络 143
9.4.1问题 143
9.4.2方法 143
9.4.3步骤 143
9.5训练多输出节点的神经网络 144
9.5.1问题 144
9.5.2方法 144
9.5.3步骤 144
总结 147
参考文献 148
第10章 卡尔曼滤波器 149
10.1状态估计器 150
10.1.1问题 150
10.1.2方法 155
10.1.3步骤 156
10.1.4传统卡尔曼滤波器 159
10.2使用UKF进行状态估计 169
10.2.1问题 169
10.2.2方法 169
10.2.3步骤 169
10.3使用UKF进行参数估计 176
10.3.1问题 176
10.3.2方法 176
10.3.3步骤 176
总结 183
参考文献 183
第11章 自适应控制 184
11.1自调谐:求振荡器频率 185
11.1.1问题 186
11.1.2方法 186
11.1.3步骤 186
11.2模型参考自适应控制 192
11.2.1创建方波输入 192
11.2.2实现模型参考自适应控制 194
11.2.3转子的MRAC系统实现 197
11.3飞机的纵向控制 199
11.3.1编写飞机纵向运动的微分方程 200
11.3.2利用数值方法寻找平衡状态 206
11.3.3飞机的数值仿真 207
11.3.4神经网络中对取值范围的限定和缩放 209
11.3.5寻找学习控制的神经网络 210
11.3.6枚举输入集合 213
11.3.7编写通用神经网络函数 216
11.3.8实现PID控制 219
11.3.9飞机俯仰角PID控制演示 224
11.3.10创建俯仰动力学的神经网络 228
11.3.11非线性仿真中的控制器演示 230
11.4轮船驾驶:实现轮船驾驶控制的增益调度 232
11.4.1问题 232
11.4.2方法 233
11.4.3步骤 233
总结 238
参考文献 238
第12章 自动驾驶 239
12.1汽车雷达建模 239
12.1.1问题 239
12.1.2步骤 239
12.1.3方法 240
12.2汽车的自主传递控制 244
12.2.1问题 244
12.2.2方法 244
12.2.3步骤 244
12.3汽车动力学 246
12.3.1问题 246
12.3.2步骤 246
12.3.3方法 248
12.4汽车仿真与卡尔曼滤波器 250
12.4.1问题 250
12.4.2方法 250
12.4.3步骤 250
12.5雷达数据的MHT实现 257
12.5.1问题 257
12.5.2方法 257
12.5.3步骤 260
12.5.4假设形成 268
12.5.5轨道剪枝 276
总结 287
参考文献 288