机器学习及其应用
上QQ阅读APP看书,第一时间看更新

1.1 机器学习基本概念

从外部环境中学习所需知识或技能是人类的一项重要能力,机器学习要解决的问题就是如何使机器也能像人类一样具有这种学习能力。目前,机器学习作为实现人工智能的一项核心技术,已在数据挖掘、计算机视觉、搜索引擎、语音识别、游戏博弈、经济预测与投资分析等众多领域得到了广泛应用。本节主要介绍机器学习的基本概念,包括人工智能与机器学习的关系、机器学习的定义、有关机器学习的若干基本术语以及机器学习的误差分析。

1.1.1 人工智能与机器学习

发明创造某种工具来延伸人类器官功能是实现人类科技进步的一种重要手段。例如,汽车、轮船和飞机等工具的发明延伸了人腿的功能,极大提升了人类的交通能力;摄像机、望远镜和显微镜等工具的发明延伸了人眼的功能,极大提升了人类的视觉能力。为摆脱复杂繁重的科学与工程计算任务,人们发明了计算机代替人脑进行计算。实践证明计算机不仅能够胜任科学与工程计算工作,而且算得比人脑更快、更准确。那么计算机是否可以进一步承担人脑的推理或思维等智能任务呢?受此启发,以麦卡赛、明斯基、罗切斯特和申农等一批具有远见卓识的科学家共同探究使用机器模拟人类思维或人类智能的一系列问题,并在1956年夏季首次提出人工智能的概念,标志着人工智能学科的诞生。

人工智能的主要目标是通过计算机来模拟人的某些思维能力或智能行为,如推理、证明、识别、感知、认知、理解、学习等思维能力或活动,让计算机能够像人类一样进行思考。六十多年来,人工智能取得了长足的发展,目前在机器翻译、智能控制、图像理解、语音识别、游戏博弈等领域有着广泛应用。纵观人工智能的发展历程,可依据所用核心技术的不同将其大致分为逻辑推理、知识工程和机器学习这三个基本阶段。

20世纪50年代至70年代是人工智能发展的早期阶段,那时人们普遍认为实现人工智能的关键技术在于自动逻辑推理,只要机器被赋予逻辑推理能力就可以实现人工智能。因此,早期人工智能主要通过谓词逻辑演算来模拟人类智能。这个阶段的人工智能的主流核心技术是符号逻辑计算,在数学定理自动证明等领域获得了一定成功。

然而,人们逐步意识到如果没有一定数量的专业领域知识支撑,则很难实现对复杂实际问题的逻辑推理。因此,以知识工程为核心技术的专家系统在20世纪70年代至90年代逐步成为人工智能的主流。专家系统使用基于专家知识库的知识推理取代纯粹的符号逻辑计算,在故障诊断、游戏博弈等领域取得了巨大成功。

专家系统需要针对具体问题的专业领域特点建立相应的专家知识库,利用这些知识来完成推理和决策。例如,如果让专家系统做疾病诊断,就必须把医生的诊断知识建成一个知识库,然后使用该库中的知识对病情进行推断。然而,把专家知识总结出来并以适当的方式告诉计算机程序有时非常困难,通常需要针对每个具体任务手工建立相应的知识库。例如在图像识别领域,为识别图像中目标是否为猫而建立的知识库并不能用于对目标是否为狗的识别,若要实现对图像中狗的识别,就必须专门建立用于识别狗的知识库。因此,专家知识的人工获取和表示方式严重制约了人工智能的进一步发展。

俗话说,授人以鱼不如授人以渔。既然把专家知识总结出来再灌输给计算机的知识工程方式非常困难甚至在很多场合不可行,那么可以考虑让人工智能系统自己从数据中学习领域知识。从外部环境中学习所需知识或技能是人类的一项重要能力,机器学习要解决的问题就是如何使得机器也能够像人类一样具有这种学习能力。事实上,机器学习的思想可以追溯到20世纪50年代的感知机数学模型,该模型可以通过使用样本数据调整连接权重的方式保持模型对外部环境变化的自适应性。专家系统的知识工程困境使得机器学习思想和技术逐步得到重视,并在20世纪80年代初步形成一套相对完备的机器学习理论体系。

