翻译: 深入神经网络概览Dive into Deep Learning

1. 简介

直到最近,我们每天与之交互的几乎所有计算机程序都是由软件开发人员根据第一原理编码的。假设我们想编写一个应用程序来管理一个电子商务平台。在围着白板花了几个小时思考这个问题之后,我们会想出一个可行的解决方案的大致思路,可能看起来像这样:

  • (i) 用户通过在 Web 浏览器中运行的界面与应用程序交互或移动应用程序;
  • (ii) 我们的应用程序与商业级数据库引擎交互,以跟踪每个用户的状态并维护历史交易记录;
  • (iii) 在我们应用程序的核心,业务逻辑(你可能会说,大脑) 我们的应用程序有条不紊地详细说明了我们的程序在每一种可能的情况下应该采取的适当行动。

为了构建我们的应用程序的大脑,我们必须逐步检查我们预计会遇到的每一个可能的极端情况,设计适当的规则。每次客户单击以将商品添加到他们的购物车时,我们都会在购物车数据库表中添加一个条目,将该用户的 ID 与请求的产品 ID 相关联。虽然很少有开发人员第一次就完全正确(可能需要一些测试运行才能解决问题),但在大多数情况下,我们可以根据第一原则编写这样的程序,并在 见到真正的客户之前自信地启动它。我们根据驱动功能产品和系统的第一原理设计自动化系统的能力,通常是在新颖的情况下,这是一项了不起的认知壮举。当您能够设计出有效的解决方案时 100% 当时,您不应该使用机器学习。

幸运的是,对于不断壮大的机器学习科学家社区来说,我们希望自动化的许多任务不会轻易屈服于人类的聪明才智。想象一下,与您所知道的最聪明的人一起围在白板上,但这次您正在解决以下问题之一:

  • 编写一个程序,根据地理信息、卫星图像和过去天气的跟踪窗口预测明天的天气。
  • 编写一个程序,接受一个问题,用自由格式的文本表达,并正确回答。
  • 编写一个程序,给定一张图片,可以识别其中包含的所有人,并在每个人周围画出轮廓。
  • 编写一个程序,向用户展示他们可能会喜欢但在自然浏览过程中不太可能遇到的产品。

在每种情况下,即使是精英程序员也无法从头开始编写解决方案。其原因可能会有所不同。有时我们正在寻找的程序遵循随时间变化的模式,我们需要我们的程序来适应。在其他情况下,关系(例如像素和抽象类别之间)可能过于复杂,即使我们的眼睛毫不费力地完成任务,也需要进行数千或数百万次超出我们意识理解的计算。机器学习是对可以从经验中学习的强大技术的研究。随着机器学习算法积累更多经验,通常以观察数据或与环境交互的形式,其性能会提高。将此与我们的确定性电子商务平台进行对比,该平台根据相同的业务逻辑执行,无论积累了多少经验,直到开发人员自己了解并决定是时候更新软件了。在本书中,我们将向您介绍机器学习的基础知识,并特别关注深度学习,这是一套强大的技术,可推动计算机视觉、自然语言处理、医疗保健和基因组学等多个领域的创新。

1.1 一个智能语音的例子

在开始写作之前,这本书的作者,就像许多工作人员一样,不得不喝咖啡。我们跳上车开始开车。亚历克斯使用 iPhone 喊出“嘿 Siri”,唤醒了手机的语音识别系统。然后穆命令“去蓝瓶咖啡店的方向”。手机很快显示出他的命令转录。它还认识到我们在问路,并启动了地图应用程序(app)来满足我们的请求。启动后,地图应用程序确定了许多路线。在每条路线旁边,手机都会显示预计的运输时间。虽然我们为了教学方便而编造了这个故事,但它表明,在短短几秒钟内,我们与智能手机的日常交互可以使用多种机器学习模型。

想象一下,只是编写一个程序来响应诸如“Alexa”、“OK Google”和“Hey Siri”之类的唤醒词。尝试在一个房间里自己编写代码,只需要一台计算机和一个代码编辑器,如图 1.1.1 所示。您将如何从第一原理编写这样的程序一想……问题很难。每秒,麦克风将收集大约 44000 个样本。每个样本都是声波幅度的测量值。什么规则可以可靠地从原始音频片段映射到可靠的预测 {yes,no} 关于片段是否包含唤醒词果您被卡住了,请不要担心。我们也不知道如何从头开始编写这样的程序。这就是我们使用机器学习的原因。

翻译: 深入神经网络概览Dive into Deep Learning
图 1.1.2一个典型的训练过程。

总而言之,我们不是编写一个唤醒词识别器,而是编写一个可以学习识别唤醒词的程序,如果我们向它提供一个大的标记数据集。您可以将这种通过将数据集呈现给程序来确定程序行为的行为视为使用数据进行编程. 也就是说,我们可以通过为我们的机器学习系统提供许多猫和狗的例子来“编程”一个猫检测器。这样,检测器最终将学会发出一个非常大的正数,如果它是一只猫,一个非常大的负数,如果它是一只狗,如果它不确定,它会接近零,这几乎不会触及表面机器学习可以做到。深度学习,我们稍后会更详细地解释,只是解决机器学习问题的众多流行方法之一。

