亚马逊AWS官方博客

机器学习基础

声明

客户负责对本文档中的信息进行独立评估。本文档:(a) 仅供参考,(b) 代表 AWS 当前的产品服务和实践,如有变更,恕不另行通知,并且 (c) 不构成 AWS 及其附属公司、供应商或许可方的任何承诺或保证。AWS 产品或服务均“按原样”提供,没有任何明示或暗示的担保、声明或条件。AWS 对其客户的责任和义务受 AWS 协议约束,本文档不属于 AWS 和客户之间签订的任何协议,亦不构成对任何此类协议的修订。

© 2019 Amazon Web Services,Inc. 或其附属公司。保留所有权利。

目录

绍………………………………………………………………………………………………………………… 1

人工智能的演变………………………………………………………………………………………………. 1

符号人工智能……………………………………………………………………………………………….. 1

机器学习的兴起……………………………………………………………………………………………. 5

AI 有了新的基础…………………………………………………………………………………………… 6

AWS 和机器学习…………………………………………………………………………………………….. 9

面向构建者的 AWS 机器学习服务……………………………………………………………….. 9

面向自定义 ML 模型的 AWS 机器学习服务……………………………………………….. 12

开发者学习框架………………………………………………………………………………………….. 13

ML 引擎和框架…………………………………………………………………………………………… 13

ML 模型训练和部署支持…………………………………………………………………………….. 14

结………………………………………………………………………………………………………………. 15

献者…………………………………………………………………………………………………………… 15

伸阅读……………………………………………………………………………………………………….. 15

档修订……………………………………………………………………………………………………….. 16

 

摘要

人工智能 (AI) 和机器学习 (ML) 是全球业务人员、技术人员和研究人员都感兴趣的话题。大多数对人工智能和机器学习的描述都过分简化了两者之间的真实关系。本文为您理解人工智能奠定了基础,阐述了当今人工智能如何以机器学习为基础,并对 AWS 机器学习服务做了简单介绍。

介绍

大多数讨论人工智能 (AI) 和机器学习 (ML) 之间关系的文章都关注这样一个事实,即 ML 是 AI 中的一个研究领域。尽管在过去确实如此,但两者之间存在着更紧密的关系,即成功的人工智能应用程序几乎都使用 ML 技术作为基础来实现。机器学习已经成为现代 AI 的基础,而不是它的组成部分。

为了支持这一理论,我们回顾了 AI 系统和应用程序在前三十年是如何工作的,而今天又是如何工作的。我们首先简单介绍了 AI 的原始结构和方法,讨论了机器学习作为一个独立学科的兴起,展示了 ML 如何为现代 AI 提供基础,并回顾了 AWS 如何为使用机器学习的客户提供支持。最后,我们观察并总结了为什么 AI 和 ML 不像最初出现时那样容易区分。

人工智能的演变

符号人工智能

人工智能作为计算机科学的一个分支出现于 20 世纪 50 年代。它的两个主要目标是:1) 通过在计算机上建模和模拟来研究人类智能,以及 2) 通过像人类一样解决复杂问题来使计算机更有用。

从出现到 20 世纪 80 年代,大多数 AI 系统都是人工编程的,通常使用功能性、声明性或其他高级语言(例如 LISP 或 Prolog)。在特定领域,也创建了几种自定义语言(例如,用于规划的 STRIPS)。语言中的符号代表了现实世界中的概念或抽象概念,构成了大多数知识表示的基础。

尽管 AI 从业人员过去使用标准的计算机科学技术,例如搜索算法,图形数据结构和语法,但是由于问题的复杂性,大量的 AI 编程是启发式的(使用经验规则),而不是算法式的。当时产生 AI 解决方案的部分困难在于,要使系统成功,所有的条件、规则、场景和异常都需要以编程方式添加到代码中。

人工智能领域

当初,研究人员感兴趣的是通用 AI,或创造出很难和人类区分、可作为系统运行的机器,但由于它的复杂性,大多数人专注于解决某一具体领域的问题,如感知、推理、记忆、语音、运动等。下表列出了当时的主要 AI 领域。

1:符号 AI 领域(20 世纪 50 年代至 80 年代)

 

