机器学习简史2

来源:互联网 发布:网络教育全国统考 编辑:程序博客网 时间:2024/05/17 22:56

二、机器学习的由来

从人工智能的角度我们不难发现,当今机器学习世界的很多方法都是从其中延伸出来的。但同时,它也自己独特的一面。机器学习是近20多年兴起的一门多领域交叉学科,涉及概率论统计学、逼近论、凸分析算法复杂度理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。机器学习算法是一类从数据中自动分析获得规律,并利用规律对未知数据进行预测的算法。因为学习算法中涉及了大量的统计学理论,机器学习与统计推断学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。很多推论问题属于无程序可循难度,所以部分的机器学习研究是开发容易处理的近似算法。

机器学习可以分成下面几种类别:

  • 监督学习从给定的训练数据集中学习出一个函数,当新的数据到来时,可以根据这个函数预测结果。监督学习的训练集要求是包括输入和输出,也可以说是特征和目标。训练集中的目标是由人标注的。常见的监督学习算法包括回归分析和统计分类。
  • 无监督学习与监督学习相比,训练集没有人为标注的结果。常见的无监督学习算法有聚类。
  • 半监督学习介于监督学习与无监督学习之间。
  • 增强学习通过观察来学习做成如何的动作。每个动作都会对环境有所影响,学习对象根据观察到的周围环境的反馈来做出判断。

具体的机器学习算法有:

  • 构造条件概率:回归分析和统计分类
    • 人工神经网络
    • 决策树(Decision tree)
    • 高斯过程回归
    • 线性判别分析
    • 最近邻居法
    • 感知器
    • 放射 基函数
    • 支持向量机
  • 通过再生模型构造概率密度函数(Probability density function)
    • 最大期望算法(Expectation-maximization algorithm)
    • graphical model:包括贝叶斯网和Markov随机场
    • Generative Topographic Mapping
  • 近似推断技术
    • 马尔可夫链(Markov chain) 蒙特卡罗方法
    • 变分法
  • 最优化(Optimization):大多数以上方法,直接或者间接使用最优化算法。

机器学习是人工智能研究发展到一定阶段的必然产物。从 20 世纪50 年代到 70 年代初,人工智能研究处于“推理期”,人们认为只要给机器赋予逻辑推理能力,机器就能具有智能。这一阶段的代表性工作主要有 A. Newell 和 H. Simon 的“逻辑理论家”程序以及此后的“通用问题求解”程序等,这些工作在当时取得了令人振奋的成果。例如,“逻辑理论家”程序在 1952 年证明了著名数学家罗素和怀特海的名著《数学原理》中的 38 条定理,在 1963 年证明了全部的 52 条定理,而且定理 2.85甚至比罗素和怀特海证明得更巧妙。A. Newell和 H. Simon因此获得了 1975 年图灵奖。然而,随着研究向前发展,人们逐渐认识到,仅具有逻辑推理能力是远远实现不了人工智能的。E.A. Feigenbaum等人认为,要使机器具有智能,就必须设法使机器拥有知识。在他们的倡导下,20 世纪 70 年代中期开始,人工智能进入了“知识期”。在这一时期,大量专家系统问世,在很多领域做出了巨大贡献。E.A. Feigenbaum 作为“知识工程”之父在 1994 年获得了图灵奖。但是,专家系统面临“知识工程瓶颈”,简单地说,就是由人来把知识总结出来再教给计算机是相当困难的。于是,一些学者想到,如果机器自己能够学习知识该多好!实际上,图灵在 1950 年提出图灵测试的文章中,就已经提到了机器学习的可能,而 20 世纪 50年代其实已经开始有机器学习相关的研究工作,主要集中在基于神经网络的连接主义学习方面,代表性工作主要有 F. Rosenblatt 的感知机、B. Widrow 的 Adaline 等。在 20 世纪 6、70 年代,多种学习技术得到了初步发展,例如以决策理论为基础的统计学习技术以及强化学习技术等,代表性工作主要有 A.L. Samuel 的跳棋程序以及 N.J. Nilson 的“学习机器”等,20 多年后红极一时的统计学习理论的一些重要结果也是在这个时期取得的。在这一时期,基于逻辑或图结构表示的符号学习技术也开始出现,代表性工作有 P. Winston的“结构学习系统”、R.S. Michalski等人的“基于逻辑的归纳学习系统”、E.B. Hunt 等人的“概念学习系统”等。