1.2. 关键部件

在我们的唤醒词示例中,我们描述了一个由音频片段和二进制标签组成的数据集,并且我们对如何训练模型以近似从片段到分类的映射给出了一种直观的感觉。这类问题,我们尝试根据已知输入来预测指定的未知标签,给定一个由标签已知的示例组成的数据集,称为 监督学习。这只是众多机器学习问题中的一种。稍后我们将深入探讨不同的机器学习问题。首先,无论我们处理什么样的机器学习问题,我们都想更清楚地了解一些将跟随我们的核心组件:

  1. 我们可以从中学习的数据。
  2. 如何转换数据的模型。
  3. 一个目标函数,用于量化模型做得好(或坏)的程度。
  4. 一种调整模型参数以优化目标函数的算法。

1.2.1 数据

不用说,没有数据就无法进行数据科学。我们可能会浪费数百页来思考究竟是什么构成了数据,但现在,我们将在实际方面犯错,并专注于要关注的关键属性。通常,我们关注的是示例集合。为了有效地处理数据,我们通常需要提出一个合适的数字表示。每个 示例(或数据点、数据实例、样本)通常由一组称为特征(或协变量)的属性组成),模型必须从中做出预测。在上面的监督学习问题中,要预测的东西是一个特殊的属性,它被指定为标签(或目标)。

如果我们使用图像数据,每张单独的照片都可能构成一个示例,每张照片都由对应于每个像素的亮度的有序数值列表表示。一种 200×200 彩色照片将包括 200×200×3=120000 数值,对应于每个空间位置的红色、绿色和蓝色通道的亮度。在另一项传统任务中,我们可能会尝试根据一组标准特征(例如年龄、生命体征和诊断)来预测患者是否能够存活。

当每个示例都以相同数量的数值为特征时,我们说数据由固定长度的向量组成,我们将向量的恒定长度描述为数据的维数。正如您可能想象的那样,固定长度可能是一个方便的属性。如果我们想训练一个模型来识别显微镜图像中的癌症,固定长度的输入意味着我们可以少担心一件事。

但是,并非所有数据都可以轻松地表示为固定长度的 向量。虽然我们可能期望显微镜图像来自标准设备,但我们不能期望从互联网上挖掘的图像都以相同的分辨率或形状显示。对于图像,我们可能会考虑将它们全部裁剪为标准尺寸,但这种策略只能让我们做到这一点。我们冒着丢失裁剪部分中的信息的风险。此外,文本数据更顽固地抵制固定长度的表示。考虑亚马逊、IMDB 和 TripAdvisor 等电子商务网站上留下的客户评论。有些很短:“它很臭!”。其他人则为页面而徘徊。与传统方法相比,深度学习的一个主要优势是现代模型可以处理 不同长度的数据。

一般来说,我们拥有的数据越多,我们的工作就越容易。当我们拥有更多数据时,我们可以训练更强大的模型,并减少对先入为主的假设的依赖。从(相对)小数据到大数据的制度变化是现代深度学习成功的主要贡献者。为了说明这一点,深度学习中许多最令人兴奋的模型如果没有大型数据集就无法工作。其他一些在小数据机制中工作,但并不比传统方法好。

最后,仅仅拥有大量数据并巧妙地处理它是不够的。我们需要正确的数据。如果数据充满错误,或者如果选择的特征不能预测感兴趣的目标数量,那么学习就会失败。陈词滥调很好地捕捉到了这种情况:垃圾进,垃圾出. 此外,较差的预测性能并不是唯一的潜在后果。在机器学习的敏感应用中,例如预测性监管、简历筛选和用于贷款的风险模型,我们必须特别警惕垃圾数据的后果。一种常见的故障模式发生在训练数据中没有代表某些人群的数据集中。想象一下在以前从未见过黑色皮肤的野外应用皮肤癌识别系统。当数据不仅未充分代表某些群体而且反映社会偏见时,也可能发生失败。例如,如果使用过去的招聘决定来训练用于筛选简历的预测模型,那么机器学习模型可能会无意中捕捉和自动化历史不公正。

1.2.2 模型

大多数机器学习都涉及在某种意义上转换数据。我们可能想要构建一个系统来摄取照片并预测笑脸。或者,我们可能想要获取一组传感器读数并预测读数的正常与异常情况。按 型号,我们表示用于摄取一种类型的数据并输出可能不同类型的预测的计算机制。特别是,我们对可以从数据中估计的统计模型感兴趣。虽然简单模型完全能够解决适当简单的问题,但我们在本书中关注的问题扩展了经典方法的局限性。深度学习与经典方法的区别主要在于它关注的一组强大的模型。这些模型由许多连续的数据转换组成,这些数据从上到下链接在一起,因此得名深度学习。在讨论深度模型的过程中,我们还将讨论一些更传统的方法。

1.2.3 目标函数

早些时候,我们将机器学习介绍为从经验中学习。通过 在这里学习,我们的意思是随着时间的推移在某些任务上有所改进。但是谁能说什么是改进呢可能会想象我们可以提议更新我们的模型,而有些人可能会不同意提议的更新是否构成改进或下降。

