人工智能极简编程入门(基于Python)

更多详情

内容简介: 本书共8章。第1章给出了切实可行的学习建议;第2章介绍了开发环境;第3~5章是专为人工智能大数据而优化的知识要点,手把手带领同学们从零基础开始学习编程;第6章与第7章从不同的角度手把手带领读者完成最简单的卷积运算-深度学习的基础算法;第8章带领读者解读一个案例中的部分源码(来自于最流行的深度学习框架TensorFlow)。
本书适合对人工智能、机器学习、深度学习和计算机视觉感兴趣的读者阅读,尤其适合零基础和弱基础的读者学习。阅读本书不要求读者有太多的编程基础与高等数学基础。

目录: 推荐序
前言
第1篇 语法篇
第1章 零基础入门AI解决方案 2
1.1 AI极简史(选修) 2
1.2 AI极简介 3
1.2.1 认识颜色:表征学习与深度学习 3
1.2.2 该往哪边旋转: 决策科学 4
1.2.3 转起来:控制论 5
1.2.4 自动驾驶与AI三大领域 5
1.2.5 有关AI三大领域的解释说明 6
1.3 史上最轻松的入门AI完整解决方案 6
1.3.1 兴趣模块 7
1.3.2 入门AI所需基础模块 9
1.3.3 入门模块及其他 11
1.4 入门好资源 12
1.4.1 慕课(MOOC) 12
1.4.2 框架 13
1.4.3 社区 13
1.4.4 数据集 14
1.4.5 论文 14
1.4.6 公司 15
1.5 学习新主张(最重点) 15
1.5.1 什么是“体验” 16
1.5.2 什么是“最简” 17
1.5.3 “最简体验”主张 18
1.6 如何使用本书(纯小白请重点阅读) 19
1.6.1 高效学习本书的首要原则 19
1.6.2 什么是“要点” 19
1.6.3 对纯零基础学习者的建议 20
1.6.4 使用本书GitHub提高学习效率(敲黑板级别的重点) 20
1.7 网络词汇简写与昵称 24
1.8 小结 26
第2章 环境搭建 27
2.1 最简体验Jupyter Notebook 27
2.1.1 手机上最简体验Jupyter 28
2.1.2 计算机上最简体验Jupyter 29
2.1.3 Notebook中运行Python代码 30
2.1.4 Notebook的最基本概念Cell 31
2.1.5 移动Cell 32
2.1.6 揭秘HelloWorld Cell 34
2.1.7 为啥要用Jupyter Notebook(选修) 34
2.1.8 Notebook服务与社区文化(选修) 35
2.1.9 Jupyter与MyBinder(选修) 36
2.2 Azure Notebook简介 37
2.3 Google Colaboratory简介 39
2.4 Windows下安装Anaconda 42
2.5 Linux下安装Anaconda 43
2.6 Mac下安装Anaconda 47
2.7 本地启动Jupyter Notebook 47
2.8 小结 51
2.9 习题 52
2.9.1 基础部分 52
2.9.2 扩展部分 53
第3章 零点一基础入门Python 54
3.1 最简体验print方法 54
3.2 更多print玩法 59
3.3 最简体验Python变量 63
3.4 最简体验Python列表与遍历 65
3.5 最简体验Python字典 67
3.6 项目实战:智能通讯录 69
3.7 分支语法if 71
3.7.1 最简体验分支if 71
3.7.2 在智能通讯录中使用分支语法 73
3.7.3 智能通讯录0.2 75
3.8 小结 78
3.8.1 真正掌握了吗 78
3.8.2 真的能用吗 79
3.8.3 真的智能吗 80
3.8.4 开发环境与协作学习 81
3.9 习题 83
3.9.1 基础部分 83
3.9.2 扩展部分 83
第4章 最简体验数字图像 84
4.1 最简体验像素 84
4.1.1 嵌套使用列表 84
4.1.2 列表取元素 86
4.1.3 嵌套使用遍历 88
4.1.4 print进阶 89
4.1.5 数值 90
4.1.6 使用“数据”list最简体验像素 92
4.2 最简体验代码画图 94
4.2.1 最简体验图像操作 95
4.2.2 最简体验plot 97
4.2.3 最简体验marker 100
4.2.4 更多marker属性 102
4.3 点与线 104
4.3.1 两点之间,线段最短 104
4.3.2 画更多的线 106
4.3.3 点与线:最简体验面向对象 108
4.4 高效交流,协作学习 110
4.5 正式认识Matplotlib 112
4.6 小结 115
4.7 习题 115
4.7.1 基础部分 115
4.7.2 扩展部分 115
第5章 最简体验数组 117
5.1 最简体验NumPy 117
5.1.1 从list到array 117
5.1.2 Notebook技能之Run all 120
5.1.3 生成一个array 121
5.1.4 操作array中的元素 123
5.2 基于数组进行画图 125
5.2.1 最简体验imshow()方法 125
5.2.2 改进图像显示效果 128
5.2.3 像素级操作图像 130
5.2.4 精准体验像素 132
5.3 最简体验Figure与Axes 135
5.3.1 最简体验容器 135
5.3.2 Python方法的返回值 137
5.3.3 最简体验figure的size 141
5.3.4 设置figure的size 142
5.3.5 保存图像 143
5.3.6 正式认识plt与mpl:Python包与模块的导入 144
5.4 小结 148
5.5 习题 148
5.5.1 基础部分 148
5.5.2 扩展部分 148
第2篇 算法篇
第6章 最简体验卷积运算 150
6.1 最简体验维度 150
6.1.1 数组的形状 150
6.1.2 最简体验数组维度 152
6.2 最简体验向量 154
6.2.1 从1+1=2开始,轻松理解向量 154
6.2.2 最简体验向量运算 156
6.2.3 向量乘法 158
6.3 最简体验一维卷积 160
6.3.1 滑动窗口 160
6.3.2 一维卷积 162
6.4 卷积得到的是什么 163
6.4.1 特征与学习 163
6.4.2 特征的组合 165
6.4.3 最简体验特征 167
6.4.4 归一化Normalization 169
6.4.5 归一化续(纯小白慎入) 171
6.5 小结 172
6.6 习题 173
6.6.1 基础部分 173
6.6.2 扩展部分 173
第7章 综合案例之滑动窗口示意图 174
7.1 正式认识subplots()方法 174
7.1.1 最简体验subplots()方法 174
7.1.2 最简体验axs对象 176
7.1.3 最简体验Axes坐标轴 179
7.1.4 坐标轴ticks 182
7.2 滑动窗口示意图0.1版 186
7.2.1 技术问答范本 186
7.2.2 起始、终止和步长 188
7.2.3 坐标轴tickline 191
7.2.4 坐标轴ticklabel 194
7.3 最常用图像元素之文本框 196
7.3.1 最简体验plt.text()方法 196
7.3.2 微调文本框 199
7.3.3 滑动窗口示意图0.2版 200
7.4 小结 202
7.5 习题 203
7.5.1 基础部分 203
7.5.2 扩展部分 203
第3篇 综合篇
第8章 源码解读 206
8.1 TensorFlow示例代码解读 206
8.1.1 basic classification示例简介 206
8.1.2 最简体验数据集 209
8.1.3 Fashion MNIST数据集的label 214
8.1.4 批量查看图像 217
8.2 源码解读 220
8.2.1 最简体验源码解读 220
8.2.2 解惑ticks的set与get 222
8.3 基于Notebook服务的开发环境复现 224
8.3.1 Cell内安装TensorFlow 224
8.3.2 最简体验Terminal 227
8.3.3 体验便捷精准复现 229
8.3.4 一键复现目标检测 231
8.4 小结 236
8.5 习题 237
8.5.1 基础部分 237
8.5.2 扩展部分 237
后记 238


