【自监督学习】《 Improving out-of-distribution generalization via multi-task self-supervised pretraining 》

这篇文章的主要思想是通过自监督预训练来改善模型在分布偏移情况下的泛化能力。研究发现,通过自监督学习获得的特征表示在计算机视觉的领域泛化任务中与监督学习相比具有可比性甚至更好的表现。文中引入一种新的自监督预训练任务,用于预测对Gabor滤波器组的响应,并证明了多任务学习对于改善领域泛化性能的重要性。通过自监督学习获得的特征表示在训练和测试分布之间存在较大的领域偏移时,比起监督学习,具有更好的泛化性能,甚至在对感兴趣的对象进行定位时表现更好。自监督学习的特征表示还可以与其他领域泛化方法相结合,进一步提高性能

研究方法包括以下两个步骤:

  1. 自监督预训练:首先使用一个具有参数φ的特征提取器F来编码输入图像,通过自监督预训练任务来学习特征表示。其中,自监督预训练任务是预测对Gabor滤波器组的响应
  2. 预训练后,利用监督学习的方法对模型进行监督微调,进一步提高领域泛化性能

通过多任务自监督学习和监督微调相结合,实现对未见领域的泛化能力的提升

背景知识:
图像的时域、空域、频域
  1. 时域(时间域):自变量是时间,即横轴是时间;纵轴是信号的变化。其动态信号X(t)是描述信号在不同时刻取值的函数
  2. 空域(空间域 spatial domain):即像素域,又称图像空间(image space)由图像像元组成的空间。在空域的处理就是在像素级的处理,如在像素级的图像叠加。经过傅里叶变换后得到的是图像的频谱。表示的是图像的能量梯度。在图像空间中以长度(距离)为自变量直接对像元值金总处理称为空间域处理。
  3. 频域(频率域 frequency domain):任何一个波形都可以分解为多个正弦波之和。每个正弦波都有自己的频率和振幅。所以任意一个波形信号都有自己的频率和振幅的集合。频率域就是空间域经过傅里叶变换后的信号。
Gabor滤波器

用于纹理分析的线性滤波器,即它主要分析的是图像在某一特定区域的特定方向上是否有特定的频率内容。

图像可以视为各方向的一系列不同频率的正弦波叠加而成。变换中的“像素”表示波的强度,“像素”的位置表示波的频率和方向。

自监督学习

自监督学习作为一种无监督学习的形式,旨在通过无标签数据训练特征编码器,使得学到的编码器可以迁移到其他下游任务上。训练过程通常包括解决一个“pretext task”,目的是学习良好的特征表示,pretext task的示例包括图像修复、着色、补丁排序或旋转角度的预测。一些预训练任务通过聚类为图像分配伪标签,其他预训练任务通过形成对比损失函数来训练编码器以区分实例。使用自监督学习训练的深度编码器可以提高对抗性或受损样本的鲁棒性,以改善少样本学习。

响应重建任务

自监督学习任务,旨在通过从输入数据中重建原始响应或特征来学习有效的表示。在这个任务中,模型被要求从输入数据中提取特征,并将这些特征用于重建原始输入。通过迫使模型学习对输入进行压缩和解压缩的过程,它可以学习到对输入数据有意义的表示。响应重建任务在自监督学习中被广泛应用,可以用于预训练模型的表示学习和特征提取。

方法:

用于超出分布泛化地自监督学习(SSL)方法的两个步骤:

  1. 自监督预训练
  2. 有监督微调

具体来讲:

  1. 首先使用一个具有参数φ的特征提取器F,负责对输入图像进行编码
  2. 将编码后的特征表示输入到一个具有参数ω的模型T中,该模型负责执行特定的自监督任务
  3. 使用K个特定任务的模块,几位Tj,其中j=1:K,具有参数ωi。对每个任务执行必要的预处理步骤,对相应的输入进行编码,并将输入馈送到相应的任务特定模块中。
  4. 每个模块提供一个损失,通过使用每个任务特定模块提供的损失的平均值作为损失函数来更新特征其取器。当优化特征提取器以适应不同任务之间没有权衡且每个任务的样本复杂度相对类似时,这种方法直观上能够将输入编码为对所有任务有用的表示空间。每个Tj仅考虑与第j个任务对应的损失来进行更新。在不同任务预期以不同速度收敛的情况下,通过使用另一个任务对得到的模型进行微调,将特征提取器顺序地在不同任务上进行训练。
  5. 在对自监督任务进行φ的更新之后,我们将编码的输入和下游任务的输出类别概率输入到一个具有参数θ的模型D中。如果在训练时有N个源域可用,我们通过对所有的源域执行ERM(经验风险最小化)来找到最优的φ(旨在自监督和有监督微调中都会进行更新)和θ的值,分别表示为φ*,θ*:

