资源描述
标题:机器学习简史发信站:水木社区(Tue Apr 1 09:22:09 2014),站内最近学习的重点不在机器学习上面,但是现代的学科就是这么奇妙, 错综复杂,玩着玩着,你发现又回到了人工智能这一块。所以干脆好 好整理下当下令很多人如痴如醉,但又不容易入门的机器学习。一 来给大多数还没有入门的人一点宏观概念,二来让我自己以后找解决 办法的时候更有头绪。故此文不是给想 快速上手的工程师的菜单, 更像一篇娓娓道来的武侠小说,看看人工智能世界的先驱们是如何开 宗创派的。一、从人工智能说起机 器学习属于人工智能的一块,先简要回顾一下。关于什么是“智 能”,就问题多多了。这涉及到其它诸如意识(consciousness)、自 我(self)、心灵(mind)(包括无意识的精神(unconscious_mind) 等等问题。人唯一了解的智能是人本身的智能,这是普遍认同的观 点。但是我们对我们自身智能的理解都非常有限,对构成人的智能的 必要元素也了解有限,所以就很难定义什么是“人工”制造的“智 能”了。因此人工智能的研究 往往涉及对人的智能本身的研究。其 它关于动物或其它人造系统的智能也普遍被认为是人工智能相关的 研究课题。下图展示了人工智能的发展路线:在20世纪40年代和50年代,来自不同领域(数学,心理学,工程 学,经济学和政治学)的一批科学家开始探讨制造人工大脑的可能性。 1956年,人工智能被确立为一门学科。IBM 702:第一代AI研究者使用的电脑.最初的人工智能研究是30年代末到50年代初的一系列科学进展交 汇的产物。神经学研究发现大脑是由神经元组成的电子网络,其激励 电平只存在“有”和“无”两种状态,不存在中间状态。维纳的控 制论描述了电子网络的控制和稳定性。克劳德香农提出的信息论则 描述了数字信号(即高低电平代表的二进制信号)。图灵的计算理论 证明数字信号足以描述任何形式的计算。这些密切相关的想法暗示了 构建电子大脑的可能性。这一阶段的工作包括一些机器人的研发,例 如W。Grey Walter的“乌龟(turtles) ”,还有“约翰霍普金斯兽”(Johns Hopkins Beast)。这些机器并未使用计算机,数字电路和符 号推理;控制它们的是纯粹的模拟电路。Walter Pitts和Warren McCulloch分析了理想化的人工神经元网络, 并且指出了它们进行简单逻辑运算的机制。他们是最早描述所谓“神 经网络”的学者。马文闵斯基是他们的学生,当时是一名24岁的 研究生。1951年他与Dean Edmonds 一道建造了第一台神经网络机, 称为SNARC。在接下来的五十年中,闵斯基是AI领域最重要的领导 者和创新者之一。1951 年,Chris to pher St rachey 使用曼彻斯特大学的 Ferran ti Mark 1机器写出了一个西洋跳棋(checkers)程序;DietrichPrinz则写 出了一个国际象棋程序。31Arthur Samuel在五十年代中期和六十 年代初开发的西洋棋程序的棋力已经可以挑战具有相当水平的业余 爱好者。游戏AI 一直被认为是评价AI进展的一种标准。1950年,图灵发表了一篇划时代的论文,文中预言了创造出具有真 正智能的机器的可能性。由于注意到“智能”这一概念难以确切定 义,他提出了著名的图灵测试:如果一台机器能够与人类展开对话(通过电传设备)而不能被辨别出其机器身份,那么称这台机器具有 智能。这一简化使得图灵能够令人信服地说明“思考的机器”是可 能的。论文中还回答了对这一假说的各种常见质疑。图灵测试是人工 智能哲学方面第一个严肃的提案。50年代中期,随着数字计算机的兴起,一些科学家直觉地感到可以 进行数字操作的机器也应当可以进行符号操作,而符号操作可能是人 类思维的本质。这是创造智能机器的一条新路。1955年,Newell和(后来荣获诺贝尔奖的)Simon在J. C. Shaw的 协助下开发了 “逻辑理论家(Logic Theorist)”。这个程序能够证 明数学原理中前52个定理中的38个,其中某些证明比原著更加 新颖和精巧。Simon认为他们已经“解决了神秘 的心/身问题,解释 了物质构成的系统如何获得心灵的性质。”(这一断言的哲学立场后 来被John Searle称为“强人工智能”,即机器可以像人一样具有思 想。)1956年达特矛斯会议的组织者是Marvin Minsky, John McCarthy和 另两位资深科学家Claude Shannon以及Nat han Roches ter,后者来 自IBM。会议提出的断言之一是“学习或者智能的任何其他特性的每 一个方面都应能被精确地加以描述,使得机器可以对其进行模拟。” 与会者包括 Ray Solomonoff,Oliver Selfridge, Trenchard More, Arthur Samuel, Newell和Simon,他们中的每一位都将在AI研究的 第一个十年中作出重要贡献。会上纽厄尔和西蒙讨论了“逻辑理论 家”,而McCarthy则说服与会者接受“人工智能”一词作为本领域 的名称。1956年达特矛斯会议上AI的名称和任务得以确定,同时出 现了最初的成就和最早的一批研究者,因此这一事件被广泛承认为 AI诞生的标志。现如今AI世界已经枝繁叶茂,被认为最广泛的综合学科,也是未来 最有希望的学科的之一。涉及学科哲学和认知科学数学心理学计算机科学控制论决定论不确定性原理研究范畴自然语言处理(NLP; Natural Language Processing)矢口识表现(Knowledge Represe ntation)智能搜索(In telligen t Search)推理规划(Planning)机器学习(Machine Learning)增强式学习(Reinforceme nt Learning)知识获取感知问题模式识别逻辑程序设计软计算(Soft Comp uti ng)不精确和不确定的管理人工生命(Ar tificial Life)人工神经网络(Ar tificial Neural Net work)复杂系统遗传算法资料挖掘(Data Mining)模糊控制上面列举了一下维基上面的解释,可以说现代工程上的很多问题,都 可以从上述研究范畴找到解决方案。可以想见,在未来人工智能发展 会经历以下几个阶段:应用阶段(1980年至今):在这一阶段里,人工智能技术在军 事、工业和医学等领域中的应用显示出了它具有明显的经济效益潜 力。适合人们投资的这一新天地浮出了水面。融合阶段(20102020年):在某些城市,立法机关将主要米用人工智能专家系统来制定新的法 律。人们可以用语言来操纵和控制智能化计算机、互联网、收音机、电 视机和移动电话,远程医疗和远程保健等远程服务变得更为完善。智能化计算机和互联网在教育中扮演了重要角色,远程教育十分普 及。随着信息技术、生物技术和纳米技术的发展,人工智能科学逐渐完许多植入了芯片的人体组成了人体通信网络(以后甚至可以不用植 入任何芯片)。比如,将微型超级计算机植入人脑,人们就可通过植 入的芯片直接进行通信。量子计算机和DNA计算机会有更大发展,能够提高智能化水平的新 型材料会不断问世。抗病毒程序可以防止各种非自然因素引发灾难。 (H7N9大家小 心:)随着人工智能的加速发展,新制定的法律不仅可以用来更好地保 护人类健康,而且能大幅度提高全社会的文明水准。比如,法律可以 保护人们免受电磁烟雾的侵害,可以规范家用机器人的使用,可以 更加有效地保护数据,可以禁止计算机合成技术在一些文化和艺术方 面的应用(比如禁止合成电视名人),可以禁止编写具有自我 保护意 识的计算机程序。自我发展阶段(20202030年):智能化计算机和互联网既能自我修复,也能自行进行科学研究,还 能自己生产产品。一些新型材料的出现,促使智能化向更高层次发展。用可植入芯片实现人类、计算机和鲸目动物之间的直接通信,在以 后的发展中甚至不用植入芯片也可实现此项功能。制定“机器人法”等新的法律来约束机器人的行为,使人们不受机 器人的侵害。高水准的智能化技术可以使火星表面环境适合人类居住和发展。升华阶段(20302040年):信息化的世界进一步发展成全息模式的世界。(参见Ingress现实虚拟化游戏)人工智能系统可从环境中采集全息信息,身处某地的人们可以更容 易地了解和知晓其他地方的情况。人们对一些目前无法解释的自然现象会有更清楚的认识和更完善 的解释,并将这些全新的知识应用在医疗、保健和安全等领域。人工智能可以模仿人类的智能,因此会出现有关法律来规范这些行 为。二、机器学习的由来从人工智能的角度我们不难发现,当今机器学习世界的很多方法都是 从其中延伸出来的。但同时,它也自己独特的一面。机器学习是 近 20多年兴起的一门多领域交叉学科,涉及概率论、统计学、逼近论、 凸分析、算法复杂度理论等多门学科。机器学习理论主要是设计和分 析一些让计算机可以自动“学习”的算法。机器学习算法是一类从 数据中自动分析获得规律,并利用规律对未知数据进行预测的算法。 因为学习算法中涉及了大量的统计学理论,机器学习 与统计推断学 联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理 论关注可以实现的,行之有效的学习算法。很多推论问题属于无程序 可循难度,所以部分的机器学习研究是开发容易处理的近似算法。机器学习可以分成下面几种类别:监督学习从给定的训练数据集中学习出一个函数,当新的数据到来 时,可以根据这个函数预测结果。监督学习的训练集要求是包括输入 和输出,也可以说是特征和目标。训练集中的目标是由人标注的。常 见的监督学习算法包括回归分析和统计分类。无监督学习与监督学习相比,训练集没有人为标注的结果。常见的无 监督学习算法有聚类。半监督学习介于监督学习与无监督学习之间。增强学习通过观察来学习做成如何的动作。每个动作都会对环境有所 影响,学习对象根据观察到的周围环境的反馈来做出判断。机 器学习是人工智能研究发展到一定阶段的必然产物。从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. Nil son的“学习机器”等,20多年后红极一 时的统计学习理论的一些重要结果也是在这个时期取得的。在这一时 期,基于逻辑或图结构表示的符号学习技术也开始出现,代表性工作 有P. Wins ton的“结构学习系统”、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年代中期之前,“从例子中学习”的一大主流技术是归纳逻辑程 序设计(Induetive Logic Programming),这实际上是机器学习和逻 辑程序设计的交叉。它使用1阶逻辑来进行知识表示,通过修改和 扩充逻辑表达式(例如Prolog表达式)来完成对数据的归纳。这一 技术占据主流地位与整个人工智能领域的发展历程是分 不开的。如 前所述,人工智能在20世纪50年代到80年代经历了“推理期” 和“知识期”,在“推理期”中 人们基于逻辑知识表示、通过演绎 技术获得了很多成果,而在知识期中人们基于逻辑知识表示、通过领 域知识获取来实现专家系统,因此,逻辑知识表示很自然地受到青 睐,而归纳逻辑程序设计技术也自然成为机器学习的一大主流。归纳 逻辑程序设计技术的一大优点是它具有很强的知识表示能力,可以较 容易地表示出复杂数据和复杂的数据关系。尤为重要的是,领域知 识通常可以方便地写成逻辑表达式,因此,归纳逻辑程序设计技术不 仅可以方便地利用领域知识指导学习,还可以通过学习对领域知识 进行精化和增强,甚至可以从数据中学习出领域知识。事实上,机器 学习在20世纪80年代正是被视为“解决知识工程瓶颈问题的关 键”而走到人工智能主舞台的聚光灯下的,归纳逻辑程序设计的一些 良好特性对此无疑居功至伟。S.H. Muggle ton主编的书对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. Rumelhar t、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。这群人可能对人工智能毫无兴趣,在他们眼中,机器学习就是统计学 习,是统计学比较偏向应用的一个分支,充其量是统计学与计算机科 学的交叉。这群人对统计学习之外的学习手段往往是排斥的,这很自 然,基于代数的、逻辑的、几何的学习,很难纳入统计学的范畴。两 个群体的文化和价值观完全不同。第一个群体认为好的工作,第 二个群体可能觉得没有技术含量,但第一个群体可能恰恰认为,简单 的才好,正因为很好地 抓住了问题本质,所以问题变得容易解决。 第二个群体欣赏的工作,第一个群体可能觉得是故弄玄虚,看不出他 想解决什么人工智能问题,根本就不是在搞人工智 能、搞计算机, 但别人本来也没说自己是在“搞人工智能”、“搞计算机”,本来就不是在为人工智能做研究。三、SVM 与 Deep Learning 之争现如今在机器学习世界最火爆的可以算是统计学习,而在统计学习领 域最热门非 deep learning和 SVM (support vector machine) 莫属 了。神经网络(Neural Network)与支持向量机(Support Vector Machines, SVM)是统计学习的代表方法。可以认为神经网络与支持向量机都源自于感知机(Perceptron)。感 知机是由Rosenblatt发明的线性分类模型(1958年)。感知机对线 性分类有效,但现实中的分类问题通常是非线性的。神经网络与支持向量机(包含核方法)都是非线性分类模型。1986 年,Rummelhart与McClelland发明了神经网络的学习算法 Back Propagation。后来,Vapnik等人于1992年提出了支持向量机。神 经网络是多层(通常是三层)的非线性模型,支持向量机利用核技巧 把非线 性问题转换成线性问题。神经网络与支持向量机一直处于“竞争”关系。Scholkopf是Vapnik的大弟子,支持向量机与核方法研究的领军人 物。据Scholkopf说,Vapnik当初发明支持向量机就是想干掉 神经网络(He wan ted to kill Neural Net work)。支持向量机确实 很有效,一段时间支持向量机一派占了上风。近年来,神经网络一派的大师Hinton又提出了神经网络的Deep Learning算法(2006年),使神经网络的能力大大提高,可与支持向 量机一比oDeep Learning假设神经网络是多层的,首先用Res trie ted Boltzmann Machine (非监督学习)学习网络的结构,然后再通过Back Propagation (监督学习)学习网络的权值。关于Deep Learning的 命名,Hinton 曾开玩笑地说:I want to call SVM shallow learning. (注:shallow有肤浅的意思)。其实Deep Learning本身的意思是深 层学习,因为它假设神经网络有多层。(1) Deep Learningdeep learning本身算是machine learning的一个分支,简单可以 理解为neural network的发展。大约二三十年前,neural network 曾经是ML领域特别火热的一个方向,但是后来确慢慢淡出了,原因 包括以下几个方面:1,比较容易过训练,参数比较难tune;2,训练速度比较慢,在层次比较少(小于等于3)的情况下效果并不 比其它方法更优;所以中间有大约20多年的时间,神经网络被关注很少,这段时间基 本上是svm和boos ting算法的天下。但是,一个痴心的老先生hin ton, 他坚持了下来,并最终(和其它人一起bengio、yann.lecun等)提 成了一个实际可行的deep learning框架。deep learning与传统的神经网络之间有相同的地方也有很多不同。二 者的相同在于deep learning采用了神经网络相似的分层结构, 系统由包括输入层、隐层(多层)、输出层组成的多层网络,只有相 邻层节点之间有连接,同一层以及跨层节点之间相互无连接,每一 层可以看作是一个logistic regression模型;这种分层结构,是比 较接近人类大脑的结构的。而为了克服神经网络训练中的问题,DL采用了与神经网络很不同的 训练机制。传统神经网络中,采用的是back propagation的方式进 行,简单来讲就是采用迭代的算法来训练整个网络,随机设定初值, 计算当前网络的输出,然后根据当前输出和label之间的差去改变 前面各层的参数,直到收敛(整体是一个梯度下降法)。而deep learning整体上是一个layer-wise的训练机制。这样做的原因是因 为,如果采用back propaga tion的机制,对于一个deep net work (7层以上),残差传播到最前面的层已经变得太小,出现所谓的gradient diffusion。deep learning训练过程具体如下:1,采用无标定数据(有标定数据也可)分层训练各层参数,这一步 可以看作是一个无监督训练过程,是和传统神经网络区别最大的部分(这个过程可以看作是feature learning过程):具体的,先用无标 定数据训练第一层,训练时可以采用auto-encoder来 学习第一层的 参数(这一层可以看作是得到一个使得输出和输入差别最小的三层神 经网络的隐层),由于模型capacity的限制以及稀疏性约束,使得得 到的模型能够学习到数据本身的结构,从而得到比输入更具有表示 能力的特征;在学习得到第n-1层后,将n-1层的输出作为第n层的 输入,训练第n层,由此分别 得到各层的参数;这里面需要重点理 解auto-encoder以及sparse的机制的原理和作用。可以参考这篇文 章。2,基于第一步得到的各层参数进一步fine-tune整个多层模型的参 数,这一步是一个有监督训练过程;第一步类似神经网络的随机初始 化初值过程,由于DL的第一步不是随机初始化,而是通过学习输入 数据的结构得到的,因而这个初值更接近全局最优,从而能够取得更 好的效果;所以deep learning效果好很大程度上归功于第一步的 feature learning 过程。总之,deep learning能够得到更好地表示数据的feature,同时由 于模型的层次、参数很多,capacity足够,因此,模型有能力表示 大规模数据,所以对于图像、语音这种特征不明显(需要手工设计 且很多没有直观物理含义)的问题,能够在大规模训练数据上取得更 好的效果。此外,从模式识别特征和分类器的角度,deep learning 框架将feature和分类器结合到一个框架中,用数据去学习feature, 在使用中减少了手工设计feature的巨大工作量(这是目前工业界 工程师付出努力最多的方面),因此,不仅仅效果可以更好,而且, 使用起来也有很多方便之处,因此,是十分值得关注的一套框架,每 个做ML的人都 应该关注了解一下。关于deep learning的更多知识和总结,大家可以参考前面的文章。 机器学习前沿热点- Deep Learning(2) SVMSVM方法是 通过一个非线性映射p,把样本空间映射到一个高维乃至 无穷维的特征空间中(Hilbert空间),使得在原来的样本空间中非 线性可分的问题转化为在特征空间中的线性可分的问题.简单地说, 就是升维和线性化.升维,就是把样本向高维空间做映射,一般情况 下这会增加计算的复杂性,甚至会引起“维数灾难”,因而 人们很 少问津.但是作为分类、回归等问题来说,很可能在低维样本空间无 法线性处理的样本集,在高维特征空间中却可以通过一个线性超平面 实现线性划分(或回归).一般的升维都会带来计算的复杂化,SVM 方法巧妙地解决了这个难题:应用核函数的展开定理,就不需要知道 非线性映射的显式表达式;由于是在高维特征 空间中建立线性学习 机,所以与线性模型相比,不但几乎不增加计算的复杂性,而且在某 种程度上避免了 “维数灾难”.这一切要归功于核函数的展开和计算 理论.选择不同的核函数,可以生成不同的SVM,常用的核函数有以下4种:线性核函数K(x,y)二xy;多项式核函数K(x,y)二(xy)+ld;径向基函数 K(x,y)二exp(-|x-y2/d八2)二层神经网络核函数K(x,y)= tanh(a(xy)+b).SVM有如下主要几个特点:(1)非线性映射是SVM方法的理论基础,SVM利用内积核函数代替向高 维空间的非线性映射;(2)对特征空间划分的最优超平面是SVM的目标,最大化分类边际的思想是SVM方法的核心;支持向量是SVM的训练结果,在SVM分类决策中起决定作用的是支 持向量。(4) SVM是一种有坚实理论基础的新颖的小样本学习方法。它基本上 不涉及概率测度及大数定律等,因此不同于现有的统计方法。从本质 上看,它避开了从归纳到演绎的传统过程,实现了高效的从训练样本 到预报样本的“转导推理”,大大简化了通常的分类和回归等问题。(5) SVM的最终决策函数只由少数的支持向量所确定,计算的复杂性 取决于支持向量的数目,而不是样本空间的维数,这在某种意义上避 免了 “维数灾难”。维基百科上面有关维数灾难的介绍请见此。(6) 少数支持向量决定了最终结果,这不但可以帮助我们抓住关键样 本、“剔除”大量冗余样本,而且注定了该方法不但算法简单,而且具 有较好的“鲁棒”性。这种“鲁棒”性主要体现在: 增、删非支持向量样本对模型没有影响; 支持向量样本集具有一定的鲁棒性; 有些成功的应用中,SVM方法对核的选取不敏感两个不足:(1) SVM算法对大规模训练样本难以实施由于SVM是借助二次规划来求解支持向量,而求解二次规划将涉及 m阶矩阵的计算(m为样本的个数),当m数目很大时该矩阵的存储和 计算将耗费大量的机器内存 和运算时间。针对以上问题的主要改进 有有 J.Platt 的 SMO 算法、T.Joachims 的 SVM、C.J.C.Burges 等的 PCGC、张学工的CSVM以及O.L.Mangasarian等的SOR算法(2) 用SVM解决多分类问题存在困难经典的支持向量机算法只 给出了二类分类的算法,而在数据挖掘的 实际应用中,一般要解决多类的分类问题。可以通过多个二类支持向 量机的组合来解决。主要有一对多组合模式、一对一组合模式和SVM 决策树;再就是通过构造多个分类器的组合来解决。主要原理是克服 SVM固有的缺点,结合其他算法的优势,解决多类问题的分类精度。 如:与粗 集理论结合,形成一种优势互补的多类问题的组合分类器。 ps:其实整个机器学习的算法与数学上的运筹学,凸规划等知识密不 可分,如果想真的想彻底掌握算法中的数学原理,建议有时间的朋友 可以看看这本书 Convex Optimization - Boyd and Vandenberghe, 如果已经看过的朋友也欢迎将你的感受写下来,发表到十一城,大家 一起学习! 参考链接: http:/zh.wikipedia.org/wiki/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8 %83%BD%E7%9A%84%E5%8E%86%E5%8F%B2141/http:/zh.wikipedia.org/wiki/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4 %B9%A0 eabf8d htt p:/ tml htt p:/ tm
展开阅读全文