领域 描述
问题解决 广泛、通用的领域,用于解决问题、制定决策、满足约束和其他类型推理。
子领域,包括基于专家或知识的系统、规划、自动编程、游戏和自动推理。解决问题可以说是符号 AI 最成功的领域。
机器学习 通过死记硬背、基于经验或接受建议自动生成新的事实、概念或真相。
自然语言 通过解析句子,将其转换为语义网络等知识表示形式,然后返回结果,作为
人们容易理解、结构正确的句子,从而理解并生成书面的人类语言(例如,
英语或日语)。
语音识别 将声波转换成音素、单词和最终的句子,传递给自然语言理解系统,还进行语音合成,将文本响应转换成用户的自然发音。
视觉 将图像中的像素转换为边缘、区域、纹理和几何对象,从而能够理解场景,
并最终识别视野内的对象。
机器人 规划和控制执行器移动或操纵现实世界中的物体。

人工智能图解

在下图中,下面几层提供了用于在每个领域构建解决方案的工具和基础。例如,主域下面是对当时常用的许多推理机制和知识表示的采样。

1:符号人工智能概述

 样本知识表示存储了系统用于推理的知识和信息。知识表示的常见类别包括结构化(例如,可以与对象和语义网络进行比较的框架,如知识图)和基于逻辑(例如,命题和谓词逻辑、模态逻辑和语法)的表示。相对于其他类型的模型,这些符号知识表示的优势在于它们是透明的、可解释的、可组合和可修改的。它们支持多种类型的推理机制,这些机制可以操纵知识表示来解决问题,理解句子并在每个领域中提供解决方案。

AI 语言样式和基础设施层显示了当前用于开发 AI 系统的某些类型的语言和基础设施。两者都倾向于专业化,并且不容易与外部数据或企业系统集成。

一个国际象棋和电话的问题

当时提出的一个问题是“哪一个问题更难解决:是接听电话还是在跟国际象棋大师博弈?”答案与大多数人的直觉相反。尽管孩子们都能正确接听电话,但很少有人下棋能达到大师级别。然而,对于传统的 AI 来说,国际象棋是一个完美的问题,它具有明确边界,并且具有有限的易于理解的走法,可以通过启发式搜索游戏状态空间来解决。另一方面,接听电话却非常困难。正确接听电话需要多种复杂的技能,这对于符号 AI 来说是困难的,包括语音识别与合成、自然语言处理、问题解决、智能信息检索、规划以及可能采取的复杂操作。

符号 AI 的成功之处

人们普遍认为上述结果令人失望,至少从设定的高期望值来看是这样,但符号 AI 确实也有成功之处。今天,大多数被认为有用的软件都已转化为软件开发中使用的算法和数据结构。现在常用的业务规则引擎来自人工智能的专家系统推理引擎和 shell。AI 实验室认可或开发的其他常见计算概念包括时间共享、快速迭代开发、鼠标和图形用户界面 (GUI)。下表列出了这种人工智能方法的一些优势和局限性。

2:符号 AI 的优势和局限

优势 局限性
模拟人类对许多问题的高级推理 系统往往不是自主学习或获取新的知识或能力,而是依赖于开发人员的定期维护
问题解决领域在专家系统、规划和约束传播等方面取得了一些成功。 包括机器学习、自然语言、语音和视觉的大多数领域都没有产生明显、普遍的成果。
可以从启发式知识捕获和工作,而不是分步指令 解决问题领域,特别是基于专家或知识的系统,都要求通过知识工程技术提取和完善明确的人类专业知识
为具体、已知的逻辑轻松编码,例如,强制执行合规性规则 系统在其范围边界上往往是脆弱和不可预测的,它们不知道范围边界以外的东西
直接回顾内部数据结构、启发方式和算法 基于隔离的基础设施构建,无法与外部数据或系统集成
根据请求提供解释答案 要求更多上下文和常识性信息来解决许多现实情况
不需要创建大量数据 许多方法不是分布式,也不易于扩展,当然分布也有硬件、网络和软件限制
需要更少用于开发的计算资源 系统难于创建和维护
许多工具和算法已纳入主流系统开发

随着与符号 AI 相关的研究资金的日益减少,许多研究人员和从业人员将注意力转向了更为实用的信息搜索和检索、数据挖掘,以及各种形式的机器学习领域。

