订阅业界RSS CSDN首页> 业界

人工智能、机器学习及认知计算初学者指南

发表于2019-01-28 17:49| 来源IBM| 作者M. Tim Jones

摘要:千年以来,人类一直在思考如何构建智能机器。

千年以来,人类一直在思考如何构建智能机器。从那时起,人工智能 (AI) 经历过高潮与低谷,既展现了成功的一面,也有许多潜力有待发掘。时至今日,采用机器学习算法来解决新问题屡屡见诸报端。从癌症检测与预测到图片理解与汇总及自然语言学习,AI 为人类提供了诸多便利,也在改变着我们的世界。

现代 AI 的历史涵盖了一部“大戏”的全部要素。AI 第一次出现在历史舞台是在上世纪 50 年代,当时的 AI 专注于会思考的机器,也出现了一些有趣的人物,比如艾伦·图灵、冯纽曼·诺伊曼等。经过数十年的“浮浮沉沉”,人们对 AI 的期望几乎降到了低谷,但不可否认的是,AI 一直都在无数先锋者的推动下向前发展。时至今日,AI 已开始发挥它的真正潜力,专注于应用并交付了深度学习与认知计算等技术。

本文将带您探索 AI 及其子领域的一些重要方面。首先我们来了解一下 AI 发展的时间表,然后深入了解各个要素。

现代 AI 的发展时间表

现代 AI 的历史可以追溯到上世纪 50 年代,当时它主要专注于所谓的强人工智能 (AI),是指能够广泛地执行人类可执行的任何智能任务的 AI。由于强人工智能没有太多进展,最终导致出现了弱人工智能,即运用 AI 技术来解决更小范围内的问题。在上世纪 80 年代之前,AI 研究一直都分为强人工智能和弱人工智能两个领域。不过,大约在 1980 年前后,机器学习开始成为 AI 研究的主导领域,其目的在于让计算机具备学习并构建模型,进而执行预测等特定领域内活动的能力。

图 1. 现代人工智能发展时间表

大约在 2000 年,在 AI 与机器学习研究成果的基础上,开始出现深度学习。计算机科学家开始通过新的拓扑和学习方法在多个层上采用神经网络。神经网络的这种演变成功解决了多个领域的许多复杂问题。

在过去十年里,认知计算开始出现,该技术旨在构建可以学习且能够与人类进行自然交互的系统。在电视竞赛节目 Jeopardy! 上,IBM Watson™ 击败了世界级的对手,展示了认知计算的独特能力。

在本文中,我将逐一为大家介绍这些领域,并解释推动实现 AI 成功的一些重要算法。

基础性 AI

1950 年之前的研究引入了一种概念,即:大脑是由一个电脉冲网络构成的,该网络能够激发并以某种形式统筹安排思想和意识。艾伦·图灵向我们展示了任何计算均可通过数字化的方式实施。之后,这种构建能够模拟人类大脑的理念并未有太大发展。

较早期的研究主要专注于强人工智能,但在这一时期所引入的概念构成了当今所有机器学习与深度学习算法的基础概念。

图 2. 1980 年之前的人工智能方法时间表

AI 即搜索

AI 领域的许多问题都可以通过暴力搜索(比如深度或服务优先的搜索)的方法解决。不过,考虑到中等难度问题的搜索空间,基本搜索很快就会遭遇瓶颈。出现最早的 AI 即搜索示例之一是国际跳棋程序的开发。Arthur Samuel 在 IBM 701 电子数据处理机上构建了第一款此类程序,对被称作“贝塔剪枝算法”的决策树实施了优化。该程序还能够记录特定下法的奖励,使得应用能够从每次棋局中进行学习(该程序也因此成为首个能够自学习的程序)。为了提升该程序的学习速度,Samuel 对其进行了编程了,使其能够自己完成对局,进而提升了该程序的对局和学习能力。

尽管您可以成功运用搜索解决许多简单的问题,但随着大量新选择的出现,这种方法很快被淘汰。我们以简单的井字棋为例,在棋局开始时,共有 9 种可能的下法。每一种下法对手都有 8 种应对下法,如此等等。井字棋的完整下法树(未经过旋转优化去除重复的情况下)共包含有 362,880 个节点。如果您将这种思维实验延伸到国际象棋或围棋领域,很快就会发现搜索的缺点。

感知机

感知机是一种用于单层神经网络的早期监督式学习算法。在给定的输入特征向量下,感知机算法能够通过学习对属于特定类别的输入进行分类。网络的权重和偏执可通过训练集进行更新,进而实现线性分类。感知机首次是为 IBM 704 实现的,之后是在用于图像识别的定制硬件上实现的。

图 3. 感知机与线性分类

 

作为一个线性分类器,感知机能够解决线性可分割问题。感知机的一个关键局限性在于它无法学习专用的 OR (XOR) 函数。多层感知机能够解决这一问题,也为更复杂的算法、网络拓扑和深度学习铺平了道路。

