- 人工智能:数据与模型安全
- 姜育刚 马兴军 吴祖煊
- 4431字
- 2024-05-23 17:06:19
2.1 基本概念
机器学习通常是指模型从有限的训练样本中利用学习算法自动寻找规律和知识,进而在未知数据上进行决策的过程[3]。在机器学习过程中,我们需要根据特定的学习任务设计数学模型,确定从输入到输出的具体映射形式,再定义目标函数衡量拟合程度,设计优化策略在训练集上对模型进行迭代更新直到达到目标函数最优值[4]。我们在验证集上检验模型的泛化能力并挑选最优的模型参数,并最终在测试集上进行模型评估。为了更好地理解机器学习的概念,本节将从学习任务、学习对象、学习主体、学习过程以及学习目标等方面一一进行阐述。
机器学习的任务是指人为定义的一种方便机器完成的最简问题。一个具体的机器学习任务往往源自一个现实世界的问题,具有明确定义的“输入”和“输出”,并且可以通过一定的手段采集到样例“输入”和“输出”。机器学习任务形式多样,比如在棋类游戏中根据当前的棋盘局势落子、识别图片中物体的种类、将一段中文翻译成英文等。现实世界中的问题,或简单或复杂,都可以拆分成一个或者多个机器学习任务。是否可拆分的关键是中间步骤的产物是否可捕获或者可观测。机器学习概念始于1959年,经过多年的发展已经研究了大量的学习任务,其中主要的任务类型包括回归、分类、生成、降噪、异常检测、机器翻译等。
当学习任务得到明确定义以后,我们就可以在应用场景中收集输入输出样本,以构建训练样本集。在数据收集过程中最重要的一个假设是数据独立同分布(independent and identically distributed,IID)假设,即每一个样本(训练样本和测试样本)都是从同一个分布(形式未知)随机独立采样得到的。独立同分布假设保证了机器学习模型在训练样本上训练后可以在未知(测试)样本上进行泛化,是机器学习模型泛化的关键,而实际上,很多泛化问题的出现都跟打破独立同分布假设有关。因此在收集训练样本时,往往要求多次采样之间应尽可能地独立,且希望采样出来的数据点都服从同一分布。单一数据样本可由一个多维向量表示如下:
多个训练样本组成一个训练样本集(不包含标签),我们用X表示训练样本集,定义如下:
机器学习的对象是数据中蕴含的知识。机器学习存在三种经典的学习范式,即有监督学习、无监督学习和强化学习。在有监督学习中,知识由样本中所包含的信息和标注信息共同定义,即知识是标注出来的。所以在得到训练样本集X后,我们需要对其中每个样本进行标注,使每一个x对应一个(或多个)标签y ∈ Y(离散或者连续)。标注信息给出了从输入空间X到标签空间(即输出空间)Y的映射,知识蕴含其中。我们一般将训练过程中完全可见的数据(包括样本和其标签)称为训练集,它给出了较为准确但数量有限的“输入-输出”映射关系,我们会通过让模型拟合这些映射关系来挖掘潜在的数据模式,以完成对知识的学习。一般来说,样本标注需要花费大量的人力物力,标注方式要求专业、严谨、合理,标注信息越准确对知识的定义就越准确,也就越有利于模型学习,因此数据标注是机器学习过程中非常重要的一个环节。当涉及专业性较强的学习任务时,如标记医疗影像中的病变位置,甚至还需要领域专家的参与和指导。在有监督学习范式下,训练数据集D由训练样本集X ⊂X和其对应的标签集Y ⊂Y共同构成:
除标注信息外,数据本身的分布规律也蕴含了丰富的知识。因此一些机器学习任务要求模型可以从数据中自主挖掘潜在模式,以完成对数据中所蕴含规律的学习,这种学习范式称为无监督学习。在这种情况下,标签集合为空集,即Y=∅。所以对无监督学习来说,知识是挖掘出来的。在有监督学习和无监督学习之间还存在半监督学习范式,在这种情况下数据部分有标注部分无标注。实际上,当无监督数据集被标注以后就可以转换为有监督学习任务,虽然这在当前机器学习中并不常见。而有监督学习往往也存在无监督的部分,比如图像分类任务中存在开集类别(open-set class),这在当前机器学习中也是被忽视的。从某种程度上来说,我们大部分的学习任务实际上是半监督的,因为我们总可以对一部分数据进行标注,也总要面对不断出现的未知样本。
在强化学习过程中,智能体在与环境交互的过程中根据奖惩反馈来调整探索策略以最大化奖励。所以对强化学习来说,知识是探索出来的。关于何种知识获取方式(有监督学习中的人工标注、无监督学习中的自主挖掘和强化学习中的探索发现)才是定义知识的最佳方式一直是机器学习领域一个争论不休的话题。有一部分研究者认为自主挖掘和探索发现才是获取知识的正确方式,也就是无监督和强化学习才是人工智能的未来。然而,很多现实世界中的问题又更适合以有监督学习的方式进行定义,而且有监督学习的学习效率和泛化性能往往要高于无监督学习。与此同时,一些学者尝试使用迁移学习等方式,逐步缩小不同学习范式之间的差异,进而证明同一个问题可以由不同的学习范式同等解决。2.2节将具体介绍这几类经典的机器学习范式。
机器学习的主体往往是人工设计的数学模型。在获得训练数据之后,机器学习通常会对“输入-输出”映射进行数学建模,并对参数化的模型进行优化。数学模型规定了从输入到输出的具体映射形式,无论是简单的线性模型还是更为复杂的深度神经网络,它们都可以被看作从输入样本到输出目标的函数映射f。图2.1展示了三种不同的学习任务,分别是语音识别、人脸识别和语义分割,主要区别是映射的具体形式。从输入空间X到输出空间Y的映射函数可抽象表示为:
图2.1 机器学习是一种映射学习
值得注意的是,由于不同模型架构具备不同的映射复杂度,在具体问题上存在优化难易的差别,因此需要根据实际问题的特点对数学模型进行合理设计。而模型架构一选定,其对应的映射函数族(function family)也就确定了。所有可能函数的具体形式将共同构成模型的假设空间F,即在模型架构确定的前提下,F为包含了所有可能映射函数的集合:
其中,θ是参数空间,不同的θ对应不同的函数fθ。例如,当模型被确定为关于输入变量的线性函数时,模型的假设空间即为所有线性函数构成的集合,线性函数的每一种组合系数θ对应模型假设空间中的一个点。当选定模型架构后,我们需要考虑如何获得最优的模型参数,这就需要具体的学习算法来实现参数优化。
机器学习的过程是模型参数优化的过程。未经学习的模型不包含任何任务相关的知识,更不具备解决实际问题的能力,这时候就需要学习算法的参与。学习算法包含两个核心要素,分别是损失函数和优化策略。对有监督学习任务来说,损失函数定义了模型的预测错误,即模型的输出f(x)与真实标签y之间的不一致性。所以损失函数通常是一个非负实值函数,一般用L(f(x),y)来表示。损失函数值越小,一致性越高,模型拟合越好。假设输入和输出是(X,Y)的随机变量,服从联合分布P(X,Y),在整个数据分布上的期望损失(expected loss)可定义为:
学习的目标就是找到使期望损失最低的模型参数θ∗,而在现实场景中P(X,Y)是未知的,所以式(2.6)无法直接求解,需要模型通过在训练数据上“学习”来逐步逼近。
在实际机器学习求解过程中,人们通常使用经验风险(empirical risk)来近似期望损失。给定训练数据集D[式(2.3)],经验损失可定义如下:
此处近似的合理性与前文提到的独立同分布采样假设紧密相关。实际优化通常遵循经验风险最小化(empirical risk minimization,ERM)策略,将求解最优模型参数转换为求解下式的最小值问题:
在本书的后续章节中,我们在无歧义的情况下忽略fθ中的θ符号,简单地用f来表示模型和模型所代表的函数。
当样本容量足够大时,最小化经验风险往往能够取得很好的学习效果。然而在大部分情况下,训练样本的数量是非常有限的,而且往往存在一些噪声数据,使得训练数据不能够完全反映真实的数据分布。在这种情况下,通过经验风险最小化得到的模型很容易出现过拟合(overfitting)的现象,即在训练数据集上性能很好,但在测试数据集上性能很差。为了防止模型过拟合,结构风险最小化(structural risk minimization,SRM)准则被提出。
我们可以认为过拟合是由模型过度复杂(拟合能力过强)、训练数据过少、训练数据噪声过多等造成的,因此可以通过正则化(regularization)的方式来对模型的参数进行约束,以解决模型过拟合的问题。常用的正则化方法有L1范数正则化和L2范数正则化,我们用Ω(θ)来表示模型参数正则化,这两种正则化方法分别表示如下:
在经验风险最小化的基础上引入参数正则化来限制模型的复杂度可有效缓解过拟合现象,二者的结合则为结构风险,用Rsrm来表示如下:
基于结构风险最小化的参数优化目标为:
其中,λ>0是正则化系数,用于控制正则化的强度,以权衡经验风险和模型复杂度。
在确定好优化目标之后,对优化目标的求解涉及学习算法的第二个核心要素:优化策略。优化策略(也称优化方法、优化器)多种多样,光是基于梯度的一阶优化方法就有很多种,如SGD、AdaGrad、AdaDelta、Adam、RMSProp、AdamW等。此外还有零阶(黑盒)优化方法,如网格搜索、随机搜索、遗传算法、进化策略等,以及二阶优化方法,如牛顿法、拟牛顿法(如BFGS、L-BFGS)等。模型参数的优化过程也就是模型训练的过程,模型在拟合训练数据的过程中不断更新参数直到达到最优目标。2.3节和2.4节将分别介绍常用的损失函数和优化算法。
机器学习的目标是训练具有泛化能力的模型。机器学习过程一般会涉及三种类型的数据集合:训练集、验证集和测试集。这三种数据集模拟了真实环境下的机器学习过程:训练集是为了某个机器学习任务而收集的数据,代表过去的经验;验证集是我们在训练过程中选择最优模型的评判依据,代表我们认为的任务环境;测试集是模型在部署后接收到的“未知样本”,代表真实的任务环境。训练集用来训练模型;验证集不参与训练,只用于模型验证和超参选择;测试集在训练过程中严格不可见,用于评估模型的最终泛化性能。数据的独立同分布假设保障了在训练数据上训练得到的模型可以泛化到对测试集进行预测。值得一提的是,当前有研究者也在尝试探索模型在这种假设之外的分布外(out of distribution,OOD)泛化能力,即当训练数据和测试数据服从相似但不同的数据分布时如何提升模型的泛化能力。
当模型训练完成后,我们需要在测试集上来评估模型的泛化性能。根据模型在训练集和测试集上的不同表现,学习结果可大致分为:适拟合(proper fitting)、欠拟合(underfitting)和过拟合(overfitting)。适拟合是指模型在训练集和测试集上的性能差别不大,即模型具有良好的泛化性能;欠拟合是指模型没有充分学习到数据中包含的特征,模型在训练数据集上的性能就比较差;过拟合是指模型在训练集上表现很好,但在测试集上性能大幅下滑。解决欠拟合问题需要适当增加模型复杂度或让训练更充分,如降低正则化惩罚强度、提高模型复杂度、增加模型参数、增加训练周期等。解决过拟合问题则需要调高正则化强度、降低模型复杂度、减少模型参数、使用数据增广、使用早停法(early stopping)等。值得思考的是,当前机器学习社区所讨论的适拟合、欠拟合和过拟合都是基于特定数据集来说的,而从知识的角度看,模型(比如深度神经网络)到底是欠拟合还是早已过拟合尚未可知。
以上从学习任务、学习对象、学习主体、学习过程以及学习目标五个方面介绍了机器学习的基本概念。下一节将对几种常见机器学习范式进行更详细的介绍。