左:多任务的自监督预训练。特征提取器是共享的,并通过所有任务的损失进行更新

右:针对领域泛化的有监督微调

前置任务:
具体任务:

滤波器响应重构:

在给定输入图像的情况下训练一个encoder-decoder模型,重构考虑七个不同方向的Gabor滤波器响应。期望通过学习重构滤波器组,模型将学习捕捉由一系列滤波器捕捉到的低级特征。

为突出检测到的边缘并阻止模型过多关注图像中包含的细粒度信息,将原始输入与滤波器响应相减转化为灰度图像,并对每个像素的强度值应用二进制阈值。预测的滤波器响应和真实滤波器响应之间的平均像素级二值交叉熵被用作损失函数,以更新encoder-decoder参数。

突出边缘:突出显示图像的重要特征,以便模型能够更好地学习和理解这些特征。边缘包含了物体的形状和结构信息。通过突出边缘,模型可以更容易地捕捉物体的形状、轮廓和纹理等重要信息,从而提高对图像内容的理解能力。

减去原始输入图像和滤波器响应的差异:强调边缘的存在,引导莫i选哪个更加关注图像中边缘的位置和特征。帮助模型更好地学习与边缘相关的低级特征,提高对边缘检测任务的性能。同时抑制对细节的关注可以提高鲁棒性。

细粒度信息:图像中局部、详细或精细的特征。通常是与物体的微小差异、纹理、颜色变化等相关的信息。细粒度信息可以包括物体的细微纹理模式、形状的细微变化、局部细节的特征等。

滤波器响应:滤波器响应是指将输入图像与一个滤波器进行卷积后得到的输出结果。滤波器通常用于在图像处理与计算机视觉任务中突出或提取特定的图像特征。不同类型的滤波器可以用于突出不同的特征,如边缘、纹理、角点等。

原始输入与滤波器响应相减后转化为灰度图像:

目的:突出图像中的边缘

具体步骤:

  1. 将原始输入图像与滤波器进行卷积,得到滤波器响应。滤波器响应的结果时一个与输入图像尺寸相同的矩阵,每个元素代表了对应位置的像素的响应值
  2. 将原始输入图像与滤波器响应相减。目的是减去图像的低频信息,突出图像中的高频边缘信息
  3. 将相减后的结果转化为灰度图像。灰度图像只包含亮度值不包含彩色信息。可以使用灰度化方法,例如将RGB图像的三原色通道的值加权平均,或者使用其他灰度化算法,将相减后的结果转换为灰度图像
  4. 对灰度图像应用二值化阈值。通过将灰度值与一个固定阈值进行比较,将像素的灰度值转换为二值。这样可以将图像转换为黑白二值,其中边缘部分将被突出为白色,其他部分将被压制为黑色。

原始输入与滤波器响应相减是通过逐元素减法来实现的。具体步骤:

  1. 对原始输入图像和滤波器响应进行对应位置的元素相减。这可以通过逐个元素遍历的方式来完成。对于每个位置上的像素,从原始输入图像的对应位置上减去滤波器响应的值。
  2. 对于灰度图像,原始输入图像和滤波器响应的维度应该相同,因此可以直接进行逐元素的减法运算。
  3. 对于彩色图像,需要对每个颜色通道分别进行相减操作。例如,如果输入图像是RGB图像,那么需要对红、绿、蓝三个通道的值分别与对应位置的滤波器响应值相减。

旋转任务:

