第1章
机器学习是什么——机器学习定义
Machine learning is the science of getting computers to act without being explicitly programmed.-Stanford
引言
2018年6月1日,中央电视台正在转播美国职业篮球联赛(NBA)总决赛,此时是勇士队对骑士队第一场比赛的加时赛,我一看勇士队领先了10分而且是主场作战,就预测骑士队会输掉比赛,勇士队会夺得冠军。这时,我突然发现自己的Python作业还没写完,就关上了电视机,聚精会神地完成了用Python编写程序打印“Hello Machine Learning!”的作业。
● 先看上面这段文字的前半部分,这里涉及基于经验做出的预判。例如,为什么在勇士队主场作战并领先10分的情况下,我就认为勇士队会赢呢?因为在本赛季中,勇士队在主场作战的情况下只输过两场,而且在加时赛领先10分时获胜的概率是100%。为什么勇士队赢一场比赛我就认为其会夺得NBA冠军呢?因为据统计,在决赛中赢得第一场比赛的球队有79%的概率会夺得NBA冠军。这些对经验的利用是靠我们自身完成的,但这是机器学习吗?不是,我是人,不是机器,是我在预测,而不是机器在预测。
● 再看上面这段文字的后半部分,计算机根据用Python编写的程序,打印了一句话。但这是机器学习吗?不是,打印一句话也好意思称为学习?它只不过是在机械地执行命令罢了。
所以,到底什么是机器学习?从字面上来讲就是(人用)计算机来学习。谈起机器学习就一定要提起汤姆·米切尔(Tom M·Mitchell),就像在谈起音乐时大多会提起贝多芬,在谈起篮球时大多会提起迈克尔·乔丹一样。米切尔对机器学习的定义是[1]:
A computer program is said to learn from experienceEwith respect to some class of tasksTand performance measurePif its performance at tasks inT,as measured byP,improves with experienceE.
这段英文有一点抽象、难懂。首先,要注意两个词:computer program和learn,翻译成中文就是“机器(计算机程序)”和“学习”。把上面的英文翻译成中文就是:
假设用性能度量P来评估模型在某类任务T中的性能,若该模型通过利用经验E在任务T中改善其性能度量P,那么可以说机器对经验E进行了学习。
在该定义中,除核心词“机器”和“学习”外,还有关键词经验E、性能度量P和任务T。在计算机系统中,通常经验E是以数据D的形式存在的,而机器学习就是在给定不同的任务T中,从数据中产生模型,模型的好坏就用性能度量P来评估。现在面临两个问题:
(1)模型的性能如何定量评估?这就需要根据不同的学习任务T在数据D上定义对应的性能度量P。
(2)模型的性能如何定性评估?模型性能的好坏通常要看它在没有见过的数据上的表现。但是这很矛盾,因为模型是基于看到的数据而学习的。你根本不知道你没看到的数据(未来发生的)是什么样的,那么又如何来评估模型性能呢?
1.3节会解决问题(1),通过设计误差函数来优化模型,旨在减少误差而提高模型性能。问题(2)比较难回答,需要通过第2章和第3章两章介绍的内容来解决它。
下图展示了机器学习包含的各类元素:数据D、任务T、性能度量P和算法A。
根据学习的任务模式,机器学习可分为四大类:有监督学习、无监督学习、半监督学习和增强学习,这样分类是符合MECE分析法[1]的。而现今我们听到最多的深度学习只是其中的一种方法,不是任务模式,与上面四类不属于同一个维度。但是深度学习与它们可以叠加成:有监督深度学习、无监督深度学习、半监督深度学习和增强深度学习。迁移学习也是一种方法,也可以分为有监督迁移学习、无监督迁移学习、半监督迁移学习和增强迁移学习。下图中展示了各类机器学习之间的关系。
其中:
● 有监督学习将贴有不同标签的数据(用红、蓝、绿3种颜色区分)分类。
● 无监督学习将未贴标签的数据(灰色数据)聚类。
● 半监督学习先将灰色数据聚类,再结合红、蓝、绿色数据将数据分类。
● 增强学习根据环境对智能体在不同状态下的行为的评价进行奖励或惩罚。
● 深度学习通过神经网络结构应用前面介绍的四类机器学习。
● 迁移学习把已训练好的模型参数迁移到新的模型中进行训练,而训练好的模型通常由深度学习完成。
本书只介绍有监督学习,一是它占现在机器学习应用的绝大部分,二是它符合人类学习的顺序。就像前言所说的一样,我们先被指导着进行“有监督学习”,然后是“半管半放”的“半监督学习”,再然后是完全自觉的“无监督学习”,接着是自己反馈的“增强学习”,等学到一定程度时再开始“深度学习”,最终可以实现“迁移学习”。
定义:给定任务T和性能度量P,建立模型M从数据D中学习,如果在任务T上的性能度量P随着数据D增多而改善,那么可称机器在学习。
机器学习概览
各类机器学习之间的关系