书籍作者:[美] 迈克尔·帕拉斯泽克,斯蒂芬妮·托马斯 著,陈建平 译 | ISBN:9787111646778 |
书籍语言:简体中文 | 连载状态:全集 |
电子书格式:pdf,txt,epub,mobi,azw3 | 下载次数:9994 |
创建日期:2021-02-14 | 发布日期:2021-02-14 |
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板 |
本书是关于在MATLAB中使用实例进行机器学习的综合指南。书中概述了人工智能与自动控制的历史;回顾了用于机器学习的商用软件包,并展示了它们如何应用于该领域;接着展示了如何使用MATLAB来解决机器学习问题,以及如何利用MATLAB图形技术来增强程序员对机器学习结果的理解。
本书随书提供了机器学习中若干重要问题的MATLAB完整解决方案,包括飞行控制、人脸识别、自动驾驶。书中所有的示例和应用程序都提供了完整的源代码。
机器学习包含大量的数学概念与理论解释。书中以清晰简洁的方式介绍了其中每个领域的数学知识,即使是并不经常接触数学理论的读者也可以轻松理解。工程领域的读者会看到这些数学知识与他们已经了解的领域技术之间的密切联系,并将学习到新的技术。
本书主要内容:
l 如何使用MATLAB构建机器学习应用
l 适用于机器学习的MATLAB可视化技术
l 面向工程的机器学习应用案例
迈克尔·帕拉斯泽克
普林斯顿卫星系统公司(PSS)总裁,为美国宇航局和军方提供航空航天咨询服务和MATLAB航天器控制工具箱。他在航空航天领域具有20多年的工作经历,之前作为GE公司宇航部门专家曾参与多个美国航空航天项目。他拥有麻省理工学院电气工程学士学位、航空航天学硕士学位,曾发表了很多论文,拥有十多项美国专利。他是Apress出版社出版的《MATLAB与机器学习》的合著者。
斯蒂芬妮·托马斯
普林斯顿卫星系统公司副总裁。她拥有麻省理工学院航空航天学士学位和硕士学位。她一直从事航空航天项目分析和咨询工作,曾参与了普林斯顿卫星系统公司公司MATLAB航天器控制工具箱研发项目。她曾因“核聚动力冥王星轨道探测和登陆器”入选美国太空总署创新资助项目,被任命为美国太空总署NIAC研究员。她也是Apress出版的《MATLAB与机器学习》的合著者。
◆ 译者简介 ◆
陈建平
MathWorks公司中国区的技术咨询专家,专注于工程大数据分析和高性能计算领域,拥有北京大学学士和硕士学位。加入MathWorks后,专注于通信系统和工程数据分析;深入探索工程数据在大数据领域的应用。他拥有十余年数值算法设计、实现,以及对大规模工程数据分析和建模经验;尤其对MATLAB与不同编程语言,以及Hadoop和Spark等大数据架构的结合有较为深入的研究。
1、本书提供所有示例的源代码下载:https://ww2.mathworks.cn/academia/books/matlab-machine-learning-recipes-paluszek.html
,读者可在MATLAB中文社区论坛:http://www.ilovematlab.cn/forum-265-1.html 与译者互动交流;
2、由浅入深,不常接触数学理论的读者也可以轻松理解书中内容,书中分析了包括自动驾驶、飞机智能控制等工程应用问题并给出解决方案,该书的写作得到MathWorks公司官方图书计划的支持并收录其中;
3、在上一版的基础上,进一步增加了对神经网络和深度学习的原理介绍及其工程应用的实践;
4、帮你学习机器学习在工程方面的应用,在真实场景中,将算法应用于工程实践。
◆译者序◆
从几年前的“人工智能距离我们有多远”,到现在的言必称深度学习,人工智能在过去的几年间获得了突飞猛进的发展。大量先进的生产力工具层出不穷,TensorFlow、PyTorch、MXNet等各种深度学习框架让人目不暇接,人工智能看起来唾手可得。似乎只要掌握了框架的使用,我们就可以成为一个人工智能专家了。在概念上,机器学习替代了人工智能,深度学习替代了机器学习,深度学习好像成了人工智能的主流。在应用领域,大部分的成功案例都集中在机器视觉和自然语言处理上。当前流行的狭义的人工智能离实际工程渐行渐远。
实际上,人工智能距离工程应用就是一墙之隔。周志华在“西瓜书”中总结机器学习为“致力于研究如何通过计算的手段,利用经验来改善系统自身的性能”,从这个意义上来说,人工智能应该有更加广泛的意义和应用方向。我们希望能够从更加广泛的工程应用的角度来看待人工智能的应用和影响。人工智能首先应该是一种工程应用手段。
市场上已经有大量的书籍讨论如何掌握具体的机器学习框架,也有很多专门讨论机器学习和深度学习原理的书籍,它们大都探讨机器学习和深度学习本身,涉及如何将人工智能技术和工程应用相结合的书籍却如凤毛麟角。如何让人工智能成为现代工业的生产动力?我们之前和很多客户讨论机器学习和深度学习的时候,感兴趣者甚多,知道如何入手者甚少;知其然者多,不知其所以然者众。大家都认识到这是工业 4.0 的驱动力,却苦于不知如何跟传统工程问题结合到一起。这也是我想要翻译这本书的一个主要动机,希望对大家的工作有所帮助。
本书作者具有近20年MATLAB大型工程项目开发的实践经历和丰富的教学经验。书中全面涵盖了机器学习领域的关键技术内容,原理阐释简洁清晰,兼顾理论和实践。应用实例则以独特的“问题—方法—步骤”的形式呈现给读者,具有极强的针对性与实用性,非常便于读者以问题驱动的方式快速有效地展开学习。
本书的目的是利用MATLAB的强大功能来帮助用户从原理上学习机器学习,并用于解决具体工程问题,适用于每个对机器学习感兴趣的工程人员。
陈建平
2019年10月
◆ 前言◆
机器学习在每个工程学科中正变得越来越重要,比如:
1. 自动驾驶。机器学习几乎用于汽车控制系统的各个方面。
2. 等离子体物理学家借助机器学习的帮助来指导聚变反应堆的实验。实际上,TAE Systems在指导聚变实验方面取得了巨大成功。普林斯顿等离子体物理实验室已将其用于国家球形环实验,以研究核聚变发电厂的可能的候选技术。
3. 在金融领域,它应用于预测股票市场。
4. 医疗专业人员将机器学习用于医疗诊断。
5. 执法部门将其用于面部识别,并在面部识别的辅助下解决了若干犯罪行为的定罪问题!
6. 美国太空总署的深空1号航天器使用了专家系统。
7. 用自适应控制系统操纵油轮。
还有许许多多其他的例子证明了机器学习的广泛应用。
虽然可以很方便地从商业来源和开源库获得许多优秀的机器学习软件包,但是去了解一下这些算法的工作原理依然很有价值。有机会编写自己的算法是非常值得的,它可以让你有机会深入体会和了解商业与开源软件包背后的原理。
MATLAB的起源就是出于这个原因。当时,需要对矩阵进行操作的科学家使用FORTRAN来编写数值软件,要学会用计算机语言来完成编写—编译—链接—执行过程,耗时且容易出错。MATLAB向用户提供了一种脚本语言,允许用户通过几行即时执行的脚本来解决许多问题。MATLAB具有内置的可视化工具,可帮助用户更好地理解结果。显然编写MATLAB比编写FORTRAN更有效率和乐趣。
本书的目的是帮助所有用户利用MATLAB的强大功能来解决各种机器学习的问题,适用于每个对机器学习感兴趣的人。另外,本书还涵盖一些内容,可以让那些对其他技术领域感兴趣的人看到机器学习和MATLAB如何帮助他们解决专业领域的问题。
如何使用随书软件
随书软件附带一个MATLAB的工具箱,实现了本书涉及的所有例子。工具箱包含
1. MATLAB函数
2. MATLAB脚本
3. html帮助
MATLAB脚本实现了本书中的所有示例,而函数则封装了各种算法。许多函数都有内置的演示,只需在命令窗口中键入函数名称,它就会执行演示。该演示通常封装在子函数中。你可以为自己的演示复制此代码并将其粘贴到脚本中。例如,在命令窗口中键入函数名称PlotSet,将出现图1。
图1 基于函数PlotSet.m的作图示例
打开函数源代码,你可以看到内置的演示子函数:
你可以基于这些演示开始构建你自己的脚本。某些函数,比如用于数值积分的右侧函数(函数句柄作为参数),则不带演示子函数。如果键入函数名,会报错:
该工具箱根据本书的章节进行组织,文件夹名称是Chapter_01、Chapter_02等。此外,还有一个general文件夹,其中包含支持工具箱其余部分的基础函数。你还需要开源包GLPK(GNU Linear Programming Kit)来运行一些代码。Nicolo Giorgetti为GLPK编写了一个MATLAB MEX接口,该接口可在SourceForge上获得,并包含在此工具箱中。接口包括:
1. glpk.m
2. glpkcc.mexmaci64或glpkcc.mexw64等
3. GLPKTest.m
该软件包可从https://sourceforge.net/projects/glpkmex/获取。第二项是为机器编译的glpkcc.cpp的MEX文件,分别对应Mac或Windows操作系统下的文件。请到https://www.gnu.org/software/glpk/获取GLPK库并将其安装在你的系统上。如果需要,也可以下载GLPKMEX源代码,并自行基于你的操作系统进行编译。
作者简介 About the Authors
Michael Paluszek是普林斯顿卫星系统公司(PSS)总裁,该公司位于美国新泽西州Plainsboro。Paluszek先生于1992年创建了PSS公司,主要业务是提供航空航天咨询服务。他使用MATLAB开发了Indostar-1地球同步通信卫星的控制系统和仿真系统,并于1995年推出了普林斯顿卫星系统公司的第一个商业MATLAB工具箱:航天器控制工具箱。从那时起,他已经先后为飞行器、潜水艇、机器人和核聚变推进系统等开发了工具箱和软件包,并且形成了覆盖范围广泛的公司产品线。他目前正在与普林斯顿等离子体物理实验室合作开发一个用于发电和太空推进的紧凑型核聚变反应堆。
在成立普林斯顿卫星系统公司之前,Paluszek先生是位于新泽西州East Windsor的通用电气公司(GE)宇航部门的工程师。在通用电气公司,他设计了全球地球科学极地消旋平台控制系统,并主导设计了GPS IIR姿态控制系统、Inmarsat-3姿态控制系统和火星观测器delta-V控制系统,这些系统的控制设计都使用了MATLAB。Paluszek先生还致力于DMSP气象卫星姿态确定系统的研发。Paluszek先生参与了超过12颗通信卫星的发射任务,其中包括GSTAR III恢复任务,第一次使用电推进器将卫星转移到作业轨道。在Draper实验室工作期间,Paluszek先生负责航天飞机、空间站和海底导航等工作。他的空间站工作包括基于控制力矩陀螺仪系统的姿态控制设计。
Paluszek先生获得了麻省理工学院的电气工程学士学位、航空航天学硕士和工程学位。他发表了很多论文,拥有十多项美国专利。Paluszek先生是Apress出版社出版的图书MATLAB Recipes和MATLAB Machine Learning的合著者。
Stephanie Thomas是位于美国新泽西州Plainsboro的普林斯顿卫星系统公司的副总裁。她于1999年和2001年分别从麻省理工学院获得航空航天学士学位和硕士学位。Thomas女士于1996年在暑期实习期间加入普林斯顿卫星系统公司的MATLAB航天器控制工具箱开发项目,自那以后就一直使用MATLAB进行航空航天分析。在近20年的MATLAB实践经历中,她开发了许多软件工具:用于航天器控制工具箱的太阳能帆板模块,美国空军的近地轨道卫星操控工具箱,用于Prisma卫星任务的碰撞监测Simulink模块,用MATLAB和Java编写的运载火箭分析工具。她开发了空间状态评估的新方法,例如用MATLAB和C++两种语言实现的数值算法,用来评估任意两颗卫星之间的一般会合问题。Thomas女士还为普林斯顿卫星系统公司的《姿态和轨道控制》教材编写做出了贡献,其中介绍了使用航天器控制工具箱(SCT)的案例,并编写了许多软件用户指南。她为来自澳大利亚、加拿大、巴西和泰国等不同国家的工程师进行了航天器控制工具箱培训,并为美国太空总署、美国空军和欧洲航天局等提供MATLAB咨询服务。Thomas女士是Apress出版的图书MATLAB Recipes和MATLAB Machine Learning的合著者。2016年,Thomas女士因“核聚动力冥王星轨道探测和登陆器”项目,被任命为美国太空总署NIAC研究员。
序
译者序
前言
作者简介
第1章 机器学习概述
1.1 引言
1.2 机器学习基础
1.3 学习机
1.4 机器学习分类体系
1.5 控制
1.6 自主学习方法
1.7 人工智能
1.8 小结
第2章 用于机器学习的MATLAB数据类型
2.1 MATLAB数据类型概述
2.2 使用参数初始化数据结构
2.3 在图像datastore上执行mapreduce
2.4 从文件中创建表格
2.5 处理表格数据
2.6 使用MATLAB字符串
2.7 小结
第3章 MATLAB作图
3.1 二维线图
3.2 通用二维作图
3.3 定制二维图表
3.4 三维盒子
3.5 用纹理绘制三维对象
3.6 通用三维作图
3.7 构建图形用户界面
3.8 柱状图动画
3.9 画一个机器人
3.10 小结
第4章 卡尔曼滤波
4.1 用线性卡尔曼滤波器实现的状态估计器
4.2 使用扩展卡尔曼滤波器进行状态估计
4.3 使用无迹卡尔曼滤波器进行状态估计
4.4 使用无迹卡尔曼滤波器进行参数估计
4.5 小结
第5章 自适应控制
5.1 自调谐:振荡器建模
5.2 自调谐:调校振荡器
5.3 模型参考自适应控制的实现
5.4 创建方波输入
5.5 转子的MRAC演示
5.6 轮船驾驶:实现轮船驾驶控制的增益调度
5.7 航天器的指向
5.8 小结
第6章 模糊逻辑
6.1 构建模糊逻辑
6.2 模糊逻辑的实现
6.3 演示模糊逻辑
6.4 小结
第7章 用决策树进行数据分类
7.1 生成测试数据
7.2 绘制决策树
7.3 决策树的算法实现
7.4 创建决策树
7.5 手工创建决策树
7.6 训练和测试决策树
7.7 小结
第8章 神经网络入门
8.1 日光检测器
8.2 单摆建模
8.3 单神经元角度估计器
8.4 为单摆设计神经网络
8.5 小结
第9章 基于神经网络的数字分类
9.1 生成带噪声的测试图像
9.2 创建神经网络函数
9.3 训练单一输出节点的神经网络
9.4 测试神经网络
9.5 训练多输出节点的神经网络
9.6 小结
第10章 基于深度学习的模式识别
10.1 为训练神经网络在线获取数据
10.2 产生猫的训练图像集
10.3 矩阵卷积
10.4 卷积层
10.5 池化层
10.6 全连接层
10.7 确定输出概率
10.8 测试神经网络
10.9 识别数字
10.10 识别图像
10.11 小结
第11章 用于飞机控制的神经网络
11.1 纵向运动
11.2 利用数值方法寻找平衡状态
11.3 飞机的数值仿真
11.4 激活函数
11.5 学习控制的神经网络
11.6 枚举数据集
11.7 编写sigma-pi神经网络函数
11.8 实现PID控制器
11.9 飞机俯仰角PID控制
11.10 创建俯仰动力学的神经网络
11.11 非线性仿真中的控制器演示
11.12 小结
第12章 多重假设检验
12.1 概览
12.2 理论
12.3 追踪台球的卡尔曼滤波器
12.4 追踪台球的MHT
12.5 一维运动
12.6 轨道关联的一维运动
12.7 小结
第13章 基于多重假设检验的自动驾驶
13.1 汽车动力学
13.2 汽车雷达建模
13.3 汽车的自主车控制
13.4 汽车动画
13.5 汽车仿真与卡尔曼滤波器
13.6 汽车目标追踪
13.7 小结
第14章 基于案例的专家
14.1 构建专家
14.2 运行专家
14.3 小结
附录A 自主学习的历史
附录B 机器学习软件
参考文献
中英文术语对照表
MATLAB在科学工程领域仍然保持着独特的地位,这本书是用MATLAB开发机器学习的重要指南。
2020-04-01