自20世纪90年代中期以来,机器学习得到迅速发展并逐步取代传统专家系统成为人工智能的主流核心技术,使得人工智能逐步进入机器学习时代。特别是近十几年来,数据量爆发式增长、计算机运算能力的巨大提升和机器学习新算法(深度学习)的出现,使得人工智能获得飞跃式迅猛发展。目前,以机器学习为主流核心技术的人工智能在多个领域取得的巨大成功已使其成为社会各界关注的焦点和引领社会未来的战略性技术。

图1-1表示一种典型的人工智能系统计算框架,其中机器学习模块通过适当的算法解析数据,从数据中获取知识和模型参数,输出可用于决策或预测的数学模型,为人工智能系统提供核心算法支撑。计算机视觉、语音工程等专业应用模块使用机器学习算法提供的数学模型完成对相关对象的识别、合成、分析、理解、决策等信息处理任务。

978-7-111-63202-3-Chapter01-1.jpg

图1-1 人工智能系统典型框架

由以上分析可知,机器学习为人工智能系统提供基础性的模型和算法支撑,是实现人工智能系统必备的核心技术。下面具体讨论机器学习的基本含义。

在使用计算机解决实际问题时,通常需要对实际问题建立数学模型,将对实际问题的求解转化为对数学模型的求解。此时不可避免地会出现一些模型参数,这些参数的取值情况往往会对模型及其求解结果产生很大的影响,一般需要调整参数以便取得更好的结果。然而,当模型参数较多或者取值状态比较复杂时,手工调整参数就会变得非常困难和费时。为解决这个问题,可以考虑从实际问题中采集适当的样本数据,通过对这些样本数据进行解析自动计算出所需的模型参数,并随着样本数据变化而自动调整参数取值,使得数学模型和求解算法具有良好的普适性和自适应性。上述做法类似于人类向周围环境学习知识或规则的行为,样本数据相当于周围环境,模型参数相当于学习获得的知识或规则,由此产生机器学习理论和算法的基本思想。

从外部环境中学习所需知识或技能是人类的一项重要能力,获取知识或技能的根本目的在于提高自身的判断、推理、决策或识别等思维水平。因此,从本质上说,机器学习就是通过样本数据等适当的经验信息来改善模型的性能。例如,在使用模型M0识别猫或狗的图片时,可采用适当方式将一些关于猫或狗的带标注图片输入模型M0中,通过改进M0参数或结构产生一个新的模型Mp,使得模型Mp的识别正确率高于M0。这就是一个机器学习的过程。此时,经验信息表现为猫或狗的带标注图片,模型的性能即为识别的正确率。

机器学习对初始模型M0的改善不仅体现在模型参数方面,有时还会对模型结构进行改进。因此,通常用改进模型Mp泛指机器学习的输出结果。由此得到如下机器学习定义:

机器学习是一种通过先验信息来提升模型能力的方式。具体地说,对于给定的任务和性能度量标准,使用先验信息E,通过某种计算方式T改进初始模型M0,获得一个性能更好的改进模型Mp,即有Mp=TM0E)。

机器学习定义中的任务所界定的范畴非常广泛,在不同应用领域有着不同的具体含义。例如,如果编写一个机器学习程序让机器人能够行走,那么机器人行走就是一个任务。但是机器学习本身不是任务,因为机器学习是获取或提升完成某项任务所需能力的一种途径。

从上述机器学习概念可知,机器学习的目标就是通过计算手段从经验数据等先验信息E中产生一个性能改善的新模型Mp。因此,机器学习的研究内容就是使用计算机从经验数据等先验信息中产生模型的算法,即学习算法。如果说计算机科学是一门关于算法的学问,那么机器学习就是一门关于学习算法的学问。

【例题1.1】已知样本数据集为

D={(xy)|(1.1,1.9),(2.7,2.3),(3.2,3.4),(3.6,2.9),(4.7,3.4),(5.1,4.3)}

D中数据点在坐标系中的分布如图1-2所示。令初始模型M0y=ax+b,试根据数据集D优化M0并计算x=6时的模型输出978-7-111-63202-3-Chapter01-2.jpg

【解】对于初始模型M0,令M0对每个样本xi的预测输出978-7-111-63202-3-Chapter01-3.jpg与其真实值yi之间的误差平方为ei,即978-7-111-63202-3-Chapter01-4.jpg,则模型M0对所有样本的累计误差为

978-7-111-63202-3-Chapter01-5.jpg

由于对模型M0进行优化的依据是D中所有样本的真实取值,故当模型对所有样本预测值与真实值之间的累计误差最小时,模型对样本的预测输出最准确,此时的模型就是所求的优化模型,即机器学习定义中具有更好性能的新模型。基于以上分析,可将模型M0的参数求解转化为计算累计误差最小值的优化问题。

将模型M0的参数ab看作累计误差函数Q的变量,由于在多元函数极值点处,函数对其所有变量的偏导数均为0,故分别对参数ab求偏导,并令偏导数为0,得到

978-7-111-63202-3-Chapter01-6.jpg

978-7-111-63202-3-Chapter01-7.jpg

联立上述等式并代入D中样本数据,解得:a≈0.66,b≈0.789。

由此得到优化模型Mpy=0.66x+0.789,图1-3中的实线表示Mp的函数图像,将x=6代入Mp,可求得优化模型的预测值:978-7-111-63202-3-Chapter01-8.jpg。□

978-7-111-63202-3-Chapter01-9.jpg

图1-2 样本分布图

978-7-111-63202-3-Chapter01-10.jpg

图1-3 优化模型Mp

例题1.1所示的机器学习实例主要通过对初始模型参数的优化估计求出具有更好性能的新模型。事实上,机器学习有时还可以根据实际需要改变初始模型的结构。例如,对于样本数据集D={(xiyi)|i=1,2,…,n},假设初始模型为如下k次多项式

978-7-111-63202-3-Chapter01-11.jpg

则可以通过适当方式将N0简化为如下二次多项式模型978-7-111-63202-3-Chapter01-12.jpg

事实上,要将初始模型N0变为简化模型Np的形式,只需通过适当方式调整N0的参数,使得参数θ3θ4,…,θk的取值趋向于0即可。可用均方误差最小化的思想实现这个效果,为此构造如下以θ0θ1,…,θk为自变量的函数

978-7-111-63202-3-Chapter01-13.jpg

其中,978-7-111-63202-3-Chapter01-14.jpg

函数Qθ0θ1,…,θk)中的第一项为模型M0对所有样本取值的累计误差,第二项是对参数θ3θ4,…,θk添加的限制条件。在使函数Qθ0θ1,…,θk)最小化的过程中,可将C定义为一个非常大的取值,使得参数θ3θ4,…,θk的取值趋向于0,以尽量消除C值对函数Qθ0θ1,…,θk)最小化取值的影响。此时用函数Qθ0θ1,…,θk)代替累计误差函数求最小值,相当于在对参数θ3θ4,…,θk做趋向于0的限制条件下解出优化模型的全部参数978-7-111-63202-3-Chapter01-15.jpg978-7-111-63202-3-Chapter01-16.jpg978-7-111-63202-3-Chapter01-17.jpg。具体地说,就是由于函数Q中第二项权重过大,为使函数Q整体取值最小,该项所涉及参数θ3θ4,…,θk均会趋向于0,由此即可获得结构调整后的优化模型978-7-111-63202-3-Chapter01-18.jpg

1.1.2 机器学习基本术语

如前所述,机器学习主要通过样本提供的信息来提升模型性能以完成给定的学习任务,即从样本中学习。对于任意一个给定的样本对象ξ,一般需要对其提取若干属性形成对该样本的数据描述或表征,并将这些属性值作为机器学习模型的输入。令

978-7-111-63202-3-Chapter01-19.jpg

为样本ξm个属性提取函数,则可通过这些函数将样本ξ映射成一个m元表征向量X,即

978-7-111-63202-3-Chapter01-20.jpg

其中,xi为样本ξ的第i个属性值,i=1,2,…,m

显然,表征向量X是对样本对象ξ的一个数据抽象,从数学的角度看,两者并没有本质上的差异。因此,为方便表达,在不产生混淆的情况下,通常将表征向量为X的样本ξ简称为样本X,即不加区分地使用表征向量X和表征向量为X的样本ξ这两个没有本质差异的概念。

机器学习的任务是指所要解决的问题,主要包括回归、分类和聚类等。回归任务是通过若干带有标注的样本数据构造出一个预测模型RX),使得RX)的预测输出尽可能符合真实值,并称RX)为回归模型。通常将用于构造模型的样本称为训练样本,用于测试模型效果的样本称为测试样本。一般使用两组不同的样本集合分别作为训练样本集和测试样本集。