机器学习的兴起

从 20 世纪 80 年代末到 21 世纪,人们研究了多种机器学习方法,包括神经网络、生物学和进化技术以及数学建模。早期最成功的结果是通过机器学习的统计方法获得的。线性和逻辑回归、分类、决策树、基于内核的方法(即支持向量机)等算法大受欢迎。

后来,深度学习被证明是构建和训练神经网络以解决复杂问题的有效方法。其基本训练方法与之前相似,但是有一些改进推动了深度学习的成功,包括:

  • 有很多层并大得多的网络;
  • 庞大的数据集,包含数千到数百万个训练示例;
  • 神经网络性能、泛化能力和跨服务器分布训练能力的算法改进;
  • 更快的硬件(如 GPU 和 Tensor 核心),可以处理更多数量级的计算,这要求使用大型数据集来训练复杂的网络结构。

深度学习是解决复杂问题的关键,这是符号 AI 无法做到的。深度学习成功的一个因素是它能够制定、识别和使用自行发现的特征。深度学习算法自动识别最显著的特征,而不是由人们尝试确定它的特征。

符号 AI 难以解决的问题,如视觉、自然语言理解、语音识别以及复杂的运动和操作,现在正在获得解决,其准确率往往接近或超过人类的能力。如今,哪个问题对机器更困难,是接听电话还是大师级博弈,这个问题越来越难回答。尽管仍有很多重要的工作要做,但机器学习已经取得了重大进展,使机器在许多领域能更像人一样工作,包括与人类直接对话。

机器学习本身已成为计算机科学的一个分支。这对于解决具体、实际的人工智能问题非常关键。

AI 有了新的基础

今天的人工智能主要依赖的不再是符号知识表示和程序推理机制,现代 AI 而是建立在新的基础上,即机器学习。无论是传统的基于数学的机器学习模型或决策树,还是深度学习的神经网络架构,当今人工智能领域的大多数 AI 应用程序都是基于机器学习技术。

这一新的人工智能结构如下图所示。该图的结构与符号 AI 图类似,显示了人工智能系统的基础和性质是如何改变的。尽管该图顶层的有些领域(自然语言、语音识别和视觉)保持不变,但有些领域已发生改变。与图 1 所示的符号 AI 的广泛“解决问题”类别不同,预测和推荐系统有两个更具针对性的类别,这两个类别是当今开发的解决问题系统的主要形式。此外,除了较为传统的机器人技术,该领域现在还包括自动化设备,以突出自动驾驶汽车和无人机领域的最新项目。最后,由于机器学习现在是 AI 领域的基础,因此不再包含在顶层领域中。

2:机器学习是人工智能的基础

机器学习仍面临许多问题和挑战。下表列出了基于机器学习的人工智能的一些优势和局限性。

3:基于机器学习的人工智能的优势和局限性

优势 局限性
借助数据和工具,轻松训练新的解决方案 有炒作之嫌,研究者和从业者需要设定合理预期
有大量不同算法来解决许多类型的问题 需要大量干净的、可能有标签的数据
解决所有 AI 领域的问题,经常接近或超过人类的能力水平 数据存在的问题(如过时、不完整或恶意注入不良数据)可能会使结果产生偏差
无需人类专业知识或复杂的知识工程,解决方案来自于实例 有些算法,特别是基于统计的机器学习算法,依赖于手动特征工程

 

优势 局限性
深度学习可自动提取特征,形成具有复杂感知和理解能力的解决方案 系统逻辑未经编程,必须进行学习。这可能会导致较为主观的结果,例如相互竞争的激活级别,而这需要精确的答案(例如,合规性或验证问题的特定正确或错误答案)。
经过训练的机器学习模型可以在其他解决方案的组合体或组件中进行复制和重用 尽管现在有超参数优化工具,选择最好的算法、网络架构和超参数仍然需要专业知识,并且需要迭代。
作出预测或产生结果通常比传统的推断或算法快 训练包含大型数据集的复杂问题需要大量的时间和计算资源
训练机器学习模型的算法可设计为分布式和一次通过式方法,从而提高可伸缩性并缩短训练时间 通常很难通过观察模型结构和训练结果来解释模型是如何得出结果的。
可以在可扩展的高性能基础设施上进行训练和部署 尽管输出可以反映数值“置信度”,但是大多数算法是一步解决问题,因此没有推理链或部分结果可用。
使用常见机制(如微服务/API)部署,以便于
与其他系统集成

 表 2 和表 3 的一个重要优点是它们有一定的互补性。基于机器学习的人工智能可以受益于符号人工智能的优势。一些机器学习方法(包括自动学习决策树)已经有效地融合了这两种方法。人们还在继续进行积极的研究,结合这两种方法的优点来探索其他方法,以及许多开放性问题。

