第1章 人工智能与计算思维
1.1 人工智能
人工智能(artificial intelligence,AI),就是研究和设计具有智能行为的计算机程序,使其如同具有智能行为的人或动物一样去执行任务。因为其初衷是希望机器能够模拟人的行为,因此它最初是综合了计算机科学、数学、信息论、神经学、心理学等多种学科的一门跨领域学科。这种“机器学习人”的正向思维影响了人工智能最初几十年的发展方向。1956年,麦卡锡(J. McCarthy,达特茅斯学院数学助理教授)、明斯基(M. L. Minsky,哈佛大学数学与神经学初级研究员)、罗切斯特(N. Rochester,IBM信息研究经理)和香农(C.E. Shannon,贝尔电话实验室数学家)发起了著名的达特茅斯会议,会议研讨的主题是如何让机器具有类人的智力和行为能力,此时距离第一台电子计算机诞生仅有10年。达特茅斯会议的议题涉及自动计算机、为计算机编程使其能够使用语言、机器自我改造、抽象以及随机性与创造性等主题,会议上首次提出了“人工智能”。
在这次会议以后,人工智能开始了漫长的探索期,什么样的系统才具有智能?著名的计算机科学家图灵提出了“图灵测试”(Turing testing)来判断一台计算机是否具有智能:即一个人在不接触对方(一台计算机)的情况下,通过一种特殊的方式,和对方进行一系列的问答,如果在相当长时间内,他无法根据这些问题判断对方是人还是计算机,那么,就可以认为这台计算机具有同人相当的智力,即这台计算机是能思维的。
要分辨一个想法是“自创”的思想还是精心设计的“模仿”是非常难的,任何自创思想的证据都可以被否决。图灵试图解决长久以来关于如何定义思考的哲学争论,他提出一个虽然主观但可操作的标准:如果一台计算机表现(act)、反应(react)和互相作用(interact)都和有意识的个体一样,那么它就应该被认为是有意识的。
图灵采用“问”与“答”模式,即观察者通过控制打字机与两个测试对象通话,其中一个是人,另一个是机器。观察者不断提出各种问题,从而辨别回答者是人还是机器。例如,
问:请写出有关“第四号桥”主题的十四行诗。
答:不要问我这道题,我从来不会写诗。
问:34957加70764等于多少?
答:(停30秒后)105721。
要对这些问题做出回答,无论答案是什么,都要能够欺骗提问者的逻辑思考系统,其中涉及几个基本的技术难点:第一,语义理解,即提问者问题中的语义是什么,到底问题想要问的是什么?第二,知识表达,机器要将提问者提出的问题以适当的形式表达并存储起来,以进行下一步的处理;第三,检索,即便机器能够马上识别问题,此时也需要从解空间中找到一个“最优”的回答;第四,计算机的处理时间,如果对方是人,就算脑子不太灵光,其思考时间也不会太长,可以回答“不知道”,可以回答“不想思考了”,但是不会考虑了10分钟仍然还在思考。因此可以看出,要做出一个可以欺骗人的类人的回答,实际上涉及的技术难点是非常多的。从“图灵测试”也可以看出为什么人工智能领域会设定知识建模及表达、启发式搜索解空间、推理方法、智能系统结构和语言、机器学习等多个研究方向为其核心研究内容。如果能把这些核心问题攻克了,“图灵测试”也就失效了。
然而,除了上述提到的几个基础技术难点,问题本身的设计以及问题所使用的语言都会使机器的反应能力产生较大的差异。例如,使用中文进行提问,对机器的逻辑处理能力要求更高。
中国队大败了美国队吗?
中国队大胜了美国队吗?
一字之差,且两个字是反义词,但是其含义却是一致的。这种强二义性的语言理解对机器提出了更高的要求,即机器需要理解上下文。那么,如果机器掌握了上下文,就一定能够通过“图灵测试”吗?如果给予足够多的数据学习上下文的环境,那么机器是不是就可以通过“图灵测试”了呢?按照图灵对“智能”的描述:如果机器在某些现实的条件下,能够非常好地模仿人回答问题,以至于提问者在相当长时间里误认为它不是机器,那么机器就可以被认为是能够思维的。所以,如果提问者是固定的,机器通过“图灵测试”是完全可能的。
但是实际上人类本身的彼此间交互模式也在进行着演化,新技术带来的新的社会交互模式,必然会产生更多的上下文背景,以及群体性文化。也许十年前无厘头的回答在今天却显得合情合理;如果被测试者是老年人,他无法理解关于年轻人的问题,也可能会被当成计算机。因此,计算机持续的学习能力才是人工智能的核心。
1.2 机器学习
从20世纪50年代到21世纪初,围绕“图灵测试”,人工智能的研究领域主要涵盖了知识建模及表达、启发式搜索解空间、推理方法、智能系统结构和语言、机器学习等多个研究方向,试图在其中找到一条可以通往机器模拟人脑思维和行为的可行路径。直到2006年,“神经网络之父”“深度学习鼻祖”——杰费里?辛顿(Geoffrey Hinton)在Science《科学》上发表了一篇石破天惊的学术论文Reducing the Dimensionality of Data with Neural Networks,论文提到了如何使用玻尔兹曼机改进反传人工神经网络,使其具有深度学习的能力(Hinton and Salakhutdinov,2006)。此后,机器学习便在人工智能领域奠定了主力地位。
在数据工程和计算能力的突破下,AI的任务实际上大部分已经可以通过机器学习来完成。例如,在传统的人工智能研究领域,博弈(game playing)问题已经得以解决,我们不再困扰于如何从无穷无尽的解空间中搜索出正确答案,也不再困扰于搜索路径过长会导致计算崩溃的问题,因为基于大数据的深度学习网络已经可以帮助计算机提前建立好各种应对模型,即使是世界顶级职业围棋棋手在面对阿尔法围棋(AlphaGo)时,也会败下阵来。
机器学习,顾名思义,是计算机进行学习的行为,与人类高阶学习的定义不同,机器学习通常只是低阶的学习,机器需要学会识别。例如,需要识别哪一个是垃圾桶,需要识别哪一个人是手机的主人,需要识别披萨的价格是定高了还是定低了,需要识别未来股市的走势,需要识别风险等级,需要识别各种解决问题的套路和模式。但是机器完成识别任务不能是凭空产生的,机器需要从经验中学习,以实现上述目标。
我们经常为这种现象感到困惑——强大的第六感,总感觉某件事有些不对劲,然后事实证明,我们的判断是对的,是我们真的有第六感吗?英国侦探小说家阿加莎?克里斯蒂曾经在《ABC谋杀案》一书里这样形容人的直觉:所谓直觉,不过是人的经验的反映。也就是说,我们所谓的感觉,是对周围环境某些特征的感知,虽然我们意识不到这些特征是什么,但是它们是这些不对劲事件的关键表达。实际上,你只要想想为什么我们能在微秒级完成迎面走来之人的人脸识别,就能理解特征与识别任务之间的关系了。我们之所以能够快速地识别人脸,是因为我们从小到大经历了无数次的人脸识别学习,在脑海里已经形成一个稳定的识别模型,如果模型的参数不发生改变(光线强弱、人脸角度等),我们就不需要对模型进行进一步处理,只需要将人脸特征快速地放入系统中去识别一下,就能够完成人脸识别任务了。
而更多复杂的任务,则是由无数这样的底层任务组合起来的,如果每个底层任务都能够快速地被完成,那么整体任务的完成时间也会缩短。人在学习过程中,会通过不断训练底层特征提取(以提高识别的效率),来达到更复杂任务的特征组合—识别。机器学习基本上也是遵循这样的过程,在经验数据中获得数据的特征,训练模型,使其对这些特征敏感,进而可以识别以这些特征为代表的数据本身。如同人一样,有些特征你能给它命名,有些特征,你根本无法解释到底是什么,就像是我们的直觉感知到的信息一样。
特征与机器学习模型的关系如图1-1所示,其中特征空间里的特征1~特征n指的是可以描述数据的不同角度,也可以是数据的不同属性。例如,在描述一个杯子的时候,可以通过“产地”“材质”“容量”“是否保温”“是否有盖子”“盖子是否可密闭”等属性来描述这个杯子,这些属性是每个杯子都有的特征项,而属性的值则是识别杯子的主要特征。这些特征被称为结构化特征,即这些特征代表具体的意义,可以被人类认知所理解。而有一些特征则是无法结构化的,这些特征也能对某个对象的识别产生关键性影响,但是却很难用语言来描述这些特征代表着什么意义。
图1-1中的机器学习模型是用来处理特征值的。机器学习模型将这些输入特征通过对应数学公式进行转换,从而将特征值与结果关联起来。这些数学模型可以是白盒的,即可以看到数据的逐步变化过程,可以清晰地看到特征数据是怎么影响结果变化的;这些数学模型也可以是黑盒的,即数据的变化是非线性的,数据经过各种变换,也能和结果关联起来。无论模型是黑盒的还是白盒的,它只起一个作用,即将特征数据和任务结果映射起来。
任务分为3类,分别是分类、回归和聚类。实际上,这3类任务覆盖了前文提到的机器能够完成的各种识别任务。分类指的是能够对样本做简单的区分,回归指的是能够对某个目标值作推断,而聚类则指的是在未知的情况下,发现各种可能存在的模式。
此时,再来理解机器学习就更加容易了,我们来回答3个问题:
①机器从哪里学?
②学了什么?
③机器学会了以后打算怎么用?
我们用一个例子来回答这3个问题。假设,需要购买一个1.5升的保温水杯,可是我们也知道不同品牌不同产地的水杯,价格是怎么样的。所以,希望通过计算机来帮我们推断一下自己心仪杯子的价格。目前,经验数据就是我们已经知道的5个水杯的各种相关信息,如表1-1所示。这个时候,我们可以回答第一个问题,即机器要做价格预测,需要从哪里学习?前面提到,人工智能是从经验数据中学习,所以这里的机器学习也是从已经知道的5个水杯的信息中去提取有用的知识。“产地”“材质”“容量”“是否保温”“是否有盖子”“盖子是否可密闭”是6项特征,而预测价格则是机器学习模型的任务。
那么机器学到了什么呢?实际上,要得到一个预测的价格,首先需要将经验数据输入模型中,然后让模型的参数从未知变为某个确定值;接着,在这个确定值的基础上,再输入需预测价格的杯子的“产地”“材质信息”“容量”等信息,就可以预测其价格了,这个过程叫作模型的训练。获得稳定参数的模型叫作已经学习好了的模型,它在经验数据的特征值和其结果之间建立了相对稳定的映射关系(图1-2)。
再回到第三个问题,学习好了的模型有什么用呢?如前所述,当已知一个杯子的所有特征值后,将这些特征值输入模型中,模型会通过输入值与已有参数值,产生一个输出,这个输出就是对未知杯子的价格预测了。
机器学习的过程并不如我们想象得那么复杂,步骤很简单,首先需要把经验数据整理成特征形式,这个过程叫作数据预处理。例如,“是否保温”这个特征的值不能是文字的“是”还是“否”,必须是机器能够处理的形式,我们可以用二进制的“0”和“1”来表示“是”和“否”这两种状态;又比如,将一幅100万像素的图片转换成特征值时,可以生成一个100万维的向量,其中每个向量值代表的是一个像素点的颜色信息,这个信息可以是256种颜色中的一种,那么这张图片的特征就是100万个[0,255]的十进制数字。
要选择适当的模型来产生输出,输出的任务类型各不相同,有分类任务,有回归任务,也有聚类任务。其中,分类任务和回归任务都必须通过有监督学习(supervised learning)来实现,而聚类则可以通过无监督学习(unsupervised learning)来实现。上面预测杯子价格的任务,就是一个典型的回归任务。当然,当我们把机器学习的任务换成预测水杯是否能保温时,输出就变成了分类任务。
温馨提示:请使用泸西县图书馆的读者帐号和密码进行登录