从半个多世纪的发展历程可以看出,人工智能技术的进步走的是一条“反逻辑”的路。人类用一千多年的时间得到了可计算的逻辑,即数理逻辑。虽然绝大多数逻辑系统并不完备(可能存在不可证明真伪的命题),但在很多时候已经足以描述在数学和物理学上的很多知识(如概念、关系等)。这些知识是如此简洁美好,如果可以被计算机掌握,则有望实现理解、决策等智能行为,这也是最初的人工智能研究者所持有的基本思路。然而,人们在研究过程中一步步发现,人为设计的知识以及基于这些知识的推理过程在实际应用中非常困难。这不仅因为对知识进行形式化本身就很烦琐,即使完成了这一形式化,依然会有各种冲突和不确定性存在,使得推理很难完成。相反,从数据中学习得到的知识虽然可能是不精确、不全面的,但在很多时候更适合实际应用。因此,人工智能的研究者们不得不用数据学习逐渐取代人为设计。在这一过程中,我们失去了传统数理逻辑的简洁和清晰,越来越依赖从数据中得到统计规律,而这些规律天然具有模糊性和近似性。
这意味着当前人工智能技术与传统AI在方法论上已经有很大的不同了。当代人工智能的本质是让机器从数据中学习知识,而不再是对人类知识的复制,这一方法称为“机器学习”。基于这样的思路,人工智能已经不再是人的附庸,它将和人类在平等的起跑线上汲取和总结知识,因而可能创造出比人类更巧妙的方法、生成比人类更高效的决策、探索人类从未发现过的知识空间。数据越丰富,计算能力越强,这种学习方法带来的效果越好,超越人的可能性越高。当前AI的很多成就很大程度是由庞大的数据资源和计算资源支撑的,典型的领域包括语音识别、图像识别、自然语言处理、生物信息处理等。21世纪的AI是数据的AI,是机器学习的AI,“人工智能”里的“人工”更多的是设计学习原则,而非设计智能过程本身。基于此,本书将重点介绍基于机器学习的现代AI技术。关于传统AI方法,读者可参考朱福喜老师编著的《人工智能基础教程》一书 。
1959年,亚瑟·塞缪尔(Arthur Samule)发表了一篇名为 Some Studies in Machine Learning Using the Game of Checkers 的文章。该文章描述了一种会学习的西洋棋计算机程序,只需告诉该程序游戏规则和一些常用知识,经过8~10小时的学习后,即可学到足以战胜程序作者的棋艺。这款西洋棋游戏是世界上第一个会自主学习的计算机程序,宣告了机器学习的诞生。
什么是机器学习?塞缪尔认为机器学习是“让计算机拥有自主学习的能力,而无须对其进行事无巨细的编程”的方法 。尼尔斯·约翰·尼尔森(Nils J. Nilsson)则认为机器学习是“机器在结构、程序、数据等方面发生了基于外部信息的某种改变,而这种改变可以提高该机器在未来工作中的预期性能” 。上述这些定义本质上是一致的,即认为机器学习是通过接收外界信息(包括观察样例、外来监督、交互反馈等),获得一系列知识、规则、方法和技能的过程。和传统算法相比,机器学习的一个巨大优势在于程序设计者不必定义具体的流程,只需告诉机器一些通用知识,定义一个足够灵活的学习结构,机器即可通过观察和体验积累实际经验,对所定义的学习结构进行调整、改进,从而获得面向特定任务的处理能力。
图1-5给出了机器学习发展历史上的一些重要人物和标志性事件。总体来说,20世纪50年代以前是技术积累阶段,研究者在统计学习和优化方法上提出了一系列模型和准则。1950年图灵提出图灵测试准则,开创了人工智能的广阔领域。机器学习伴随着人工智能的研究开始萌芽。1959年亚瑟·塞缪尔的划时代论文将“机器学习”这一重要概念引入人工智能,并开始独立解决实际问题。整个20世纪60年代,以符号逻辑为研究对象的 符号学派 (Symbolism)是人工智能研究的主流,人工神经网络、概率模型、遗传算法等更侧重“学习”的方法开始萌芽。进入20世纪70年代,人工智能的冬天来临,机器学习研究也走入困境,特别是在马文·明斯基发表《感知器》一书后,被寄予厚望的人工神经网络的研究几乎停滞。
图1-5 机器学习发展史上的若干重要人物和重要事件
注:坐标轴上方为人物,下方为对应人物的对应事件。
这一状态一直持续到20世纪80年代。因为基于符号逻辑的人工智能方法无法提供足够的学习空间,一些学者开始转向统计学习方法,形成了两个主要研究方向:一是基于概率模型的 贝叶斯学派 (Bayesianism);二是基于神经网络模型的 连接学派 (Connectionism)。贝叶斯学派的代表人物包括JudeaPearl,S. L. Lauritzen,D. J. Spiegelhalter等,连接学派的代表人物包括John Hopfield,David Rumelhart,Geoffrey Hinton等。
这两个学派在基本思路上有很大的差异,但都认为机器学习(包括人工智能)应该有更灵活的学习框架,而非在人为定义的符号系统中小修小改。整个20世纪80年代,机器学习的研究者们在人工智能领域的边缘默默积累,贝叶斯学派提出了图模型,连接学派发展出卷积神经网络、递归神经网络等新型网络结构和高效的反向传播(Back Propagation,BP)训练算法。
进入20世纪90年代以后,以符号演算为基础的传统人工智能方法越来越表现出其局限性。第一,随着任务越来越复杂,对知识的定义越来越困难,不仅知识数量越来越多,不同知识之间还经常出现矛盾;第二,知识系统越复杂,新知识的加入越困难,产生的结果越难以估计;第三,对一些没有先验知识的领域,推理系统无法工作;第四,人为创建的知识在面对实际问题时经常会产生偏差,甚至会带来严重错误。相比之下,以统计方法为基础的机器学习方法可以通过灵活的结构从数据中学习知识,可以方便处理数据中的噪声和矛盾。基于此,以统计学习为特征的机器学习方法成为人工智能领域的主流方法。
进入21世纪以后,计算机的性能比以前有了大幅提高,这为以统计学习为特征的机器学习方法提供了更加广阔的发展空间。今天,机器学习在信号处理、自然语言理解、图像处理、生物与医学等各方面取得了前所未有的成功。如今,当我们谈论人工智能的时候,很多时候谈论的是机器学习。另一方面,互联网积累了大量人为编辑的数据(如维基百科),这些数据的出现一定程度上解决了传统符号方法在知识积累上的瓶颈,使得以 知识图谱 (Knowledge Graph)为代表的新一代符号方法取得了长足的进步。有意思的是,新生代的符号主义研究者们开始主动拥抱机器学习,利用机器学习方法对知识进行抽象与推理。新符号主义是机器学习领域中的重要力量。关于机器学习和人工智能的发展历史,有兴趣的读者可参考最近出版的一些科普著作 。
研究者对机器学习有各种各样的表述。本书中,我们将从“知识”和“经验”两个概念来理解机器学习。所谓知识,是人类已经获得的可形式化的某种理性表达(如英语语法和数学公式等),这些知识也被称为 先验知识 (Prior Knowledge,即已经掌握的知识)。所谓经验,是指机器在运行环境中得到的反馈(比如,我们知道沸水是不能喝的,因为有过一次被烫伤的经历,由此总结出了一条“不能喝沸水”的经验)。经验中包含大量有用的信息,只是掩盖在复杂的表象之下,很难被直接利用。
“知识”和“经验”是机器学习系统的两个基本信息来源,基于其中任何一种信息源都可以构造一个有效的智能系统。但是,基于单一信息源的系统存在明显缺陷:纯粹基于知识的系统封闭而不思进取;纯粹基于经验的系统博闻而不求甚解。一种很自然的想法是将两者结合起来。这类似一个新生儿,从诞生的那一刻起父母通过遗传给他一个合理的神经结构(可以认为是一个基于知识的“设计”),可以进行呼吸、哭闹等基本动作,但更高级的能力(如语言、推理等)则需要通过后天学习,从经验中进行总结。因此,人类本身就是一个既有先验知识,也有后天学习的综合系统。我们认为这种先验知识和后天经验学习相结合的能力获取方式是现代机器学习乃至人工智能的基本特征之一,而如何平衡这两者的关系产生了风格迥异的学习方法。图1-6给出基于知识—经验的机器学习框架。下面从学习目标、学习结构、训练数据、学习方法四个方面展开讨论。
图1-6 基于知识—经验的机器学习基础框架
注:首先确定学习目标,之后基于先验知识设计学习结构。参考该学习目标和学习结构,选择合适的学习方法,利用数据对学习结构进行修正,使之能更好地完成目标任务。
学习目标 :机器学习任务的目标是多种多样的。从应用角度看,学习目标可分为 感知 (Perception)、 推理 (Induction)、 生成 (Generation)等。其中,感知包括听声、看画等;推理包括寻找原因,作出决策等;生成包括生成语音、图片、文字等。从任务性质看,学习目标可分为 预测 (Prediction)和 描述 (Description)两类,前者是指给定一部分数据(如昨天的股市指数)对另一部分数据进行预测(如今天的股市指数),后者是指对数据的内在规律进行发现和刻画(如股市指数在一段时间内的变化规律)。
学习结构 :学习结构又称 模型 ,定义了用以表达系统知识的具体形式。 函数 (Function)是一种常见的模型,该模型将知识表达为由某一输入到某一输出的映射,学习时通过改变函数参数来吸收从数据中得到的新知识; 图 和 网络 (Network)是另一种常见的模型,该模型将知识表达为图或网络中节点的属性以及节点之间的联系,学习时通过改变这些属性和联系来吸收从数据中得到的新知识。
训练数据 :数据是经验的累积,利用数据对系统进行学习可以更新先验知识、提高系统实用性。数据的质量、数量和对实际场景的覆盖程度都会直接影响学习的结果,因此数据积累是机器学习研究的基础,“数据是最宝贵的财富”已经成为机器学习从业者的共识。
在收集和整理数据时,通常会关注数据是否准确、是否完整,不同数据间的相关性如何。另外,我们一般不会直接使用原始数据,而是通过一系列预处理过程对数据进行清洗过滤,并将数据中最显著的部分提取出来(称为 特征提取 )进行学习。
学习方法 :学习方法是学习过程的具体实现,即通常所说的 算法 。机器学习算法可分为 有监督学习 (Supervised Learning)、 无监督学习 (Unsupervised Learning)、 半监督学习 (Semi-Supervised Learning)和 强化学习 (Reinforcement Learning)四种。其中,监督学习需要人为对数据进行标注(如给猫的图片标上“猫”,给影评标上正面或负面评价等);无监督学习不需要标注;半监督学习需要部分标注;而强化学习只需要间接标注(见第5章)。需要特别注意的是,算法的选择是由学习结构、学习目标及数据特性等几方面因素共同决定的,不存在一种普适算法在所有任务中全面胜出。
总之,我们认为机器学习是一种将人类先验知识和后天经验相结合,以提高计算机处理某种特定任务能力的计算框架。这一框架包括学习目标、学习结构、训练数据和学习算法四个部分。基于这一框架,我们依赖先验知识设计合理的学习结构,设计相应的学习算法,从经验数据中得到知识并对现有学习结构进行更新,使得既定的学习目标得到优化。