鉴于今天的人工智能是建立在机器学习的新基础之上,而机器学习长期以来一直是研究者和数据科学家的研究领域,我们如何才能使各种组织中具有不同背景的人员更好地利用它呢?

AWS 和机器学习

AWS 致力于机器学习的民主化。我们的目标是让具有不同训练和经验水平的客户以及各种组织都能广泛地使用机器学习。AWS 快速创新,根据客户的需求为他们创建服务和功能。机器学习服务也不例外。在下图中,您可以看到当前的 AWS 机器学习服务是如何映射到其他人工智能图的。

3AWS 机器学习服务

面向构建者的 AWS 机器学习服务

第一层显示了人工智能服务,这些服务是为构建者创建需要预测、推荐、自然语言、语音、视觉或其他功能的特定解决方案而设计的。这些智能服务是使用机器学习(尤其是深度学习模型)创建的,但开发人员无需具备任何机器学习知识就能使用它们。相反,这些功能是经过预先训练的,可通过 API 调用访问,并使得客户能够向其应用新增智能。

Amazon Forecast

Amazon Forecast 是一项完全托管的服务,可提供高度准确的预测,并且基于 Amazon.com 上所使用的相同技术。您提供历史数据,以及被认为影响预测的任何其他数据。Amazon Forecast 检查此类数据,识别有用的数据并生成一个预测模型。

Amazon Personalize

Amazon Personalize 可让开发人员轻松使用其应用程序为客户创造个性化产品和内容推荐。您提供来自应用程序的活动流、您想要推荐的商品的清单以及来自用户的潜在人口统计信息,Amazon Personalize 处理和检查此类数据、识别有用的数据、选择正确的算法以及训练和优化个性化模型。

Amazon Lex

Amazon Lex 是一项可在任何使用语音和文本的应用程序内构建对话接口的服务。Amazon Lex 可提供高级的自动语音识别 (ASR) 深度学习功能 (用于将语音转化成文本) 和自然语言理解 (NLU) (用于识别文本意图),使您构建出的应用程序能够具备参与度极高的用户体验和逼真的交互式对话。借助 Amazon Lex,支持 Amazon Alexa 的深度学习技术现在可供所有开发人员使用,从而使您能够轻松快速地构建出掌握自然语言的精密对话机器人 (“聊天机器人”)。

Amazon Comprehend

Amazon Comprehend 是一种自然语言处理 (NLP) 服务,利用机器学习技术查找文本中的见解和关系。Amazon Comprehend 可识别文本的语言;提取关键短语、地点、人物、品牌或事件;理解文本的正面或负面情绪;并按主题自动组织文本文件集合。

Amazon Comprehend Medical

Amazon Comprehend Medical 是一种自然语言处理服务,利用高级机器学习模型从非结构化文本中提取相关医疗信息。您可以使用提取出的医疗信息和它们之间的关系来构建或增强应用程序。

Amazon Translate

Amazon Translate 是一种神经元网络机器翻译服务,可提供快速、优质且经济实惠的语言翻译。神经元网络机器翻译是一种自动化语言翻译形式,使用深度学习模型来提供比基于统计数据和规则的传统机器翻译算法更加准确、自然的翻译。借助 Amazon Translate,您可以将内容 – 如网站和应用程序内容 – 本地化,以方便国际用户使用,并且可以轻松、高效地翻译大量文本。

Amazon Polly

Amazon Polly 是一种可将文本转换为逼真语音的服务,可让您构建支持聊天的应用程序,并且打造全新类别的具有语音功能的产品。Amazon Polly 是一种文本转语音服务,它使用先进的深度学习技术来合成听起来像是人声的语音。

