本书是关于在MATLAB中使用实例进行机器学习的综合指南。书中概述了人工智能与自动控制的历史;回顾了用于机器学习的商用软件包,并展示了它们如何应用于该领域;接着展示了如何使用MATLAB来解决机器学习问题,以及如何利用MATLAB图形技术来增强程序员对机器学习结果的理解。
本书随书提供了机器学习中若干重要问题的MATLAB完整解决方案,包括飞行控制、人脸识别、自动驾驶。书中所有的示例和应用程序都提供了完整的源代码。
机器学习包含大量的数学概念与理论解释。书中以清晰简洁的方式介绍了其中每个领域的数学知识,即使是并不经常接触数学理论的读者也可以轻松理解。工程领域的读者会看到这些数学知识与他们已经了解的领域技术之间的密切联系,并将学习到新的技术。
随着机器学习和深度学习技术的迅猛发展,各种开发设计工具层出不穷。在众多可供选择的工具当中(包括像Python、TensorFlow这样的开源工具),MATLAB在科学工程领域一直保持着独特的地位,是科学工作者和产品设计师开发机器学习应用的首选的可靠工具。主要原因在于以下三个方面:
MATLAB已经在科学和工程数据分析方面得到广泛的应用,是科研和工程工作者做数据分析的得力助手。
MATLAB提供的工具箱涵盖众多应用领域,包括计算金融、图像处理和计算机视觉、计算生物学、无线通信、汽车、航空航天和制造、自然语言处理,等等。
MATLAB提供AI开发的完整流程,包括数据产生、数据采集、数据预处理、特征工程、AI算法开发、系统设计、系统部署,以及整合测试,可让行业专家快速掌握AI技术开发和产品设计的各个环节。
在MathWorks公司工作的16年中,我读过不少介绍MATLAB的图书,也浏览过很多关于机器学习方面的图书,但我感觉本书是为数不多的能真正把MATLAB的内在优势和机器学习的具体应用紧密结合,从解决问题的角度系统化地讲解相关知识的书籍之一。本书的内容完整地展现了MATLAB在机器学习中最重要的功能和最有效的使用方式。作者以科研工作者所习惯的“问题—方法—步骤”的思维方式来解释每一个应用实例,既容易理解又有实用性。
本书译者陈建平拥有20多年的MATLAB的实战经验,对MATLAB的核心技术和应用技巧了如指掌。在MathWorks公司工作的11年中,他为很多应用领域的客户遇到的技术问题提供过很多解决方案。最近几年他致力于大数据和机器学习的应用,积累了丰富的实战经验和案例。他的翻译为这本书注入了新的价值。
不论你是行业专家,还是数据分析师,抑或是刚入门的机器学习爱好者,MATLAB应该是你学习、研究和开发机器学习应用的必备工具,而本书应该是你用MATLAB开发机器学习的重要指南。
封面图
目录
- 推荐序
- 译者序
- 前言
- 作者简介
- 第1章机器学习概述1
- 1.1引言1
- 1.2机器学习基础2
- 1.3学习机4
- 1.4机器学习分类体系5
- 1.5控制7
- 1.6自主学习方法9
- 1.7人工智能14
- 1.8小结16
- 第2章用于机器学习的MATLAB数据类型17
- 2.1MATLAB数据类型概述17
- 2.2使用参数初始化数据结构27
- 2.3在图像datastore上执行mapreduce29
- 2.4从文件中创建表格31
- 2.5处理表格数据33
- 2.6使用MATLAB字符串36
- 2.7小结38
- 第3章MATLAB作图39
- 3.1二维线图39
- 3.2通用二维作图42
- 3.3定制二维图表44
- 3.4三维盒子45
- 3.5用纹理绘制三维对象47
- 3.6通用三维作图49
- 3.7构建图形用户界面51
- 3.8柱状图动画56
- 3.9画一个机器人59
- 3.10小结61
- 第4章卡尔曼滤波63
- 4.1用线性卡尔曼滤波器实现的状态估计器64
- 4.2使用扩展卡尔曼滤波器进行状态估计80
- 4.3使用无迹卡尔曼滤波器进行状态估计84
- 4.4使用无迹卡尔曼滤波器进行参数估计90
- 4.5小结93
- 第5章自适应控制95
- 5.1自调谐:振荡器建模96
- 5.2自调谐:调校振荡器97
- 5.3模型参考自适应控制的实现102
- 5.4创建方波输入106
- 5.5转子的MRAC演示系统107
- 5.6轮船驾驶:实现轮船驾驶控制的增益调度110
- 5.7航天器的指向114
- 5.8小结116
- 第6章模糊逻辑118
- 6.1构建模糊逻辑系统119
- 6.2模糊逻辑的实现122
- 6.3演示模糊逻辑125
- 6.4小结127
- 第7章用决策树进行数据分类129
- 7.1生成测试数据130
- 7.2绘制决策树133
- 7.3决策树的算法实现136
- 7.4创建决策树139
- 7.5手工创建决策树142
- 7.6训练和测试决策树145
- 7.7小结148
- 第8章神经网络入门149
- 8.1日光检测器149
- 8.2单摆建模150
- 8.3单神经元角度估计器155
- 8.4为单摆系统设计神经网络159
- 8.5小结163
- 第9章基于神经网络的数字分类164
- 9.1生成带噪声的测试图像165
- 9.2创建神经网络函数169
- 9.3训练单一输出节点的神经网络173
- 9.4测试神经网络178
- 9.5训练多输出节点的神经网络179
- 9.6小结182
- 第10章基于深度学习的模式识别183
- 10.1为训练神经网络在线获取数据185
- 10.2产生猫的训练图像集185
- 10.3矩阵卷积188
- 10.4卷积层190
- 10.5池化层192
- 10.6全连接层193
- 10.7确定输出概率195
- 10.8测试神经网络196
- 10.9识别数字198
- 10.10识别图像200
- 10.11小结202
- 第11章用于飞机控制的神经网络203
- 11.1纵向运动204
- 11.2利用数值方法寻找平衡状态210
- 11.3飞机的数值仿真211
- 11.4激活函数213
- 11.5学习控制的神经网络214
- 11.6枚举数据集218
- 11.7编写sigma-pi神经网络函数220
- 11.8实现PID控制器222
- 11.9飞机俯仰角PID控制226
- 11.10创建俯仰动力学的神经网络228
- 11.11非线性仿真中的控制器演示231
- 11.12小结232
- 第12章多重假设检验233
- 12.1概览233
- 12.2理论235
- 12.3追踪台球的卡尔曼滤波器240
- 12.4追踪台球的MHT246
- 12.5一维运动250
- 12.6轨道关联的一维运动252
- 12.7小结255
- 第13章基于多重假设检验的自动驾驶256
- 13.1汽车动力学257
- 13.2汽车雷达建模260
- 13.3汽车的自主超车控制262
- 13.4汽车动画264
- 13.5汽车仿真与卡尔曼滤波器266
- 13.6汽车目标追踪270
- 13.7小结273
- 第14章基于案例的专家系统275
- 14.1构建专家系统276
- 14.2运行专家系统277
- 14.3小结279
- 附录A自主学习的历史281
- 附录B机器学习软件288
- 参考文献298
- 中英文术语对照表300