ξ1ξ2,…,ξn是任意给定的n个训练样本,Xk=(x1kx2k,…,xmkTykk=1,2,…,n)分别表示ξk的表征向量和标注值,则由这n个样本构成的训练样本集D可以表示为

978-7-111-63202-3-Chapter01-21.jpg

回归模型RX)的初始模型是一个带有参数的计算模型,机器学习的模型训练算法使用训练样本集D中的数据信息计算出RX)的全部参数,得到具体的回归模型。有了回归模型的具体参数,就可以使用该模型完成回归任务。例如,例题1.1解决的就是一个机器学习回归任务,通过训练样本数据计算所得的模型y=0.66x+0.789就是一个具体的回归模型。

日常生活和工作中会经常遇到一些分类问题,例如有时需要将产品按质量分为优等品、合格品和次品,将公司客户分为贵宾客户和普通客户等。可以使用机器学习方式实现这种分类任务,即根据带标注训练样本构造相应的分类模型,然后根据分类模型实现对目标的自动分类。显然,如果回归模型的预测输出是离散值,则机器学习的回归任务就转化为分类任务。也就是说,分类其实是预测输入样本所在类别的一类特殊回归任务,特殊性在于要求预测结果为离散的类别值而不是连续值。

用于分类任务的机器学习模型称为分类模型或分类器,分类任务的目标是通过训练样本构造合适的分类器CX),完成对目标的分类。分类类别只有两类的分类任务称为二值分类或二分类,这两个类别分别称为正类和负类,通常用+1和-1分别指代。分类类别多于两类的分类任务通常称为多值分类。

对于一个具体的回归或分类任务,所有可能的模型输入数据组成的集合称为输入空间,所有可能的模型输出数据构成的集合称为输出空间。显然,回归或分类机器学习任务的本质就是寻找一个从输入空间到输出空间的映射,并将该映射作为预测模型。从输入空间到输出空间的所有可能映射组成的集合称为假设空间。

回归或分类模型的训练计算可以看成是一个在假设空间中搜索所需模型的过程,模型训练算法在假设空间中搜索合适的映射,使得该映射的预测效果与训练样本所含的先验信息相一致。事实上,满足条件的映射通常不止一个,此时需要对多个满足条件的映射做出选择。在没有足够依据进行唯一性选择的情况下,有时需要做出具有主观倾向性的选择,即更愿意选择某个映射作为预测模型。这种选择的主观倾向性称为机器学习算法的模型偏好。例如,当多个映射与训练样本所包含的先验信息一致时,可选最简单的映射作为预测模型,此时模型偏好为最简单的映射。这种在同等条件下选择简单事物的倾向性原则称为奥卡姆剃刀原则。

自然界和社会生活中经常会出现物以类聚、人以群分的现象,例如,羊、狼等动物总是以群居的方式聚集在一起,志趣相同的人们通常会组成特定的兴趣群体。机器学习的聚类任务就是对样本数据实现物以类聚的效果。显然,聚类的类别由不同样本之间的某种相似性确定,因而聚类类别所表达的含义通常是不确定的,聚类样本也不带特定的标注来表示样本所属的类别。这是聚类与回归或分类任务之间的本质区别。通常将不带标注的样本称为示例,而将带标注的样本称为样例。

在聚类任务中,所有输入示例的集合称为示例集,被划分为同一类别的示例所构成的集合称为一个簇。图1-4表示一个具有两个簇的示例集。

978-7-111-63202-3-Chapter01-22.jpg

图1-4 包含两个簇的示例集

对于任意给定的一个n元示例集S={x1x2,…,xn},假设Δ是一个对S的划分,则有

978-7-111-63202-3-Chapter01-23.jpg

其中,S1S2,…,St均是由S中示例构成的簇,且满足

978-7-111-63202-3-Chapter01-24.jpg

聚类的目标是寻找一个对S的适当划分Δ,使得划分的各簇内部的示例之间的相似性尽可能地小。通常采用欧式距离或余弦距离等作为样本之间相似性的度量标准。图1-5表示一个依据相似性度量标准被划分到与之相似的簇中的示例。

978-7-111-63202-3-Chapter01-25.jpg

图1-5 聚类示意图

聚类任务使用的先验信息与回归或分类任务有着很大差别。聚类任务的先验信息为示例,即不带标注的样本,而回归和分类任务的先验信息均为带标注的样本。事实上,除了带标注样本和不带标注样本之外,先验信息有时还以某种反馈信息的形式存在。可根据先验信息的不同形式,将机器学习分为监督学习、无监督学习和强化学习三种基本方式。