Amazon Transcribe

Amazon Transcribe 是一种自动语音识别 (ASR) 服务,使开发人员可以轻松地为其应用程序添加语音功能。通过使用 Amazon Transcribe API,您可以分析存储在 Amazon S3 中的语音文件,并让该服务返回转录语音的文本文件。

Amazon Rekognition

Amazon Rekognition 让您能够轻松地向应用程序添加图像和视频分析。您只需向 Rekognition API 提供一个图像或视频,该服务即可识别物体、人物、文本、场景和活动,并且检测是否含有任何不当内容。Amazon Rekognition 还提供高度准确的人脸分析和人脸识别,您可以在各种各样的用户验证、编录、人数统计和公共安全使用案例中检测、分析和比较人脸。

Amazon Textract

Amazon Textract 从扫描文档和表单中自动提取文本和数据,它不只提供简单的光学字符识别,它还可以识别表单中的字段内容和表格中存储的信息。

 

面向自定义 ML 模型的 AWS 机器学习服务

图 3 中的 ML 服务层为开发人员、数据科学家、研究人员和其他客户提供更多的托管服务和资源访问权限,以构建其自定义 ML 模型。自定义 ML 模型用于解决推理和预测、推荐系统和指导自主驾驶汽车等任务。

Amazon SageMaker

Amazon SageMaker 是一项完全托管的机器学习 (ML) 服务,可帮助开发人员和数据科学家快速、轻松地构建、训练和部署任何规模的机器学习模型。Amazon SageMaker Ground Truth 可使用主动学习模型标记数据,将机器学习和人工干预相结合,帮助快速准确地构建训练数据集,从而让该模型变得越来越好。

SageMaker 提供完全托管和预先构建的 Jupyter 笔记本,以解决常见使用案例。该服务带有多个内置高性能算法,还有适用于机器学习的 AWS Marketplace,包含100多种预先训练好的 ML 模型和算法。您还可以自带内置于 Docker 容器的算法和框架。

Amazon Sagemaker 包括内置的、完全托管的强化学习 (RL) 算法。在没有预先标记的历史数据但期望有最佳结果的情况下,RL 是理想的选择。RL 使用奖励和处罚来训练,引导模型朝着期望的行为发展。SageMaker 在多个框架中都支持 RL,包括 TensorFlow、MXNet 以及定制开发的框架。

SageMaker 建立和管理训练环境,并且通过 Automatic Model Tuning 提供超参数优化,使模型尽可能准确。Sagemaker Neo 支持您将经过训练的同一模型部署到多个平台。Neo 使用机器学习优化模型的性能和大小,并部署到包含 Neo 运行时的边缘设备。根据 Apache Software License,AWS 已在 GitHub 上发布了开源 Neo-AI 项目代码。SageMaker 支持跨多个可用区分布式运行的模型部署,以提供高性能和高可用性。

使用 Spark/Spark ML 的 Amazon EMR/EC2

Amazon EMR 提供一个 Hadoop 托管框架,使您可以轻松、快速而经济高效地处理跨动态扩展的 Amazon EC2 实例的大量数据。您还可以运行其他常用的分布式框架(例如 Amazon EMR 中包含 Spark ML 机器学习库的 Apache SparkHBasePresto Flink),以及与其他 AWS 数据存储服务(例如 Amazon S3 和 Amazon DynamoDB)中的数据进行交互。Spark 和 Spark ML 也可以在 Amazon EC2 实例上运行,以预处理数据、设计功能或运行机器学习模型。

开发者学习框架

ML 服务并行的是开发者学习框架层。这一层侧重于向用户传授 ML 技术和技巧,因此不适用于大规模生产。目前,开发者学习框架包括两种服务产品。

AWS DeepLens

AWS DeepLens 通过完全可编程、旨在扩展深度学习技能的摄像头、教程、代码和经过预训练的模型来帮助开发人员掌握深度学习。DeepLens 为开发人员提供了使用神经网络的机会,使他们可以通过计算机视觉项目、教程以及在实践中通过物理设备进行实际探索来学习和做出预测。

AWS DeepRacer