1980 年夏天,在美国卡内基梅隆大学举行了第一届机器学习研讨会;同年,《策略分析与信息系统》连出三期机器学习专辑;1983 年,Tioga出版社出版了R.S. Michalski、J.G. Carbonell和T.M. Mitchell主编的《机器学习:一种人工智能途径》,书中汇集了 20 位学者撰写的 16 篇文章,对当时的机器学习研究工作进行了总结,产生了很大反响;1986 年,《Machine Learning》创刊;1989 年,《Artificial Intelligence》出版了机器学习专辑,刊发了一些当时比较活跃的研究工作,其内容后来出现在J.G. Carbonell主编、MIT出版社 1990 年出版的《机器学习:风范与方法》一书中。总的来看,20 世纪 80 年代是机器学习成为一个独立的学科领域并开始快速发展、各种机器学习技术百花齐放的时期。R.S. Michalski等人中把机器学习研究划分成“从例子中学习”、“在问题求解和规划中学习”、“通过观察和发现学习”、“从指令中学习”等范畴;而E.A. Feigenbaum在著
名的《人工智能手册》中,则把机器学习技术划分为四大类,即“机械学习”、“示教学习”、“类比学习”、“归纳学习”

1.机械学习也称为“死记硬背式学习”,就是把外界输入的信息全部记下来,在需要的时候原封不动地取出来使用,这实际上没有进行真正的学习;

2.示教学习和类比学习实际上类似于R.S. Michalski等人所说的“从指令中学习”和“通过观察和发现学习”;

3.归纳学习类似于“从例子中学习”,即从训练例中归纳出学习结果。20 世纪80 年代以来,被研究得最多、应用最广的是“从例子中学习”(也就是广义的归纳学习),它涵盖了监督学习(例如分类、回归)、非监督学习(例如聚类)等众多内容。

下面我们对这方面主流技术的演进做一个简单的回顾。在 20 世纪 90 年代中期之前,“从例子中学习”的一大主流技术是归纳逻辑程序设计(Inductive Logic Programming),这实际上是机器学习和逻辑程序设计的交叉。它使用 1 阶逻辑来进行知识表示,通过修改和扩充逻辑表达式(例如Prolog表达式)来完成对数据的归纳。这一技术占据主流地位与整个人工智能领域的发展历程是分不开的。如前所述,人工智能在 20 世纪 50 年代到 80 年代经历了“推理期”和“知识期”,在“推理期”中人们基于逻辑知识表示、通过演绎技术获得了很多成果,而在知识期中人们基于逻辑知识表示、通过领域知识获取来实现专家系统,因此,逻辑知识表示很自然地受到青睐,而归纳逻辑程序设计技术也自然成为机器学习的一大主流。归纳逻辑程序设计技术的一大优点是它具有很强的知识表示能力,可以较容易地表示出复杂数据和复杂的数据关系。尤为重要的是,领域知识通常可以方便地写成逻辑表达式,因此,归纳逻辑程序设计技术不仅可以方便地利用领域知识指导学习,还可以通过学习对领域知识进行精化和增强,甚至可以从数据中学习出领域知识。事实上,机器学习在 20 世纪80 年代正是被视为“解决知识工程瓶颈问题的关键”而走到人工智能主舞台的聚光灯下的,归纳逻辑程序设计的一些良好特性对此无疑居功至伟。S.H. Muggleton主编的书对 90年代中期之前归纳逻辑程序设计方面的研究工作做了总结。然而,归纳逻辑程序设计技术也有其局限,最严重的问题是由于其表示能力很强,学习过程所面临的假设空间太大,对规模稍大的问题就很难进行有效的学习,只能解决一些“玩具问题”。因此,在 90 年代中期后,归纳程序设计技术方面的研究相对陷入了低谷。

