本书以“平民”的起点,从“零”开始,基于PyTorch框架,介绍深度学习和强化学习的技术与技巧,逐层铺垫,营造良好的带入感和亲近感,把学习曲线拉平,使得没有学过微积分等高级理论的程序员一样能够读得懂、学得会。同时,本书配合漫画插图来调节阅读气氛,并对每个原理都进行了对比讲解和实例说明。
本书适合对深度学习和强化学习感兴趣的技术人员、希望对深度学习和强化学习进行入门了解的技术人员及深度学习和强化学习领域的初级从业人员阅读。
从零开始,辅以漫画,基于PyTorch框架介绍深度学习和强化学习技术与技巧
高扬,金山办公软件人工智能组技术负责人,历任欢聚时代人工智能算法专家,金山软件西山居大数据架构师等职。重庆工商大学研究生导师,电子工业出版社博文视点大数据技术图书专家委员会专家委员,有多年海外工作经验。有多部白话系列大数据与机器学习相关著作。
叶振斌,现任网易游戏伏羲人工智能实验室高级深度学习研发工程师。多年从事机器学习,特别是强化学习智能算法的研究及开发工作。拥有丰富的软件开发经验,丰富的人工智能算法训练平台开发经验。于2014年获东北大学软件工程专业学士学位,2017年获重庆大学计算机科学与技术专业硕士学位。
前言
当人工智能的热潮席卷全世界的时候,当我们一次又一次为各种人工智能新作而惊叹的时候,我们不约而同地将目光投向了深度学习领域。我们对这个既新鲜又传统的领域有一种憧憬,甚至我们之中的许多人会在某一刻认为这可能是未来机器觉醒前的萌芽。
说深度学习新鲜,是因为它在近几年的发展确实获得了令人瞩目的成果,不论是在计算机视觉(Computer Vision,CV)领域,还是在自动语音识别(Automatic Speech Recognition,ASR)领域,抑或推荐系统应用领域,都迈上了一个前所未有的新台阶。这当然得益于计算机硬件处理能力的提升,包括CPU的速度、内存的大小、磁盘的容量;得益于新型并行计算框架的逐步成熟,例如CUDA(Compute Unified Device Architecture);得益于广大热衷于贡献高质量开源软件系统的大厂的扛鼎力作,例如TensorFlow、PyTorch、MXNet等优秀框架的不断涌现。这些无一例外,都成为推动一个行业在全国乃至全世界发展的重要因素。
说深度学习传统,是因为它最为基本的理论部分,是在数十年前就逐步有人提出并进行完善的一套理论体系。一位朋友曾告诉我,在他研究生毕业的时候(应该是在21世纪初),有不少同学的研究方向是人工智能和神经网络,而其中的大多数人,不是进了国有研究所,开始了日复一日“读Paper、写Paper”的过程,就是进了保险公司、证券交易所等企业——做什么呢?也不是做自己的老本行,而是做报表、做数据分析、写报告。
当然,这些同学算是比较“幸运”的,还有相当一部分干脆改了行,去往一些企业的开发岗位,做Java开发或者数据库架构之类的工作。我完全没有轻视这些岗位和企业的意思,我只是单纯地觉得,在大学中花了那么多年走出来的一条路,没办法再走下去,是一件非常可惜的事情。而在导致这一现象的众多客观因素中,前面提到的计算能力、框架成熟度、软件包可用性等起着决定性的作用。
不过,我们赶上好时候了。除落地应用外的大部分基础问题,都已经由那些世界一流的数据科学家帮我们解决,并封装成了一个个开源或非开源的软/硬件产品。
其实,除了深度神经网络在CV、ASR、NLP等领域的应用,近几年,深度学习在另外一个领域有着炫目的成绩,那就是深度强化学习领域。别的不说,大名鼎鼎的AlphaGo和AlphaGo Zero就是典型的深度强化学习应用。从感性的角度看,深度强化学习似乎是由“深度学习”和“强化学习”两个领域结合而成的——这个说法应该不算错。
所谓深度学习,一般是指基于深度神经网络的一系列应用,而这个领域应用的丰富程度也是非常高的。因为深度神经网络有着超高的VC维,所以理论上它几乎可以用来实现任何从x到f(x)的映射关系。
强化学习所研究的事情就更有意思了。强化学习研究的主要是如何让机器人在一个预先定义好的环境中,通过自己学习来逐步形成或学会一套成熟的、高质量的自动化行为策略,这也是一直以来世界一流高校的人工智能专业设立并努力研究的一个神秘而又让人充满幻想的领域。
为了让广大读者能够近距离接触强化学习和深度学习结合应用的案例,让这样一个有趣且有着光明前景的领域以更加平易近人的姿态出现,在这本书中,我将用具有高中数学水平的读者朋友能够理解的语言,和大家好好分享一下如何用深度学习的利器PyTorch来完成人工智能机器人自我进化的落地过程。
本书特色
可以说,我们处于人工智能时代的起点。这是一个非常好的时代,那么多优秀的开源软件框架,为每一个程序员提供了门槛足够低的学习工具。
本书以“平民”的起点,从“零”开始介绍深度学习的技术与技巧,让读者有良好的带入感和亲近感,并通过逐层铺垫,把学习曲线拉平,使得没有学过微积分等高级理论的程序员朋友一样能够读得懂、学得会。同时,本书配合漫画插图来调节阅读气氛,并在每个原理讲解的部分都提供了对比和实例说明,相信每位读者都能有轻松、愉悦的阅读体验。
如果你的英文阅读能力比较强且有比较高的学术素养,如果你能够以英文原版文献(不论是公开课、论文,还是经典教材)作为首选的阅读资料,那么,仍然推荐你阅读英文原版内容,因为那将让你更为直接地接触相关知识。
基于本书的定位,在描述讨论对象的时候,我通常不会使用学术级别的词汇,而是尽可能使用程序员能够读懂的语言。因此,与经典的阅读材料相比,本书叙述的内容难免存在一些偏颇,甚至可能为了言简意赅地讲明原理而有失严谨。另外,在一个理论出现或者相关论文发表之后,从我把它读懂、写清楚到图书出版,至少需要一年,甚至可能更久,而这对于一个在领域前沿工作的技术人员来说,时间显得有些长。因此,对于学习能力比较强的读者来说,本书作为工程实现参考书更为合适。
读者对象
本书适合如下人员阅读。
*对深度学习和强化学习感兴趣但完全不了解的技术人员。
*对深度学习和强化学习比较感兴趣的技术人员。
*深度学习和强化学习领域的初级从业人员。
*希望对深度学习和强化学习进行入门了解的技术人员。
如何阅读本书
本书是我写作的“白话”系列图书的第三本,与《白话大数据与深度学习》《白话深度学习与TensorFlow》互为姊妹篇。但是,本书不依赖另外两本书的内容,是独立成册的。
本书的主要内容如下。
第1章到第5章,讲的是传统强化学习的研究目标与脉络,主要介绍了从一个程序员的角度怎么理解强化学习最为轻松,侧重于理解方式的诱导。
第6章到第11章,是本书的核心内容,讲的是深度学习的原理、PyTorch框架的基本知识及深度强化学习的常用算法模型。
第12章到第15章,讲的是扩展性的知识。例如,其他有助于训练模型的算法思路,第三方工具插件,可供实验的环境,一些有趣的强化学习算法和观点,甚至模型落地过程中的优化与压缩。
附录A中详细记载了本书涉及的各种软件环境的安装和配置过程。
套用一句时髦的广告语:“深度强化学习从入门到落地,读这一本就够了。”
勘误与支持
由于作者的水平有限,编写时间仓促,书中难免会出现错误或者不准确的地方,恳请读者批评指正。
如果你有更多的宝贵意见,欢迎关注“智能工厂”微信公众号和我们进行互动讨论。你也可以在这里找到本书配套代码的下载地址和QQ讨论群的相关信息。关注大数据尖端技术发展,关注“智能工厂”。
本书代码的下载地址为https://github.com/GAOYANGAU/DRLPytorch。
同时,你也可以发送电子邮件至77232517@qq.com与我联系。
期待得到你的真挚反馈,让我们在技术道路上互勉共进。
高 扬