为了开发一个正式的学习机器数学系统,我们需要对我们的模型有多好(或多坏)有正式的衡量标准。在机器学习和更一般的优化中,我们将这些 目标函数称为目标函数。按照惯例,我们通常定义目标函数,以便越低越好。这只是一个约定。您可以采用任何更高更好的函数,然后通过翻转符号将其转换为质量相同但更低更好的新函数。因为越低越好,这些函数有时被称为损失函数。

在尝试预测数值时,最常见的损失函数是平方误差,即预测值与真实值之差的平方。对于分类,最常见的目标是最小化错误率,即我们的预测与基本事实不一致的示例比例。一些目标(例如平方误差)很容易优化。由于不可微性或其他复杂性,其他(例如,错误率)难以直接优化。在这些情况下,通常会优化 替代目标。

通常,损失函数是根据模型的参数定义的,并且取决于数据集。我们通过最小化由为训练收集的一些示例组成的集合所产生的损失来学习模型参数的最佳值。然而,在训练数据上做得很好并不能保证我们在看不见的数据上做得很好。因此,我们通常希望将可用数据分成两个部分:训练数据集(或训练集,用于拟合模型参数)和测试数据集(或测试集),用于评估),报告模型在两者上的表现。您可以将培训表现视为学生在练习考试中的分数,用于准备一些真正的期末考试。即使结果令人鼓舞,也不能保证在期末考试中取得成功。换句话说,测试性能可能会显着偏离训练性能。当一个模型在训练集上表现良好但无法泛化到看不见的数据时,我们说它是 过拟合的。在现实生活中,这就像在实践考试中表现出色但在真实考试中不及格一样。

1.2.4 优化算法

一旦我们获得了一些数据源和表示、模型和明确定义的目标函数,我们就需要一种能够搜索最佳参数以最小化损失函数的算法。流行的深度学习优化算法基于一种称为梯度下降的方法。简而言之,在每个步骤中,此方法都会检查每个参数,如果您仅对该参数进行少量扰动,则训练集损失会以何种方式移动。然后它在可能减少损失的方向上更新参数。

1.3. 机器学习问题的种类

在我们的激励示例中,唤醒词问题只是机器学习可以解决的众多问题之一。为了进一步激发读者的兴趣并在我们在整本书中讨论更多问题时为我们提供一些共同语言,下面我们列出了机器学习问题的示例。我们将不断参考我们前面提到的概念,例如数据、模型和训练技术。

1.3.1 监督学习 Supervised learning

监督学习解决了在给定输入特征的情况下预测标签的任务。每个特征-标签对称为一个示例。有时,当上下文很清楚时,我们可以使用术语示例来指代输入的集合,即使相应的标签是未知的。我们的目标是生成一个将任何输入映射到标签预测的模型。

为了将此描述建立在一个具体的例子中,如果我们在医疗保健领域工作,那么我们可能想要预测患者是否会心脏病发作。这种观察,“心脏病发作”或“没有心脏病发作”,将成为我们的标签。输入特征可能是生命体征,例如心率、舒张压和收缩压。

监督开始发挥作用,因为为了选择参数,我们(监督者)为模型提供了一个由标记示例组成的数据集,其中每个示例都与真实标签匹配。在概率方面,我们通常对估计给定输入特征的标签的条件概率感兴趣。虽然它只是机器学习中的几种范式之一,但监督学习占机器学习在工业中成功应用的大部分。部分原因是因为许多重要任务可以明确地描述为在给定一组特定可用数据的情况下估计未知事物的概率:

给定计算机断层扫描图像,预测癌症与非癌症。

给定一个英文句子,预测法语的正确翻译。

根据本月的财务报告数据预测下个月的股票价格。

即使使用简单的描述“根据输入特征预测标签”,监督学习也可以采用多种形式并需要大量建模决策,具体取决于(除其他考虑因素外)类型、大小以及输入和输出的数量。例如,我们使用不同的模型来处理任意长度的序列和处理固定长度的向量表示。我们将在本书中深入探讨其中的许多问题。