20 世纪 90 年代中期之前,“从例子中学习”的另一大主流技术是基于神经网络的连接主义学习。连接主义学习技术在 20 世纪 50 年代曾经历了一个大发展时期,但因为早期的很多人工智能研究者对符号表示有特别的偏爱,例如H. Simon曾说人工智能就是研究“对智能行为的符号化建模”,因此当时连接主义的研究并没有被纳入主流人工智能的范畴。同时,连接主义学习自身也遇到了极大的问题,M. Minsky和S. Papert在1969 年指出,(当时的)神经网络只能用于线性分类,对哪怕“异或”这么简单的问题都做不了。于是,连接主义学习在此后近 15 年的时间内陷入了停滞期。直到1983 年,J.J. Hopfield利用神经网络求解TSP问题获得了成功,才使得连接主义重新受到人们的关注。1986 年,D.E. Rumelhart和J.L. McClelland主编了著名的《并行分布处理—认知微结构的探索》一书,对PDP小组的研究工作进行了总结,轰动一时。特别是D.E. Rumelhart、G.E. Hinton和R.J. Williams重新发明了著名的BP算法,产生了非常大的影响。该算法可以说是最成功的神经网络学习算法,在当时迅速成为最流行的算法,并在很多应用中都取得了极大的成功。与归纳逻辑程序设计技术相比,连接主义学习技术基于“属性-值”的表示形式(也就是用一个特征向量来表示一个事物;这实际上是命题逻辑表示形式),学习过程所面临的假设空间远小于归纳逻辑程序设计所面临的空间,而且由于有BP这样有效的学习算法,使得它可以解决很多实际问题。事实上,即使在今天,BP仍然是在实际工程应用中被用得最多、最成功的算法之一。然而,连接主义学习技术也有其局限,一个常被人诟病的问题是其“试错性”。简单地说,在此类技术中有大量的经验参数需要设置,例如神经网络的隐层结点数、学习率等,夸张一点说,参数设置上差之毫厘,学习结果可能谬以千里。在实际工程应用中,人们可以通过调试来确定较好的参数设置,但对机器学习研究者来说,对此显然是难以满意的。


20 世纪 90 年代中期,统计学习粉墨登场并迅速独占鳌头。其实早在 20世纪 6、70年代就已经有统计学习方面的研究工作,统计学习理论[9]在那个时期也已经打下了基础,例如V.N. Vapnik早在1963 年就提出了“支持向量”的概念,他和A.J. Chervonenkis在 1968 年提出了VC维,在 1974年提出了结构风险最小化原则等,但直到 90 年代中期统计学习才开始成为机器学习的主流技术。这一方面是由于有效的支持向量机算法在 90 年代才由B.E. Boser、I. Guyon和V.N. Vapnik提出,而其优越的性能也是到 90 年代中期才在T. Joachims等人对文本分类的研究中显现出来;另一方面,正是在连接主义学习技术的局限性凸显出来之后,人们才把目光转向了统计学习。事实上统计学习与连接主义学习有着密切的联系,例如RBF神经网络其实就是一种很常用的支持向量机。在支持向量机被普遍接受后,支持向量机中用到的核(kernel)技巧被人们用到了机器学习的几乎每一个角落中,“核方法”也逐渐成为机器学习的一种基本技巧。但其实这并不是一种新技术,例如Mercer定理是在 1909年发表的,核技巧也早已被很多人使用过,即使只考虑机器学习领域,至少T. Poggio在 1975 年就使用过多项式核。如果仔细审视统计学习理论,就可以发现其中的绝大多数想法在以往机器学习的研究中都出现过,例如结构风险最小化原则实际上就是对以往机器学习研究中经常用到的最小描述长度原则的另一个说法。但是,统计学习理论把这些有用的片段整合在同一个理论框架之下,从而为人们研制出泛化能力f有理论保证的算法奠定了基础,与连接主义学习的“试错法”相比,这是一个极大的进步。然而,统计学习也有其局限,例如,虽然理论上来说,通过把原始空间利用核技巧转化到一个新的特征空间,再困难的问题也可以容易地得到解决,但如何选择合适的核映射,却仍然有浓重的经验色彩。另一方面,统计学习技术与连接主义学习技术一样是基于“属性-值”表示形式,难以有效地表示出复杂数据和复杂的数据关系,不仅难以利用领域知识,而且学习结果还具有“黑箱性”。此外,传统的统计学习技术往往因为要确保统计性质或简化问题而做出一些假设,但很多假设在真实世界其实是难以成立的。如何克服上述缺陷,正是很多学者正在关注的问题。

