1.4 两全其美
人工智能正在寻找并利用人脑与“电子大脑”这两者的优点来增强人类的能力。将人脑的复杂性和效率与计算机的蛮力结合在一起,可以产生智能机器,解决人类面临的一些最具挑战性的问题。届时,人工智能将补充人类的能力,并通过促进集体智能,向和谐社会迈进一步。人工智能的例子有流行趋势预测、基于DNA采样和分析的疾病预防、自动驾驶汽车、在危险环境下工作的机器人,以及为不同能力的人提供的机器助手等。
在机器学习和人工智能领域中,采用统计和算法处理数据已经流行了很长一段时间。然而,直到有了大量的可用数据和海量的处理速度(即大数据),其功能和适用场景才得以拓展。1.4.1节将介绍一些大数据的基础知识。大数据的可用性加快了人工智能和机器学习应用的发展和演变。人工智能在大数据出现前后的对比如表1-1所示。
表1-1 人工智能在大数据出现前后的对比
人工智能的主要目标是在机器中实现类似人类的智能,并创建收集数据的系统,对数据进行处理,创建模型(假设),预测或影响结果,最终改善人类生活。以大数据为金字塔的核心,可以实时获得来自不同来源的海量数据集。这将为真正增强人类能力的人工智能打下一个坚实的基础,如图1-2所示。
图1-2 以大数据为核心的金字塔
1.4.1 大数据
“我们没有更好的算法,只有更多的数据。”
——皮特·诺维格(Peter Norvig),谷歌研究总监
在字典中,数据被定义为收集在一起以供参考和分析的事实与统计数字。存储机制在人类进化过程中有了很大的发展,如雕刻、在叶子上手写的文字、穿孔卡片、磁带、硬盘、软盘、CD、DVD、SSD、人类DNA等。每种新媒介的出现使人们能够在更少的空间中存储更多的数据,这是朝着正确的方式转变。随着互联网和物联网的出现,数据量呈指数级增长。
数据量呈爆炸式增长,过去两年间创造的数据比人类整个历史上的还要多。
“大数据”一词用来表示不断增长的数据量。除了数据量大,这个词还包括高速、多样和价值这3个属性。
(1)大量。这代表了呈指数级增长的数据量。现在人们通过越来越多人造物和自然物体之间的接口收集数据。例如,一位病人的日常就诊现在能产生MB级别的电子数据,一位普通的智能手机用户每天至少产生几GB的数据,一次点到点的飞行能产生半TB的数据。
(2)高速。这代表了数据产生的速度,以及对某些关键操作进行准实时数据分析的需要。人们用传感器收集来自自然现象的数据,将数据进行处理后用来预测飓风或地震。医疗保健是关于数据生成速度一个很好的例子,分析和行动是关键,如图1-3所示。
图1-3 持续增长的数据量与速度
(3)多样。这代表了数据格式的多样。在历史上,大多数电子数据集都是结构化的,并且适合数据库表(列和行)。然而,现在我们生成的超过80%的电子数据集不是结构化的,如图像、视频和语音数据文件。有了大数据,我们就可以分析绝大多数结构化、非结构化和半结构化的数据集。
(4)价值。这是大数据最重要的方面。数据只有产生可操作的洞见时才有价值。记住结果金字塔的结论——行为导致结果。毫无疑问,数据是这种可操作的洞见的关键。然而,系统需要快速地发展,以便能够分析数据、理解数据中的模式,并基于情境背景的细节,提供最终能够产生价值的解决方案。
1.4.2 从迟钝机器进化到智能机器
存储和处理这些海量数据的机器与机制随时间发生了巨大的变化。下面简要地看看机器(简单地说就是计算机)的发展。在大部分发展进程中,计算机都是迟钝机器,而不是智能机器。计算机的基本构件是中央处理单元(Central Processing Unit,CPU)、随机存储器(临时内存)和磁盘(持久存储)。CPU的核心组件之一是算术逻辑单元(Arithmetic and Logic Unit,ALU)。这个组件能够执行数学计算的基本步骤和逻辑操作。有了这些基本能力,传统计算机就有了更强大的处理能力。然而,它们仍然是没有任何内在智能的迟钝机器。这些计算机非常擅长使用蛮力执行预定义的指令,并为未定义的场景抛出错误或异常。这些计算机程序只能回答它们要解决的特定问题。
尽管这些机器可以处理大量的数据并执行繁重的计算任务,但总是被限制在它们被设计要做的事情上。例如,自动驾驶汽车就存在很大的局限。如果计算机程序按照预定义的指令工作,那么通过编写程序的方式来让汽车处理所有的情况几乎是不可能的。要想在所有路况下驾驶汽车,就需要花费大量时间去编写程序。
传统计算机对未知或非编程情况的响应能力有限,这导致了一个问题:机器能被开发得像人类一样思考和进化吗?需要记住的是,人们在学习开车的时候,只是在一些特定的情况和特定的道路上驾驶它。人脑能非常快速地学会对新情况做出反应,并触发各种操作(休息、转弯、加速等)。这种好奇心促进了传统计算机向人工智能机器的进化。
传统上,人工智能系统的发展是以创建专家系统为目标的,这些专家系统展示智能行为,并在每一次交互和结果中学习,类似于人脑。
1956年,“人工智能”这个词被创造出来。尽管在这个过程中有一些大大小小的发展,但20世纪的最后10年才标志着人工智能技术的显著进步。1990年,出现了一些机器学习算法,这些算法的原理包括基于案例的推理以及自然语言理解与翻译。1997年,当计算机“深蓝”击败当时的世界象棋冠军加里·卡斯帕罗夫(Gary Kasparov)时,机器智能的发展来到了一个重要的里程碑。此后,人工智能系统又取得了很大的进步,以至于一些专家预言人工智能最终将在所有方面击败人类。本书将着眼于构建智能系统的细节,并了解核心手段与可用的技术。我们将共同参与人类历史上最伟大的革命之一。
1.4.3 智能
从根本上说,智能,尤其是人类智能,是一个不断进化的现象。当应用于感官输入或数据资产时,智能通过4个“P”进行演化:感知(Perceive)、处理(Process)、持久化(Persist)和执行(Perform)。为了开发人工智能,需要用同样的循环方法为机器建模,如图1-4所示。
图1-4 为机器建模的循环方法
1.智能的类型
以下是人类智能的一些大致分类。
(1)语言智能。能够将单词与对象联系起来,并使用语言(词汇和语法)来表达意思。
(2)逻辑智能。能够计算、量化和执行数学运算,并使用基本和复杂的逻辑进行推理。
(3)人际关系和情感智能。能够与他人互动,理解他人的感受和情绪。
2.智能任务的分类
智能任务的分类如下。
(1)基本任务。包括感知、常识、推理和自然语言处理。
(2)中级任务。包括数学和游戏。
(3)专家任务。包括金融分析、工程能力、科学分析和医学分析。
人类智能和机器智能的根本区别在于处理基本任务和专家任务。对人类智能来说,基本任务很容易掌握,这种能力与生俱来;对于机器智能来说,感知、推理和自然语言处理是一些在计算上最具挑战性和最复杂的任务。
1.4.4 大数据框架
为了从大量、在形式和结构上多样、生成速度不断加快的数据中获得价值,并基于对事件发生(数据生成)与数据可供分析和操作的时间差的考虑,出现了两大类框架。
1.批处理框架
传统上,数据仓库系统中的数据处理管道需要提取(Extracting)、转换(Transforming)和加载(Loading)用于分析和操作的数据(ETL)。随着基于文件的分布式计算的新范式出现,ETL处理顺序发生了变化。现在需要对数据进行多次提取、加载和重复转换以进行分析(ELTTT),如图1-5所示。
图1-5 对数据进行分析
在批处理中,数据从不同来源收集到暂存区中,并按规定的频率和时间表加载和转换。在大多数使用批处理的用例中,没有必要实时或准实时地处理数据。例如,关于学生出勤数据的月报将在月末通过一个处理(即批处理)生成。这个处理过程从源系统中提取数据,加载数据,并将数据转换为各种视图和报告。Apache Hadoop是最流行的批处理框架之一。它是一个高度可伸缩的分布式/并行处理框架。Hadoop的主要构建模块是Hadoop分布式文件系统(Hadoop Distributed File System,HDFS)。
顾名思义,这是一个封装的文件系统,以分布式的方式在Hadoop中的数据节点上存储数据(结构化/非结构化/半结构化)。对于数据的处理(而不是被处理的数据)被发送到各个节点上。计算由每个单独的节点执行,结果由主进程进行合并。在这种数据计算本地化的范式中,Hadoop严重依赖于中间的硬盘I/O操作。因此,Hadoop以牺牲处理时间为代价,以可靠的方式处理大量的数据。该框架非常适合于批量模式下从大数据中提取价值。
2.实时处理框架
虽然批处理框架适用于大部分数据仓库用例,但是在数据生成后就立刻对其进行处理并产生可操作的洞见也是十分急切的需求。例如,在信用卡欺诈检测系统中,一旦记录了恶意活动的第一个实例,就应该立即生成告警。如果在月末批处理后才得到可操作的洞见(如拒绝交易),则没有任何价值。实时处理框架的思想是减少事件时间和处理时间之间的延迟。在理想系统中,事件时间和处理时间之间的期望差为0。然而,时间差是关于数据源输入、执行引擎、网络带宽和硬件的函数。实时处理框架依赖分布式的内存计算,以最小的I/O实现低延迟。一些最流行的实时处理框架如下。
(1)Apache Spark。这是一个分布式执行引擎,它依赖于内存处理,这种内存处理由一种称为弹性分布式数据集(Resilient Distributed Dataset,RDD)的容错数据抽象实现。
(2)Apache Storm。这是一个分布式实时计算框架。Storm应用程序易于处理无界流,这些流以非常高的速度生成事件数据。
(3)Apache Flink。该框架能够高效、分布式地处理大量数据。Flink的关键特性是程序的自动优化。Flink为大规模迭代、计算密集型算法提供了原生支持。
随着生态系统的发展,有更多的框架可用来进行批处理和实时处理。回到机器智能的演化周期(感知、处理、持久化、执行),我们将利用这些框架创建处理大数据的程序,采用算法过滤相关数据,根据数据中的模式生成模型,并得出可操作的洞见和预测,最终从数据资产中获得价值。
1.4.5 大数据智能应用
技术发展到这一阶段,系统可以收集大量来自异构数据源的数据,并用越来越低的成本进行存储,人们可从数据中获得洞见并创造价值,进而构建智能机器改善人类生活。人们需要使用一种算法来处理手头大量的数据和计算资产。利用人类智能、大量的数据和分布式计算能力,人们可以构建专家系统,这些系统将有利于引导人类走向更美好的未来。
AI领域
虽然我们还处于人工智能发展的初级阶段,但下面这些基本领域也不乏重要研究和突破。
(1)自然语言处理。促进计算机和人类语言之间的交互。
(2)模糊逻辑系统。这些系统基于真实的程度,而不是使用if/else逻辑为所有情况编写程序。基于可接受的推理,这些系统可以控制机器和消费品。
(3)智能机器人。这些机械装置可以执行日常的或危险的重复性任务。
(4)专家系统。这些系统或应用程序可以解决特定领域中的复杂问题。它们能够基于知识库和模型提供建议、诊断和预测结果。