AWS DeepRacer 是一个 1/18 比例的赛车,它提供了一种使用强化学习 (RL) 的入门方法。AWS DeepRacer 通过在 Amazon SageMaker 中生成模型,在模拟器中进行测试并将 RL 模型部署到汽车中,提供了一种进行 RL 实验和了解 RL 的方法。

 

ML 引擎和框架

ML 平台层下面是 ML 引擎和框架层。这一层提供对最热门的机器学习工具的直接并可实际动手操作的访问。这一层包含 AWS 深度学习 AMI,可为您提供基础设施和工具来加速云中的深度学习。AMI 将几个重要的工具和框架打包在一起,并预装了 Apache MXNet、TensorFlow、PyTorch、Microsoft Cognitive Toolkit (CNTK)、Caffe、Caffe2、Theano、Torch、Gluon、Chainer 和 Keras,用于训练复杂的自定义 AI 模型。使用深度学习 AMI,您可以创建托管的并自动扩缩的GPU 集群以进行大规模训练,或者通过计算优化型或通用型 CPU 实例在已训练好的模型上运行推理。

ML 模型训练和部署支持

基础设施和无服务器环境层提供了支持训练和部署机器学习模型的工具。机器学习需要各种功能强大的计算选项,从用于计算密集型深度学习的 GPU 到用于专用硬件加速的 FPGA,再到用于运行推理的内存增强型实例,应有尽有。

Amazon Elastic Compute Cloud (Amazon EC2)

Amazon EC2 提供了经过优化的广泛实例类型,以适应机器学习不同使用场景的需求。实例类型包括 CPU、内存、存储和网络容量的各种组合,无论您是训练模型还是在已训练好的模型上运行推理,都可以灵活选择合适的资源组合。

Amazon Elastic Inference

借助 Amazon Elastic Inference,可以将低成本 GPU 驱动的加速附加到 Amazon EC2 和 Amazon SageMaker 实例,以使用模型进行预测。Elastic Inference 不需要附加完整的 GPU(大多数模型都不需要),而是可以通过为特定模型单独配置合适的加速量来节省多达 75% 的费用。

Amazon Elastic Container Service (Amazon ECS)

Amazon ECS 支持运行和扩展容器化的应用程序,包括来自于 Amazon SageMaker 和容器化的 Spark ML 的训练好的机器学习模型。

无服务器选项

有了无服务器选项后,就不必再管理特定基础设施,使客户能够专注于部署 ML 模型和运行其系统所必需的其他逻辑。AWS 提供的一些无服务器 ML 部署选项包括 Amazon SageMaker 模型部署、用于容器的 AWS Fargate 和用于无服务器代码部署的 AWS Lambda

边缘 ML

AWS 还提供了一个选项,可使用 Amazon SageMaker Neo AWS IoT Greengrass ML Inference 将 ML 模型推送到边缘侧,从而使得模型在互联设备的本地运行。这样,客户就可以使用在云中生成和训练的 ML 模型,并在互联的设备上本地部署和运行 ML 推理。

 

总结

许多人都互换使用术语 AI 和 ML。从表面上看,这似乎是不正确的,因为过去机器学习只是 AI 内部的一个领域,而 AI 涵盖了更广泛的系统集合。

如今,机器学习的算法和模型取代了传统的符号推理、知识表示和语言。对大型数据集的训练已取代了手动编码的算法和启发式方法。借助上述方法,可以对使用符号 AI 方法似乎难以解决的问题进行一致建模,其效果显著。实际上,机器学习已成为大多数现代 AI 系统的基础。因此,如今将术语 AI 和 ML 互换使用实际上比以往任何时候都更有意义。

AWS 提供了多种机器学习产品,从预先训练的即用型服务到用于创建自定义 ML 模型的最受欢迎的工具和框架,应有尽有。不同行业、不同经验水平的客户都可以添加 ML 功能来改善其现有系统,并在以前未曾涉足的领域中创建领先的应用程序。

 

贡献者

本文的贡献者包括:

  • Amazon Web Services 云基础设施架构师 David Bailey
  • Amazon Web Services 解决方案架构师 Mark Roy
  • Amazon Web Services ML 和 AI 技术负责人 Denis Batalov

延伸阅读

有关更多信息,请参阅:

文档修订

日期 说明
2019 2 首次发布