前言: 为什么要写这本书?
一只“阿法狗”为全世界打开了一条窄窄的门缝,通往未来之门就此展现。以深度学习之名,人工智能第三次兴起。人类社会已经进入了人工智能与大数据时代。大数据与概率统计的相关知识、工具已经从某个领域的专业课成为当代社会的通识课。当下,主动拥抱新变化,积极学习新知识愈发显得重要。很多人积极投入热情、时间和金钱后,没能坚持多久,就中断了学习。也有很多人对此表示观望,甚至自我放弃,觉得自己的基础不足以把握这次机会。
学习本应是一件轻松愉快的事,这是因为探索与解释是人类的天性。专业学习通常还是投入产出比极高的一件事,尤其是当代社会,真才实干者通常会获得合理而丰厚的回报。
但是很多计算机类的书籍,不仅没能帮助初者更高效地进入专业领域,反而浪费了读者的时间,打击了初学者的积极性。这是因为,很多书的作者几乎没有对初学者关怀的意识,没有设身处地地为初学者考虑,没有量身定制地为初学者优化。甚至很多书中的内容仅仅是对官方文档的“搬运”。
本书尝试介绍一个新的学习主张,用以帮助初学者轻松而高效地入门人工智能这一专业领域,同时也可以用来衡量一个学习资源是否可以帮助初学者,轻松高效地从入门级别成长为专业的合格人才。
仅凭一本书,确实很难帮助零基础、弱基础的读者入门人工智能,因此本书的作者团队准备了一套丛书“人工智能与大数据技术大讲堂”,给读者提供零基础入门人工智能的解决方案。通过该解决方案,可以帮助读者成为合格的人工智能算法工程师。即使读者最终没有完成整个丛书的学习,而是只学习了前半部分,也可以很好地理解和适应人工智能与大数据时代。
本书特色
* 贴心:本书是市场上同类书籍中学习门槛极低的书籍,只要读者具备基本的数学能力与计算机操作能力,就能轻松、高效地入门人工智能算法。从第一行代码到最后一个要点,读者只需要按顺序学习,即可顺利理解和掌握,而无须额外搜索和查找。
* 完整:通过“图书+视频+GitHub+微信公众号+学习管理平台+群+专业助教”构成完整的学习资源,建立立体化的学习模式,通过从最低门槛到专业岗位的全路径设计学习计划,以及大量线上、线下互动,形成完整的学习解决方案。
* 生动:本书将课堂互动搬到书中,现场感十足。书中以“轻松幽默的语言+生动的故事情节”讲解每个知识点,以保障读者全程都可以轻松学习,从而避免由于枯燥和晦涩而导致学习的中断。本书将学习知识点的过程转换为与知识点交朋友的过程,全方位呵护、培养和提高初学者的学习兴趣、学习热情和学习动力。
* 易懂:本书全面贯彻learning by doing的学习理念。因为具象的代码比抽象的概念更易于理解和掌握,所以本书将抽象的理论知识融入具象的代码中,再通过对代码运行结果进行分析和总结,从而提炼理论,帮助初学者掌握重要的概念和原理,并以易懂的语言将核心知识点以细粒度的分解示例进行详尽讲解。
* 透彻:本书全面贯彻understanding by creating的学习理念,通过手把手带领读者完成精心设计的原创示例代码进行学习,对基础且重要的核心理论进行多角度讲解,让读者循序渐进地体验和总结应用,最终达到对精要知识点的透彻理解,从而建立学习信心,为后续的学习打下坚实的基础。
* 实用:本书通过精心设计的知识点与大量的原创示例,带领读者体验知识的价值。读者在理解重要原理的基础上,可以亲手实现代码,熟练运用理论分析,解决实际问题,从而以最少的时间和最低的成本,真切感受算法的魅力。
本书内容
本书共8章,分为3篇。
第1篇 语法篇
第1章零基础入门AI解决方案,介绍了专为初学者关怀而提出的学习新主张,给出了具体可操作的学习建议,并提供了后续学习的精选优质资源。
第2章环境搭建,介绍了开发环境的选择、搭建策略及具体操作步骤。
第3章零点一基础入门Python,以实用性极强的案例为主线,极为详尽地讲解了入门人工智能中深度学习与大数据分析所需要的Python编程基础知识。
第4章最简体验数字图像,在第3章的基础上,手把手带领读者学习数据可视化的常用工具Matplotlib。
第5章最简体验数组,在第4章的基础上,手把手带领读者学习数字图像处理、深度学习计算及大数据分析等多个领域的重要基础工具Numpy。
第2篇 算法篇
第6章最简体验卷积运算,从最简单易懂的示例开始,循序渐进地讲解了卷积运算的原理和实现代码,以及卷积运算在深度学习算法中的作用。
第7章综合案例之滑动窗口示意图,换一个角度认识和理解卷积运算,同时帮助读者进一步熟练掌握Python和Matplotlib。
第3篇 综合篇
第8章源码解读,带领读者综合使用前面章节中所掌握的基础知识,解读最经典的示例源码。解读源码既是重要的工作能力,也是主要的学习手段,所以需要读者很好地掌握。
本书示例代码说明
本书在示例代码的组织与呈现方式上进行了专门设计,尽可能地帮助读者轻松高效地掌握每一个重要知识点。
* 每个示例代码文件的编号与书中的插图编号相同,以方便读者查找、参阅。
* 每个示例代码文件分为两部分:铺垫代码与焦点代码。铺垫代码来自于前面的示例,是已经掌握的旧知识点;焦点代码则是为了方便读者快速定位的新知识点。
例如,下图所示便为第8章图8-31所对应的示例代码。
其中,铺垫代码来自于示例8-29,而焦点代码只有一行,这样读者既可以复习旧知识点,与旧知识点建立联系,又可以迅速抓住重点,高效地学习新知识点。
本书读者对象
本书适合以下读者阅读:
* 对人工智能和机器学习感兴趣的读者;
* 对深度学习和计算机视觉感兴趣的读者;
* 对大数据分析、数据挖掘和数据科学感兴趣的读者;
* 讲授人工智能、机器学习、深度学习、大数据分析、数据挖掘和数据科学课的老师(提供师资培训与教案);
* 希望提升自己通用竞争力的读者。
阅读本书的读者只需具备以下条件:
* 初步的数理知识;
* 基本的电脑操作能力;
* 智能手机操作能力。
即使不能满足上述条件,也可以通过本书作者团队提供的专业助教补齐相关基础。
本书配套资源获取方式
本书提供的配套学习资源需要读者自行下载。有以下3种途径:
(1)请在华章公司的网站www.hzbook.com上搜索到本书,然后单击“资料下载”按钮进入本书页面,再单击页面上的“配书资源”链接即可下载。
(2)访问https://github.com/MachineIntellect/DeepLearner获取。
(3)关注微信公众号“AI精研社”,点击“入门”→“AI入门”获取,或直接发送文字“入门”获取。
勘误与售后服务
本丛书中的每本书与其他同类图书的最大不同在于切实注重读者的学习体验。我们真诚地希望得到广大读者的阅读反馈,以便于我们不断地改进和迭代,从而不断地提升读者的学习体验和学习效果。
由于是第1版图书,虽然作者团队为此已经投入了累计上万小时的工作量,对书中的内容经过了反复测试和迭代改进,但仍然难免偶有谬误或讲述不确切、不清楚和不顺畅的地方。我们在此邀请各位读者积极地参与到本书的售后反馈活动中。您在阅读本书时若有疑问或者发现了书中的疏漏,都可以在本书的GitHub页面指出,或者直接发送相关的问题描述至微信公众号“AI精研社”,也可以根据公众号的菜单提示添加值班客服或助教以获得帮助,我们将及时做出解答,并尽快将疏漏更新在勘误表中。我们欢迎一切关于本书的意见、建议、问题、指正、讨论和其他各类反馈。
信公众号“AI精研社”二维码
本书作者
本书由清华大学的张光华博士,以及“AI精研社”的贾庸和李岩主笔编写。其他参与策划、设计、编写与审校的人员(按姓名拼音排序)还有阿珠(中国科学院自动化所)、宝尔金(中国科学院自动化所)、陈潇、丁火(中国科学院自动化所)、丰子一、何戈文(佛罗里达大学)、何嘉庆、黄向生(中国科学院自动化所)、黄子凌[“清华大学”(中国台湾)]、胡晓野、贾子娴、靳博洋、李赓飞、绫夜、林灵锋(中国科学院深圳先进技术研究院)、刘聪(中南大学)、李燚、李玉惠(恒安嘉新)、卢建东、唐唐、王立宁(阿里巴巴)、王鑫(万摩数字)、吴宪君、吴轶男、徐铁丰、杨海华(百度)、叶虎(腾讯)、殷荣(中国科学院信息工程研究所)、余欣航(北京大学前沿交叉学科研究院)、张家欢、张梦、张宇泰(京东之家)。在此一并感谢!
致谢
在策划整个丛书与本书的写作过程中得到了很多前辈、专家和行业领袖的指导、支持和帮助。作者团队的家人与诸多好友也为此投入了大量的时间和精力。在此向他们表达诚挚的谢意!
还要特别感谢贾庸的人生合伙人——坏妈!写作本书占用了贾庸大量原本属于家庭的时间,而坏妈不仅承担了照顾家庭、教育小坏的全部责任,还不断地鼓励他。为了表达对坏妈的感激,见证贾庸对坏妈的爱恋,在这里专门撒下这把“狗粮”:管他宏观与微观,只有你与我有关!
在此还要特别感谢负责本书的编辑!润物细无声的催稿,邮件秒回的响应速度,不厌其烦的修改和完善,这都是本书得以更加完善的重要因素。
还要感谢本书的作者团队,以及丛书的策划团队与技术、内容和教学支持团队!
此外还有很多匿名小伙伴和热心网友也给出了极有价值的反馈,也在此一并表示感谢!
最后感谢各位读者,尤其是那些为本书提出意见或建议,以及反馈疏漏的读者!
作者
于北京

