×

PyTorch教程3.6之概括

消耗积分:0 | 格式:pdf | 大小:0.21 MB | 2023-06-05

YYXIAO

分享资料个

考虑两个正在努力准备期末考试的大学生。通常,这种准备将包括通过参加前几年的考试来练习和测试他们的能力。尽管如此,在过去的考试中取得好成绩并不能保证他们在重要的时候会出类拔萃。例如,想象一个学生 Elephantine Ellie,她的准备工作完全包括记住前几年考试问题的答案。即使艾莉被赋予了象象般的记忆力,因此可以完美地回忆起任何以前见过的问题的答案,但当她面对一个新的(以前没见过的)问题时,她可能还是会僵住) 问题。相比之下,想象另一个学生,Inductive Irene,记忆能力相对较差,但有能力挑选模式。请注意,如果考试真的由前一年的重复问题组成,那么 Ellie 将轻松胜过 Irene。即使 Irene 的推断模式产生了 90% 的准确预测,它们也永远无法与 Ellie 的 100% 召回率相提并论。然而,即使考试完全由新题组成,艾琳也可能保持 90% 的平均分。

作为机器学习科学家,我们的目标是发现模式但是我们如何确定我们真的发现了一个普遍的模式而不是简单地记住了我们的数据呢?大多数时候,我们的预测只有在我们的模型发现这种模式时才有用。我们不想预测昨天的股价,而是明天的。我们不需要为以前见过的病人识别已经诊断出的疾病,而是需要识别以前没见过的病人的以前未确诊的疾病。这个问题——如何发现泛化的模式——是机器学习的根本问题,可以说是所有统计学的根本问题。我们可以把这个问题看作是一个涵盖所有科学的更宏大问题的一部分:我们什么时候有理由从特定的观察到更一般的陈述(波普尔,2005 年

在现实生活中,我们必须使用有限的数据集合来拟合模型。该数据的典型规模在不同领域差异很大。对于许多重要的医学问题,我们只能访问几千个数据点。在研究罕见病时,我们可能幸运地接触到数百种疾病。相比之下,由标记照片组成的最大公共数据集(例如,ImageNet Deng等人,2009 年)包含数百万张图像。而一些未标记的图像集合,例如 Flickr YFC100M 数据集可能更大,包含超过 1 亿张图像Thomee等人,2016 年. 然而,即使在这种极端规模下,与 1 百万像素分辨率下所有可能图像的空间相比,可用数据点的数量仍然是无限小的。每当我们处理有限样本时,我们必须牢记这样的风险,即我们可能会拟合我们的训练数据,却发现我们未能发现可概括的模式。

拟合更接近我们的训练数据而不是底层分布的现象称为过度拟合,而对抗过度拟合的技术通常称为正则化方法。虽然没有什么可以替代对统计学习理论的适当介绍(参见Boucheron等人2005 年)、Vapnik(1998 年),但我们将为您提供足够的直觉来开始学习。我们将在全书的许多章节中重新审视泛化,探索各种模型中泛化的基本原理的已知内容,以及已经发现的启发式技术(根据经验)可以对实际感兴趣的任务产生改进的泛化。

3.6.1. 训练误差和泛化误差

在标准的监督学习设置中,我们假设训练数据和测试数据是独立相同 分布绘制的。这通常称为IID 假设虽然这个假设很强,但值得注意的是,如果没有任何这样的假设,我们就会死在水里。为什么我们应该相信从分布中采样的训练数据P(X,Y)应该告诉我们如何对不同分布生成的测试数据进行预测 Q(X,Y)事实证明,实现这样的飞跃需要强有力的假设PQ有关系。稍后我们将讨论一些允许分布变化的假设,但首先我们需要了解 IID 情况,其中 P(⋅)=Q(⋅).

首先,我们需要区分训练误差 Remp,这是在训练数据集上计算的统计量泛化误差 R,这是 对基础分布的期望。您可以将泛化错误视为将您的模型应用于从相同的基础数据分布中提取的无限的附加数据示例流时您会看到的情况。形式上,训练误差表示为总和(在3.1 节中使用相同的符号 ):

(3.6.1)Remp[X,y,f]=1n∑i=1nl(x(i),y(i),f(x(i))),

而泛化误差表示为一个积分:

(3.6.2)R[p,f]=E(x,y)∼P[l(x,y,f(x))]=∫∫l(x,y,f(x))p(x,y)dxdy.

问题是,我们永远无法计算泛化误差 R确切地。没有人告诉我们密度函数的精确形式p(x,y). 此外,我们无法对无限的数据点流进行采样。因此,在实践中,我们必须通过将我们的模型应用于由随机选择的示例组成的独立测试集来估计 泛化误差X′ 和标签y′从我们的训练集中保留下来的。这包括将与计算经验训练误差相同的公式应用于测试集 X′,y′.

至关重要的是,当我们在测试集上评估我们的分类器时,我们使用的是固定分类器(它不依赖于测试集的样本),因此估计其误差只是均值估计的问题。然而,对于训练集来说,情况并非如此。请注意,我们最终得到的模型明确取决于训练集的选择,因此训练误差通常是对基础总体真实误差的有偏估计。泛化的核心问题是我们何时应该期望我们的训练误差接近总体误差(以及泛化误差)。

3.6.1.1. 模型复杂度

在经典理论中,当我们拥有简单的模型和丰富的数据时,训练误差和泛化误差往往很接近。然而,当我们使用更复杂的模型和/或更少的示例时,我们预计训练误差会下降但泛化差距会扩大。这不足为奇。想象一个模型类如此富有表现力,以至于对于任何数据集n例如,我们可以找到一组可以完美匹配任意标签的参数,即使是随机分配的。在这种情况下,即使我们完美地拟合了我们的训练数据,我们怎么能得出关于泛化误差的任何结论呢?就我们所知,我们的泛化误差可能并不比随机猜测好多少。

一般来说,在我们的模型类别没有任何限制的情况下,我们不能仅基于拟合训练数据就得出我们的模型已经发现任何可概括模式的结论Vapnik等人,1994 年另一方面,如果我们的模型类不能适应任意标签,那么它一定发现了一种模式。关于模型复杂性的学习理论思想从卡尔波普尔的思想中获得了一些灵感,卡尔波普尔是一位有影响力的科学哲学家,他形式化了可证伪性标准。根据波普尔的说法,可以解释任何和所有观察结果的理论根本不是科学理论!毕竟,如果它不排除任何可能性,它能告诉我们关于这个世界的什么呢?简而言之,我们想要的是一个无法实现的假设 解释我们可能做出的任何观察,但恰好与我们实际上做出的观察相一致。

现在,究竟是什么构成了模型复杂性的适当概念是一个复杂的问题。通常,具有更多参数的模型能够适应更多数量的任意分配标签。然而,这不一定是真的。例如,内核方法在具有无限数量参数的空间中运行,但它们的复杂性由其他方式控制Scholkopf 和 Smola,2002 年一个经常被证明有用的复杂性概念是参数可以采用的值的范围。在这里,允许参数取任意值的模型会更复杂。我们将在下一节介绍权重衰减时重新讨论这个想法,您的第一个实用正则化技术。值得注意的是,比较本质上不同的模型类(例如,决策树与神经网络)的成员之间的复杂性可能很困难。

在这一点上,我们必须强调另一个重点,我们将在介绍深度神经网络时重新讨论这一点。当模型能够拟合任意标签时,低训练误差并不一定意味着低泛化误差。但是,它也不一定意味着高泛化错误!我们只能自信地说,仅凭低训练误差不足以证明低泛化误差。深度神经网络就是这样的模型:虽然它们在实践中泛化得很好,但它们太强大了,无法让我们仅根据训练误差得出很多结论。在这些情况下,我们必须更多地依赖我们的坚持数据来证明事后的概括。holdout 数据(即验证集)上的错误称为验证错误

3.6.2. 欠拟合还是过拟合?

当我们比较训练和验证错误时,我们要注意两种常见情况。首先,我们要注意训练误差和验证误差都很大但它们之间有一点差距的情况。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !