深度学习模型的泛化性

news2024/11/18 9:20:21

暂时无法在飞书文档外展示此内容

零、泛化性

  • 泛化性指模型经过训练后,应用到新数据并做出准确预测的能力。一个模型在训练数据上经常被训练得太好即过拟合,以致无法泛化。

深度学习模型过拟合的原因,不仅仅是数据原因

  1. 模型复杂度过高:如果模型具有过多的参数或层次,它可以很容易地记住训练数据的细节,但却不能泛化到新的数据上。这会导致模型在测试数据上表现不佳。

  2. 训练数据不足:如果训练数据量太小,模型可能无法捕捉到数据的真正分布,因此容易过拟合。更多的训练数据通常有助于提高模型的泛化性能。

  3. 特征选择不当:选择了与问题不相关或冗余的特征可能导致过拟合。良好的特征选择对于模型性能至关重要。

  4. 训练时间过长:如果训练时间过长,模型可能会记住噪声而不是真正的数据模式。在训练过程中使用早停(early stopping)等技术可以帮助避免这种情况。

  5. 缺乏正则化:正则化技术如L1正则化和L2正则化可以限制模型参数的大小,防止模型过于复杂,有助于减轻过拟合。

  6. 数据不平衡:如果训练数据中的不同类别之间的样本数量差异很大,模型可能会倾向于预测样本数较多的类别,而忽略其他类别。

  7. 噪声数据:训练数据中的噪声或错误标记可能导致模型过拟合,因为模型试图适应这些噪声。

  8. 特征缺失:如果测试数据中出现了训练数据中没有的特征,模型可能无法处理这些情况,导致性能下降。

  9. 随机性:深度学习模型通常具有一定程度的随机性,如果模型初始化或数据划分不当,随机性可能导致不稳定的训练结果。

如何解决过拟合?提升泛化性?

一、正则技术

1. 显示正则

(1)Dropout: A Simple Way to Prevent Neural Networks from Overfitting(从网络出发)

Dropout 应用在网络中的相邻层之间。关键思想是在每个训练迭代中随机选择一些神经元并将它们的输出置为零。这些神经元在该迭代中不参与前向传播和反向传播。Dropout的关键是以一定的概率(通常为0.5)丢弃神经元,这个概率称为丢弃率(dropout rate)。在测试阶段,所有神经元都参与前向传播,但其输出会按照丢弃率进行缩放,以保持期望的输出值。

为什么Dropout可以防止过拟合?

  • Dropout有助于减少神经网络神经元之间的共适应性(co-adaptation),降低了模型对某些特定特征的过度依赖,从而提高了泛化性能。因为dropout程序导致两个神经元不一定每次都在一个dropout网络中出现。这样权值的更新不再依赖于有固定关系的隐含节点的共同作用,阻止了某些特征仅仅在其它特定特征下才有效果的情况 。迫使网络去学习更加鲁棒的特征,这些特征在其它的神经元的随机子集中也存在。换句话说假如我们的神经网络是在做出某种预测,它不应该对一些特定的线索片段太过敏感,即使丢失特定的线索,它也应该可以从众多其它线索中学习一些共同的特征。从这个角度看dropout就有点像L1,L2正则,减少权重使得网络对丢失特定神经元连接的鲁棒性提高。

  • 通过随机丢弃神经元,Dropout相当于训练了多个不同的子模型,这些子模型共同学习解决问题,从而提高了模型的鲁棒性。

(2)数据增强 Data augmentation(从样本出发)

  • 数据增强(data augmentation)是一种用于提高深度学习模型泛化性能的强大技术。数据增强通过对训练数据进行一系列随机变换和扩展来生成新的训练样本,从而增加了模型学习的多样性,减轻了过拟合问题。

  • 为什么数据增强可以防止过拟合?

一种通俗的理解过拟合的方式为:参数过多、样本过少。做数据增强相当于增加样本,这样虽然传达的语义信息是相同的,但它们在模型看来却是不同的。其目标是,模型在训练时不会两次查看完全相同的图像。这让模型能够观察到数据的更多内容,从而具有更好的泛化能力。一般有如下做法:

1) 从数据源头采集更多数据

2) 复制原有数据并加上随机噪声

3) 重采样

4) 根据当前数据集估计数据分布参数,使用该分布产生更多数据等。

(3)噪声Noise

一种常见的正则化是在训练过程中注入噪声:将噪声添加或乘以神经网络的隐藏单元。在训练深度神经网络时,通过允许一些不准确的情况,不仅可以提高训练性能,还可以提高模型的准确性。除了向输入数据本身加噪,还可以将噪声添加到激活、权重或梯度中。太少的噪声没有影响,而太多的噪声则会使映射函数的学习难度过大。

2. 隐式正则

(1)早停Early Stop