监督学习是指利用一组带标注样本来调整模型参数,以提升模型性能的学习方式。监督学习的基本思想是通过标注值告诉模型在给定输入的情况下应该输出什么值,由此获得尽可能接近真实映射方式的优化模型。监督学习不像传统计算机问题求解那样需要根据实际问题的具体情况设计一个固定流程进行计算,而是由计算机根据带标记的样本集自动获得一个问题的求解模型并由此实现对问题的求解。图1-6表示监督学习的基本流程。

无监督学习通过比较样本之间的某种联系实现对样本的数据分析。相比于监督学习,无监督学习的最大特点是学习算法的输入是无标记样本。例如,现有一些图片,其中每张图片内容是两类不知名花卉之一,通过观察花卉特点将同类的花卉图片放到一起,这便是无监督学习。在实际问题中遇到样本缺失标记或者人工标注成本过高的情况,可以使用无监督学习方式实现对这些数据自动分析,将所得到的分析结果作为参考信息。

强化学习是根据反馈信息来调整机器行为以实现自动决策的一种机器学习方式。一个强化学习系统主要由智能体和环境两个部分组成。智能体是行为的实施者,由基于环境信息的评价函数对智能体的行为做出评价,若智能体的行为正确,则由相应的回报函数给予智能体正向反馈信息以示奖励,反之则给予智能体负向反馈信息以示惩罚。强化学习的基本流程如图1-7所示,智能体根据环境的当前状态选择下一个动作,环境对这个动作做出评价并反馈给智能体,同时更新环境状态,不断重复这一过程直至达到某种设定,选取累计奖励值最大的一组动作作为所求的最终策略。

978-7-111-63202-3-Chapter01-26.jpg

图1-6 监督学习流程图

978-7-111-63202-3-Chapter01-27.jpg

图1-7 强化学习流程图

1.1.3 机器学习误差分析

机器学习模型是对实际求解问题的一种数学抽象,模型的输出结果与其对应的真实值之间往往会存在一定的差异,这种差异称为该模型的输出误差,简称为误差。机器学习的一个重要手段就是以模型输出误差为基本依据不断优化或校正模型,使得模型的输出误差尽可能变小。因此,对机器学习模型进行误差分析,从误差分析角度分析并寻找影响机器学习模型性能的关键因素,是机器学习的重要研究内容。

为便于误差分析,通常需要构造某种函数用于度量模型对单个样本的输出误差,这样的函数称为损失函数。具体地说,对于给定的机器学习模型f,假设该模型对应于输入样本X的输出为978-7-111-63202-3-Chapter01-28.jpg,与X对应的实际真实值为y,则可用以yfX)为自变量的某个函数LyfX))作为损失函数来度量模型f在输入样本X下的输出误差。

损失函数的具体形式有很多种,可根据实际问题需要来构造或选用适当的损失函数进行误差分析。例如,LyfX))=[y-fX)]2LyfX))=|y-fX)|是两种经常用于度量回归模型输出误差的损失函数,分别称为平方损失函数和绝对值损失函数。

在机器学习中,面向单个样本的损失函数所度量的只是模型在某个特定样本下的输出误差,不能很好地反映模型在某个样本集上对所有样本的整体计算准确度。因此,需要进一步定义面向某个特定样本集的综合误差,通常称为该样本集上的整体误差。

对于任意给定的一个n元样本集S={(X1y1),(X2y2),…,(Xnyn)},模型fS上的整体误差RSf)的定义为

978-7-111-63202-3-Chapter01-29.jpg

即将RSf)定义为S中所有单个样本所对应损失函数值的平均值。

对于某个给定的机器学习任务,假设与该任务相关的所有样本构成的样本集合为D,则机器学习模型在样本集合D上的整体误差称为该模型关于该学习任务的泛化误差。具体地说,令样本集合D中所有样本的概率分布为PD),模型f对输入样本X的输出为978-7-111-63202-3-Chapter01-30.jpgX所对应的实际真实值为y,则可将模型f的泛化误差定义为

978-7-111-63202-3-Chapter01-31.jpg