为了成功地学习预测旋转角度,模型需要能够捕捉有关姿态、位置、方向以及输入图像中存在的对象类型的信息,同时还需识别和定位图像中显著的对象部分。因此,这个任务可以理解为同时考虑了低级特征(如方向)和更高级的信息(如对象类型)。旋转任务还强制模型减少摄影师偏差,使得更容易将这些特征迁移到实际任务中。与类似,我们考虑预测四个旋转角度:0度、90度、180度和270度。

摄影师偏差:指在图像数据集中,由于拍摄者的主观选择和个人偏好所导致的偏差。当不同的摄影师或拍摄者拍摄图像时,他们可能会受到自己的审美、兴趣、拍摄角度、光照条件等因素的影响,从而在数据集中引入一些非随机的偏差。

DeepCluster任务:

通过训练模型来预测每个数据点的聚类分配,从而学习特征表示方法。在每个时期的开始,使用k-means算法将训练数据在当前表示空间中进行聚类,并根据每个数据点所属的聚类重新分配标签。模型输入中采用Sobel滤波器的卷积层,以去除颜色信息并鼓励模型捕捉边缘和形状等特征。目标就是通过聚类和标签重新分配学习一个有用的特征表示,使得相似的数据点在特征空间中聚集在一起。这种特征表示可以为后续的任务,如分类或检索,提供更好的基础,并且可以在没有标签的情况下进行自监督学习。

  1. 将原始的训练数据作为输入
  2. Sobel滤波器:在每个模型的输入层中,使用卷积操作实现Sobel滤波器,以帮助模型捕捉图像中的边缘和形状等特征。通过应用Sobel滤波器,颜色信息将被去除,模型更加关注图像的边缘特征
  3. 特征表示学习:模型的主要目标是学习一个有效的特征表示。为实现这一点,模型被训练以预测每个数据点的聚类分配。在每个时期的开始,使用当前模型的特征表示对训练数据进行聚类。通常使用k-means算法来执行聚类操作。聚类的结果将会得到一组聚类中心。
  4. 标签重新分配:根据每个数据点所属的聚类,重新分配标签。即,将原始数据的标签根据其所属的聚类中心进行重新分配。这样每个数据点都被赋予一个新的标签,该标签表示其所属的聚类
  5. 迭代训练:重复以上步骤多个时期,通过不断迭代训练来优化模型的特征表示。在每个时期中,通过聚类和标签重新分配来更新数据的标签,并使用更新后的标签继续训练模型。随着迭代的进行,模型将逐渐学习到更具有判别性的特征表示

架构细节:

采用AlexNet的架构作为实验的主要骨干。利用批归一化层替代实例归一化层。当使用旋转/Gabor重建任务训练模型时,我们将AlexNet的前两个卷积块的滤波器数量从96减少到64。对于所有任务,将最后一个卷积块的输出作为表示。

旋转任务:输入图像的旋转角度由一个全连接(FC)架构预测,该架构遵循AlexNet分类器头部的设计: Dropout(0.5) → F C(9216, 4096) → ReLU → Dropout(0.5) → F C(4096, 4096) → ReLU → F C(4096, 4)

Gabor重建任务:为使用9216大小的表示重建Gabor滤波器组的响应,使用一个被设计成 AlexNet编码器镜像版本的架构作为编码器。用具有相同参数的转置卷积替换卷积层,除了最后一个卷积层,它将输入的64个通道映射到单通道输出,因为考虑灰度滤波响应

实验:

为证明多任务自监督学习在实现领域泛化方面的有效性,进行四个实验以回答四个问题

  1. 每个模型在预训练任务上的表现如何,多个任务的组合如何影响表现
  2. 通过SSL学到的表示能否泛化到不同的领域转移,并且哪个任务更适合实现这个目标
  3. 通过SSL学到的特征能否在不同的领域之间进行传递
  4. 当源域之间的样本多样性减少时,对于泛化到未知领域的影响如何

实验方法和结果的总结如下:

实验一:自监督学习(SSL)与完全监督学习对比

  • 方法:使用LabelMe数据集进行实验,比较SSL和完全监督学习模型在不同任务上的性能。
  • 结果:在LabelMe数据集上,5种SSL策略的性能超过了完全监督模型。在PASCAL VOC、Caltech101和SUN09等与ImageNet相似的数据集上,监督模型略优于SSL。

