机器学习研究计算机如何利用过去的经验帮助在未来面对新的情况时做出有效的决策。具体来说,“经验”通常以“数据”形式存在,“决策”通常以“模型”(model)形式表示,因此机器学习主要研究如何根据数据产生模型的算法,即“学习算法”。例如,信用卡中心拥有一批客户资料,研发人员需要设计学习算法,根据已有的客户资料学习一个模型,能够辅助决策未来信用卡申请者的申请结果(是否授予信用卡以及信用卡额度等),这就是一个典型的机器学习任务。
机器学习使用的经验集合称为数据集(data set),其中每条数据是关于一个事件或对象(例如一位信用卡客户)的描述,称为一个示例(instance)或样本(sample);每个样本的描述包括该事件或对象在不同方面的表现或性质(例如性别、年龄、工作、收入等),描述的每个方面称为一个属性(attribute)或特征(feature);每个属性可以看作为一维坐标轴,则所有属性张成一个描述样本的属性空间(attribute space)或样本空间(sample space),每个样本对应样本空间中的一个坐标向量,因此每个示例也称为一个特征向量(feature vector)。一般使用表示包含
个示例的数据集,每个示例由
维属性描述,即
是
维样本空间
中的一个向量,式中
为
在第
个属性上的取值;
称为样本
的维数(dimensionality)。一般假设样本空间中的全体样本服从一个未知的分布(distribution)
,数据集
中的每个样本都是依据分布
独立地从样本空间采样而得,即独立同分布(independent and identically distributed,简称
)。
从数据中学得模型的过程称为学习(learning)或训练(training),使用的数据集合称为训练集(training set),其中每个样本称为训练样本(training sample)。最终学得的模型实际上对应某种潜在规律,一般称潜在规律本身为真相(ground-truth),相应地把学得模型称为假设(hypothesis),又称学习器(learner)。学习的过程就是为了找出或逼近真相,使得模型能够很好地适用于训练样本之外的“新样本”,即未见示例(unseen instance),模型适用于新样本的能力称为泛化(generalization)能力;一般学得模型之后会使用一个与训练集不重合的数据集专门测试模型的泛化能力,称该数据集为测试集(testing set),测试集中的样本称为测试样本(testing sample)。
常见的机器学习任务包括监督学习(supervised learning)和无监督学习(unsupervised learning)两大类。顾名思义,监督学习指在有监督信息的条件下进行学习,此时除了前面的示例数据之外,还需要训练样本的“结果”信息,称为标记(label);拥有了标记信息的示例,则称为样例(example)。一般使用表示第
个样例,式中
,为样本
的标记;
称为标记空间(label space)或输出空间,相应地属性空间又称输入空间。若标记为连续值,即
,此类学习任务称为回归(regression);若标记为离散值,此类学习任务称为分类(classification),特别地,若只涉及两个类别则称为二分类(binary classification),即
,此时通常令
或
,以1表示的类称为正类(positive class),以-1或0表示的类称为反类(negative class),若涉及多个类别则称为多分类(multi-class classification),即
。无监督学习指仅需要示例数据即可完成的学习任务,典型的无监督学习任务是聚类(clustering),即将训练集中的样本分成若干组,其中每组称为一个簇(cluster);这些学得的簇可能对应一些潜在的概念划分,有助于人们结合领域知识了解数据的内存规律。
值得一提的是,机器学习过程实际上是从特殊(即样本)到一般(即模型)的泛化过程,因此亦称为归纳学习(inductive learning),其目标是从所有假设组成的空间中找到与训练集最佳匹配(fit)的假设;但是,现实问题中的假设空间通常很大,基于仅包含有限样本的训练集进行学习可能会有多个假设与训练集一致,此时必须从中选出一个作为最终学得模型,这就需要算法对某种类型假设有所偏好,即归纳偏好(inductive bias),简称偏好。奥卡姆剃刀(Occam’s razor)是自然科学研究中一种常用的偏好,即“若有多个假设与观察一致,则选最简单的那个”;但“哪个假设更简单”这个问题实际并不简单,需要借助其他机制解决。必须指出地是,在具体实际问题中,并没有哪种偏好针对所有问题是普适的,归纳偏好是否与问题本身匹配很关键。也就是说,不结合具体的学习问题,空泛地谈论“什么学习算法更好”毫无意义。实际上,根据“没有免费的午餐”定理(no free lunch theorem,简称NFL定理),若假设所有“问题”出现的机会相同或所有问题同等重要,对于任意学习算法和
,它们的期望性能相同,即:
式中为“问题”的真实目标函数;
为训练数据;
为学习算法在训练集之外的所有样本上的误差,即算法性能。但实际情形中,人们只需要关注正在试图解决的问题即可,因此NFL定理的假设并不成立。NFL定理最重要的寓意是告诉人们,必须结合具体的学习问题去讨论学习算法,不同的算法善长解决不同的问题,希望设计一种“聪明”算法去包揽所有实际问题是不现实的。机器学习研究主要内容就是针对不同的问题设计不同的算法,以匹配当前关注的问题。
学习算法设计是机器学习研究的核心内容,常见的机器学习算法如下:
①线性回归(linear regression)。针对回归任务,即统计学中的线性拟合,学习任务是根据训练集学得线性超平面使样本
的预测值
与标记
尽可能接近,即:
最终会得到一个最小二乘问题,拥有闭式解。为降低过拟合风险,可以额外引入范数或
范数的正则化项,得到的问题分别称为岭回归(ridge regression)和LASSO回归。
②对率回归(logistic regression)。针对二分类任务,学习任务是根据训练集学得线性超平面尽可能将正类样本
和反类样本
分开,具体做法是使用Sigmoid函数将线性回归值
映射到0~1之间,视为样本为正类的概率,即
。为了保证优化目标是凸函数,一般优化交叉熵损失。开源软件包LIBLINEAR中包含对率回归的高效实现;若需要解决多分类任务,可以查阅softmax回归。
③支持向量机(support vector machine,简称SVM)。针对二分类任务,它类似于对率回归,也是一种线性分类器;不同之处在于,对于线性可分的二分类数据,SVM选择间隔最大的线性超平面,因此也常将SVM称为最大间隔分类器;最终所得线性超平面只取决于距离分类平面最近的少量样本,称为支持向量;实际应用中,数据一般都是线性不可分的,此时除了最大化分类间隔之外,SVM引入合页(hinge)损失对分类误差进行建模,最终仍可以保持求得线性超平面仅取决于支持向量的特点。开源软件包LIBSVM中包含支持向量机的高效实现,LIBLINEAR中亦包含线性支持向量机的高效实现。
④决策树(decision tree)。可以认为是IF-THEN规则的集合,因此模型呈树形结构,其决策过程类似于人类面临问题时的处理机制,即将问题拆成若干个子问题逐步解决。决策树结构一般使用二叉树,但也可以使用多叉树;决策树既可以用于分类问题,也可以用于回归问题。常见的决策树算法包括ID3.0、C4.5和CART,它们在特征选择(可理解为如何设计IF-THEN规则)、剪枝优化、缺失值处理等设计上各有特色。
⑤朴素贝叶斯分类器(naive Bayesian classifier)。是贝叶斯分类器家族中最简单的一个,而贝叶斯分类器家族均属于概率图模型(probabilistic graphical model,简称PGM)。简单来说,机器学习是估计后验概率,而估计后验概率可以通过贝叶斯定理等价为分别估计先验概率
和似然概率
,即
。先验概率根据频率计数法即可估计,但似然概率实际为样本所有特征的条件联合概率,无法根据样本有限的训练集直接估计。朴素贝叶斯分类器简单假设所有属性是相互独立的,此时条件联合概率等于所有特征的条件概率连乘,即
,式中
。
⑥K近邻算法既可用于回归任务,亦可用于分类任务。其基本思想是样本的标记与它的K个最相似的样本(称为近邻)是相同的。若K个近邻的标记不完全一致,分类任务中一般采用多数投票的原则确定,回归任务中一般采用取平均值的方法。K近邻算法有效的前提是测试样本足够小的范围内能够找到K个训练样本,但当样本的属性维数很多时则无法满足这个假设,因此实际问题中常需要对数据进行降维,无监督降维的代表算法是主成分分析,监督降维的代表算法是线性判别分析;K近邻算法的关键问题是如何确定与测试样本最相似的K个近邻,如何度量两个样本的相似性可以查阅距离度量学习(distance metric learning)。
⑦AdaBoost算法针对二分类任务,它是集成学习方法的代表,即通过学习合并多个学习器(称为基学习器)的学习结果来完成学习任务。此方法的基本思路是通过改变训练集样本的分布从而增加各个基学习器的多样性,进行增强集成学习效果。具体来说,AdaBoost试图在每次训练一个学习器之后,调整样本分布使得当前学习器在新的样本分布上等价于随机猜测(即分类误差为50%),然后基于该样本分布训练下一个学习器。其他常见的集成学习方法还包括随机森林、梯度提升决策树(GBDT)等。在许多数据分析竞赛中大放异彩的XGBoost,实际可以认为是GBDT算法的一种高效实现,XGBoost与GBDT的关系类似于LIBSVM与SVM的关系。
⑧人工神经网络受生物神经系统的原理启发而设计,一般简称神经网络。神经网络模型由很多基本单元(称为神经元)互相连接而成,每个神经元包含多个输入和一个输出,其中输出是所有输入经非线性的激活函数映射而得,常用的激活函数包括Sigmoid函数、ReLU函数等。经典的前馈神经网络的神经元按层分布,前一层神经元的所有输出均作为下一层所有神经元的输入。当神经网络的层数很多时,称为深度神经网络;基于深度神经网络的机器学习方法称为深度学习。
⑨无监督学习任务聚类的代表算法是K均值(k-means)。K均值首先随机选择K个样本作为聚类中心,然后交替迭代两个步骤:将所有样本依据与聚类中心的距离远近划分为K个簇,将K个簇的均值作为新的聚类中心,循环执行这两个步骤直到收敛。
机器学习是人工智能(artificial intelligence)研究发展到一定阶段的必然产物。从20世纪50年代到20世纪70年代,人工智能从推理期进入到知识期,但研究人员逐渐认识到,由人来把知识总结出来再教给计算机是相当困难的,于是有人开始思考机器是否可以自己学习知识。1980年夏,在美国卡内基梅隆大学举行了第一届机器学习研讨会;同年,《策略分析与信息系统》连出三期机器学习专辑;1983年,Tioga出版社出版了《机器学习:一种人工智能的途径》;1986年,第一本机器学习专业期刊Machine Learning创刊;1989年,人工智能领域权威期刊Artificial Intelligence出版机器学习专辑;总的来看,机器学习在20世纪80年代成为一个独立的学科,并且各种机器学习技术逐步发展,21世纪初备受瞩目的深度学习中广泛使用的、用于训练多层神经网络的误差逆传播算法即在此时期被重新发明并产生深远影响,广泛应用于计算机视觉的卷积神经网络也是在这个时期提出的。但神经网络学习过程涉及大量超参数,且设置缺乏理论指导,主要依赖一些窍门(trick)手动调参;1995年,支持向量机发表在machine learning期刊,不同于神经网络,SVM具有坚实的理论基础,这直接导致神经网络研究陷入低谷并引发统计学习的研究热潮。但到21世纪之后,随着工业界尤其是互联网积累了大量数据,并且计算机的计算能力大幅提高,神经网络以“深度学习”为名卷土重来,尤其是2012年杰弗里·辛顿(Geoffrey Hinton)领导的团队使用深度神经网络在ImageNet比赛中以大幅优势夺冠,更是将神经网络研究又一次推向高潮。
机器学习已经应用至计算机科学的诸多分支学科领域,无论是多媒体计算、计算机图形学,还是网络通信、软件工程,乃至体系结构、芯片设计,尤其是计算机视觉、自然语言处理等,机器学习都是重要的支撑技术;在交叉学科如生物信息学中,对各种数据的分析更是机器学习的舞台。今天,人们每次打开搜索引擎检索信息时,用户输入查询内容、搜索引擎输出搜索结果,在这个过程中,机器学习技术则作为内核的关键部分建立输入与输出之间的关系;每次在手机里打开新闻APP或电商APP时,APP会利用机器学习技术根据你的历史浏览数据推荐你最可能感兴趣的新闻或商品;每次使用语音输入法时,将人们输入的语音自动转换为文字输出的语音识别技术的核心仍是机器学习。另外,有望在不久的将来出现在普通人生活中的自动驾驶汽车,其核心任务是根据车载传感器接收到的信息来自动控制方向、刹车、油门等,而这亦是一个机器学习任务;在2012年美国大选期间,奥巴马麾下更是配备了一支机器学习团队,他们通过对各类选情数据进行分析,为奥巴马提示下一步竞选行动。机器学习已经渐渐进入到人们的日常生活中。
机器学习领域最重要的国际学术会议是每年一次的International Conference on Machine Learning (ICML)和Advances in Neural Information Processing Systems (NeurIPS),重要的区域性会议主要有ECML和ACML;最重要的国际学术期刊是Journal of Machine Learning Research和Machine Learning。人工智能领域的重要会议IJCAI和AAAI以及重要期刊如Artificial Intelligence和Journal of Artificial Intelligence Research,数据挖掘领域的重要会议KDD和ICDM以及重要期刊ACM Transactions on Knowledge Discovery from Data和Data Mining and Knowledge Discovery,计算机视觉与模式识别领域的重要会议CVPR以及重要期刊IEEE Transactions on Pattern Analysis and Machine Intelligence,神经网络领域的重要期刊如Neural Computation和IEEE Transactions on Neural Networks and Learning Systems等也经常发表机器学习方面的论文。中国国内机器学习领域最主要的活动是两年一次的中国机器学习大会以及每年举行的 机器学习及应用研讨会,很多学术刊物如《计算机学报》、《软件学报》、《自动化学报》、《中国科学·信息科学》等都经常刊登机器学习方向的学术论文。