首页>参考读物>计算机科学与技术>计算机辅助设计与工程计算

MATLAB与机器学习
作者 : [美]迈克尔·帕拉斯泽克(Michael Paluszek)斯蒂芬妮·托马斯(Stephanie Thomas)著
译者 : 李三平 陈建平 译
出版日期 : 2018-01-24
ISBN : 978-7-111-58984-6
定价 : 79.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 302
开本 : 16
原书名 : MATLAB Machine Learning
原出版社: Apress
属性分类: 店面
包含CD : 无CD
绝版 : 未绝版
图书简介

本书是一本机器学习结合MATLAB应用实例的综合指南,适用于从业工程师和大学学生。本书从人工智能、自动控制简介开始,逐步展开机器学习在工程的应用,其中阐述了机器学习的主要概念、算法和应用实例。本书通过MATLAB机器学习软件工具介绍了如何利用机器学习方法解决一些工程应用中的实际问题。本书针对一些重要应用案例,给读者提供了完整的MATLAB机器学习解决方案,并包括所有应用实例的全部源代码,例如:人脸识别、汽车自动驾驶和数据分类。

图书前言

机器学习正在众多学科中变得愈加重要,它应用于工程领域中的自动驾驶汽车技术和金融领域中的股市预测,而医疗专业人员则使用它来辅助诊断。虽然许多优秀的机器学习软件包可以通过商业购买和开源软件渠道获得,但深入理解其中隐藏的算法原理仍然是很有价值的。进而,自己动手编程来实现算法则会更加受益匪浅,因为这样不仅能够深入了解商业和开源软件包中的算法实现方法,还能掌握足够的背景知识来编写定制化的机器学习软件以实现特定的应用需求。
MATLAB的起源正是基于这样的目的。最初,科学家们使用FORTRAN语言编写数值软件来进行矩阵运算。当时,用户必须通过“编写-编译-链接-执行”的过程来使用计算机程序,整个过程非常耗时,且极易出错。MATLAB则为用户提供了一种脚本语言,用户只须编写很少的几行代码,立即执行,便可以解决许多问题。MATLAB的内置可视化工具可以进一步帮助用户更好地理解计算结果。编写MATLAB程序比编写FORTRAN程序更为高效和充满乐趣。
本书旨在帮助用户利用MATLAB解决一系列宽泛的学习问题。本书包含两部分:第一部分包括第1~3章,介绍机器学习的背景知识,其中包括学习控制,其内容通常与机器智能并不紧密相关,在书中我们采用“自主学习”一词涵盖所有这些学科。本书第二部分包括第4~12章,展示了完整的MATLAB机器学习应用示例。第4~6章针对性地介绍了MATLAB的相关功能,使得机器学习算法非常易于实现。其余章节则给出了应用示例。每一章都提供了特定主题的技术背景和如何实现学习算法的思路。每个示例都由一系列MATLAB函数支持的MATLAB脚本来实现。
本书适用于信息领域中对机器学习感兴趣的技术人员和开发者,也适用于其他技术领域中对如何利用机器学习和MATLAB来解决专业领域问题感兴趣的技术人员。

上架指导

计算机/人工智能/机器学习

封底文字

本书是关于在MATLAB中使用实例进行机器学习的综合指南。书中首先概述了人工智能与自动控制的历史,以及机器学习是如何从这些领域之中发展起来的。然后回顾了用于机器学习的商用软件包,并展示了它们如何适用于该领域。接着展示了如何使用MATLAB来解决机器学习问题,以及如何利用MATLAB图形技术来增强程序员对机器学习结果的理解,并帮助软件用户深入领会这些结论。
本书随后提供了机器学习中若干重要问题的MATLAB完整解决方案,包括人脸识别、自动驾驶和数据分类。书中所有的示例和应用程序都提供了完整的源代码。
机器学习包含大量的数学概念与理论。书中以清晰简洁的方式介绍了其中每个领域的数学知识,即使是并不经常接触数学理论的读者也可以轻松理解。工程领域的读者会看到这些数学知识与他们已经了解的领域技术之间的密切联系,并将学习到新的技术。

本书主要内容
•机器学习领域的知识概述
•MATLAB中的商业和开源软件包
•如何使用MATLAB进行编程和构建机器学习应用程序
•用于机器学习的MATLAB图形技术
•面向实际问题的MATLAB应用案例,主要用于大数据中的机器学习问题

译者序