泛化误差表示机器学习模型在整个样本集合D上的平均误差,是刻画机器学习模型普适性的重要指标,作为模型求解和模型评估的基本依据,它在机器学习的过程中发挥着极为重要的作用。然而,精确计算模型的泛化误差需要知道整个样本集合D中所有样本的真实取值和概率分布,这通常是不可行的。因此,一般无法计算泛化误差的精确值,需要采用某些便于计算的度量指标作为泛化误差的近似代替值。

机器学习模型训练的目标是尽可能获得普适性或泛化性最好的模型,理论上要求模型的泛化误差达到最小。然而,通常无法直接计算模型的泛化误差,更难以直接对泛化误差进行优化分析。由于训练样本通常采样自整个样本集合D,训练样本集通常与D有着比较相似的样本概率分布,故一般采用训练误差近似替代泛化误差来对模型进行训练。

所谓训练误差,是指模型在训练样本集上的整体误差,也称为经验风险。具体地说,对于任意给定的n元训练样本集合G={(X1y1),(X2y2),…,(Xnyn)},假设模型f对输入样本X的预测输出为978-7-111-63202-3-Chapter01-32.jpg,则该模型关于训练样本集G的训练误差定义为

978-7-111-63202-3-Chapter01-33.jpg

其中,Xk表示训练集中的第k个样本;fXk)表示模型对输入样本Xk的输出978-7-111-63202-3-Chapter01-34.jpgyk为机器学习任务中与输入Xk对应的实际真实取值。

因此,机器学习中的模型训练或优化通常使用最小化训练误差的方法来完成。该方法称为经验风险最小化方法,由此得到的优化模型为

978-7-111-63202-3-Chapter01-35.jpg

其中,F为假设空间。

对于已训练出的模型,通常使用测试误差近似替代泛化误差的方法来对该模型进行测试。所谓测试误差,是指模型在测试样本集上的整体误差。具体地说,对于任意给定的v元测试样本集合978-7-111-63202-3-Chapter01-36.jpg,该模型关于T的测试误差的定义为

978-7-111-63202-3-Chapter01-37.jpg

其中,978-7-111-63202-3-Chapter01-38.jpg表示测试集中的第k个样本;978-7-111-63202-3-Chapter01-39.jpg表示模型对输入978-7-111-63202-3-Chapter01-40.jpg的输出978-7-111-63202-3-Chapter01-41.jpg978-7-111-63202-3-Chapter01-42.jpg为机器学习任务中与输入978-7-111-63202-3-Chapter01-43.jpg对应的实际真实值。

对于训练样本集合中的每个样本,该样本都会存在一些普适于整个样本集D的共性特征和一些仅仅适合于特定训练样本集的个性特征。在机器学习中,模型训练的最理想效果就是充分提取训练样本的共性特征而尽量避免提取其个性特征,使得训练出来的模型具有尽可能广泛的普适性,即具有尽可能好的泛化性能。

然而,模型的训练通常以最小化训练误差为标准,此时对于固定数量的训练样本,随着训练的不断进行,训练误差会不断降低,甚至趋向于零。如果模型训练误差过小,就会使训练出来的模型基本上完全适应于训练样本的特点。此时,训练模型不仅拟合了训练样本的共性特征而且也拟合了训练样本的个性特征,反而降低了训练模型的泛化性能,使得泛化误差不断增大。这种同时拟合训练样本的共性特征和个性特征的现象,在机器学习领域通常称为模型训练的过拟合现象。

避免过拟合现象的一个有效措施是尽可能扩大训练样本的数量,尽可能降低样本在训练样本集与整个样本集上概率分布的差异,以充分增强训练样本的共性特征,弱化训练样本的个性特征。近年来计算机运算能力的巨大提升以及在各行各业中不断涌现的大数据,使得通过扩大训练样本数量以避免过拟合现象的措施变得可行,这正是机器学习在如今互联网和大数据时代得到迅猛发展的重要原因。

由以上分析可知,在机器学习的模型训练中,随着训练过程的进行,训练误差会一直不断降低,但泛化误差则会先减小,然后因产生过度拟合现象而导致不断增大,具体如图1-8所示。在训练的初始阶段,由于模型尚未充分拟合训练样本的共性特征,故此时模型的泛化误差较大。这种由于未能充分拟合训练样本共性特征造成模型泛化误差较大而导致模型泛化能力较弱的现象称为模型训练的欠拟合现象。随着训练过程的不断进行,训练误差和泛化误差均不断减少,欠拟合现象通常会逐渐消失。

