1.1.1 机器学习定义
1.Arthur Samuel的定义(1959)
作为机器学习领域的先驱,Arthur Samuel于1959年在IBM Journal of Research and Development期刊上发表了一篇名为Some Studies in Machine Learning Using the Game of Checkers的论文。他在论文中将机器学习非正式地定义为:
“在不直接针对问题进行编程的情况下,赋予计算机学习能力的一个研究领域。”
Samuel曾经完成了一个西洋棋(checker)程序,让计算机跟自己下棋。当程序下了大量的棋局后,开始慢慢意识到怎样的局势能够导致胜利、怎样的局势能够导致失败。Samuel让程序反复学习“如果让竞争对手的棋子占据了这些地方,那么我输的概率可能更大”或者“如果我的棋子占据了这些地方,那么我赢的概率可能更大”。渐渐地,下棋程序掌握了哪些局面可能会输、哪些局面可能会赢的规律和模式,最终程序的棋艺甚至远远超过了Samuel自己。这个过程本身具有鲜明的机器学习特征:Samuel让他的程序比他自己更会下棋,但他并没有明确地教给程序具体应该怎么下,而是让它通过大量的棋局自学成材。
2.Tom Mitchell的定义(1998)
Tom Mitchell在他的机器学习经典教材Machine Learning中给出的机器学习的定义如下:
“机器学习这门学科所关注的问题是:计算机程序如何随着经验积累自动提高性能。”
Mitchell在书中还给出了一个简短的形式化定义体系:
“对于某类任务T和性能度量P,如果一个计算机程序在T上以P衡量的性能随着经验E而自我完善,那么我们称这个计算机程序在从经验E学习。”
Mitchell的定义是机器学习领域最为经典的定义,在后来的教材和著作中被多次使用和引用。
3.Christopher Bishop的定义(2006)
Christopher Bishop在其经典图书Pattern Recognition and Machine Learning中对模式识别和机器学习进行了介绍:
“模式识别起源于工程学,而机器学习产生于计算机科学。然而这些领域可以看成是同一领域的两个方面。”
从Bishop的论述可以看出,他更多的是从工程的角度看待机器学习:让机器自动从数据中学习规律、洞察(insight)和结果,从而解决实际问题,所有符合这个流程的方法都可以称为机器学习。
4.Trevor Hastie等人的定义(2009)
Trevor Hastie等三位来自斯坦福的统计学家在其编写的经典统计学习图书The Elements of Statistical Learning: Data Mining, Inference, and Prediction中对机器学习的描述如下:
“许多领域都产生了大量的数据,统计学家的工作就是让所有这些数据变得有意义:提取重要的模式和趋势,理解‘数据在说什么’。我们称之为从数据中学习。”
可以看出,从统计学家的角度看,机器学习是使用统计工具在数据上下文中解译数据,从使用多种统计方法做出的决策和结果中进行学习。
5.李航的定义(2012)
李航教授在其经典的《统计学习方法》中对统计机器学习的定义如下:
“统计学习(statistical learning)是关于计算机基于数据构建概率统计模型并运用模型对数据进行预测和分析的一门学科。统计学习也称为统计机器学习(statistical machine learning)。”
李教授认为统计学习是处理海量数据的有效方法,是计算机智能化的有效手段。统计学习方法主要包含模型、策略和算法三个部分,在信息维度起着核心作用,是计算机科学发展的一个重要组成部分。
6.Stephen Marsland的定义(2014)
Stephen Marsland在Machine Learning: An Algorithmic Perspective中沿用了Mitchell对于机器学习的定义,他在序言中对机器学习的特征进行了生动的阐述:
“机器学习最有趣的特征之一就是,它介于几个不同理论学科之间,主要是计算机科学、统计学、数学和工程学。机器学习经常被作为人工智能的一部分来进行研究,这把它牢牢地置于计算机科学中。理解为什么这些算法能够有效工作需要一定的统计学和数学头脑,这往往是计算机科学专业学生所缺少的能力。”
该定义首先强调了机器学习的多学科性质,来源于各种各样的信息科学。第二,他强调了过于坚持一个给定的角度的危险性。特别是,算法工程师避开一个方法的数学内部运作原理的情况。毫无疑问,相反的情况,统计学家避开实现和部署的实际问题也是同样受限的。
7.周志华的定义(2016)
周志华教授在其《机器学习》教材中对机器学习的定义如下:
“机器学习正是这样一门学科,它致力于研究如何通过计算的手段,利用经验来改善系统自身的性能。在计算机系统中,‘经验’通常以‘数据’形式存在,因此,机器学习所研究的主要内容,是关于在计算机上从数据中产生‘模型’(model)的算法,即‘学习算法’(learning algorithm)。有了学习算法,我们只需把经验数据提供给它,它就能基于这些数据产生模型;在面对新的情况时,模型会给我们提供相应的判断。如果说计算机科学是研究关于‘算法’的学问,那么类似地,可以说机器学习是研究关于‘学习算法’的学问。”
8.吴恩达(Andrew Ng)的定义(2020)
吴恩达教授在其斯坦福的机器学习课程(CS229)中引用了Arthur Samuel和Tom Mitchell的定义,并举例介绍了Tom Mitchell的形式化定义体系。吴教授在其课程主页上对机器学习的定义如下:
“机器学习是一门让计算机在没有明确编程的情况下运行的科学。”
通过对上述定义进行分析与比较,可以看出机器学习具有如下鲜明的特征:
(1)机器学习主要关注如何指导学习算法从已有的经验中进行学习,这与计算机科学领域经典的、确定性的算法设计思路完全不同,后者强调由人给出针对具体问题的、明确的计算规则。
(2)在计算机系统中,“经验”通常以数据的形式存在,更具体的是已有的、针对某个问题的解决方案(样本)。
(3)当学习算法通过样本学习到解决问题的模型后,在遇到新的情况时模型能够进行预测和判断,并能够通过新的数据对自身进行持续更新。
(4)机器学习方法特别适合难以用规则描述其解决方案的复杂问题。随着云计算、大数据处理技术的不断发展,机器学习方法已经解决了越来越多的实际问题。