机器学习(Machine Learning)正在又一次成为人工智能(Artificial Intelligence)发展热潮中的焦点技术,它包括处理诸如图片、视频、语音、文字等感知数据的深度神经网络(Deep Neural Networks, DNN)技术,属于人工智能项目中基础和难点技术的自动控制和自动驾驶(SelfDriving)等。这些领域正在不断取得令人激动的技术成就。
MATLAB是由美国MathWorks公司出品的商业数学软件,提供优秀的数值计算能力,并且利用工具箱(Toolbox)来增强对各种工业领域的适用性。本书则详细介绍了MATLAB对机器学习领域中关键技术的实现与应用,内容涵盖数据分类、面部识别、系统状态估计、自适应控制和自动驾驶等经典学习任务。书中对技术背景的解释清晰易懂,同时也给出了详尽的MATLAB实例代码。
中文市场上已有不少针对 MATLAB 数值计算和仿真的专著,但是专门针对在 MATLAB 中进行机器学习的专业书籍很少,本书刚好在这个方面填充了市场的空白。我们在和很多客户的沟通过程中,大家普遍反应对机器学习知其然,却不知其所以然;要把机器学习技术应用到具体工作中茫无头绪。这也是我们要翻译本书的主要动机,希望能够通过这本关于MATLAB与机器学习的专著,能够给有志于掌握机器学习原理的工程师和研究者提供一个扎实的台阶。
作者具有20多年MATLAB大型工业项目开发的实践经历和丰富的教学经验。书中全面涵盖了机器学习领域的关键技术内容,原理阐释简洁清晰。应用实例则以独特的“问题-方法-步骤”的形式呈现给读者,具有极强的针对性与实用性,非常便于读者以问题驱动的方式快速有效地展开学习。另外,本书从一个更加宽泛的角度(自主系统)入手,在介绍算法本身之外,也提供了对系统建模的原理性介绍,帮助读者从机器学习在工程领域的具体应用中受到启发。
倍感荣幸有机会成为本书的译者。事实上,翻译过程也是一次全新的学习过程,重新梳理知识框架,构建新的知识和技术的逻辑体系,加深对技术演进的理解。所以,我们向读者认真地推荐这本书,辅以代码编写、调试与运行实践,相信读者将会充分拓展、丰富自己的知识储备和技术领域,利用强大的MATLAB工具进入机器学习技术的快速演进中。
本书由北京DELLEMC中国研究院首席研究员李三平博士和MathWorks 中国资深专家陈建平翻译,并有陈建平负责技术审校。
本书的翻译过程得到了机械工业出版社朱捷先生的大力帮助与支持,在此谨致以诚挚的感激。
限于译者的知识储备与语言表述,译文中不免有语意不够简洁清晰之处和疏漏之处,诚惶诚恐,望读者予以批评指正。

李三平陈建平
2017年11月27日

推荐序

对于很多读者来说,对 MATLAB 的利用可能还停留在单纯的仿真甚至矩阵运算方面。经过 30 多年的发展,MATLAB积累了大量工业级的工具箱,广度上涵盖通用科学计算、通信与信号处理、控制系统、金融等各个领域。在深度上,采用基于模型的设计方法,MATLAB已经在算法开发、系统设计、自动代码生成以及从单元测试到系统验证的各个方面,具备了成熟的流程和完整的功能。
在过去30年中,MATLAB一直活跃在数据分析领域。大量的用户使用MATLAB进行数据分析,以获取数据的特征(Data Analysis),并对未知输入进行预测(Data Analytics)。机器学习正是目前使用最为广泛的算法手段之一。
机器学习是一个系统工程,一个完整的数据分析流程包括数据的获取、数据清洗和探索、数据分析以及结果发布。这也是 MATLAB 作为统一开发环境的价值。在数据获取方面,MATLAB 支持多种类型的数据输入,包括分布式文件系统、硬件设备、测试仪器、数据库等,足以应付大多数的机器学习场景。同时,不同领域的工具箱能够提供专业的数据预处理和可视化功能。随着技术的进步,数据的总量正在以指数的速度增长,MATLAB 支持并行计算和云计算,能大大提升算法的研发效率。最后,MATLAB 强大的嵌入式代码生成和发布能力,提供了算法结果的一键式发布能力,极大减少了后期算法移植的工作量。
繁荣的图书市场上,在 MATLAB 图书计划中注册的书籍已超过 1800 部,涉及 MATLAB 的方方面面。虽然在售的 MATLAB 图书远远超过这个数目,但本书仍是我们MATLAB图书计划里一百多部中文书籍中第一本关于机器学习的专著。本书由 MathWorks 中国技术专家陈建平和 EMC 研究院李三平博士翻译。
从自主系统的角度,本书对机器学习的原理进行了介绍。我们在接触大量 MATLAB 用户的过程中,发现领域专家想利用机器学习的手段对搜集的数据进行分析和预测,但不知如何快速开展工作。也有不少人通过网络了解到一些机器学习的算法描述,却苦于无法找到兼顾原理与工具的中文图书,在有效地选取最佳算法与进行分析和预测等实践方面存在困难。本书为这些读者提供了重要的指南,有助于他们快速开展工作,有效选取合适的算法,并进行分析和预测。
我相信本书在MATLAB与机器学习方面系统性的阐述能够对读者有所帮助。

周拥华
MathWorks 中国技术经理

图书目录

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

教学资源推荐
作者: (美)James R.Armstrong;F.Gail Gray
作者: [美]威廉姆·J.戴利(William J. Dally ) R.柯蒂斯·哈丁(R. Curtis Harting) 托·M.阿莫特(Tor M.Aamodt) 著
作者: Peter J.Ashenden
作者: Cleve B. Moler
参考读物推荐
作者: 张晓杰 刘立红
作者: 张俊华 王少妮
作者: 康博创作室编著