实验二:定性评估不同预训练模型的特征表示

  • 方法:使用GradCAM热图方法对SSL和完全监督学习模型学到的特征表示进行定性评估。
  • 结果:多任务自监督预训练模型更能集中在对象的部分,同时忽略背景和干扰对象。监督基线更倾向于使用输入图像的较大部分进行预测,并且经常关注背景或干扰对象。

实验三:跨领域迁移性能比较

  • 方法:使用一个源域训练集对每个模型进行微调,然后在不同领域上评估所学到的表示。
  • 结果:当源域数据集与ImageNet相似时,通过自监督预训练的模型在超出分布的泛化方面优于监督学习模型。

实验四:结合其他领域泛化方法

  • 方法:将自监督学习与不变风险最小化(IRM)方法相结合,以提高超出分布的性能。
  • 结果:结合自监督预训练和IRM,相对于监督学习,平均获得了更好的超出分布性能,在PACS和VLCS基准测试上取得了显著的改进。

回答最初提出的四个问题:

  1. 自监督学习是否在LabelMe数据集上优于完全监督学习模型?
    • 是的,研究表明在LabelMe数据集上,5种自监督学习策略的性能超过了完全监督模型。
  1. 自监督学习与完全监督学习模型在不同任务上的性能如何?
    • 在与ImageNet相似的数据集上,如PASCAL VOC、Caltech101和SUN09,监督模型略优于自监督学习模型。
  1. 不同预训练模型的特征表示有何差异?
    • 多任务自监督预训练模型更能集中在对象的部分,同时忽略背景和干扰对象。监督基线更倾向于使用输入图像的较大部分进行预测,并且经常关注背景或干扰对象。
  1. 自监督学习是否在跨领域迁移中具有优势?
    • 是的,在源域数据集与ImageNet相似的情况下,通过自监督预训练的模型在超出分布的泛化方面优于监督学习模型。自监督学习可以缓解预训练和微调阶段使用的数据集之间缺乏视觉多样性所带来的影响。
前置任务:

评估单个任务和任务组合的性能。使用两种不同的方法来组合任务:

  1. 平均法(AVG):更新特征提取器参数的目的是最小化每个任务单独提供的归一化损失的平均值
  2. 微调(FT):使用一个任务寻来你特征提取器,直到该任务收敛,然后放弃该任务,引入一个新任务

细节:

实施细节:我们使用 ILSVRC 2012 数据集的训练分区训练每个自监督模型,并在验证分区上评估其性能,以选择超参数。在所有任务中,我们都使用了随机梯度下降(SGD)优化器,Polyak 的加速系数等于 0.9。在使用旋转和 Gabor 重构任务训练模型时,我们将学习率设为 0.01,采用权重衰减正则化(值为 0.00005),并将训练预算设为 20 个历元。每训练 10 次,学习率降低 0.1 倍。对于 DeepCluster,我们使用作者发布的预训练 AlexNet3 进行实验,并使用相同的超参数--学习率为 0.05,权重衰减为 0.00001。

自我监督模型在借口任务中的表现。我们测量了旋转任务的准确性和 Gabor 滤波任务的重建损失。R:旋转,G:Gabor,DC:DeepCluster:DeepCluster:深度集群。AVG:以各任务的平均损失率训练的模型,FT:通过顺序微调任务训练的模型。

对于旋转任务,使用验证集上的平均准确率作为度量标准,上图显示了在训练时使用的不同模型在各自前提任务下的性能:

  1. 当添加G滤波器响应重建任务时,旋转任务的准确率仅略有下降,表明这两个任务之间没有明显冲突
  2. 当在旋转任务上进行DC模型时,准确率大幅下降,表明使用DC任务得到的特征不适合旋转任务的良好初始化。
  3. 当在训练中包含G重建任务时,旋转任务的准确率提高了超过7%,显示这两个任务之间的协同作用
  4. 通过添加更高级别的任务(旋转和DC),G滤波器任务得到了帮助
领域泛化:

