《动手学深度学习》
前言
神经网络——我们在本书中关注的深度学习模型的前身,被认为是过时的工具。
就在过去的五年里,深度学习给世界带来了惊喜,推动了计算机视觉、自然语言处理、自动语音识别、强化学习和统计建模等领域的快速发展。
一种结合了代码、数学和HTML的媒介
任何一种计算技术要想发挥其全部影响力,都必须得到充分的理解、充分的文档记录,并得到成熟的、维护良好的工具的支持。关键思想应该被清楚地提炼出来,尽可能减少需要让新的从业者跟上时代的入门时间。成熟的库应该自动化常见的任务,示例代码应该使从业者可以轻松地修改、应用和扩展常见的应用程序,以满足他们的需求。
应用深度学习需要同时了解
(1)以特定方式提出问题的动机;
(2)给定建模方法的数学;
(3)将模型拟合数据的优化算法;
(4)能够有效训练模型、克服数值计算缺陷并最大限度地利用现有硬件的工程方法。
同时教授表述问题所需的批判性思维技能、解决问题所需的数学知识,以及实现这些解决方案所需的软件工具,这是一个巨大的挑战。
公式、定理和引用最好用LaTeX来管理和布局。代码最好用Python描述。网页原生是HTML和JavaScript的。
此外,我们希望内容既可以作为可执行代码访问、作为纸质书访问,作为可下载的PDF访问,也可以作为网站在互联网上访问。目前还没有完全适合这些需求的工具和工作流程,所以我们不得不自行组装。
我们选择GitHub来共享源代码并允许编辑,选择Jupyter记事本来混合代码、公式和文本,选择Sphinx作为渲染引擎来生成多个输出,并为论坛提供讨论。
内容和结构
全书结构第一部分包括基础知识和预备知识。
- 1节,提供深度学习的入门课程。
- 2节,快速介绍实践深度学习所需的前提条件
- 例如如何存储和处理数据,以及如何应用基于线性代数、微积分和概率基本概念的各种数值运算。
- 3节和4节, 涵盖了深度学习的最基本概念和技术
- 例如线性回归、多层感知机和正则化。
第二部分集中讨论现代深度学习技术。
- 5节, 描述了深度学习计算的各种关键组件,并为随后实现更复杂的模型奠定了基础。
- 6节和 7节,介绍卷积神经网络(convolutional neural network,CNN)
- 这是构成大多数现代计算机视觉系统骨干的强大工具。
- 8节和9节,引入循环神经网络(recurrent neural network,RNN)
- 这是一种利用数据中的时间或序列结构的模型,通常用于自然语言处理和时间序列预测。
- 10节,介绍一类新的模型,它采用了注意力机制的技术
- 最近它们已经开始在自然语言处理中取代循环神经网络。这一部分将帮助读者快速了解大多数现代深度学习应用背后的基本工具。
第三部分讨论可伸缩性、效率和应用程序。
- 11节,讨论用于训练深度学习模型的几种常用优化算法。
- 12节,探讨影响深度学习代码计算性能的几个关键因素。
- 13节,展示深度学习在计算机视觉中的主要应用。
- 14节和15节,展示如何预训练语言表示模型并将其应用于自然语言处理任务。
代码
本书中的大部分代码都是基于Apache MXNet的。MXNet是深度学习的开源框架,是亚马逊以及许多大学和公司的首选。
网友评论