Early stopping便是一种迭代次数截断的方法来防止过拟合的方法,即在模型对训练数据集迭代收敛之前停止迭代来防止过拟合。这是一种交叉验证策略,我们保留训练集的一部分作为验证集。当我们看到验证集上的性能越来越差时,我们就会停止对模型的训练。因为在初始化网络的时候一般都是初始为较小的权值,训练时间越长,部分网络权值可能越大。如果我们在合适时间停止训练,就可以将网络的能力限制在一定范围内。

(2)Batch Normalization

批量归一化(BN,Batch Normalization)是一种将网络输入标准化的技术,应用于前一层的激活或直接输入。这种方法可以让网络的每一层都能尽量独立于其他层进行学习。BN是通过调整和缩放激活来对输入层进行归一化。

这是一种非常有用的正则化方法,可以让大型的卷积网络训练速度加快很多倍,同时收敛后分类的准确率也可以大幅度的提高。BN在训练某层时, 会对每一个mini-batch数据进行标准化(normalization)处理, 使输出规范到N(0,1)的正态分布, 减少了Internal convariate shift(内部神经元分布的改变), 传统的深度神经网络在训练是, 每一层的输入的分布都在改变, 因此训练困难, 只能选择用一个很小的学习速率, 但是每一层用了BN后, 可以有效的解决这个问题, 学习速率可以增大很多倍。

二、模型优化

  1. 特征工程

    1. 设计和选择合适的特征可以帮助模型更好地捕捉数据中的模式,提高泛化性能。

  2. 模型选择

    1. 选择合适的模型架构,根据问题的性质和可用的数据来选择模型类型,以提高泛化性能。

Understanding Deep Learning (Still) Requires Rethinking Generalization(ACM2021)

文章表示:

(1) 训练过程和过拟合:深度学习模型通常拥有大量的参数,这使得模型在训练数据上可以表现得非常好,但也容易过度记忆(过拟合)训练数据的噪声和细节。过拟合是指模型在未见过的数据上表现不佳。

(2) 过拟合与泛化之间的关系:过拟合和泛化之间的关系是深度学习中的一个重要问题。文章指出,尽管我们知道过拟合是训练数据上的问题,但过拟合的程度与模型在未见过的数据上的泛化性能之间的关系并不直接明了。这是因为模型可能通过学习高维空间中的低维流形结构来实现泛化,而不仅仅是通过简单地记忆训练数据。

(3) 优化方法和隐含的正则化效果:文章提出了一个有趣的观点,即随机梯度下降(SGD)等优化方法本身可能具有隐含的正则化效果。SGD是一种随机性方法,它在每个训练迭代中使用随机小批量的数据来更新模型参数。作者认为,SGD的这种随机性可以限制模型的解空间,使得学到的模型具有一定的泛化能力。这意味着优化方法本身对于降低过拟合风险和提高泛化性能起到了一定作用。

三、对抗攻击

在机器学习模型中加入对抗性数据,可以得到欺骗的识别结果。如果我们能增强模型的抗攻击能力,自然可以提升模型的泛化能力。

