
本书是“高级人工智能人才培养丛书”中的一本,首先介绍了机器学习的相关概念和发展历史,并在此基础上提出了深度学习——它本质上是近几年来大数据技术催生的产物。本书共12章,其中,第1~7章为机器学习的内容,分别介绍了机器学习的简单模型、贝叶斯学习、决策树、支持向量机、集成学习和聚类;第8~12章为深度学习的内容,由感知机与神经网络开始,之后分别介绍了卷积神经网络、循环神经网络、生成对抗网络及强化学习。第2~12章均提供了相应的实验案例,不仅配有完整翔实的Python语言代码及相关注释,也给出了实验结果和实验分析,便于初学者上机操作并加强理解。本书注重易学性、系统性和实战性。
总序 各行各业不断涌现人工智能应用,资本大量涌入人工智能领域,互联网企业争抢人工智能人才……人工智能正迎来发展“黄金期”。但放眼全球,人工智能人才,特别是高端人才,缺口依然较大。 为抢抓人工智能发展的重大战略机遇,构筑我国人工智能发展的先发优势,加快建设创新型国家和世界科技强国,2017年,国务院发布《新一代人工智能发展规划》,要求加快培养聚集人工智能高端人才,完善人工智能领域学科布局,设立人工智能专业,从而助力我国人工智能理论、技术与应用水平在2030年总体达到世界领先水平,使我国成为世界主要人工智能创新中心。2018年,教育部印发《高等学校人工智能创新行动计划》,要求“对照国家和区域产业需求布点人工智能相关专业”“加大人工智能领域人才培养力度”。 在国家政策支持及人工智能发展的大环境下,全国高校纷纷发力,设立人工智能专业,成立人工智能学院。根据教育部公布的数据,2019年,全国共有35所高校获得建设“人工智能”本科新专业的资格,同时全国新设96个“智能科学与技术”专业,累计187所院校获批“机器人工程”专业。2020年年初,经教育部批准,拥有“人工智能”本科专业的高校新增了180所,占全国新增专业的10.77%,排名第一。2021年,全国又有95所高校新增备案“人工智能”专业。人工智能已成为国家和高等院校重点关注、着力发展的重要领域。 然而,在人工智能人才培养和人工智能课程建设方面,大部分院校仍处于起步阶段,需要探索的问题还有很多。例如,人工智能作为新专业,尚未形成系统的人工智能人才培养课程体系及高水平的教学实验实习体系;同时,人工智能教材有待更新,以紧跟技术发展;再者,过多强调理论学习,以及实践应用的缺失,使人工智能人才培养面临新困境。 人工智能作为注重实践性的综合性学科,对相应人才培养提出了易学性、实战性和系统性的要求。“高级人工智能人才培养丛书”以此为出发点,尤其强调人工智能内容的易学性及对读者动手能力的培养,并配套丰富的课程资源,解决易学性、实战性和系统性方面的难题。 易学性:能看得懂、学得会的书才是好书,本丛书在内容、描述、讲解等方面始终从读者的角度出发,紧贴读者关心的热点问题及行业发展前沿,注重知识体系的完整性及内容的易学性,赋予人工智能名词与术语以生命力,让人工智能教育更简单易行。 实战性:与单纯的理论讲解不同,本丛书由国内一线师资和具备丰富人工智能实战经验的团队携手倾力完成,不仅内容贴近实际应用需求,具有高度的行业敏感性,同时几乎每章都配套了实战实验,使读者能够在理论学习的基础上,通过实验进一步巩固提高。云创大数据使用本丛书介绍的一些技术,已经在模糊人脸识别、超大规模人脸比对、模糊车牌识别、智能医疗、城市整体交通智能优化、空气污染智能预测等应用场景取得了突破性进展。特别是在2020年年初,笔者受邀率云创大数据的同事加入了钟南山院士的团队,我们使用大数据和人工智能技术对新冠肺炎疫情的发展趋势做出了不同于国际预测的准确预测,为国家的正确决策起到了支持作用,并发表了高水平论文。 系统性:本丛书配套免费教学PPT,无论是教师、学生,还是其他读者,都能通过教学PPT更为清晰、直观地了解或展示图书内容。与此同时,云创大数据研发了配套的人工智能实验平台,以及基于人工智能的专业教学平台,实验内容和教学内容与本丛书完全对应。 本丛书非常适合作为“人工智能”和“智能科学与技术”专业的系列教材,也适合作为“智能制造工程”“机器人工程”“智能建造”“智能医学工程”专业的选用教材。 在此,特别感谢我的硕士生导师谢希仁教授和博士生导师李三立院士。谢希仁教授所著的《计算机网络》已经更新到第8版,与时俱进且日臻完善,时时提醒学生要以这样的标准来写书。李三立院士为我国计算机事业做出了杰出贡献,曾任国家攀登计划项目首席科学家。他严谨治学,带出了一大批杰出的学生。 本丛书是集体智慧的结晶,在此谨向付出辛勤劳动的各位作者致敬!书中难免会有不当之处,请读者不吝赐教。联系邮箱:gloud@126.com。 前言 中国人工智能发展迅猛,中国政府也高度重视人工智能领域的发展,预计到2022年年底,中国人工智能产业规模将逼近2729亿元。2017年,在全球人工智能人才储备上,中国只占5%左右,人工智能的人才缺口超过500万人。目前这一现状得到了明显改善,但相比于欧美国家,我国仍然缺乏人工智能领域的中高端人才,其中高端人才数量只相当于美国的20%。 截至2022年,全国已有300余所高校开设人工智能专业或具备人工智能专业建设资格。尽管如此,高校总体上缺乏人工智能的基础教学能力,在独自培养具有动手能力的应用型人才方面仍然有待加强。 2020年,由清华大学人工智能研究院和中国工程院知识智能联合研究中心联合发布的《人工智能发展报告2020》指出,从过去10年间(2011—2020年)取得的成果(顶级会议、期刊所收录的论文和专利数据)来看,人工智能领域共有十大研究热点,分别为:深度神经网络、特征抽取、图像分类、目标检测、语义分割、表示学习、生成对抗网络、语义网络、协同过滤和机器翻译。未来的10年,人工智能技术将从感知智能逐渐朝着认知智能的方向发展,越来越广泛地渗透到社会各行业中,并推动社会进步。 2021年9月,人工智能产业发展创新论坛暨《2021年人工智能行业发展蓝皮书》发布会在上海举行。该蓝皮书指出,当前人工智能有四大发展新方向:①数据处理方向,即AI+芯片;②人工智能技术层头部企业开始向上、下游扩展业务;③医疗方向,即后疫情时代AI+医疗;④数字制造业方向,即AI+制造。 为了使国内读者系统地了解人工智能的前沿技术,中国信息协会教育分会人工智能教育专家委员会主任刘鹏教授顺势而为,缜密策划,在普通高等学校本科人工智能专业课程体系中,专门设立“机器学习与深度学习”课程,并邀请全国近百所高校、科研院所中从事一线教学和科研的教师、专家组建创作团队,编写“高级人工智能人才培养丛书”,本书是该丛书的一个分册。 本书围绕机器学习和深度学习,详细介绍了与之相关的方方面面,并根据不同的知识点,划分了12章:第1章分别介绍了机器学习和深度学习的概况;第2~7章围绕机器学习,分别介绍了机器学习的简单模型、贝叶斯学习、决策树、支持向量机、集成学习和聚类;第8~12章,围绕深度学习,分别介绍了感知机与神经网络、卷积神经网络、循环神经网络、生成对抗网络和强化学习。其中,第1、5章由陶玉婷编写,第2章由谢进编写,第3章由马程编写,第4、7章由王朝霞编写,第6、12章由陈昱莅编写,第8章由赵海峰、钱琨编写,第9章由张烁编写,第10章由李淑霞编写,第11章由马苗编写,施逸飞辅助内容修订与校稿。本书以理论和实践紧密结合为根本,在每章的理论学习之后,都有与之匹配的案例和实验,将理论和实践融为一体,让读者真正地将理论和实战合二为一,做到学以致用。同时,本书实验以Python语言实现,代码完整翔实,关键代码部分配有注释,可读性好,易于理解和上机操作。本书非常适合作为人工智能专业本科生的教材及人工智能相关科研工作者的工具书。 本书的编撰,从提纲目录的确定到内容的把控和斟酌,到最后的审阅与定稿,得到了刘鹏教授的悉心指导,他提出了许多宝贵的修改意见。同时,电子工业出版社的董亚峰和云创大数据的武郑浩也审阅了本书书稿,对本书给予了全面的指导和帮助,在此一并致谢。 在此,特别感谢中国信息协会教育分会人工智能教育专家委员会主任刘鹏教授,正是由于他洞察时代需求,把握时代脉搏,才有了《机器学习与深度学习》这本书的创作需求,才有了我们的创作团队,才有了这本《机器学习与深度学习》。 本书是集体智慧的结晶,在此谨向付出辛勤劳动的各位作者致敬!书中难免会有不当之处,请读者不吝赐教。联系邮箱:tao_yuting@jit.edu.cn。 陶玉婷 于南京市金陵科技学院 2022年8月28日
第1章 引言 1 1.1 人工智能概述 1 1.1.1 人工智能产生的基础条件 1 1.1.2 人工智能的发展史 2 1.1.3 人工智能的几个重要分支 3 1.1.4 人工智能与机器学习和深度学习的关系 4 1.2 机器学习概述 5 1.2.1 机器学习的定义 5 1.2.2 机器学习的主要方法 5 1.2.3 机器学习的应用及其相关课程介绍 11 1.3 深度学习概述 12 1.3.1 深度学习产生的背景 12 1.3.2 深度学习的几种常用模型 13 1.3.3 深度学习的应用场合 16 1.3.4 深度学习开源工具 18 习题 19 参考文献 19 第2章 简单模型 21 2.1 KNN算法 21 2.1.1 算法原理 21 2.1.2 算法步骤 22 2.1.3 算法描述 22 2.1.4 算法评价 23 2.1.5 算法实例 23 2.2 线性回归 24 2.2.1 算法原理 25 2.2.2 模型求解 26 2.2.3 算法步骤 29 2.2.4 算法描述 29 2.2.5 算法评价 30 2.2.6 算法实例 30 2.3 逻辑回归 32 2.3.1 算法原理 32 2.3.2 模型求解 33 2.3.3 算法步骤 34 2.3.4 算法描述 34 2.3.5 算法评价 35 2.4 实验:逻辑回归算法 35 2.4.1 实验目的 35 2.4.2 实验要求 35 2.4.3 实验原理 35 2.4.4 实验步骤 36 2.4.5 实验结果 38 2.4.6 结果分析 39 习题 39 参考文献 40 第3章 贝叶斯学习 42 3.1 贝叶斯方法简述 42 3.2 贝叶斯基础理论 43 3.2.1 概率基础 43 3.2.2 贝叶斯方法 44 3.3 朴素贝叶斯 46 3.3.1 朴素贝叶斯法介绍 46 3.3.2 朴素贝叶斯法实例 47 3.3.3 朴素贝叶斯法优缺点 51 3.4 贝叶斯网络 51 3.4.1 贝叶斯网络介绍 51 3.4.2 贝叶斯网络实现 52 3.4.3 贝叶斯网络特性及应用 54 3.5 实验 54 3.5.1 实验目的 55 3.5.2 实验要求 55 3.5.3 实验原理 55 3.5.4 实验步骤 56 3.5.5 实验结果 57 习题 59 参考文献 60 第4章 决策树 62 4.1 决策树简述 62 4.1.1 树形结构 63 4.1.2 树的构建 63 4.2 划分属性选择 64 4.2.1 信息增益 64 4.2.2 增益率 66 4.2.3 基尼指数 67 4.3 剪枝处理 68 4.3.1 损失函数 69 4.3.2 先剪枝 70 4.3.3 后剪枝 70 4.4 决策树算法 72 4.4.1 ID3算法 73 4.4.2 C4.5算法 75 4.4.3 CART算法 77 4.5 实验:基于CART算法的鸢尾花决策树构建 78 4.5.1 实验目的 78 4.5.2 实验要求 78 4.5.3 实验原理 79 4.5.4 实验步骤 81 4.5.5 实验结果 82 习题 83 参考文献 83 第5章 支持向量机 84 5.1 最大间隔理论简介 84 5.2 两类问题的线性分类 85 5.2.1 线性可分的情况 85 5.2.2 最大间隔与支持向量 86 5.2.3 最大间隔的相关理论 87 5.2.4 线性不可分的情况 89 5.2.5 小结 91 5.3 非线性空间映射与核函数 91 5.3.1 非线性空间映射的概念和原理 91 5.3.2 核函数的选择与分析 92 5.3.3 核函数的选择依据 95 5.3.4 小结 95 5.4 多类问题的分类 95 5.4.1 一对一法 96 5.4.2 一对多法 96 5.4.3 其他方法 97 5.4.4 小结 98 5.5 实验 98 5.5.1 实验1:两类问题的线性可分问题 98 5.5.2 实验2:两类问题的非线性分类问题 100 5.5.3 实验3:UCI数据集中wine.data的多类分类问题 103 5.5.4 实验4:USPS手写阿拉伯数据库的识别 106 习题 108 参考文献 109 第6章 集成学习 111 6.1 集成学习简述 111 6.2 个体学习器与集成学习算法 112 6.2.1 个体学习器 113 6.2.2 集成学习算法 113 6.3 Bagging算法和随机森林算法 113 6.3.1 Bagging算法 113 6.3.2 随机森林 114 6.4 Boosting算法和AdaBoost算法 115 6.4.1 Boosting算法 115 6.4.2 AdaBoost算法 116 6.5 结合策略 123 6.5.1 平均法 123 6.5.2 投票法 123 6.5.3 学习法 124 6.6 实验:集成学习实例 126 6.6.1 一个简单的基于AdaBoost算法的二分类实现 126 6.6.2 基于决策树、Bagging和AdaBoost模型的糖尿病预测实验 129 习题 133 参考文献 133 第7章 聚类 136 7.1 聚类简述 136 7.1.1 基本概念 136 7.1.2 聚类类型 137 7.1.3 算法挑战 138 7.2 原型聚类 139 7.2.1 k均值聚类 139 7.2.2 k中心点聚类 141 7.3 密度聚类 144 7.3.1 基本术语 144 7.3.2 算法描述 146 7.4 层次聚类 147 7.4.1 层次聚类概述 149 7.4.2 BIRCH算法 151 7.4.3 CURE算法 155 7.5 实验:用k均值聚类实现篮球运动员聚类 158 7.5.1 实验目的 158 7.5.2 实验原理 158 7.5.3 实验步骤 159 7.5.4 实验结果及分析 160 习题 161 参考文献 161 第8章 感知机与神经网络 162 8.1 感知机 162 8.1.1 神经元模型 162 8.1.2 激活函数 163 8.1.3 感知机算法 165 8.2 神经网络原理 167 8.2.1 基本特征 167 8.2.2 前馈神经网络 168 8.3 反向传播神经网络 169 8.4 Hopfield神经网络 171 8.4.1 Hopfield神经网络简介 171 8.4.2 离散Hopfield神经网络 172 8.4.3 能量函数 173 8.5 实验:基于Python的感知机实验 173 8.5.1 实验目的 173 8.5.2 实验要求 174 8.5.3 实验原理 174 8.5.4 实验步骤 174 8.5.5 实验结果 175 习题 175 参考文献 175 第9章 卷积神经网络 177 9.1 卷积神经网络简述 177 9.1.1 发展历程 177 9.1.2 端到端的学习 178 9.2 网络部件 179 9.2.1 符号定义 179 9.2.2 卷积层 179 9.2.3 池化层 182 9.2.4 激活函数层 183 9.2.5 全连接层 184 9.2.6 目标函数 184 9.3 核心算法 186 9.3.1 随机梯度下降法 186 9.3.2 反向传播算法 190 9.4 激活函数和损失函数 195 9.4.1 激活函数 195 9.4.2 损失函数 196 9.5 经典CNN模型 198 9.5.1 LeNet 198 9.5.2 AlexNet 199 9.5.3 VGGNet 201 9.6 实验:应用CNN模型进行手写数字辨识 202 9.6.1 实验目的 202 9.6.2 实验要求 203 9.6.3 实验原理 203 9.6.4 实验步骤 205 9.6.5 实验结果 206 习题 206 参考文献 208 第10章 循环神经网络 209 10.1 RNN简介 209 10.1.1 RNN概述 209 10.1.2 RNN的工作原理 209 10.2 双向RNN 210 10.3 LSTM 211 10.3.1 LSTM遗忘门 212 10.3.2 LSTM输入门 213 10.3.3 LSTM输出门 214 10.3.4 前向传播的代码实现 214 10.3.5 反向传播的代码实现 215 10.4 GRU 216 10.5 RNN的实现 217 10.5.1 定义初始化类和初始化函数 217 10.5.2 定义激活函数 217 10.5.3 定义前向传播和反向传播 217 10.5.4 计算delta值和总的delat值 218 10.5.5 计算各个梯度的值和总梯度 218 10.5.6 定义梯度检查函数 219 10.5.7 构建测试函数并运行 219 10.6 实验:应用LSTM模型进行手写数字辨识 220 10.6.1 实验目的 220 10.6.2 实验要求 220 10.6.3 实验原理 220 10.6.4 实验步骤 220 10.6.5 实验结果 222 习题 223 参考文献 223 第11章 生成对抗网络 225 11.1 生成对抗网络简述 225 11.1.1 博弈 225 11.1.2 对抗 226 11.1.3 分类问题 226 11.2 生成对抗网络的基本原理、学习机制、应用、特点 227 11.2.1 生成对抗网络的基本原理 227 11.2.2 生成对抗网络的学习机制 227 11.2.3 生成对抗网络的应用 228 11.2.4 生成对抗网络的特点 229 11.3 生成对抗网络的变种网络 230 11.3.1 JointGAN 230 11.3.2 MD-GAN 230 11.3.3 MsCGAN 230 11.3.4 TGAN 231 11.3.5 HexaGAN 231 11.4 实验 231 11.4.1 基于SRGAN模型的人脸超分辨率实验 231 11.4.2 基于SRGAN的图像转换实验 237 习题 246 参考文献 246 第12章 强化学习 250 12.1 强化学习的引入 250 12.1.1 强化学习的概念 250 12.1.2 强化学习的特点 251 12.1.3 强化学习与监督学习 252 12.2 马尔可夫决策过程 253 12.2.1 策略与环境模型 253 12.2.2 值函数与Bellman公式 253 12.3 有模型学习——动态规划 255 12.3.1 策略迭代 256 12.3.2 值迭代 258 12.3.3 广义策略迭代 260 12.4 免模型学习——蒙特卡罗方法 260 12.4.1 蒙特卡罗方法 260 12.4.2 时序差分方法与SARSA算法 261 12.4.3 Q-Learning算法 263 12.4.4 DQN 264 12.5 实验 266 12.5.1 实验一:方块走迷宫 266 12.5.2 实验二:利用DQN实现“打砖块”游戏 271 习题 277 参考文献 278
http://www.hxedu.com.cn/hxedu/fg/book/bookinfo.html?code=TP442760