科学和真理必然是建立在争论和证明之上。机器学习世界也分了多个门派。所谓的machine learning community,现在至少包含了两个有着完全不同的文化、完全不同的价值观的群体,称为machine learning "communities"也许更合适一些。

第一个community,是把机器学习看作人工智能分支的一个群体,这群人的主体是计算机科学家。

现在的“机器学习研究者”可能很少有人读过1983年出的“Machine Learning: An Artificial Intelligence Approach”这本书。这本书的出版标志着机器学习成为人工智能中一个独立的领域。它其实是一部集早期机器学习研究之大成的文集,收罗了若干先贤(例 如Herbert Simon,那位把诺贝尔奖、图灵奖以及各种各样和他相关的奖几乎拿遍了的科学天才)的大作,主编是Ryszard S. Michalski(此君已去世多年了,他可算是机器学习的奠基人之一)、Jaime G. Carbonell(此君曾是Springer的LNAI的总编)、Tom Mitchell(此君是CMU机器学习系首任系主任、著名教材的作者,机器学习界没人不知道他吧)。Machine Learning杂志的创刊,正是这群人努力的结果。这本书值得一读。虽然技术手段早就日新月异了,但有一些深刻的思想现在并没有过时。各个学科领域总有 不少东西,换了新装之后又粉墨登场,现在热火朝天的transfer learning,其实就是learning by analogy的升级版。

人工智能的研究从以“推理”为重点到以“知识”为重点,再到以“学习”为重点,是有一条自然、清晰的脉络。人工智能出身的机器学习研究者,绝大部分 是把机器学习作为实现人工智能的一个途径,正如1983年的书名那样。他们关注的是人工智能中的问题,希望以机器学习为手段,但具体采用什么样的学习手 段,是基于统计的、代数的、还是逻辑的、几何的,他们并不care。

这群人可能对统计学习目前dominating的地位未必满意。靠统计学习是不可能解决人工智能中大部分问题的,如果统计学习压制了对其他手段的研 究,可能不是好事。这群人往往也不care在文章里show自己的数学水平,甚至可能是以简化表达自己的思想为荣。人工智能问题不是数学问题,甚至未必是 依靠数学能够解决的问题。人工智能中许多事情的难处,往往在于我们不知道困难的本质在哪里,不知道“问题”在哪里。一旦“问题”清楚了,解决起来可能并不 困难。

第二个community,是把机器学习看作“应用统计学”的一个群体,这群人的主体是统计学家。

和纯数学相比,统计学不太“干净”,不少数学家甚至拒绝承认统计学是数学。但如果和人工智能相比,统计学就太干净了,统计学研究的问题是清楚的,不象人工智能那样,连问题到底在哪里都不知道。在相当长时间里,统计学家和机器学习一直保持着距离。

慢慢地,不少统计学家逐渐意识到,统计学本来就该面向应用,而机器学习天生就是一个很好的切入点。因为机器学习虽然用到各种各样的数学,但要分析大 量数据中蕴涵的规律,统计学是必不可少的。统计学出身的机器学习研究者,绝大部分是把机器学习当作应用统计学。他们关注的是如何把统计学中的理论和方法变 成可以在计算机上有效实现的算法,至于这样的算法对人工智能中的什么问题有用,他们并不care。

这群人可能对人工智能毫无兴趣,在他们眼中,机器学习就是统计学习,是统计学比较偏向应用的一个分支,充其量是统计学与计算机科学的交叉。这群人对统计学习之外的学习手段往往是排斥的,这很自然,基于代数的、逻辑的、几何的学习,很难纳入统计学的范畴。

两个群体的文化和价值观完全不同。第一个群体认为好的工作,第二个群体可能觉得没有技术含量,但第一个群体可能恰恰认为,简单的才好,正因为很好地 抓住了问题本质,所以问题变得容易解决。第二个群体欣赏的工作,第一个群体可能觉得是故弄玄虚,看不出他想解决什么人工智能问题,根本就不是在搞人工智 能、搞计算机,但别人本来也没说自己是在“搞人工智能”、“搞计算机”,本来就不是在为人工智能做研究。

0 0
原创粉丝点击