购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

前言

“Talk is cheap, show me the code”,大名鼎鼎的Linux系统创始人林纳斯·本纳第克特·托瓦兹(Linus Benedict Torvalds)在2000年给编写Linux系统核心的成员群发了一封邮件,里面提到了这句话,翻译成中文就是“多说无益,给我看你的代码”。这句名言在计算机科学界广为流传并奉为金句。计算机作为一门实践性很强的学科,理解理论后动手写出可运行的、能看到成果的代码才是硬道理。人工智能是计算机科学中应用场景最多的子学科之一,这更需要学习者在理解原理后,动手实践、应用算法解决实际问题。正所谓“纸上得来终觉浅,绝知此事要躬行”。

所以在2018年的夏天,俞勇教授组建了我们这支编写团队,开始尝试编写针对青少年的项目实践教程。最初的内容包括图像上色、英语语法单选题与角斗士桌游。在教程中,我们努力用最浅显的语言将复杂的人工智能算法讲明白,并且提供了相应的代码和可在线交互的展示。一些中学生看了我们编写的这些教程之后给出了一致的好评,这也让我们产生了将其拓展为一套给青少年看的关于人工智能的丛书的想法。2019年初,我们给这套丛书加入了更多关于实践的内容,引导读者一边理解原理,一边编写代码,理论与实践相结合地认识人工智能。在本书中,我们精心安排了兼顾项目的有趣程度、使用技术的流行程度,以及知识的涵盖程度的项目。在编写方式上,我们也努力精简知识,仅介绍与项目任务相关的必要知识,希望能够让零基础的读者,仅通过阅读本书也能快速地了解用到的算法。对每一种算法,我们都会给出Python代码实现,配合注释与讲解,引领读者一步一步编写人工智能算法。

五个项目各由我们编写团队中的一到两位编者负责,每周俞勇教授与张伟楠教授都会与编者们开例会、审阅进度,并讨论可以改进的地方。在编写教材的同时,我们还与实验平台的开发人员合作,提供了线上可交互的展示,方便读者理解项目与算法。编写本套丛书前后历时近一年,俞勇教授、张伟楠教授与编者们投入了大量的心血,希望能帮助青少年理解并自己实现人工智能算法,培养对人工智能的兴趣,为将来更深入地探索人工智能打下基础。

从本书中可以读到

我们将通过五个有趣的项目,带领大家在理解原理的同时,动手编写代码,实现自己的人工智能应用。本书的每一部分对应一个项目,它们分别是:

图像识别:图像识别是近几年人工智能浪潮中,发展最快、技术最成熟、落地最早的算法,如生活中常见的车牌识别、人脸识别等都是基于图像识别的技术。在这个项目中,你将了解机器处理图像数据的方法,学习并编写图像识别的两个经典算法: K近邻算法与卷积神经网络,并解决手写数字识别以及物体识别问题。

图像风格迁移:图像风格迁移是一个非常有趣的项目。利用该技术,人们可以将任意一张图片转换成其他风格的图片。一些热门的图像处理软件中就提供了类似功能,比如将照片转化成马赛克风格,甚至是梵高的画作风格。在本项目中,你将尝试用3种图像风格迁移算法进行实践。

文本生成:与文本相关的智能技术随着人工智能浪潮也得到了快速发展。在这个项目中,你将了解机器处理文本数据的方法,并学习和编写3个用于文本生成的算法。使用这些算法,可以让机器生成古诗甚至是文章。

角斗士:角斗士是一款热门的桌面游戏。在这个项目中,你将学习并使用各类搜索算法,制作角斗士游戏的AI。与上面三个项目不同的是,本项目中你将第一次接触到教机器作出决策,让机器作出正确的决策是迈向真正智能的重要一步。

红绿灯调度:大城市中如何缓解交通拥堵是一个广受关注的问题。在这个项目中,就是使用强化学习算法来优化红绿灯的控制,以达到缓解拥堵的目的。强化学习是近几年非常热门的领域,大名鼎鼎的AlphaGo就是使用强化学习算法战胜了所有人类棋手。你将了解强化学习算法的基本概念,并尝试编写强化学习算法来控制路口的红绿灯。

如何使用这本书

本书没有严格的阅读顺序要求,你可以选择自己感兴趣的项目直接阅读,若提到了其他项目中的概念均会给出提示。

除了算法原理,本书还包含了大量示例代码。如果想要理解这些代码,你需要有一些Python基础编程知识,包括变量、循环、函数、类、库的使用等。如果想要入门Python,你可以访问伯禹学堂中的Python基础课程(www.boyu.ai/pythonbasics)。本书的所有代码都基于Anaconda3—5.2.0版本用Python3实现,Anaconda是一个免费的Python发行版,包含了大量常用的库,非常易于安装,强烈建议你在学习过程中安装使用。项目中的代码示例可以在 github.com/boyuai/textbook 下载。另外,本书配有实验平台(www.boyu.ai/playground),为书中涉及的项目提供一个交互式的学习体验。对每个任务,我们提供了体验、调试、理解源码、源码填空、改进源码5个阶段。不同基础背景的读者可以选择不同的阶段入门:零基础的读者可以通过体验算法了解人工智能的魅力,基础较好的读者可以自己编写代码改进算法。我们希望你通过阅读本书,至少可以达到理解项目内容、掌握算法原理和能够进行基本的算法实现的程度。若你对学习人工智能的积极性非常强,希望你能在实验平台上多多地尝试改进代码,并创造属于自己的人工智能算法。

本书的内容仅包含五个项目必备的知识以及代码。如果希望系统地学习人工智能算法,建议阅读本套丛书的第三本《人工智能技术入门—让你也看懂的AI“内幕”》;如果对人工智能的发展历史与未来展望感兴趣,建议阅读本套丛书的第一本《从人脑到人工智能—带你探索AI的过去和未来》;如果对人工智能在生活中的具体应用感兴趣,建议阅读本套丛书的第二本《人工智能应用—酷炫的AI让你脑洞大开》。

致谢

参与本书编写的主要人员有16位,俞勇教授策划并确定本书架构、内容组织及审核,张伟楠博士对全书内容进行专业指导及审核,张惠楚与秋闻达编写第一部分,苏起冬与徐逸凡编写第二部分,侯博涵与蔡亚星编写第三部分,赵寒烨与任云玮编写第四部分,钱苏澄编写第五部分。感谢陈子薇绘制本书的卡通插图,感谢王思捷、冯思远开发实验平台,并感谢任侃、沈键及潘哲逸在编写时提供的帮助。 TCfmBsg5M/+1rQmPrf+O5MNLMjlbz5E4AKaA4gW20+vWbsRsF0zFqmHhaMHkbBbQ

点击中间区域
呼出菜单
上一章
目录
下一章
×