新智元报道
编辑:元子
深度学习在短短几年之内便让世界大吃一惊。
它非常有力地推动了计算机视觉、自然语言处理、自动语音识别、强化学习和统计建模等多个领域的快速发展。
随着这些领域的不断进步,人们现在可以制造自动驾驶的汽车,基于短信、邮件甚至电话的自动回复系统,以及在围棋中击败最优秀人类选手的软件。这些由深度学习带来的新工具也正产生着广泛的影响。
与此同时,深度学习也给它的使用者们带来了独一无二的挑战:任何单一的应用都汇集了各学科的知识。
具体来说,应用深度学习需要同时理解:
问题的动机和特点;
将大量不同类型神经网络层通过特定方式组合在一起的模型背后的数学原理;
在原始数据上拟合极复杂的深层模型的优化算法;
有效训练模型、避免数值计算陷阱以及充分利用硬件性能所需的工程技能;
为解决方案挑选合适的变量(超参数)组合的经验。
这就为读者学习深度学习(尤其是在选择学习书目的过程中)带来了一定的挑战。
要论深度学习的经典教材,李沐等合著的《Dive into Deep Learning》绝对是站在最前排的,中文版《动手学深度学习》。
本书同时覆盖深度学习的方法和实践,主要面向在校大学生、技术人员和研究人员。在校学生和老师可以申请用于本书学习或教学的免费计算资源。
阅读本书需要读者了解基本的Python编程或附录中描述的线性代数、微分和概率基础。课件、作业、教学视频等资源可参考伯克利“深度学习导论”。
本书首先,对深度学习相关的基础和计算知识、预备知识、以及最基础的概念和技术进行介绍;接着,对深度学习计算的重要组成部分做了深入浅出的介绍,着重对深度学习领域非常重要的两个网络“卷积神经网络”和“循环神经网络”进行讲解;然后还讲到了优化算法和计算性能;最后介绍了计算机视觉、NLP,并通过Kaggle实战案例为大家提供实际项目的练习机会。
近日作者对英文版进行了更新,全面改进了预备知识一章, 并新增了推荐系统一章和深度学习的数学一章,相信中文版很快也会跟上。
地址:
https://github.com/d2l-ai/d2l-en
目前市面上有关深度学习介绍的书籍大多可分两类,一类侧重方法介绍,另一类侧重实践和深度学习工具的介绍。
本书同时覆盖方法和实践
本书不仅从数学的角度阐述深度学习的技术与应用,还包含可运行的代码,为读者展示如何在实际中解决问题。
为了给读者提供一种交互式的学习体验,《动手学深度学习》不但提供免费的教学视频和讨论区,而且提供可运行的Jupyter记事本文件,充分利用Jupyter记事本能将文字、代码、公式和图像统一起来的优势。
这样不仅直接将数学公式对应成实际代码,而且可以修改代码、观察结果并及时获取经验,从而带给读者全新的、交互式的深度学习的学习体验。
适合哪些人群阅读?
本书面向希望了解深度学习,特别是对实际使用深度学习感兴趣的大学生、工程师和研究人员。
本书不要求读者有任何深度学习或者机器学习的背景知识,读者只需具备基本的数学和编程知识,如基础的线性代数、微分、概率及Python编程知识。
本书的附录中提供了书中涉及的主要数学知识,供读者参考。
与其它深度学习教科书相比,有何独具匠心的特点?
目前,一些有关深度学习的教科书不断问世,那么《动手学深度学习》与这些教科书有何区别呢?
与Goodfellow《深度学习》相比
在近期不断问世的深度学习教科书中,最为著名的要数Goodfellow、Bengio和Courville的《深度学习》。该书梳理了深度学习背后的众多概念与方法,是一本极为优秀的教材。
然而,这类资源并没有将概念描述与实际代码相结合,以至于有时会令读者对如何实现它们感到毫无头绪。
与吴恩达的深度学习课程相比
在知乎中,李沐老师表达了与吴恩达的深度学习课程相比的区别:
我们不仅介绍深度学习模型,而且提供简单易懂的代码实现。我们不是通过幻灯片来讲解,而是通过解读代码,实际动手调参数和跑实验来学习。
我们使用中文。不管是教材、直播,还是论坛。(虽然在美国呆了5至6年,事实上我仍然对一边听懂各式口音的英文一边理解内容很费解)。
Andrew的课程目前免费版本只能看视频,而我们不仅仅直播教学,而且提供练习题,提供大家交流的论坛,并鼓励大家在GitHub上参与到课程的改进。希望能与大家更近距离的进行交流。
除了这些以外,商业课程提供者们虽然制作了众多的优质资源,但它们的付费门槛依然令不少用户望而生畏。
当然如果你觉得英文版学起来有困难的话,可以先看中文课件及教学视频,目前和英文最新版有一点点不同,但不影响学习:
https://github.com/d2l-ai/berkeley-stat-157/tree/master/slides-zh
中文版本提供两种方式供读者选择:
在线HTML版。互动性更强,更方便在电脑上阅读,可以随时浏览免费资源、参与讨论等
离线PDF版。适合使用iPad、Kindle等电子书阅读器阅读。而且本书非常贴心的在每章后面都附上二维码,读者可以扫码直接参与章节讨论
http://zh.d2l.ai/aws4learn.html
对于为什么会有这本书,作者是这样回答的:
我们在2017年7月启动了写作这本书的项目。当时我们需要向用户解释Apache MXNet在那时的新接口Gluon。不幸的是,我们并没有找到任何一个资源可以同时满足以下几点需求:
包含较新的方法和应用,并不断更新;
广泛覆盖现代深度学习技术并具有一定的技术深度;
既是严谨的教科书,又是包含可运行代码的生动的教程。
那时,我们在博客和GitHub上找到了大量的演示特定深度学习框架(例如用TensorFlow进行数值计算)或实现特定模型(例如AlexNet、ResNet等)的示例代码。这些示例代码的一大价值在于提供了教科书或论文往往省略的实现细节,比如数据的处理和运算的高效率实现。如果不了解这些,即使能将算法倒背如流,也难以将算法应用到自己的项目中去。此外,这些示例代码还使得用户能通过观察修改代码所导致的结果变化而快速验证想法、积累经验。因此,我们坚信动手实践对于学习深度学习的重要性。然而可惜的是,这些示例代码通常侧重于如何实现给定的方法,却忽略了有关算法设计的探究或者实现细节的解释。虽然在像Distill这样的网站和某些博客上出现了一些有关算法设计和实现细节的讨论,但它们常常缺少示例代码,并通常仅覆盖深度学习的一小部分。
另外,我们欣喜地看到了一些有关深度学习的教科书不断问世,其中最著名的要数Goodfellow、Bengio和Courville的《深度学习》。该书梳理了深度学习背后的众多概念与方法,是一本极为优秀的教材。然而,这类资源并没有将概念描述与实际代码相结合,以至于有时会令读者对如何实现它们感到毫无头绪。除了这些以外,商业课程提供者们虽然制作了众多的优质资源,但它们的付费门槛依然令不少用户望而生畏。
正因为这样,深度学习用户,尤其是初学者,往往不得不参考来源不同的多种资料。例如,通过教科书或者论文来掌握算法及其相关数学知识,阅读线上文档学习深度学习框架的使用方法,然后寻找感兴趣的算法在这个框架上的实现并摸索如何将它应用到自己的项目中去。如果你正亲身经历这一过程,你可能会感到痛苦:不同来源的资料有时难以相互一一对应,即便能够对应也可能需要花费大量的精力。例如,我们需要将某篇论文公式中的数学变量与某段网上实现中的程序变量一一对应,并在代码中找到论文可能没交代清楚的实现细节,甚至要为运行不同的代码安装不同的运行环境。
针对以上存在的痛点,我们正在着手创建一个为实现以下目标的统一资源:
所有人均可在网上免费获取;
提供足够的技术深度,从而帮助读者实际成为深度学习应用科学家:既理解数学原理,又能够实现并不断改进方法;
包含可运行的代码,为读者展示如何在实际中解决问题。这样不仅直接将数学公式对应成实际代码,而且可以修改代码、观察结果并及时获取经验;
允许我们和整个社区不断快速迭代内容,从而紧跟仍在高速发展的深度学习领域;
由包含有关技术细节问答的论坛作为补充,使大家可以相互答疑并交换经验。
这些目标往往互有冲突:公式、定理和引用最容易通过LaTeX进行管理和展示,代码自然应该用简单易懂的Python描述,而网页本身应该是一堆HTML及配套的CSS和JavaScript。此外,我们希望这个资源可以作为可执行代码、实体书以及网站。然而,目前并没有任何工具可以完美地满足以上所有需求。
因此,我们不得不自己来集成这样的一个工作流。我们决定在GitHub上分享源代码并允许提交编辑,通过Jupyter记事本来整合代码、公式、文本、图片等,使用Sphinx作为渲染引擎来生成不同格式的输出,并使用Discourse作为论坛。虽然我们的系统尚未完善,但这些选择在互有冲突的目标之间取得了较好的折中。这很可能是使用这种集成工作流发布的第一本书。
来自学术界
这是一本及时且引人入胜的书。它不仅提供了深度学习原理的全面概述,还提供了具有编程代码的详细算法,此外,还提供了计算机视觉和自然语言处理中有关深度学习的最新介绍。如果你想钻研深度学习,请研读这本书!
——韩家炜,ACM 院士、IEEE 院士、美国伊利诺伊大学香槟分校计算机系Abel Bliss教授
这是对机器学习文献的一个很受欢迎的补充,重点是通过集成Jupyter 记事本实现的动手经验。深度学习的学生应该能体会到,这对于熟练掌握这一领域是非常宝贵的。
——Bernhard Schölkopf,ACM 院士、德国国家科学院院士、德国马克斯• 普朗克研究所智能系统院院长
这本书基于MXNet 框架来介绍深度学习技术,书中代码可谓“所学即所用”,为喜欢通过Python 代码进行学习的读者了解、接触深度学习技术提供了很大的便利。
——周志华,ACM 院士、IEEE 院士、AAAS 院士、南京大学计算机科学与技术系主任
这是一本基于Apache MXNet 的深度学习实战书籍,可以帮助读者快速上手并掌握使用深度学习工具的基本技能。本书的几个作者都在机器学习领域有着非常丰富的经验。他们不光有大量的工业界实践经验,也有非常高的学术成就,所以对机器学习领域的前沿算法理解深刻。这使得作者们在提供优质代码的同时,也可以把最前沿的算法和概念深入浅出地介绍给读者。这本书可以帮助深度学习实践者快速提升自己的能力。
——张潼,香港科技大学计算机科学与数学教授
来自工业界
虽然业界已经有不错的深度学习方面的书籍,但都不够紧密结合工业界的应用实践。我认为《动手学深度学习》是最适合工业界研发工程师学习的,因为这本书把算法理论、应用场景、代码实例都完美地联系在一起,引导读者把理论学习和应用实践紧密结合,知行合一,在动手中学习,在体会和领会中不断深化对深度学习的理解。因此我毫无保留地向广大的读者强烈推荐《动手学深度学习》。
——余凯,地平线公司创始人、首席执行官
强烈推荐这本书!它其实远不只是一本书:它不仅讲解深度学习背后的数学原理,更是一个编程工作台与记事本,让读者可以一边动手学习一边收到反馈,它还是个开源社区平台,让大家可以交流。作为在AI 学术界和工业界都长期工作过的人,我特别赞赏这种手脑一体的学习方式,既能增强实践能力,又可以在解决问题中锻炼独立思考和批判性思维。
作者们是算法工程兼强的业界翘楚,他们能奉献出这样的一本好的开源书,为他们点赞!
——漆远,蚂蚁金服副总裁、首席人工智能科学家
阿斯顿·张(Aston Zhang)
亚马逊应用科学家,美国伊利诺伊大学香槟分校计算机科学博士,统计学和计算机科学双硕士。他专注于机器学习的研究,并在数个顶级学术会议发表过论文。他担任过NeurIPS、ICML、KDD、WWW、WSDM、SIGIR、AAAI 等学术会议的程序委员或审稿人以及Frontiers in Big Data 期刊的编委。
李沐(Mu Li)
亚马逊首席科学家(Principal Scientist),加州大学伯克利分校客座助理教授,美国卡内基梅隆大学计算机系博士。他专注于分布式系统和机器学习算法的研究。他是深度学习框架MXNet 的作者之一。他曾任机器学习创业公司Marianas Labs 的CTO 和百度深度学习研究院的主任研发架构师。他在理论、机器学习、应用和操作系统等多个领域的顶级学术会议(包括FOCS、ICML、NeurIPS、AISTATS、CVPR、KDD 、WSDM、OSDI)上发表过论文。
[德] 亚历山大 J. 斯莫拉(Alexander J. Smola)
亚马逊副总裁/ 杰出科学家,德国柏林工业大学计算机科学博士。他曾在澳大利亚国立大学、美国加州大学伯克利分校和卡内基梅隆大学任教。他发表了超过200 篇学术论文,并著有5 本书,其论文及书被引用超过10 万次。他的研究兴趣包括深度学习、贝叶斯非参数、核方法、统计建模和可扩展算法。
[美] 扎卡里 C. 立顿(Zachary C. Lipton)
亚马逊副总裁/ 杰出科学家,德国柏林工业大学计算机科学博士。他曾在澳大利亚国立大学、美国加州大学伯克利分校和卡内基梅隆大学任教。他发表了超过200 篇学术论文,并著有5 本书,其论文及书被引用超过10 万次。他的研究兴趣包括深度学习、贝叶斯非参数、核方法、统计建模和可扩展算法。