978-7-111-63202-3-Chapter01-44.jpg

图1-8 训练误差和泛化误差关系图

对于给定的训练样本集合,如果对模型训练强度不做适当控制,就会在模型训练的后期将训练样本的个性特征引入模型当中,从而引起泛化误差的增大,产生过拟合现象。因此,泛化误差由下降变为上升的转折点处对应的训练模型具有最好的泛化性能。也就是说,对于给定的训练样本集合,可以在适当训练强度下获得具有最好泛化性能的训练模型。

现在进一步分析讨论不同训练样本集合的差异对模型训练结果的影响,考察训练模型对训练样本集合变化的稳定性。

对于任意给定的一个初始模型f,假设D1D2,…,Dss个不同的训练样本集合,其中每个训练样本均采样自整个样本集合D,通过训练样本集合Di训练初始模型f所得到的优化模型记为fii∈(1,2,…,s),978-7-111-63202-3-Chapter01-45.jpg表示第i个模型对于输入样本X的模型输出,X所对应的实际真实值为y,则这s个优化模型对于输入样本X的期望输出为

978-7-111-63202-3-Chapter01-46.jpg

其中,FX)=(f1X),f2X),…,fsX))T,可将其看成一个关于fX)的离散随机变量。

此时,模型fX)对于测试样本集合变化的稳定性可用相应的方差指标进行度量。模型fX)在训练样本集D1D2,…,Ds下所得优化模型f1X),f2X),…,fsX)输出的方差为

978-7-111-63202-3-Chapter01-47.jpg

对于任意一个给定的初始模型f,如果该模型变化的自由度较大,例如模型参数的数目较多或者参数的取值范围较大,则能够更好地适应训练样本数据的变化,能对多种不同的训练样本集合获得较好的拟合效果;反之,如果该模型参数的变化自由度较小,则模型适应训练数据变化的能力就比较差,可以有效拟合的训练数据范围也就比较有限。机器学习模型这种适应训练数据变化的能力,称为模型的学习能力或模型的容量。

显然,模型的容量主要反映该模型对数据的拟合能力。模型的容量越大其对数据的拟合能力就越强,越能够适应训练样本数据的变化。可以使用模型输出在不同训练样本集合下的综合偏差对其进行度量,这种综合偏差称为模型输出的偏差,简称为偏差。

对于模型fX)在训练样本集D1D2,…,Ds下的优化模型FX)=(f1X),f2X),…,fsX))TFX)作为一个离散随机变量与X所对应实际真实值y之间的偏差Bias[FX)]为

978-7-111-63202-3-Chapter01-48.jpg

对基于平方损失函数的泛化误差Rexpf)=E[LyFX))]=E{[FX)-y]2},对其进行偏差-方差分解,可得

978-7-111-63202-3-Chapter01-49.jpg

由于E{FX)-E[FX)]}=E[FX)]-E[FX)]=0,故有:

978-7-111-63202-3-Chapter01-50.jpg

即有

978-7-111-63202-3-Chapter01-51.jpg

由式(1-10)可知,模型的泛化误差等于模型输出的方差与模型输出的偏差平方之和。

如前所述,模型输出的偏差反映模型容量的大小或者说模型学习能力的强弱,模型输出的方差则反映模型对训练样本变化的敏感程度。一般而言,对于容量较大的模型,由于其拟合能力较强,因而会使得模型输出的偏差相对较小。然而,大容量模型的变化自由度通常较大,会导致模型参数对样本数据的变化比较敏感,使得模型输出的方差较大。因此,同时减小模型输出的方差和偏差是不可行的,图1-9表示泛化误差与偏差及方差之间的关系。

978-7-111-63202-3-Chapter01-52.jpg

图1-9 泛化误差与方差及偏差的关系

从图1-9中可以看出,随着模型容量的增加,模型输出的偏差随之减小,模型输出的方差却随之增大。因此,模型的泛化误差会出现先减后增的情况。当模型容量较低时,其拟合能力较弱,难以对训练样本的共性特征进行有效拟合,故欠拟合现象会较为严重。当模型容量过高时,模型对数据的变化太过敏感,具有过强的拟合能力,对训练样本的个性特征也进行了拟合,此时过拟合现象较为严重。由此可知,对于具体的机器学习任务而言,模型容量并非越高越好,一个容量适中的机器学习模型通常更能满足任务需求。