论文地址:Adversarial Training Towards Robust Multimedia Recommender System (IEEE'2020)

代码:https://github.com/duxy-me/AMR

动机:作者提出现有的视觉多模态推荐模型不够鲁棒,在输入图像上添加一个小的人为噪音扰动(对抗样本)后,推荐列表的排序可能发生较大的改变,如下图所示。

创新:作者借鉴视觉安全领域的思路提出了一种对抗训练的方式,来得到更加鲁棒和高效的推荐模型,可以简单地认为对抗训练是一种特殊的数据增强方法。

方法:AMR模型的训练过程可以理解为一个玩 minimax 游戏的过程,扰动噪音通过最大化VBPR的损失函数得到,而模型的参数通过最小化VBPR损失函数和对抗损失函数获得。类似于GAN模型的思路,通过这种方式强迫模型变得更加健壮。

  1. 训练过程类似于minimax游戏:文章中提到,AMR模型的训练可以看作是一种minimax游戏,其中两个主要参与者是模型本身和一种扰动噪音。这意味着训练过程涉及两个相互竞争的目标或者损失函数。

  2. VBPR损失函数:VBPR是一种用于多媒体推荐的模型,它结合了用户的历史行为数据和商品的视觉信息,以预测用户可能喜欢的商品并进行个性化的排序。在训练中,VBPR的损失函数用于最小化模型的预测误差,以使其在个性化推荐方面表现更好。

  3. 对抗性损失函数:在训练中,引入了对抗性损失函数。这意味着存在一种对抗性攻击者(扰动噪音),它的目标是最大化VBPR损失函数。也就是说,攻击者试图通过向输入数据添加噪音,使VBPR模型的性能下降,从而增加推荐的误导性。

  4. 模型参数的优化:在训练过程中,模型的参数会同时受到两个损失函数的影响。一方面,模型会尽量减小VBPR损失函数,以提高个性化推荐的性能。另一方面,模型需要抵抗对抗性攻击者的噪音,因此需要最小化对抗性损失函数,以保持其性能的稳定性。

  5. 对抗性训练和健壮性:这个训练过程类似于生成对抗网络(GAN)中的思想,其中生成器和判别器相互竞争,从而生成更逼真的数据。在这里,对抗性训练的目的是增强推荐系统的健壮性,使其能够抵御外部攻击和干扰,同时提供更准确的个性化推荐。

  • yˆui 是用户 u 对商品 i 的评分的预测值。

  • pu 是用户 u 的潜在向量(或特征向量),用来表示用户的特征。

  • qi 是商品 i 的潜在向量(或特征向量),用来表示商品的特征。

  • E 是一个误差矩阵,表示额外的噪音或错误,通常假设为服从某种概率分布。

  • ci 是商品 i 的上下文信息的向量,用来表示商品的环境或上下文特征。

  • ∆i 是商品 i 的额外偏移,可以理解为对商品 i 的修正项。

这个公式的目标是通过用户和商品的特征向量,以及额外的上下文信息和误差来预测用户对商品的评分。通常情况下,模型的训练过程会调整潜在向量 puqi 以最小化真实评分与预测评分之间的误差。误差项 E 和上下文信息 ci 可以用来捕捉模型中的噪音和环境信息,以提高预测的准确性。

由于图像特征提取的模型通常与推荐模型是分开训练的,因此作者提出对抗扰动直接添加在提取出的图像表示(embedding)上。用户u对物品i的偏好如下,为不加噪音时用户对物品的偏好。

Δi表示添加在图像embedding上的扰动噪音,ε是控制扰动量级的超参数。

模型的参数通过优化以下损失函数获得:

y_ui是不加扰动噪音时用户对物品的偏好,λ为控制对抗训练强度的超参数,当λ=0时,AMP降级为VBPR,对抗损失可以看作是一种特殊的正则项。

四、迁移学习

1. 域通常指的是数据的分布和特征空间。域包括以下要素:

数据分布:域涉及到训练和测试数据的分布。在迁移学习中,通常有一个源域(source domain)和一个目标域(target domain)。源域是模型最初用于训练的域,而目标域是模型最终需要在其上表现良好的域。这两个域的数据分布可能不同,即它们的特征、统计属性等方面存在差异。

  • 源领域(Source Domain):这是模型在训练过程中接触到的领域,通常是有标签的数据用于模型的训练。

  • 目标领域(Target Domain):这是模型在测试或应用时要适应的领域,通常没有或只有很少标签的数据。

任务:域通常也与任务相关。源域上通常会有一个或多个相关任务,而迁移学习的目标是将这些任务的知识迁移到目标域上的新任务中。这意味着源域和目标域的任务可能不同,但它们之间可能存在某种程度的关联性。

2. 领域自适应(Domain Adaptation)

  • 领域自适应是一种迁移学习问题,其中模型在源域上训练,并尝试将其知识迁移到目标域上的一个或多个相关任务中。

  • 源域和目标域通常具有一定的相关性,但它们的数据分布可能存在一些差异。领域自适应的目标是通过减小源域和目标域之间的分布差异来提高模型在目标域上的性能。

  • 领域自适应假设源域和目标域之间的任务是相关的,因此它旨在使模型能够适应目标域的数据分布,以提高目标域上任务的性能。

3. 领域泛化(Domain Generalization)

  • 领域泛化是一种更具挑战性的迁移学习问题,其中模型在多个源域上训练,然后尝试在未见过的目标域上进行泛化,而不考虑目标域上的特定任务。

  • 领域泛化假设源域和目标域之间的任务是不相关的,它的目标是在目标域上实现良好的泛化性能,而不依赖于源域上的任务。

  • 领域泛化旨在让模型具有更好的泛化性,即使在目标域上没有特定任务的标签信息。

4. 偏差是指使用简化模型近似现实世界中的问题而引入的错误。它表示模型的平均预测值与真实值之间的差值。高偏差表示模型对数据的拟合度不足,无法捕捉到底层的模式和关系。

5. 方差是指不同训练集的模型预测的可变性。它测量模型对训练数据波动的敏感度。高方差表示模型对数据过度拟合,对噪声和随机变化过于敏感。

6. 伪标签尝试通过使用已标记数据来为未标记数据分配标签。具体来说,伪标签的工作方式如下:

  • 有标签数据:首先,已经标记了一部分训练数据,这些数据包括输入特征和相应的真实标签。

  • 无标签数据:其次,还有一部分训练数据没有标签,也就是无标签数据。

  • 训练初期:在训练初期,使用有标签数据来训练模型,这是传统的监督学习。

  • 生成伪标签:然后,使用已经训练的模型来对无标签数据进行预测,生成伪标签,这些伪标签是模型对无标签数据的预测结果。★

  • 有标签和伪标签的结合:接下来,将有标签数据和带有伪标签的无标签数据一起用于进一步的训练。这扩展了训练数据,使得模型可以从无标签数据中学习。

  • 迭代:这个过程可以迭代多次,每次生成新的伪标签,然后与有标签数据合并,用于模型的进一步训练。

On Balancing Bias and Variance in Unsupervised Multi-Source-Free Domain Adaptation ICML2023

论文地址:https://proceedings.mlr.press/v202/shen23b/shen23b.pdf

动机: 在源域上训练的模型应用于不同的目标域会导致较差的泛化性能。无监督的领域自适应主要通过将从标记的源域学到的知识转移到未标记的目标域来缓解,单个源域的自适应主要通过域对齐(最小化源和目标数据之间的差异)和对抗性训练。目前源数据通常是从具有不同底层分布的多个域中收集的,多源域适应旨在聚合来自多个源领域的知识来适应目标领域。但因为隐私或者存储限制,训练源模型的数据不可访问,可以访问的仅为经过训练后的模型。目前针对多个源域适应的方法主要关注提升伪标签技术或在没有理论依据的情况下提出新的训练目标,这些不能解决源域和目标域的转换,所以本文作者旨在分析多源自由域的基本限制。

贡献:作者认为MSFDA的泛化误差由①标签不匹配误差(伪标签分布和目标标签分布之间的不匹配,为数据样本分配的标签不能准确地代表其真实标签的情况)、②特征不对齐偏差(联合表示空间中不同源域的数据分布之间的差异或者不对齐)和③训练样本数量的方差相关。

针对以上问题作者提出了①领域聚合。对多个源域进行适当的域聚合可以减少标签不匹配的偏差;②选择性伪标签。选择性伪标记数据子集进行训练可以进一步平衡标签不匹配偏差和方差;③联合特征对齐。使用联合特征对齐策略可以通过减少特征错位偏差来明确解决域偏移问题。

  • 领域聚合旨在将多个来源领域的知识结合起来,以提高目标模型的性能。有助于减少源域和目标域之间由于标签不匹配而导致的偏差。无监督多源无域自适应 (MSFDA) 背景下的域聚合主要有两种方法,一种方法是对来自多个源模型的预测进行统一加权,但这可能不是最佳选择,因为不同的源域可能具有不同的可转移性。相反,以考虑具有非负域权重的混合分布其中每个源模型的预测的加权方式不同。与使用任何单一模型相比,这种方法可以产生更低的偏差,并且可以使域自适应问题受益。增加具有最佳混合权重的源模型的数量可以进一步提高目标模型的性能。

  • 选择性伪标签是在无监督的多源无源域适应 (MSFDA) 中的一种策略,用于生成目标域数据子集的伪标签。这个策略的目的是在伪标签的生成过程中采用一定的标准,以确保有界标签不匹配偏差,同时减少方差,以平衡在 MSFDA 中的偏差-方差权衡。选择性伪标签生成:在 MSFDA 中,通常无法获得目标域的真实标签,因此需要生成伪标签以进行训练。选择性伪标签是指仅为目标域数据子集生成伪标签,而不是对目标域中的所有样本进行这个操作。标签不匹配偏差标准:为了确保生成的伪标签在某种程度上与源域数据的标签分布一致,引入了一个标准 P(Dl|Y) ≤ P(t|y),其中 Dl 表示目标域数据的标签分布,t 代表源域数据。这个标准可以看作是一个匹配度度量,以确保伪标签与源域标签的分布不过于不匹配。减少标签不匹配偏差和方差:选择性伪标签的主要优势在于它可以减少标签不匹配偏差(伪标签的不准确性)和方差(由于伪标签引入的噪声)之间的权衡。通过选择性地仅为高置信度的目标样本生成伪标签,可以降低伪标签的方差,因为这些样本更有可能具有准确的伪标签,从而提供更可靠的训练信号。平衡权衡:这种方法有助于平衡标签不匹配偏差和方差之间的权衡。它可以确保目标模型不会受到噪声或不正确的伪标签的过度影响,同时仍能够从额外的训练数据中受益。

  • 联合特征对齐是指在无监督的多源无源域适应 (MSFDA) 中对齐多个源域和目标域的特征表示的过程。这个过程的目的是减少由于源域和目标域之间的特征表示分布不一致而引起的特征错位偏差。特征错位偏差是指不同域中的特征表示之间的差异,这种差异可能导致模型在目标域上的性能下降。多源特征表示:在 MSFDA 中,通常会有多个源域和一个目标域。每个域都具有自己的特征表示,通常通过深度神经网络或其他特征提取方法生成。这些特征表示在不同域中可能存在差异。特征对齐:为了提高模型在目标域上的性能,需要通过特征对齐来减小源域和目标域之间的特征错位偏差。特征对齐的目标是使不同域的特征表示更加相似或接近。联合特征对齐:联合特征对齐是指在一个联合表示空间中对齐多个源域和目标域的特征表示。这意味着不仅要考虑源域之间的特征对齐,还要考虑将目标域的特征表示与源域对齐,从而使它们在同一个表示空间中更加一致。联合对抗特征对齐损失:为了实现联合特征对齐,可以使用损失函数,如联合对抗特征对齐损失。这种损失有助于平衡模型的偏差和方差,减少特征错位偏差,并提高模型在目标域上的性能。它通常包括对抗性训练,以确保特征表示在联合表示空间中更一致。

  • I-projection for Domain Aggregation

I-projection是一种用于无监督多源域自适应中的域聚合的技术,它通过最小化不同源域之间的最大平均差异(MMD)来使不同源域的特征分布和目标源域一致。I-projection方法通过基于源域的特征迭代更新目标域的特征表示来实现这一点。主要有两个步骤:特征提取和特征对齐。在特征提取中,使用目标模型提取目标域和特征;在特征对齐中,提取的目标特征使用MMD与源特征对齐。这种晦气有助于减少源域和目标域之间的分布差异,从而提高域自适应性能。

  Optimizing IM Loss: IM Loss估计的信息最大化损失是在无监督的多源无域自适应背景下使用的损失函数。它经过优化,可以鼓励源模型做出个性化确定但全局的预测。IM损失通过最大化源模型所作的预测的熵与聚合预测的熵之间的差异来计算的。这鼓励源模型再确定某个人预测的同时做出不同的预测,将即时消息丢失应用与已标记的源数据,以避免在未标记的目标数据中出现过于自信但错误的伪标签。它有助于减少标签不匹配偏差,提高目标模型在域自适应任务中的性能。

  • Selective oracle Selective Pseudo-labeling

选择性oracle是指无监督的多源无源域适应中的理想场景,在这种场景下,预言机可用来确保标记的子集仅包含正确伪标记的数据。但实际这样的oracle不可用。为了克服选择性oracle不可用的问题,提出了一种代理选择规则,该规则涉及一种用于提高标签分发质量的伪标签去噪技术,以及一种用于选择新数据进行伪标签的置信度查询策略。选择性伪标签是一种用于多源无域自适应的技术,用于为目标数据的子集分配伪标签。它旨在通过有选择地为数据子集分配伪标签来平衡偏差和方差之间的权衡。

  代理选择规则,包括伪标签降噪和置信度查询策略,有助于实现选择性未标记,而无需选择性预言机。伪标签降噪是指在无监督的多源无源域自适应中,减少分配给目标数据的伪标签中的噪声的过程。这一点至关重要,因为源模型对目标数据的预测可能非常混乱,可以使用各种技术,例如基于原型的伪标签降噪,来提高伪标签的质量。置信度查询策略用来在多源无域适应中为伪标签选择新数据。这些策略旨在识别最有信心的样本,可以更准确地为这些样本分配伪标签,通过选择置信度更高的样本,可以提高伪标签的质量,从而提高适应性能。

  • Joint Feature Alignment

联合特征对齐是一种用于无监督多源无域自适应的技术,用于对齐联合表示空间中已标记源数据和未标记目标数据的特征表示。其目标是减少联合表示空间中多个源模型引起的特征错位偏差;它涉及在联合表示空间中强制标注的源数据和未标记的目标数据之间的特征对齐。

联合对抗特征对齐是一种用于联合特征对齐的特定方法,其中通过组合来自每个源模型的特征来构造联合特征表示。单独的神经网络被训练为联合鉴别器,用于区分已标记的源数据和未标记的目标数据的联合特征。多个特征提取器一起更新以欺骗单个鉴别器,从而实现特征对齐。

实验结果

该研究使用四个基准数据集,即Digits-Five、Office-31、Office-Home和DomainNet,来评估所提出的方法的性能。 Digits-Five 包含五个不同的域名,包括 MNIST、SVHN、USPS、MNIST-M和合成数字,而 Office-31 包含从三种不同的办公环境中收集的 31 个类别,包括亚马逊、网络摄像头和数码单反相机。 Office-Home 是一个更具挑战性的数据集,包含从四个不同的办公环境中收集的 65 个类别,包括艺术、剪贴画、现实世界和产品。DomainNet是规模最大、最具挑战性的域名改编基准,包含从六个不同的领域收集的约60万张图片,分为345个类别,包括剪贴画、Infograph、Painting、Quickdraw、Real和Sketch。

为了证明所提出的方法的实证性能,该研究将其与最近提出的最先进的(SOTA)无多源领域自适应方法(包括DECISION、CaidA和NRC)进行了比较。该研究还包括一个基线,即使用预训练的源模型(表示为Source-ens)评估目标域的集合预测准确性。 此外,该研究将所提出的方法的性能与几种SOTA无源域自适应方法(包括BAIT、SFDA、SHOT和MA)进行了比较。这些无单一来源的方法也不需要访问源数据,该研究通过取适应后多个再训练源模型的预测平均值来比较它们的多源集合结果。


Mixup 数据增强是一种用于增加训练数据多样性和提高模型泛化性能的技术。它是一种数据增强策略,通常应用于深度学习模型的训练中,尤其是在图像分类和深度学习任务中。Mixup 的主要思想是将两个或多个训练样本的特征和标签线性混合在一起,生成一个新的样本,从而扩展训练数据集

以下是 Mixup 数据增强的关键要点:

  1. 混合样本生成:对于每一对训练样本,Mixup 首先随机选择两个样本(也可以是多个样本),然后以一个随机权重因子将它们的特征和标签进行线性混合。通常,这个权重因子是在 [0, 1] 的区间内均匀随机抽样的。

  2. 特征混合:对于两个样本 A 和 B,特征混合是通过以下方式进行的:

pythonCopy code Mixed_Feature = lambda * Feature_A + (1 - lambda) * Feature_B

这里,Mixed_Feature 是生成的混合特征,Feature_AFeature_B 是两个样本的特征,而 lambda 是随机权重因子。

  1. 标签混合:Mixup 也会对标签进行混合,这通常在分类任务中使用。对于分类任务,标签混合是通过以下方式进行的:

pythonCopy code Mixed_Label = lambda * Label_A + (1 - lambda) * Label_B

这里,Mixed_Label 是生成的混合标签,Label_ALabel_B 是两个样本的标签。

  1. 损失函数:在训练期间,使用混合样本的特征进行前向传播,并使用混合标签计算损失。通常,交叉熵损失或其他适当的损失函数用于衡量模型的预测与混合标签之间的差异。

  2. 优点:Mixup 数据增强有助于降低模型的过拟合风险,提高模型的泛化性能,增加训练数据的多样性,同时还可以提高模型对输入的鲁棒性。Mixup 数据增强已经被广泛用于深度学习任务中,特别是在图像分类领域,它是一种简单而有效的正则化技术,有助于改进模型的性能,特别是在小数据集上。


五、集成学习

集成学习是一种通过将多个模型的预测结合起来以提高泛化性能的技术。它的核心思想是通过结合多个模型的意见,减小单个模型的不确定性和偏差,从而获得更强的泛化性能。

  1. 降低方差:集成学习通过将多个模型组合在一起,可以降低模型的方差。单个模型在训练数据上可能会过拟合,导致方差较高,但通过集成多个不同的模型,它们的过拟合倾向可能不同,因此可以降低总体方差。这使得集成模型对新数据的泛化性能更好。

  2. 减小偏差:集成学习还有助于减小模型的偏差。单个模型可能因为过于简单而无法捕捉数据中的复杂关系,导致偏差较大。通过将多个模型的预测结合起来,可以弥补单个模型的不足,减小整体偏差。

  3. 降低过拟合风险:由于集成模型由多个模型组成,因此它们相对于单个模型更不容易过拟合。如果某个模型在某些数据上表现不佳,其他模型可能会提供更好的预测,从而降低了过拟合的风险。

  4. 增加多样性:集成学习的有效性在于模型之间的多样性。如果集成的模型之间具有足够的差异性,当一个模型犯错误时,其他模型可能会纠正它。这种多样性有助于提高集成模型的泛化性能。

  5. 投票或平均机制:在集成学习中,通常采用投票或平均机制来组合多个模型的预测。这意味着每个模型都对最终预测结果有一个权重贡献。这种方式能够有效地汇总各个模型的意见,提高了整体的预测性能。★

  6. 不同算法的组合:集成学习还可以结合不同算法的模型,如决策树、支持向量机、神经网络等。这样的组合可以充分利用不同算法的优势,从而提高泛化性能。

六、模型蒸馏

模型蒸馏(Model Distillation)是一种用于提高模型泛化性能的技术,它的主要思想是将一个大型、复杂的模型的知识传递给一个小型、简化的模型,从而实现模型性能的迁移和提高泛化性。

  1. 降低模型复杂性:通常情况下,大型深度神经网络具有较高的复杂性和参数数量,它们容易在训练数据上过拟合。小型模型(被称为学生模型)相对较简单,参数较少,更容易泛化到新的、未见过的数据。通过模型蒸馏,可以将大型模型的复杂性传递给小型模型,从而帮助小型模型更好地捕捉数据中的模式。

  2. 传递模型知识:在模型蒸馏中,大型模型(被称为教师模型)的预测结果和概率分布被用来指导小型模型。教师模型已经在大规模数据上进行了训练,因此它拥有更多的知识和泛化能力。小型模型可以通过学习教师模型的预测来获得这些知识,从而提高泛化性能。

  3. 软标签(Soft Labels):在模型蒸馏中,教师模型的输出通常被视为“软标签”,这些软标签是概率分布,而不是硬性的类别标签。学生模型通过与教师模型的软标签进行比较,可以更好地学习到数据的分布和不确定性,从而提高泛化性能。

  4. 温度参数(Temperature Parameter):模型蒸馏中通常有一个温度参数,用来控制软标签的分布的“平滑程度”。适当调整温度参数可以帮助学生模型更好地学习到教师模型的知识,从而改善泛化性能。

  5. 正则化效应:模型蒸馏还具有正则化效应,可以减小学生模型的过拟合风险。通过与教师模型的对比,学生模型更倾向于学习具有高概率的类别,而不是过于自信地预测某一类别。

七、大模型时代下做科研的四个思路

大模型时代下做科研的四个思路

  1. Efficient(PEFT):提升训练效率,这里以PEFT(parameter efficient fine tuning)为例

  2. Existing stuff(pretrained model)、New directions:使用别人的预训练模型,新的研究方向

  3. plug-and-play:做一些即插即用的模块,例如模型的模块、目标函数、新损失函数、数据增强方法等等。

  4. Dataset,evaluation and survey:构建数据集、发表分析为主的文章或者综述论文

八、资源整理

开源领域泛化库

  • https://github.com/jindongwang/transferlearning/tree/master/code/DeepDG

  • https://github.com/junkunyuan/Awesome-Domain-Generalization

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/984039.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

云原生Kubernetes:CRI 容器运行时接口

目录 一、理论 1.​CRI 2.容器运行时层级 3.容器运行时比较 二、总结 一、理论 1.​CRI (1)概念 Kubernetes Node (kubelet) 的主要功能就是启动和停止容器的组件,我们 称之为容器运行时( Container Runtime) ,…

ChatGPT新增超强插件:文本直接生成视频、海报,支持自定义修改!

全球著名在线设计平台Canva,在ChatGPT Plus(GPT-4)上推出了插件功能,用户通过文本提示,几秒钟就能生成演示文稿、PPT插图、电子书封面、宴会邀请函等各种精美设计海报,同时支持生成视频。 该插件最强大的功…

虚函数、纯虚函数、多态

一.虚函数 在基类的函数前加上virtual关键字,在派生类中重写该函数,运行时将会根据所指对象的实际类型来调用相应的函数,如果对象类型是派生类,就调用派生类的函数,如果对象类型是基类,就调用基类的函数。 …

FPGA通信—千兆网(UDP)软件设计

一、PHY引脚功能描述 电路设计使用RTL8211EG, 硬件设计、焊接正常用网线链接电脑和电路板,看到本地链接的1Gbps,代表设备网卡正常工作。

从零开始,无需公网IP,搭建本地电脑上的个人博客网站并发布到公网

文章目录 前言1. 安装套件软件2. 创建网页运行环境 指定网页输出的端口号3. 让WordPress在所需环境中安装并运行 生成网页4. “装修”个人网站5. 将位于本地电脑上的网页发布到公共互联网上 前言 在现代社会,网络已经成为我们生活离不开的必需品,而纷繁…

phpstudy本地快速搭建网站,并外网访问【无公网IP】

文章目录 使用工具1. 本地搭建web网站1.1 下载phpstudy后解压并安装1.2 打开默认站点,测试1.3 下载静态演示站点1.4 打开站点根目录1.5 复制演示站点到站网根目录1.6 在浏览器中,查看演示效果。 2. 将本地web网站发布到公网2.1 安装cpolar内网穿透2.2 映…

网络编程套接字,Linux下实现echo服务器和客户端

目录 1、一些网络中的名词 1.1 IP地址 1.2 端口号port 1.3 "端口号" 和 "进程ID" 1.4 初始TCP协议 1.5 UDP协议 2、socket编程接口 2.1 socket 常见API 2.2 sockaddr结构 3、简单的网络程序 3.1 udp实现echo服务器和客户端 3.1.1 echo服务器实…

Python 如何使用 csv、openpyxl 库进行读写 Excel 文件详细教程(更新中)

csv 基本概述 首先介绍下 csv (comma separated values),即逗号分隔值(也称字符分隔值,因为分隔符可以不是逗号),是一种常用的文本格式,用以存储表格数据,包括数字或者字符。 程序在处理数据时…

《机器人学一(Robotics(1))》_台大林沛群 第 6 周 【轨迹规划_直线转折处抛物线平滑】Quiz 6

步骤: 1、 编程 将PPT 的例子 跑一遍, 确保代码无误 2、根据题目 修改 相关参数 文章目录 求解代码_Python 解决的问题: 线段间转折点 的 速度 不连续 解决方法: 将直线段 两端 修正为 二次方程式 二次项圆滑 求解代码_Python …

图床项目性能测试

文章目录 一、FastDFS文件性能测试1.1 上传文件测试1.2 下载测试1.3 删除文件测试1.4 如何提高 二、图床项目wrklua性能测试2.1 wrk2.2 MySQL索引优化2.2 注册测试2.2.1 无索引性能2.2.2 有索引性能 2.3 登录测试2.3.1 无索引性能2.3.2 有索引性能 2.4 读取文件测试2.4.1 无索引…

ctfshow-web-新年好?

0x00 前言 CTF 加解密合集CTF Web合集网络安全知识库 文中工具皆可关注 皓月当空w 公众号 发送关键字 工具 获取 0x01 题目 0x02 Write Up 尝试访问之后返回了源码。可以看到重点是在setTimeout 首先来看setTimeout,setTimeout的意思就是说在一段时间后执行指定…

H5页面,上下滑动翻页(整页翻书切换效果)

使用 H5页面&#xff0c;上下滑动翻页 修改 页面间的切换&#xff1a;整页翻书的切换效果 demo代码&#xff1a; <!DOCTYPE html> <html> <head> <meta charset"UTF-8"> <meta http-equiv"X-UA-Compatible" content"IEe…

突破传统显示技术,探索OLED透明屏的亮度革命

OLED透明屏作为未来显示技术的颠覆者&#xff0c;其亮度性能成为其引人注目的特点之一。 那么&#xff0c;今天尼伽便深入探讨OLED透明屏的亮度&#xff0c;通过引用数据、报告和行业动态&#xff0c;为读者提供高可读性和专业性强的SEO软文&#xff0c;增加可信度和说服力。 …

计算机丢失mfc140.dll怎么办,分享几种常见解决方案[dll修复工具下载】

一、mfc140.dll 的详细介绍 1.mfc140.dll 的作用 MFC140.dll 是 MFC 的一个组件&#xff0c;它提供了许多用于创建 Windows 应用程序的类和函数&#xff0c;如窗口管理、控件、对话框、菜单、消息处理等。这些类和函数可以帮助开发者更轻松地开发图形用户界面&#xff08;GUI&a…

【Linux】shell脚本和bat脚本:

文章目录 一、脚本对应环境&#xff1a;【1】shell&#xff1a;linux环境&#xff1b;后缀名为.sh【2】bat&#xff1a;windows环境&#xff1b;后缀名为.bat或者.cmd 二、脚本执行&#xff1a;【1】shell执行【2】bat脚本执行 三、脚本相关命令&#xff1a;1. shell命令【1】s…

【UE】材质描边、外发光、轮廓线

原教学视频链接&#xff1a; ue4 材质描边、外发光、轮廓线_哔哩哔哩_bilibili 步骤 1. 首先新建一个材质&#xff0c;这里命名为“Mat_outLine” 在此基础上创建一个材质实例 2. 在视口中添加一个后期处理体积 设置后期处理体积为无限范围 点击添加一个数组 选择“资产引用”…

如何将JACOCO应用到企业实战中~测试过招,只需6点

1、下载 jacoco 官网&#xff1a;https://www.jacoco.org/jacoco/index.html 如果你想学习自动化测试&#xff0c;我这边给你推荐一套视频&#xff0c;这个视频可以说是B站播放全网第一的自动化测试教程&#xff0c;同时在线人数到达1000人&#xff0c;并且还有笔记可以领取及…

Win10右键 nvidia rtx desktop manager 怎么删除(最新)

在更新了最新的 nvidia后原来的隐藏鼠标右键菜单后不行了&#xff0c;新方法如下&#xff1a; 步骤一&#xff1a;在键盘“WINR”键同时操作下&#xff0c;启动运行框&#xff0c;在框内输入“regedit”&#xff0c;打开深度系统win7 的注册表编辑器。 步骤二&#xff1a;为防…

Spring学习|Bean的作用域、自动装配Bean、注解实现自动装配、Spring注解开发

Bean的作用域 单例模式(Spring默认机制) 原型模式:每次从容器中get的时候&#xff0c;都会产生一个新对象! Bean的自动装配 自动装配是Spring满足bean依赖一种方式! Spring会在上下文中自动寻找&#xff0c;并自动给bean装配属性! 在Spring中有三种装配的方式 1.在xml中显示的…

在字节跳动和拼多多干了5年测试,熬夜总结出来的划水经验....

先简单交代一下背景吧&#xff0c;某不知名 985 的本硕&#xff0c;17 年毕业加入字节&#xff0c;之后跳槽到了拼多多&#xff0c;一直从事软件测试的工作。之前没有实习经历&#xff0c;算是5年的工作经验吧。 这5年之间完成了一次晋升&#xff0c;换了一家公司&#xff0c;…