集群算法

通过感知机,对该方法进行监督。用户提供数据来训练网络,然后通过新数据来测试网络。集群算法采用了一种不同的方法,即无监督式学习。在该模型中,算法会基于数据的一个或多个属性将特征向量组织到一个特征向量集中。

图 4. 二维特征空间中的集群

可以在少量代码中实施的最简单算法之一是 k 均值算法。在该算法中,k 是指您可以向其中分配样本的集群数量。您可以通过随机特征向量对集群进行初始化,然后将所有其他样本添加到最近的集群假定每个样本都代表一个功能向量,并采用欧氏距离来识别距离”)。在样本被添加到集群之后,集群的质心(即集群的中心)也会重新进行计算。之后,该算法会再次对样本进行检查,确保它们均位于最近的集群中;当任何样本的成员关系都不再发生变化时,算法结束。

k 均值算法是一种比较高效的算法,不过您必须事先指定 k 值。因此,层级式集群或基于分布的集群等其他方法可能会更加高效,具体视所用的数据而定。

决策树

决策树与集群算法密切相关。决策树是针对可得出结论的多个观察结果而构建的一个预测模型。结论以决策树上树叶的形式呈现,而节点即为观察结果发散所处的决策点。决策树根据决策树学习算法而构建,其中会根据属性值集合将数据集拆分为多个子集(通过递归分区来实现)。

我们来看一下下图中的示例。在该数据集中,我们可以根据三个因素来观察某个人在何时的效率最高。借助决策树算法,我们可以通过指标(比如信息增益)来识别属性。在本示例中,情绪是影响效率的一个关键因素,因此,我们基于“情绪是否良好”这一指标的值(“是”或“否”)来拆分该数据集。值为“否”的情况很简单:这表示效率较低。但如果是值为“是”的情况,就需要基于另外两个属性再次对数据集进行拆分。在图中,我对数据集进行了颜色区分,以便读者了解观察结果分散到树叶节点的位置。

图 5. 简单的数据集与生成的决策树

 

 

决策树的一个优势在于其固有的组织性,这使您能够轻松地(以图形化的形式)解释某个项目的分类情况。主流的决策树学习算法包括 C4.5、分类与回归树。

基于规则的系统

Dendral 是第一个基于规则和界面而构建的系统,该系统开发于 1965 年,不过,直到上世纪 70 年代,这种所谓的“专家系统”才实现了重大进展。基于规则的系统是指将知识与规则存储在其中并使用推理系统得出结论的系统。

基于规则的系统一般由一个规则集、一个知识库、一个界面引擎(使用正向或反向规则链条)和一个用户界面构成。在下图中,我使用了一个知识条目(“Socrates 是人类”)、一条规则(“如果是人类,就会死亡”),以及针对会死亡的人类的一个交互。

图 6. 基于规则的系统

在语音识别、规划与控制及疾病识别等多个领域都曾运用过基于规则的系统。在上世纪 90 年代,开发出了一种用于监测和诊断大坝稳定性的系统,即 Kaleidos;该系统到今天仍旧在使用。

机器学习

机器学习是 AI 和计算机科学的一个子领域,其根本在于统计与数学优化。机器学习涵盖了监督式学习和非监督式学习的技术,可用于预测、分析和数据挖掘等领域。机器学习并不仅限于深度学习,在本节中,我将介绍该领域中几种非常高效的算法。

 
图 7. 机器学习方法时间表

反向传播

神经网络的真正价值在于其多层变体。单层感知机的训练很直接,但据此构建的网络并不强大。那么摆在我们面前的问题就是“如何训练多层网络?”这就是反向传播算法所针对的领域。

反向传播是一种用于训练多层神经网络的算法。该算法分为两个阶段。第一个阶段是通过神经网络将输入传播到最后一层(即前馈)。在第二个阶段,算法会计算出错误,然后从最后一层到第一层反向传播该错误(调整权重)。

图 8. 反向传播简介

在训练过程中,网络的中间层会自己进行组织,将输入空间的部分映射到输出空间。通过监督式学习,反向传播算法能够识别输入到输出映射中的错误,然后相应地调整权重(通过学习率)来纠正该错误。在将来,反向传播在神经网络学习领域仍将会发挥着重要作用。随着计算资源的速度越来越快、成本越来越低,反向传播将会继续被运用到更大、密度更高的网络中。

卷积神经网络

卷积神经网络 (CNN) 是指受动物视觉皮层的启发而构建的多层神经网络。这种架构适用于图像处理等各种应用。第一个 CNN 由 Yann Lecun 创建;当时,该架构以手写字符识别为重点,比如邮政编码读取等。

LeNet CNN 架构由若干层组成,这些层实现特征提取,然后进行分类。图像被分为接收字段,接收字段馈入卷积层,然后卷积层从输入图像中提取特征。下一步是池,不仅减少了提取特征的维数(通过向下采样),还保留了最重要的信息(通常通过最大池)。再就是执行另一个卷积和汇集步骤,将数据输入到完全连接的多层感知机中。此种网络的最后一个输出层是一组节点,能够标识图像的特征(在本例中,每个标识的数字对应一个节点)。用户可以通过反向传播训练网络。

图 9. LeNet 卷积神经网络架构

对于神经网络的各种新应用来说,深层处理、卷积、池和完全连接分类层的运用可以说是一大突破口。除图像处理外,CNN 还成功地运用于视频识别和自然语言处理范畴内的各种任务中。再者,CNN 也在 GPU 中得以有效实施,使其性能得以大大提升。

长短期记忆

我们回想一下,在讨论反向传播时,接受训练的网络是前馈网络。在此架构中,用户将输入信息馈送到网络中,通过隐藏层将其向前传播到输出层。但是,也还有很多其他神经网络拓扑。其中之一,也是我们研究的对象,支持通过节点之间的连接形成一个定向循环。这些网络称为递归神经网络,可以向后反馈到前些层或其所在层中的后续节点。由于具备这样的属性,此等网络成为了时间序列数据的理想选择。

1997 年,创建了一种特殊的循环网络,称为长短期记忆 (LSTM)。LSTM 由内存单元组成,这些网络内的内存单元可以在短时间或长时间内记住值。

图 10. 长短期记忆网络和内存单元

内存单元包含有多个用于控制信息如何从内存单元流入或流出的门。输入门控制新信息何时流入内存。忘记门控制现有信息块在内存中的维持时间。最后,输出门控制单元中包含的信息何时用于内存单元的输出。该单元还包含有控制每个门的权重。训练算法往往通过时间反向传播(反向传播的一种变体),能够根据产生的错误优化相应的权重。

LSTM 已应用于语音识别、手写识别、文本到语音合成、图像字幕处理以及其他各种任务。不久,我就会重新访问 LSTM。

深度学习

深度学习是一种相对较新颖的方法集,正在从根本上改变着机器学习。从本质上来说,深度学习并非一种算法,而是通过非监督式学习实施深度网络的一系列算法。鉴于这些网络的深度,我们需要采用 GPU 等新的计算方法才能进行构建。

本文探讨了现有的两种深度学习算法:CNN 和 LSTM。这些算法已相互结合,能够完成一些令人惊讶的智能任务。如下图所示,CNN 和 LSTM 已用于识别图片或视频,然后用自然语言描述。

图 11. 结合运用卷积神经网络与长短期记忆网络进行图像描述

另外,深度学习算法还用于面部识别,识别肺结核的准确率高达 96%,还包括解决自动驾驶车辆和很多其他复杂的问题。

尽管深度学习算法的运用取得了一定的成效,但仍旧存在许多我们尚无法解决的问题。就近期深度学习在皮肤癌检测方面的运用效果来看,这种算法的确比获得经过认证的专业医师更加准确。但专业医师能够列举出他们作出诊断的依据,而深度学习程序在进行分类时所用的依据,我们却无法识别。这便是深度学习的黑匣子问题。

再看另一个应用,Deep Patient,它能够依据病患的病历成功地预测疾病。经过验证,该应用在疾病预测方面要远远优于医师,甚至是对于普遍认为难以预测的精神分裂症而言,该应用也能成功预测。因此,尽管深度学习模型的效果很好,但没有人能够深入到其中的广泛神经网络找到背后的原因所在。

认知计算

AI 和机器学习可以说是生物领域的新沃土。虽然早期 AI 以制造人脑模拟机器为远大目标,但认知计算在这一方向上走的更远。

认知计算是基于神经网络和深度学习的计算,是运用认知科学的知识来构建模拟人类思维过程的系统。不过,认知计算并非仅仅专注于单个技术集,而是涵盖了多个学科,包括机器学习、自然语言处理、视觉和人机交互等等。

认知计算的一例是 IBM Watson,展示了有关 Jeopardy! 的最新问答互动,但亮点在于 IBM 的 web 服务。这些服务揭示了用于视觉识别、语音到文本和文本到语音功能的应用编程接口;语言理解和翻译;以及用于构建强大虚拟代理的会话引擎。

未来展望

本文仅为人工智能的发展史抛砖引玉,浅显介绍了最新的神经网络和深度学习方法。尽管人工智能和机器学习有其起伏波折的发展过程,但像深度学习和认知计算这样的新方法已经大大提高了这些领域的钻研难度。可以说,一台有意识的机器仍旧遥不可及,但我们已经看到了有助于改善人们生活的系统。

要深入了解如何运用深度学习来开发针对异常检测的认知 IoT 解决方案,请参阅引入深度学习和长短期记忆网络 (Introducing deep learning and long-short term memory networks)