机器学习(Machine Learning, ML)是催生近年来人工智能发展热潮的重要技术。作为人工智能的一个分支,机器学习是人工智能的一种实现方法。从广义上来说,机器学习是一种能够赋予机器学习的能力,以此让它完成直接编程无法完成的功能的方法。但从实践意义来说,机器学习是一种利用数据训练出模型,然后使用模型预测的方法。
早在1950年,图灵在关于图灵测试的文章中就已提及机器学习的概念。
1952年,IBM的亚瑟·塞缪尔(Arthur Samuel,被誉为“机器学习之父”)设计了一款可以学习的西洋跳棋程序。它能够通过观察棋子的走位来构建新的模型,用来提高自己的下棋技巧。塞缪尔和这个程序进行多场对弈后发现,随着时间的推移,程序的棋艺变得越来越好。塞缪尔用这个程序推翻了以往的“机器无法超越人类,不能像人一样写代码和学习”这一传统认识,并在1956年正式提出了“机器学习”这一概念。亚瑟·塞缪尔认为:“机器学习是在不直接针对问题进行编程的情况下,赋予计算机学习能力的一个研究领域。”
而有着“全球机器学习教父”之称的汤姆·米切尔则将机器学习定义为:对于某类任务T和性能度量P,如果计算机程序在T上以P衡量的性能随着经验E而自我完善,就称这个计算机程序从经验E中进行了学习。
如今,随着时间的变迁,机器学习的内涵和外延不断变化。普遍认为,机器学习的处理系统和算法主要是通过找出数据里隐藏的模式,进而做出预测的识别模式,是人工智能的一个重要子领域。同时,机器学习也是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。
机器学习专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习从样本数据中学习,得到知识和规律,然后用于实际推断和决策。其与普通程序相比的一个显著区别就是需要样本数据,是一种数据驱动的方法。
机器学习与人类基于经验的成长有异曲同工之妙。我们知道,人类绝大部分技能和知识的获得需要通过后天的训练与学习,而不是天生具有的。在没有认知能力的婴幼儿时期,人类从外界环境中不断得到信息,对大脑形成刺激,从而建立起认知的能力。
要给孩子建立“苹果”“香蕉”这样的抽象概念,需要反复地提及这样的词汇并将实物与之对应。经过长期训练之后,孩子的大脑中才能够形成“苹果”“香蕉”这些抽象概念和知识,并将这些概念运用于眼睛看到的世界。
人类在成长、生活过程中积累了很多经验,并对其进行“归纳”,获得了生活的“规律”。当人类遇到未知的问题或者需要对未来进行“推测”的时候,人类使用这些“规律”,对未知问题与未来进行“推测”,从而指导自己的生活和工作。
机器学习就采用了类似的思路。比如,要让人工智能程序具有识别图像的能力,就要收集大量的样本图像,并标明这些图像的类别,是香蕉、苹果还是其他物体。然后送给算法进行学习(训练),完成之后得到一个模型,这个模型是从这些样本中总结归纳得到的知识。随后,就可以用这个模型来对新的图像进行识别。
机器学习中的“训练”与“预测”过程可以对应人类的“归纳”与“推测”过程。由此可见,机器学习的思想并不复杂,其原理仅是对人类在生活中学习成长的一个模拟。由于机器学习不是基于编程形成的结果,因此它的处理过程不是因果的逻辑,而是通过归纳思想得出的相关性结论。
机器学习是人工智能研究发展到一定阶段的必然产物。20世纪50年代至70年代初,人工智能研究处于“推理期”,彼时,人们以为,只要赋予机器逻辑推理能力,机器就能具有智能。
这一阶段的代表性工作主要有纽厄尔和西蒙的“逻辑理论家”(Logic Theorist)程序及此后的“通用问题求解”(General Problem Solving)程序等,这些工作在当时取得了令人振奋的结果。比如,“逻辑理论家”程序在1952年证明了著名数学家罗素和怀特海的名著《数学原理》中的38条定理,在1963年证明了全部52条定理。纽厄尔和西蒙正因为这方面的工作获得了1975年的图灵奖。
然而,随着研究向前发展,人们逐渐认识到,仅具有逻辑推理能力是远远实现不了人工智能的。要使机器具有智能,就必须设法使机器拥有知识。在这一阶段,机器学习开始萌芽。
1952年,IBM科学家亚瑟·塞缪尔开发的西洋跳棋程序,驳倒了普罗维登斯提出的机器无法超越人类的论断,提出了像人类一样写代码和学习的模式。他创造了“机器学习”这一术语,并将它定义为“可以提供计算机能力而无须显式编程的研究领域”。
但由于人工智能大环境的降温,从20世纪60年代中期到70年代末期,机器学习的发展步伐几乎处于停滞状态。无论是理论研究还是计算机硬件限制,人工智能领域的发展遇到了很大的瓶颈。虽然这个时期温斯顿(Winston)的结构学习系统和海斯·罗思(Hayes Roth)等的基于逻辑的归纳学习系统取得了较大的进展,但只能学习单一概念,而且未能投入实际应用。而神经网络学习机因理论缺陷也未能达到预期效果而转入低潮。
进入20世纪80年代,机器学习进入重振时期。1981年,伟博斯在神经网络反向传播(BP)算法中具体提出多层感知机模型。这也让BP算法在1970年以“自动微分的反向模型”(Reverse Mode of Automatic Differentiation)为名提出来后真正发挥效用,并且直到今天,BP算法仍然是神经网络架构的关键要素。
在新思想迭起下,神经网络的研究再一次加快。1985—1986年,神经网络研究人员相继提出了使用BP算法训练的多参数线性规划(MLP)的理念,成为后来深度学习的基石。
在另一个谱系中,1986年,昆兰提出了“决策树”机器学习算法,即ID3算法。此后发展的ID4、回归树、CART算法等至今仍然活跃在机器学习领域中。
支持向量机(SVM)的出现是机器学习领域的另一大重要突破,算法具有非常强大的理论地位和实证结果。与此同时,机器学习研究分为神经网络(Neural Network, NN)和SVM两派。然而,在2000年左右提出了带核函数的支持向量机后,SVM在许多以前由NN占优的任务中获得了更好的效果。此外,SVM相对于NN还能利用所有关于凸优化、泛化边际理论和核函数的深厚知识。因此SVM可以从不同的学科中大力推动理论和实践的改进。
2006年,神经网络研究领域领军者杰弗里·辛顿提出了神经网络Deep Learning算法,使神经网络的能力大大提高,并得以挑战支持向量机。2006年,辛顿发表在 Science 上的一篇文章正式开启了深度学习在学术界和工业界的浪潮。2015年,为纪念人工智能概念提出60周年,杨立昆、约书亚·本吉奥和辛顿推出了深度学习的联合综述。
深度学习可以让那些拥有多个处理层的计算模型来学习具有多层次抽象的数据表示,这些方法在许多方面都带来了显著的改善,让图像、语音等感知类问题取得了真正意义上的突破,将人工智能推进到一个新时代。
在过去的20年中,人类收集、存储、传输、处理数据的能力取得了飞速提升,人类社会的各个角落都积累了大量数据,急需能有效地对数据进行分析利用的计算机算法,而机器学习恰好顺应了大时代的这个迫切需求,因此该学科领域很自然地取得巨大发展、受到广泛关注。
今天,在计算机科学的诸多分支学科领域中,无论是多媒体、图形学,还是网络通信、软件工程,乃至体系结构、芯片设计,都能找到机器学习的身影,尤其在计算机视觉、自然语言处理等“计算机应用技术”领域,机器学习已成为最重要的技术进步源泉之一。
机器学习还为许多交叉学科提供了重要的技术支撑。生物信息学试图利用信息技术来研究生命现象和规律,生物信息学研究涉及从“生命现象”到“规律发现”的整个过程,其间必然包括数据获取、数据管理、数据分析、仿真实验等环节,而“数据分析”恰使机器学习大放异彩。
可以说,机器学习是统计分析时代向大数据时代发展必不可少的核心打磨,是开采大数据这一新“石油”资源的工具。比如,在环境监测、能源勘探、天气预报等基础应用领域,通过机器学习可以提升传统的数据分析效率,提高预报与检测的准确性;在销售分析、画像分析、库存管理、成本管控及推荐系统等商业应用领域,机器学习让即时响应、迭代更新的个性化推荐变得更轻松,渗透至人们生活的方方面面。
谷歌、百度等互联网搜索引擎极大地改变了人们的生活方式,互联网时代的人们习惯于在出行前通过互联网搜索来了解目的地信息、寻找合适的酒店及餐馆等,其体现的正是机器学习技术对于社会生活的赋能。显然,互联网搜索是通过分析网络上的数据找到用户所需的信息,在这个过程中,用户查询是输入,搜索结果是输出,而要建立输入与输出之间的联系,内核必然需要机器学习技术。
如今,搜索的对象、内容日趋复杂,机器学习技术的影响更为明显。在进行“图片搜索”时,无论是谷歌还是百度都在使用最新的机器学习技术。谷歌、百度、脸书等公司纷纷成立专攻机器学习技术的研究团队,甚至直接以机器学习技术命名的研究院,充分体现出机器学习技术的发展和应用,甚至在一定程度上影响了互联网产业的走向。
最后,除机器学习成为智能数据分析技术的创新源泉外,机器学习研究还有另一个不可忽视的意义,即通过建立一些关于学习的计算模型来促进人们理解“人类如何学习”。20世纪80年代中期,Pentti Kanerva提出SDM(Spare Distributed Memory)模型,当时,他并没有刻意模仿人脑生理结构,但后来神经科学的研究发现,SDM的稀疏编码机制在视觉、听觉、嗅觉功能的人脑皮层中广泛存在,从而为理解人脑的某些功能提供了一定的启发。
自然科学研究的驱动力归结起来无非是人类对宇宙本源、万物本质、生命本性、自我本识的好奇,而“人类如何学习”无疑是一个有关自我认识的重大问题。从这个意义上说,机器学习不仅在信息科学中占有重要地位,还具有一定的自然科学探索色彩。