利用两个领域泛化基准(评估领域泛化算法性能的数据集)PACS和VLCS评估SSL在域泛化上的性能。在实验中,使用留一法对自监督学习的表示进行微调,即模型在三个领域的训练样本上进行微调。在所有评估策略中使用相同的架构(AlexNet)作为特征提取器,并采用相同架构作为任务头模块。通过计算在未见目标领域上获得的最佳准确率来评估性能。

任务头模块:指神经网络中的一部分,用于处理和解决特定任务。在深度学习中,通常使用多任务学习或迁移学习的方法来处理多个任务。任务头模块是指为每个任务设计的独立模块,负责从共享的特征表示中提取特定的信息,并生成与该任务相关的预测或输出。

在神经网络中,通常采用分层结构,其中底部的层用于提取通用的特征表示,而任务头模块则位于网络的顶部。这些任务头模块可以是全连接层、卷积层、循环神经网络等,具体的结构和设计取决于任务的性质和要求。

通过任务头模块的设计,可以将共享的底层特征表示与不同任务的特定要求相结合。每个任务头模块接收共享特征表示作为输入,并根据任务的特定目标进行相应的处理和预测。这样的设计可以使网络在处理多个任务时具有更好的灵活性和泛化能力。

任务头模块的目标是根据任务的需求,将底层的通用特征映射到特定任务的输出空间。通过适当的设计和训练,任务头模块可以学习到任务特定的特征和模式,并生成与任务相关的预测结果。

PACS:PACS基准是用于测试领域外泛化策略的测试平台,与ImageNet相比具有明显的整体领域转移。PACS包含四个领域:照片、艺术绘画、卡通和素描。每个数据集被分成七个类别:狗、大象、长颈鹿、吉他、马、房屋和人。在表2中,我们展示了自监督学习方法的性能,以及通过监督预训练和随机初始化获得的基准模型

所有单任务和多任务SSL方法在显著优于随机初始化基准,当组合多个SSL任务时,领域泛化的平均性能得到改善。当将Rotation与Rotation + Gabor + DeepCluster进行比较时,对于未见领域的准确性提高了3.32%。值得注意的是,所有三个任务的组合在平均上超过了监督预训练基准的性能2%,并且在艺术绘画、卡通和素描领域优于监督预训练基准。Rotation和DeepCluster的组合在平均上也优于监督预训练基准。

VLCS:VLCS是另一个用于评估领域泛化性能的基准,包含四个领域。在表3中,我们展示了自监督学习方法在VLCS基准上的性能,并与随机初始化和监督预训练的基准进行比较。

将Rotation任务与Rotation + Gabor + DeepCluster任务进行比较时,未见领域的准确性提高了4.25%。所有三个任务的组合在平均上超过了监督预训练基准的性能2.42%,并且在VOC2012、LabelMe和Caltech-101领域上优于监督预训练基准。Rotation和DeepCluster任务的组合在平均上也优于监督预训练基准。

自监督学习方法包含旋转和Gabor滤波器重建等关注低级和中级特征的任务,可能使模型能够捕获与边缘和形状相关的信息,而不捕获纹理信息。需要注意的是,仅使用DeepCluster预训练的模型在素描数据集上表现最差,但一旦包含旋转和Gabor滤波器重建任务,性能就会恢复,这证实了将低级任务添加到预训练中的重要性。

最后,我们研究了使用SSL学到的特征表示是否可以作为良好的初始化,具体而言,我们使用不变风险最小化对预训练模型进行微调,以强制学习一种表示,其中最佳预测器在所有训练领域中相同。我们在彩色MNIST实验中使用与[1]相同的超参数。更广泛的超参数搜索可能会改善各种方法的性能。发现,将IRM与SSL相结合相对于监督学习而言,在PACS和VLCS基准测试中的超出分布性能平均而言更好(表4)。对于PACS基准测试,SSL改进了4个领域中的3个领域的最佳目标准确性。对于VLCS基准测试,SSL的性能超过了2个目标领域,包括Caltech101。需要注意的是,在之前的实验(表3)中,使用ERM时,监督学习在Caltech101上优于SSL。总的来说,这个实验表明,将领域泛化策略与自监督预训练相结合,可以有效提高先前提出的方法的超出分布泛化能力

  • 27
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值