赞
踩
作为Grokking Deep Learning 《深度学习图解》的译者,当清华大学出版社编辑诚邀我来翻译这本有关人工智能的图书时,对于要不要接手,我其实犹豫了良久一虽然深度学习如此火爆,但这本注重于传统人工智能算法的图书是否也能得到读者的青睐?它能给读者带来足够的价值吗?
由此,本序尝试给出传统智能算法与深度学习的关系,比较两者所擅长解决的问题,并介绍本书的基础内容及其面向的读者群体,希望能帮助你发现最适合自己(任务)的智能实践。
人工智能、深度学习与机器学习的关系
自2012年AlexNet在世界级图像识别大赛(ImageNet)-骑绝尘以来, 深度学习几乎成了人工智能的代名词。不过若从更高处看,深度学习只是人工智能浪潮中的一朵小浪花,是机器学习的一个真子集。图1给出了人工智能、深度学习与机器学习的关系,斜线部分为本书重点(为简化描述,本序中以“传统算法”代指这部分属于机器学习但并非深度学习的算法)。当然,人工智能领域的基础概念与深度学习相关方法在本书中也有提及。
广义来说,机器帮助人类所完成的一一切,都属于人工智能。也许你还记得20世纪初那些自动化系统中动辄上万条的规则,那是人工智能的萌芽时期:专家系统。能从数据中自动抽取出这些规则的方法,被称为机器学习。从逻辑回归到决策树,一路走到今天的特征工程与模式识别一用 多层神经网络(也就是深度学习)所完成的那些工作,仍然逃不脱“找到数据中的规律”这一框架。
虽然大多数深度学习教程都主要关注其结构(无论是网络结构还是算子结构),但实际上,深度学习表现优异的关键离不开优化方法。深度模型的调参真的是“炼金术”吗?网络是如何收敛到最佳表现的?对传统算法的掌握有助于你理解深度学习的工作原理,为算法调优(针对深度模型选择更好的参数/超参数)夯实基础。
在一定程度上,深度图神经网络、生成式对抗模型等也都属于融合了深度学习与传统算法的创新实践。
传统算法所适用的问题
人工智能三要素:数据、算法和算力。
首先是数据。深度学习的发展与21世纪的大数据崛起密不可分。以ImageNet 为首的数千万张有标记的图片将深度学习推上王座:动辄几十上百层的模型提供了大量的权重参数,高复杂度与大数据量共同带来了远超传统机器学习算法的精度。然而,对于较小的数据集(譬如本书中的案例),深度模型的高复杂度却可能会成为负担。此时,传统算法反而能获得更好的效果。
其次是算法。在实践中,我们常常会碰到这样的情况:相比于获得精准的结果,专业人员更关心这个结果是怎么来的。譬如,市场部门想要知道在给定的内外部环境下,某个营销策略会对实际销量带来怎样的影响(受市场条件限制,有效数据量往往相当有限)。此时,能明确展示拟合系数和响应之间关系的线性模型就会成为我们的首选。包括医疗、勘探、金融在内的大量垂直领域都要求算法具备高可解释性,以结合人类专家意见作出决策。在这一方面,相比于“黑盒”深度模型,传统算法显然更胜一筹。
最后是算力。大模型加.上大数据当然离不开大算力。一- 张高端深度学习训练卡价格高达数万元,在谷歌最新发表的自动架构搜索(AutoML)论文中,一场实验需要让800张卡跑上几个星期:不谈买机器的钱,单电费就足以烧掉一辆宝马的价钱。即使这确然能够带来几个百分点的精度提升,但如此大的消耗对于只想解决日常工作中的小问题的你我来说实在昂贵。为什么不先尝试一下传统算法呢?用自己的笔记本电脑就能得到一个初步可用的基线结果。在此基础上,再结合深度学习或其他复杂模型来进一步 提升精度。
对于需要实时响应的低成本任务来说,传统算法不失为-一种好的选择。对于具备大量数据的复杂任务而言,不妨借助深度模型来获得更高的精度。知己知彼,因地制宜,取二者所长,才能得到最适合你的解决方案。
关于本书
读到这里,相信你已经初步了解了为什么需要掌握机器学习。
本书面向的读者群体为非数学/计算机相关专业的程序员们,以及正在做毕业设计,迫切需要智能方法协助的普通学生们。不需要科班出身,无需线性代数或统计学基础知识,只需要掌握任何一门编程语言(不管是C、Java、 Python, 还是PHP),你就能通过本书在两周之内亲自将人工智能算法嵌入手头项目。
本书重点涵盖的算法簇包括搜索算法、进化算法与群体智能算法。每簇算法由浅入深分上下两章,上章 基础篇围绕各种实际案例阐述算法设计理念,下章高级篇则带读者思考如何打造更理想的解决方案。同时,本书以典型机器学习工作流为例,讲解线性回归、决策树、神经网络与强化学习等常见算法类别。读完本书,你将能掌握清洗数据、训练模型、测试模型、调优算法等整个学习流程中的关键技巧一-正所谓万变不离其宗, 这将为你以后进一步探索智能世界打下坚实基础。
承接“图解”系列的一贯作风,本书中不会出现任何复杂的公式,取而代之的是各种实战图例。只需要具备高中数学水平和基础编程知识,你就可顺利解决书中提及的从智能对弃到停车场寻路的各种案例。更棒的是,算法核心代码往往相对独立地运作,不会像真正意义上的工程代码那样复杂,百十行就能轻松解决集装箱自动化配货之类的问题(书中所有样例代码均在Github.上免费开源)。触手可得的智能解决方案,为什么不试试看呢?
王晓雷
2021.6.1
目 录
第1章 人工智能初印象 1
1.1 什么是人工智能? 1
1.1.1 定义AI 2
1.1.2 理解数据是智能算法的核心 3
1.1.3 把算法看作“菜谱” 4
1.2 人工智能简史 6
1.3 问题类型与问题解决范式 7
1.4 人工智能概念的直观印象 9
1.5 人工智能算法的用途 13
1.5.1 农业:植物种植优化 13
1.5.2 银行业:欺诈检测 14
1.5.3 网络安全:攻击检测与处理 14
1.5.4 医疗:智能诊断 14
1.5.5 物流:路径规划与优化 15
1.5.6 通信:网络优化 16
1.5.7 游戏:主体创造 16
1.5.8 艺术:创造杰出作品 17
1.6 本章小结 17
第2章 搜索算法基础 21
2.1 什么是规划与搜索? 21
2.2 计算成本:需要智能算法的原因 23
2.3 适合用搜索算法的问题 24
2.4 表示状态:创建一个表示问题空间与解的框架 26
2.4.1 图:表示搜索问题与解 28
2.4.2 用具体的数据结构表示图 28
2.4.3 树:表示搜索结果的具体结构 29
2.5 无知搜索:盲目地找寻解 31
2.6 广度优先搜索:先看广度,再看深度 33
2.7 深度优先搜索:先看深度,再看广度 39
2.8 盲目搜索算法的用例 45
2.9 可选:关于图的类别 46
2.10 可选:其他表示图的方法 47
2.10.1 关联矩阵 47
2.10.2 邻接表 48
2.11 本章小结 48
第3章 智能搜索 51
3.1 定义启发式方法:设计有根据的猜测 51
3.2 知情搜索:在指导下寻求解决方案 54
3.2.1 A*搜索 54
3.2.2 知情搜索算法的用例 61
3.3 对抗性搜索:在不断变化的环境中寻找解决方案 62
3.3.1 一个简单的对抗性问题 62
3.3.2 最小-最大搜索:模拟行动并选择最好的未来 63
3.3.3 启发式 64
3.3.4 阿尔法-贝塔剪枝:仅探索合理的路径 72
3.3.5 对抗搜索算法的典型案例 75
3.4 本章小结 75
第4章 进化算法 77
4.1 什么是进化? 77
4.2 适合用进化算法的问题 80
4.3 遗传算法的生命周期 84
4.4 对解空间进行编码 86
4.5 创建解决方案种群 89
4.6 衡量种群中个体的适应度 91
4.7 根据适应度得分筛选亲本 93
4.8 由亲本繁殖个体 96
4.8.1 单点交叉:从每个亲本继承一部分 97
4.8.2 两点交叉:从每个亲本继承多个部分 98
4.8.3 均匀交叉:从每个亲本继承多个部分 98
4.8.4 二进制编码的位串突变 100
4.8.5 二进制编码的翻转位突变 101
4.9 繁衍下一代 101
4.9.1 探索与挖掘 102
4.9.2 停止条件 102
4.10 遗传算法的参数配置 104
4.11 进化算法的用例 105
4.12 本章小结 105
第5章 进化算法(高级篇) 107
5.1 进化算法的生命周期 107
5.2 其他筛选策略 109
5.2.1 排序筛选法:均分赛场 109
5.2.2 联赛筛选法:分组对抗 110
5.2.3 精英筛选法:只选最好的 111
5.3 实值编码:处理真实数值 111
5.3.1 实值编码的核心概念 112
5.3.2 算术交叉:数学化繁殖 113
5.3.3 边界突变 113
5.3.4 算术突变 114
5.4 顺序编码:处理序列 114
5.4.1 适应度函数的重要性 116
5.4.2 顺序编码的核心概念 116
5.4.3 顺序突变:适用于顺序编码 116
5.5 树编码:处理层次结构 117
5.5.1 树编码的核心概念 118
5.5.2 树交叉:继承树的分支 119
5.5.3 节点突变:更改节点的值 120
5.6 常见进化算法 120
5.6.1 遗传编程 120
5.6.2 进化编程 121
5.7 进化算法术语表 121
5.8 进化算法的其他用例 121
5.9 本章小结 122
第6章 群体智能:蚁群优化 125
6.1 什么是群体智能? 125
6.2 适合用蚁群优化算法的问题 127
6.3 状态表达:如何表达蚂蚁和路径? 130
6.4 蚁群优化算法的生命周期 134
6.4.1 初始化信息素印迹 135
6.4.2 建立蚂蚁种群 136
6.4.3 为蚂蚁选择下一个访问项目 138
6.4.4 更新信息素印迹 145
6.4.5 更新最佳解决方案 149
6.4.6 确定终止条件 150
6.5 蚁群优化算法的用例 152
6.6 本章小结 153
第7章 群体智能:粒子群优化 155
7.1 什么是粒子群优化? 155
7.2 优化问题:略偏技术性的观点 157
7.3 适合用粒子群优化算法的问题 160
7.4 状态表达:粒子是什么样的? 162
7.5 粒子群优化的生命周期 163
7.5.1 初始化粒子群 164
7.5.2 计算粒子的适应度 166
7.5.3 更新粒子的位置 169
7.5.4 确定终止条件 180
7.6 粒子群优化算法的用例 181
7.7 本章小结 183
第8章 机器学习 185
8.1 什么是机器学习? 185
8.2 适合用机器学习的问题 187
8.2.1 监督学习 188
8.2.2 非监督学习 188
8.2.3 强化学习 188
8.3 机器学习的工作流程 188
8.3.1 收集和理解数据:掌握数据背景 189
8.3.2 准备数据:清洗和整理 191
8.3.3 训练模型:用线性回归预测 196
8.3.4 测试模型:验证模型精度 205
8.3.5 提高准确性 208
8.4 分类问题:决策树 210
8.4.1 分类问题:非此即彼 210
8.4.2 决策树的基础知识 211
8.4.3 训练决策树 213
8.4.4 用决策树对实例进行分类 223
8.5 其他常见的机器学习算法 226
8.6 机器学习算法的用例 227
8.7 本章小结 228
第9章 人工神经网络 231
9.1 什么是人工神经网络? 231
9.2 感知器:表征神经元 234
9.3 定义人工神经网络 237
9.4 前向传播:使用训练好的人工神经网络 243
9.5 反向传播:训练人工神经网络 250
9.6 激活函数一览 259
9.7 设计人工神经网络 260
9.8 人工神经网络的类型和用例 263
9.8.1 卷积神经网络 263
9.8.2 递归神经网络 264
9.8.3 生成对抗网络 264
9.9 本章小结 266
第10章 基于Q-learning的强化学习 269
10.1 什么是强化学习? 269
10.2 适合用强化学习的问题 272
10.3 强化学习的生命周期 273
10.3.1 模拟与数据:环境重现 274
10.3.2 使用Q-learning模拟训练 278
10.3.3 模拟并测试Q表 287
10.3.4 衡量训练的性能 287
10.3.5 无模型和基于模型的学习 288
10.4 强化学习的深度学习方法 289
10.5 强化学习的用例 289
10.5.1 机器人技术 290
10.5.2 推荐引擎 290
10.5.3 金融贸易 290
10.5.4 电子游戏 291
10.6 本章小结 291
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。