非正式地,学习过程如下所示。首先,获取大量已知特征的示例,并从中选择一个随机子集,获取每个示例的真实标签。有时这些标签可能是已经收集的可用数据(例如,患者是否在下一年内死亡而其他时候,我们可能需要使用人工注释器来标记数据(例如,将图像分配给类别)。这些输入和相应的标签一起构成了训练集。我们将训练数据集输入到监督学习算法中,该算法将数据集作为输入并输出另一个函数:学习模型。最后,我们可以将以前看不见的输入提供给学习模型,使用它的输出作为相应标签的预测。图 1.3.1。

翻译: 深入神经网络概览Dive into Deep Learning
图 1.3.2死亡帽——不能吃的东西!

现在,假设您构建了一个分类器并训练它根据照片预测蘑菇是否有毒。假设我们的毒物检测分类器输出图 1.3.2 包含死亡上限的概率为 0.2。换句话说,分类器 80% 确定我们的蘑菇不是死帽。不过,你必须是个傻瓜才能吃它。那是因为一顿美味晚餐的某些好处不值得冒 20% 的死亡风险。换句话说,不确定性风险的影响远远超过了收益。因此,我们需要计算我们作为损失函数所产生的预期风险,即我们需要将结果的概率乘以与之相关的利益(或伤害)。在这种情况下,食用蘑菇所造成的损失可能是 ,而丢弃它的损失是 . 我们的谨慎是有道理的:正如任何真菌学家会告诉我们的那样,图 1.3.2中的蘑菇 实际上是一个死亡帽。

分类可能比二进制、多类甚至多标签分类复杂得多。例如,有一些用于寻址层次结构的分类变体。层次结构假设在许多类之间存在一些关系。所以不是所有的错误都是平等的——如果我们必须犯错,我们宁愿错误分类到一个相关的类而不是一个遥远的类。通常,这被称为层次分类。一个早期的例子要归功于林奈,他将动物组织成一个等级。

在动物分类的情况下,将贵宾犬(一种犬种)误认为雪纳瑞(另一种犬种)可能并没有那么糟糕,但如果将贵宾犬与恐龙混淆,我们的模型将付出巨大的代价。哪个层次结构相关可能取决于您计划如何使用模型。例如,响尾蛇和吊袜带蛇可能在系统发育树上很接近,但将响尾蛇误认为吊袜带可能是致命的。

1.3.1.3。标记

一些分类问题很适合二进制或多类分类设置。例如,我们可以训练一个正常的二元分类器来区分猫和狗。鉴于计算机视觉的当前状态,我们可以使用现成的工具轻松做到这一点。尽管如此,无论我们的模型有多准确,当分类器遇到不来梅城市音乐家的图像时,我们可能会遇到麻烦,这是 一个流行的德国童话故事,在图 1.3.3中有四只动物。

翻译: 深入神经网络概览Dive into Deep Learning

图 1.3.4亚马逊推荐的深度学习书籍。

尽管具有巨大的经济价值,但天真地建立在预测模型之上的推荐系统仍存在一些严重的概念缺陷。首先,我们只观察审查的反馈:用户优先评价他们强烈喜欢的电影。例如,在 5 分制中,您可能会注意到许多项目获得了很多 5 星和 1 星评级,但很少有 3 星评级。此外,当前的购买习惯往往是当前推荐算法的结果,但学习算法并不总是考虑到这个细节。因此,有可能形成反馈循环,其中推荐系统优先推送一个项目,然后该项目被认为是更好的(由于更多的购买),进而被更频繁地推荐。许多关于如何处理审查、激励和反馈循环的问题都是重要的开放性研究问题。

1.3.1.6。序列学习

到目前为止,我们已经研究了一些固定数量的输入并产生固定数量的输出的问题。例如,我们考虑从一组固定的特征来预测房价:平方英尺、卧室数量、浴室数量、步行到市中心的时间。我们还讨论了从(固定维度的)图像映射到它属于固定数量类中的每一个的预测概率,或者获取用户 ID 和产品 ID,并预测星级。在这些情况下,一旦我们将固定长度的输入输入模型以生成输出,模型就会立即忘记它刚刚看到的内容。

如果我们的输入真的都具有相同的维度并且连续的输入真的彼此无关,那么这可能很好。但是我们将如何处理视频片段这种情况下,每个片段可能包含不同数量的帧。如果我们考虑到前一帧或后一帧,我们对每一帧中发生的事情的猜测可能会更强。语言也是如此。一个流行的深度学习问题是机器翻译:提取某种源语言的句子并预测其翻译成另一种语言的任务。

这些问题在医学上也存在。我们可能需要一个模型来监测重症监护病房中的患者,并在他们在接下来的 24 小时内死亡的风险超过某个阈值时发出警报。我们绝对不希望这个模型每小时丢弃它所知道的关于患者病史的所有信息,而只是根据最近的测量结果做出预测。

这些问题是机器学习最令人兴奋的应用之一,它们是序列学习的实例。它们需要一个模型来摄取输入序列或发出输出序列(或两者兼而有之)。具体来说,序列到序列学习 考虑输入和输出都是可变长度序列的问题,例如机器翻译和从口语中转录文本。虽然不可能考虑所有类型的序列转换,但以下特殊情况值得一提。

标记和解析。这涉及使用属性注释文本序列。换句话说,输入和输出的数量基本相同。例如,我们可能想知道动词和主语在哪里。或者,我们可能想知道哪些词是命名实体。一般来说,目标是根据结构和语法假设对文本进行分解和注释,以获得一些注释。这听起来比实际上更复杂。下面是一个非常简单的示例,它使用标记来注释句子,这些标记指示哪些单词引用了命名实体(标记为“Ent”)。

自动语音识别。对于语音识别,输入序列是说话者的录音(如图 1.3.5所示),输出是说话者所说内容的文本记录。挑战在于音频帧(声音通常以 8kHz 或 16kHz 采样)比文本多得多,即音频和文本之间没有 1:1 的对应关系,因为数千个样本可能对应于一个口语单词。这些是序列到序列的学习问题,其中输出比输入短得多。

翻译: 深入神经网络概览Dive into Deep Learning

图 1.3.6从环境中收集数据进行监督学习。

这种离线学习的简单性有其魅力。好处是我们可以孤立地担心模式识别,而不会分心这些其他问题。但缺点是问题的表述非常有限。如果你更有野心,或者如果你从小就读过阿西莫夫的机器人系列,那么你可能会想象人工智能机器人不仅能够做出预测,还能在世界上采取行动。我们想考虑智能代理,而不仅仅是预测模型。这意味着我们需要考虑选择行动,而不仅仅是做出预测。此外,与预测不同,行动实际上会影响环境。如果我们想训练一个智能代理,我们必须考虑其行为可能影响代理未来观察的方式。

考虑与环境的交互会引发一整套新的建模问题。以下只是几个例子。

  • 环境是否记得我们之前所做的事情/p>

  • 环境是否想帮助我们,例如,用户将文本读入语音识别器/p>

  • 环境是否想击败我们,即像垃圾邮件过滤(针对垃圾邮件发送者)或玩游戏(与对手)这样的对抗环境/p>

  • 环境不在乎吗/p>

  • 环境是否有动态变化如,未来的数据是否总是与过去相似,或者模式是否会随着时间而变化,无论是自然地还是响应我们的自动化工具/p>

当训练和测试数据不同时,最后一个问题提出了分布偏移的问题。这是我们大多数人在参加讲师撰写的考试时遇到的问题,而作业是由他的助教撰写的。接下来,我们将简要描述强化学习,这是一种明确考虑与环境交互的设置。

1.3.4。强化学习

如果您有兴趣使用机器学习来开发与环境交互并采取行动的代理,那么您可能最终会专注于强化学习。这可能包括应用于机器人技术、对话系统,甚至开发用于视频游戏的人工智能 (AI)。将深度学习应用于强化学习问题的深度强化学习已经大受欢迎。仅使用视觉输入在 Atari 游戏中击败人类的突破性深度 Q 网络,以及在棋盘游戏 Go 中击败世界冠军的 AlphaGo 程序就是两个突出的例子。

强化学习给出了一个非常一般的问题陈述,其中代理在一系列时间步长上与环境交互。在每个时间步,代理接收来自环境的一些观察,并且必须选择随后通过某种机制(有时称为执行器)传输回环境的动作。最后,代理从环境中获得奖励。该过程如图 1.3.7 所示。然后代理接收后续观察,并选择后续动作,依此类推。强化学习代理的行为由策略控制。简而言之,政策只是一个将环境观察映射到动作的函数。强化学习的目标是产生一个好的策略。

翻译: 深入神经网络概览Dive into Deep Learning

图 1.4.1估计脚的长度。

图 1.4.1说明了这个估计器是如何工作的。16名成年男子在离开教堂时被要求排成一排。然后将它们的总长度除以 16,以获得现在为 1 英尺的估计值。这个“算法”后来被改进以处理畸形的脚——脚最短和最长的 2 人分别被送走,只对其余的人取平均值。这是修剪平均估计的最早示例之一。

随着数据的收集和可用性,统计数据真正起飞。它的一位巨匠Ronald Fisher (1890-1962)对其理论及其在遗传学中的应用做出了重大贡献。他的许多算法(如线性判别分析)和公式(如Fisher信息矩阵)至今仍在频繁使用。事实上,即使是 Fisher 在 1936 年发布的 Iris 数据集,有时仍然被用来说明机器学习算法。他也是优生学的支持者,这应该提醒我们,数据科学在道德上的可疑使用与其在工业和自然科学中的生产性使用一样悠久而持久。

对机器学习的第二个影响来自 Claude Shannon (1916-2001)的信息论和Alan Turing (1912-1954)的计算理论。图灵提出了“机器能思考吗的问题。在他著名的论文Computer Machinery and Intelligence [Turing, 1950]中。在他所说的图灵测试中,如果人类评估者难以根据文本交互区分来自机器和人类的回复,则可以认为机器是智能的。

另一个影响可以在神经科学和心理学中找到。毕竟,人类显然表现出智能行为。因此,询问是否可以解释并可能对这种能力进行逆向工程是合理的。以这种方式启发的最古老的算法之一是由Donald Hebb (1904-1985)制定的。在他的开创性著作《行为的组织》 [Hebb & Hebb, 1949],他假设神经元通过正强化学习。这被称为赫布学习规则。它是 Rosenblatt 感知器学习算法的原型,它为当今支持深度学习的许多随机梯度下降算法奠定了基础:强化理想行为并减少不良行为,以获得神经网络中参数的良好设置。

生物灵感是神经网络得名的原因。一个多世纪以来(可追溯到 Alexander Bain,1873 年和 James Sherrington,1890 年的模型),研究人员一直试图组装类似于相互作用神经元网络的计算电路。随着时间的推移,对生物学的解释已经变得不那么字面了,但名字却被保留了下来。其核心是当今大多数网络中都可以找到的一些关键原则:

线性和非线性处理单元的交替,通常称为层。

使用链式法则(也称为反向传播)一次调整整个网络中的参数。

在最初的快速进展之后,神经网络的研究从 1995 年左右一直到 2005 年都萎靡不振。这主要是由于两个原因。首先,训练网络在计算上非常昂贵。虽然在上个世纪末随机存取存储器很丰富,但计算能力却很匮乏。其次,数据集相对较小。事实上,Fisher 1932 年的 Iris 数据集是测试算法有效性的流行工具。具有 60000 个手写数字的 MNIST 数据集被认为是巨大的。

鉴于数据和计算的稀缺性,强大的统计工具(如核方法、决策树和图形模型)在经验上证明是优越的。与神经网络不同,它们不需要数周的训练,并提供具有强大理论保证的可预测结果。

1.5。深度学习之路

由于万维网、为数亿在线用户提供服务的公司的出现、廉价、高质量传感器的传播、廉价的数据存储(克莱德定律),这在很大程度上随着大量数据的随时可用而发生了变化,以及廉价的计算(摩尔定律),特别是 GPU 的形式,最初是为计算机游戏而设计的。突然之间,似乎在计算上不可行的算法和模型变得相关(反之亦然)。这在表 1.5.1中得到了最好的说明。

表 1.5.1数据集与计算机内存和计算能力

翻译: 深入神经网络概览Dive into Deep Learning
很明显,随机存取存储器并没有跟上数据增长的步伐。与此同时,计算能力的增长已经超过了可用数据的增长速度。这意味着统计模型需要提高内存效率(这通常通过添加非线性来实现),同时由于计算预算增加,需要花费更多时间优化这些参数。因此,机器学习和统计的最佳点从(广义)线性模型和核方法转移到了深度神经网络。这也是为什么许多深度学习中流砥柱的原因之一,例如多层感知器 [McCulloch & Pitts, 1943]、卷积神经网络 [LeCun et al., 1998]、长短期记忆 [Hochreiter & Schmidhuber, 1997]和 Q-Learning [Watkins & Dayan, 1992]在相对休眠相当长一段时间后,在过去十年中基本上被“重新发现”。

统计模型、应用程序和算法的最新进展有时被比作寒武纪大爆发:物种进化的快速进展时刻。事实上,最先进的技术不仅仅是可用资源的结果,它适用于几十年前的算法。请注意,下面的列表几乎没有触及帮助研究人员在过去十年中取得巨大进步的想法的表面。

  • 容量控制的新方法,例如dropout [Srivastava et al., 2014],有助于减轻过度拟合的危险。这是通过在整个神经网络中应用噪声注入[Bishop, 1995]来实现的,将权重替换为用于训练目的的随机变量。

  • 注意力机制解决了困扰统计学一个多世纪的第二个问题:如何在不增加可学习参数数量的情况下增加系统的内存和复杂性。研究人员通过使用只能被视为可学习的指针结构找到了一个优雅的解决方案 [Bahdanau et al., 2014]。不必记住整个文本序列,例如,对于固定维度表示的机器翻译,需要存储的只是指向翻译过程中间状态的指针。这允许显着提高长序列的准确性,因为模型不再需要在开始生成新序列之前记住整个序列。

  • 多阶段设计,例如,通过记忆网络 [Sukhbaatar et al., 2015]和神经程序解释器[Reed & DeFreitas, 2015]允许统计建模者描述迭代的推理方法。这些工具允许重复修改深度神经网络的内部状态,从而在推理链中执行后续步骤,类似于处理器如何修改内存以进行计算。

  • 另一个关键发展是生成对抗网络的发明[Goodfellow et al., 2014]. 传统上,用于密度估计和生成模型的统计方法侧重于寻找适当的概率分布和(通常是近似的)从中采样的算法。因此,这些算法在很大程度上受到统计模型缺乏灵活性的限制。生成对抗网络的关键创新是用具有可微参数的任意算法替换采样器。然后以鉴别器(实际上是双样本测试)无法区分假数据和真实数据的方式对这些数据进行调整。通过使用任意算法生成数据的能力,它为各种技术开辟了密度估计。疾驰的斑马 [Zhu et al., 2017]和假名人面孔的 例子[Karras et al., 2017]都证明了这一进步。即使是业余涂鸦者也可以仅根据描述场景布局的草图来制作逼真的图像[Park et al., 2019]。

  • 在许多情况下,单个 GPU 不足以处理大量可用于训练的数据。在过去的十年中,构建并行和分布式训练算法的能力得到了显着提高。设计可扩展算法的关键挑战之一是深度学习优化的主力,随机梯度下降,依赖于要处理的相对较小的小批量数据。同时,小批量限制了 GPU 的效率。因此,在 1024 个 GPU 上进行小批量训练,例如每批 32 张图像,总计约 32000 张图像的小批量。最近的工作,首先是 Li [Li, 2017],随后是 [You et al., 2017]和[Jia et al., 2018] 将大小提高到 64000 个观察值,将 ResNet-50 模型在 ImageNet 数据集上的训练时间减少到不到 7 分钟。为了比较——最初的训练时间是以天为单位测量的。

  • 并行计算的能力也对强化学习的进步做出了相当重要的贡献,至少在模拟是一种选择时是这样。这导致计算机在围棋、雅达利游戏、星际争霸和物理模拟(例如,使用 MuJoCo)中实现超人性能方面取得了重大进展。例如,参见 [Silver et al., 2016],了解如何在 AlphaGo 中实现这一目标。简而言之,如果有大量(状态、动作、奖励)三元组可用,即只要有可能尝试很多事情来了解它们之间的关系,强化学习效果最好。模拟提供了这样的途径。

  • 深度学习框架在传播思想方面发挥了至关重要的作用。允许轻松建模的第一代框架包括Caffe、 Torch和 Theano。许多开创性的论文都是使用这些工具编写的。到目前为止,它们已被 TensorFlow(通常通过其高级 API Keras使用)、 CNTK、Caffe 2和Apache MXNet 所取代。第三代工具,即用于深度学习的命令式工具,可以说是由 Chainer带头的,它使用类似于 Python NumPy 的语法来描述模型。这个想法被PyTorch和MXNet 的 Gluon API和 Jax。

构建更好工具的系统研究人员和构建更好神经网络的统计建模人员之间的分工大大简化了事情。例如,训练一个线性逻辑回归模型曾经是一个不平凡的家庭作业问题,值得给新的机器学习博士。2014年卡内基梅隆大学的学生。到现在,这个任务用不到10行代码就可以完成,牢牢掌握在程序员的手中。

1.6. 成功的故事

人工智能在交付成果方面有着悠久的历史,否则这些成果将难以实现。例如,自 1990 年代以来就已经部署了使用光学字符识别的邮件分拣系统。毕竟,这是著名的 MNIST 手写数字数据集的来源。这同样适用于阅读银行存款支票和对申请人的信用评分。自动检查金融交易是否存在欺诈行为。这构成了许多电子商务支付系统的支柱,例如 PayPal、Stripe、支付宝、微信、Apple、Visa 和 MasterCard。几十年来,国际象棋计算机程序一直具有竞争力。机器学习提供互联网上的搜索、推荐、个性化和排名。换句话说,机器学习无处不在,尽管经常隐藏在视线之外。

直到最近,人工智能才成为人们关注的焦点,主要是因为解决了以前被认为难以解决且与消费者直接相关的问题。许多这样的进步归功于深度学习。

  • 智能助手,如苹果的 Siri、亚马逊的 Alexa 和谷歌的助手,能够以合理的准确度回答口语问题。这包括一些琐碎的任务,例如打开电灯开关(对残疾人士的恩惠)、预约理发师和提供电话支持对话。这可能是人工智能正在影响我们生活的最明显迹象。

  • 数字助理的一个关键要素是准确识别语音的能力。此类系统的准确性逐渐提高到在某些应用中达到与人类相同的程度[Xiong et al., 2018]。

  • 对象识别同样取得了长足的进步。在 2010 年,估计图片中的对象是一项相当具有挑战性的任务。在 ImageNet 基准测试中,NEC 实验室和伊利诺伊大学厄巴纳-香槟分校的研究人员实现了 28% 的 top-5 错误率 [Lin et al., 2010]。到 2017 年,这个错误率降低到 2.25% [Hu et al., 2018]。同样,在识别鸟类或诊断皮肤癌方面也取得了惊人的成果。

  • 游戏曾经是人类智慧的堡垒。从 TD-Gammon 开始,一个使用时间差异强化学习、算法和计算进步来玩西洋双陆棋的程序已经产生了适用于广泛应用的算法。与西洋双陆棋不同,国际象棋的状态空间和动作集要复杂得多。DeepBlue 使用大规模并行性、专用硬件和通过博弈树进行高效搜索击败了 Garry Kasparov [Campbell et al., 2002]。由于其巨大的状态空间,围棋更加困难。AlphaGo 在 2015 年使用深度学习与蒙特卡洛树采样相结合,达到了人类水平 [Silver et al., 2016]. 扑克中的挑战是状态空间很大并且没有被完全观察到(我们不知道对手的牌)。Libratus 使用有效的结构化策略在扑克中超越了人类的表现 [Brown & Sandholm, 2017]。这说明了游戏中令人印象深刻的进步以及高级算法在其中发挥了关键作用的事实。

  • 人工智能进步的另一个迹象是自动驾驶汽车和卡车的出现。虽然目前还没有完全实现完全自治,但在这个方向上已经取得了巨大的进展,特斯拉、英伟达和 Waymo 等公司推出的产品至少可以实现部分自治。完全自动驾驶之所以如此具有挑战性,是因为正确的驾驶需要有感知、推理和将规则整合到系统中的能力。目前,深度学习主要用于这些问题的计算机视觉方面。其余部分由工程师大量调整。

同样,上面的列表几乎没有触及机器学习影响实际应用的表面。例如,机器人学、物流学、计算生物学、粒子物理学和天文学至少部分归功于机器学习。因此,机器学习正成为工程师和科学家无处不在的工具。

人工智能启示录或人工智能奇点的问题经常在关于人工智能的非技术文章中提出。令人担忧的是,机器学习系统会以某种方式变得有感知力,并独立于程序员(和大师)决定直接影响人类生计的事情。在某种程度上,人工智能已经以直接的方式影响了人类的生计:信用度是自动评估的,自动驾驶仪主要用于导航车辆,是否准予保释的决定使用统计数据作为输入。更轻浮的是,我们可以让 Alexa 打开咖啡机。

幸运的是,我们远不是一个准备好操纵其人类创造者(或烧掉他们的咖啡)的有感知力的人工智能系统。首先,人工智能系统是以特定的、面向目标的方式设计、训练和部署的。虽然他们的行为可能给人一种普遍智能的错觉,但它是设计基础的规则、启发式和统计模型的组合。其次,目前的 通用人工智能工具根本不存在能够自我改进、自我推理以及能够在尝试解决通用任务的同时修改、扩展和改进自己的架构的工具。

一个更紧迫的问题是人工智能如何在我们的日常生活中被使用。卡车司机和店员完成的许多琐碎任务很可能可以并且将会实现自动化。农场机器人可能会降低有机农业的成本,但它们也会使收割作业自动化。工业革命的这一阶段可能会对大部分社会产生深远的影响,因为卡车司机和店员是许多国家最常见的工作。此外,如果不加注意地应用统计模型,可能会导致种族、性别或年龄偏见,如果自动驱动相应的决策,则会引起对程序公平性的合理担忧。确保谨慎使用这些算法很重要。

1.7. 特征

到目前为止,我们已经广泛地讨论了机器学习,它既是人工智能的一个分支,也是人工智能的一种方法。尽管深度学习是机器学习的一个子集,但令人眼花缭乱的算法和应用程序集使得很难评估深度学习的具体成分可能是什么。这就像试图确定披萨所需的成分一样困难,因为几乎每个成分都是可以替代的。

正如我们所描述的,机器学习可以使用数据来学习输入和输出之间的转换,例如在语音识别中将音频转换为文本。这样做时,通常需要以适合算法的方式表示数据,以将这些表示转换为输出。深度学习的深度正是因为它的模型学习了许多层的转换,其中每一层都提供一个级别的表示。例如,靠近输入的层可能代表数据的低级细节,而靠近分类输出的层可能代表用于区分的更抽象的概念。由于表示学习深度学习旨在寻找表征本身,可以称为多级表征学习。

到目前为止,我们讨论的问题,例如从原始音频信号中学习,图像的原始像素值,或任意长度的句子与外语对应物之间的映射,都是深度学习擅长的问题,也是传统机器学习擅长的问题。方法步履蹒跚。事实证明,这些多层模型能够以以前的工具无法解决的方式处理低级感知数据。可以说,深度学习方法最重要的共同点是使用端到端训练。也就是说,不是基于单独调整的组件组装系统,而是构建系统然后共同调整它们的性能。例如,在计算机视觉中,科学家们用来分离特征工程的过程从构建机器学习模型的过程中。Canny 边缘检测器 [Canny, 1987]和 Lowe 的 SIFT 特征提取器 [Lowe, 2004]作为将图像映射到特征向量的算法占据主导地位十多年。在过去的日子里,将机器学习应用于这些问题的关键部分包括提出手动设计的方法,将数据转换为某种适合浅层模型的形式。不幸的是,与算法自动执行的对数百万个选择的一致评估相比,人类通过独创性可以完成的工作很少。当深度学习接管时,这些特征提取器被自动调整的过滤器所取代,从而产生了卓越的准确性。

因此,深度学习的一个关键优势在于它不仅取代了传统学习管道末端的浅层模型,而且取代了特征工程的劳动密集型过程。此外,通过取代大部分特定领域的预处理,深度学习消除了许多以前分隔计算机视觉、语音识别、自然语言处理、医学信息学和其他应用领域的界限,提供了一套统一的工具来解决各种问题。

除了端到端训练之外,我们正在经历从参数统计描述到完全非参数模型的转变。当数据稀缺时,需要依靠简化对现实的假设来获得有用的模型。当数据丰富时,可以用更准确地拟合现实的非参数模型来代替。在某种程度上,这反映了物理学在上世纪中叶随着计算机的出现而取得的进步。与其手动求解电子行为的参数近似,现在可以求助于相关偏微分方程的数值模拟。这导致了更准确的模型,尽管通常以牺牲可解释性为代价。

与以前工作的另一个区别是接受次优解决方案,处理非凸非线性优化问题,以及在证明它们之前尝试事物的意愿。这种在处理统计问题方面新发现的经验主义,再加上人才的迅速涌入,导致了实用算法的快速发展,尽管在许多情况下是以修改和重新发明存在了几十年的工具为代价的。

最后,深度学习社区以跨学术和企业边界共享工具而自豪,发布了许多优秀的库、统计模型和训练有素的网络作为开源。正是本着这种精神,构成本书的笔记本可以免费分发和使用。我们一直在努力降低每个人学习深度学习的门槛,我们希望我们的读者能从中受益。

1.8. 概括

机器学习研究计算机系统如何利用经验(通常是数据)来提高特定任务的性能。它结合了统计、数据挖掘和优化的思想。通常,它被用作实施人工智能解决方案的一种手段。

作为机器学习的一类,表征学习侧重于如何自动找到合适的方式来表示数据。深度学习是通过学习多层变换的多层次表示学习。

深度学习不仅取代了传统机器学习管道末端的浅层模型,而且取代

来源:AI架构师易筋

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年2月5日
下一篇 2022年2月6日

相关推荐