媒体评论: 大咖力荐
人工智能领域知名的《统计学习方法》《机器学习》《深度学习》三本经典图书对于大多数想要进入该领域的人而言有较高的学习门槛。而由“AI精研社”组织编写的“人工智能与大数据技术大讲堂”丛书则会提供较低的学习门槛,可以帮助读者能够更加轻松地掌握人工智能算法与编程,也能给读者进一步深度理解这三本经典图书带来很大的帮助。假如你已经通透地掌握了这套丛书或三本经典图书中的内容,那么你就可以直接来地平线实习了。即使你尚未发表论文也没关系,很多小伙伴都是在地平线实习期间发表了顶会论文,而且是顶会一作。
——全球范围内自动驾驶处理器领域的领跑者地平线创始人/CEO 余凯
“人工智能与大数据技术大讲堂”丛书是一套提纲挈领的纵览式图书,内容系统、全面,讲解深入浅出,可以帮助AI初学者梳理人工智能技术的知识体系,也可以让AI从业者即用即查,温故而知新,非常值得推荐。相信好学上进的读者朋友们能感受到作者团队的用心和努力,能通过这套图书更好地掌握人工智能技术。
—— 领先的计算机视觉服务商Yi+创始人/CEO 张默
人工智能作为计算机科学与统计学、脑科学和认知科学等多学科交叉的前沿领域,致力于让机器拥有类似于人类的感知、认知、操控和交互能力,已形成相对完整的学科体系。很多同学担心进入人工智能这一领域的门槛太高,一直徘徊在观望或浅尝辄止的程度。而这本书通过风趣易懂的语言和精心设计的知识体系降低了这一门槛,使得初学者也可以掌握人工智能算法思想,领略到人工智能的趣味。这本书不仅适合院校师生,也适合广大的人工智能爱好者自学使用。
——清华大学计算机系学术委员会主任/IEEE Fellow 孙富春
本书浅显易懂,文笔诙谐,有理论,更有实践,非常适合进入人工智能领域的初学者阅读。相信通过阅读本书,读者能够顺利地完成从零到一的学习过程。
——神策数据创始人/CEO 桑文锋
当前,人工智能技术正在快速应用于各行各业。经济社会的发展不仅需要大量的人工智能高级人才去推动基础理论和共性技术的发展,而且也需要初步掌握了算法的工作原理,并能灵活应用于不同场景的智能算法工程师及系统开发与维护工程师去推动智能技术的落地。本书契合了这种需求,讲解上从基本概念到基础算法,再到应用范例,手把手带领初学者实现智能应用。本书的阅读门槛很低,适合的读者群体也很广泛,只要你具备初步的数理知识,就可以在作者的引领下顺利学习。
——天津大学智能与计算学部副主任/人工智能学院院长 胡清华