【自监督学习】论文解读《 Self-Supervised Learning Across Domains 》

这篇文章的主要思想是将监督学习和自监督学习相结合,以实现跨领域的对象识别。作者提出了一种多任务学习方法,通过在相同图像上使用自监督信号进行辅助任务学习,从而扩展了模型对数据的理解。自监督学习任务有助于网络关注对象的形状,学习空间定位和部件相关性等概念,并作为多个视觉领域中分类任务的正则化器。文章通过大量实验证实了这种方法的有效性,并显示出与复杂的领域泛化和自适应解决方案相比,该方法在性能上具有竞争力。此外,该方法还在新颖且具有挑战性的预测和部分领域自适应场景中展示了其潜力。

文章的研究方法是在对象识别任务中应用了一种多任务学习框架,结合了监督学习和自监督学习。具体而言,作者提出了一种通过还原打乱的图像部分来进行图像拼图任务的方法。与先前的方法将特征提取应用于单独的图像块不同,作者将图像块的重新组合放在图像级别,并将拼图任务形式化为与原始图像具有相同尺寸的图像分类问题。通过这种方式,对象识别和图像部分重新排序可以共享相同的网络骨干,从而同时学习对象识别和图像部分空间关系。此外,作者还回顾了领域泛化和自适应的现有算法,并将其与提出的多任务学习方法进行了比较和评估。

总之,该研究表明将监督学习和自监督学习相结合的多任务学习方法能够有效地实现跨领域的对象识别,并在领域泛化和自适应任务中取得有竞争力的结果。

自监督学习:自监督学习是一种从大规模未标记数据中学习视觉特征的范式,第一步是利用固有的数据属性自动生成替代标签的预训练任务:人为的去除图像的一部分已有知识(例如颜色、方向、块的顺序),然后任务是恢复这些知识。第二步是将自我监督学习的模型转移到一个有监督的下游任务,同时重新训练网络的后半部分。

可能的预训练任务的三个组别:

  1. 仅依赖于原始的视觉线索,包括对整个图像进行几何变换(例如平移、缩放、旋转、聚类、修复和上色,或者考虑图像的补丁并关注它们的等变性和相对位置)
  2. 使用外部传感信息,无论是真实的还是合成的。这种方案通常用于多线索(从视觉到音频,从RGB到深度)和机器人数据
  3. 依赖于视频和时间维度引入的规律性

本文研究方向:将有监督和自监督的知识结合在一个多任务框架中,研究其对领域泛化和适应性的研究

摘要

自主学习可以发现不变量和规律性,从而有助于归纳总结

在本文中,模型以有监督的方式来学习语义标签,并通过在同一图像上学习自监督信号来拓宽对数据的理解。次要任务有助于网络专注物体形状,学习空间方位和部分相关性等概念,同时充当多个视觉领域分类任务的正则化器。

INTRODUCTION

非标记数据在很大程度上是可用的,由于其本身的性质不易产生偏差(因为不存在标记问题),因此他们似乎是提供独立于特定领域风格的视觉信息

引入多任务方法,同时学习如何利用监督数据识别物体,以及如何利用图像的内在自监督信息来泛化新领域(图1,2)

具体来说,提出了通过重新组合拼图的方式恢复原始图像,重新利用解决拼图游戏的流行方法。将patch的重新组装提升到图像级别,并将拼图任务形式化为对具有与原始图像相同尺寸的重组图像进行分类的问题。

通过这种方式,对象识别和图像补丁重新排序可以共享相同的网络主干,可以无缝地利用任何卷积学习结构以及多个预训练模型,而无需进行特定的结构更改。

解决DG,DA的三个方法:

  1. 特征层面:最小化不同领域偏移度量来学习领域不变的数据表示,也可以通过训练领域分类器并反转优化的过程,将特征引导到最大领域混淆来减小领域偏移。
  2. 模型层面:要么改变数据的加载方式,使用特定的episode,要么修改传统的学习算法,寻找更具鲁棒的目标函数最小值
  3. 数据层面:利用GAN的变体来合成新的图像
文章工作:
  1. 将旋转识别和拼图任务作为自监督任务,展示他们作为前提任务以及与有监督学习相结合地多任务模型在领域泛化中的效果
  2. 探讨多任务方法的细节,进行消融分析,可视化成功和失败的案例
  3. 考虑单一源和多源领域适应实验,并对新的先进方法进行分析
  4. 讨论多任务模型在具有挑战性地预测和部分领域适应场景中的效果
METHOD

:数据集

:第i个图像

:相应维度为

的独热向量编码

本文中提出两种自监督的操作:旋转和拼图排列

  1. 旋转:对于每个样本,通过将其分别旋转{0°,90°,180°,270°}四个不同的方向生成四个样本,使模型学习判别图像的正确旋转方向实现自监督学习
  2. 拼图排列:将原始图像按照一个3x3的网格进行分割,得到9个正方形。然后将这些补丁从原始位置移动,进行重新排列,产生9!种排列方式,重新跑列补丁以还原原始图像。模型学习这种排列方式进行识别,实现自监督学习

通过两种操作,生成一系列经过自我监督的图像变体。这些自监督任务可以与监督学习相结合,通过多分支网络进行训练。一个分支用于处理监督任务,利用源数据的标签进行训练,另一个分支用于解决自监督任务,例如旋转或拼图排列。自监督的任务有助于从数据中提取有用的语义特征,并对目标识别性能产生积极影响。由于自监督任务与标签无关,因此可以在有监督和无监督的领域上运行,支持泛化和适应能力

领域泛化

在训练过程中,目标是通过最小化损失函数来获得最佳模型。损失函数由两部分组成:对象分类器的交叉熵损失和自监督分类器的交叉熵损失。对于每个样本都计算对象分类器的预测结果和真实标签之间的损失,并对所有样本求和。同时,计算自我监督分类器在新生成的图像上的预测和对应标签之间的算是,并对所有任务求和

自监督损失也在原始图像上计算。因为0°的方向和正确的补丁排序也可能是自监督图像变体之一。然而,监督分类损失不受洗牌和旋转图像的影响,因为这会增加对象识别的难度。

这样的训练过程旨在联合训练对象分类和自我监督任务,从而在领域泛化问题中提取出相关的语义特征,并在目标图像上取得良好的分类性能。

在测试时,使用对象分类器对新的目标图像进行预测,即利用已经训练好的模型对目标领域进行分类。

领域适应

在领域自适应的分析中,将熵项和源域的监督损失和自我监督算是结合起来。整体学习目标包括三个部分:源域的监督损失,源域的自我监督损失以及目标域的熵值。通过联合训练这些损失函数,旨在提取源域和目标域中的相关语义,并在目标域上获得良好的分类性能

部分领域自适应

在部分领域自适应中,省略源自我监督项,将其设置为0。因为在领域自适应的公式中,有两个Lp(自监督分类器的交叉熵损失),它们有助于减小领域间的差异,但这两个项的共存可能是多余的,因为特征已经被选择来最小化源领域上的分类损失,并通过自监督任务在目标领域上进行特征调整。省略源自监督项的好处有两个:一是减少了学习过程中的超参数数量,可以引入其他互补的学习条件;二是自监督模块可以专注于目标领域,不涉及源领域的额外类别

为进一步关注共享类别,通过继承类似于先前研究中【10】提出的加权机制来扩展我们的方法。将源领域上对目标数据的分类输出累积起来,并归一化得到一个权重向量,表示每个源类别对目标领域的贡献。此外,集成源领域和目标领域的领域判别器,通过对抗性最大化来增加领域间的混淆。同时,考虑对源样本定义的类别加权过程。

灰色:网络的主要块

红色:领域对抗分类器和源样本加权过程

实线箭头:每个训练样本组对应的最终任务的贡献

jigsaw classifier:拼图分类器

entropy loss:熵损失

object classifier:对象分类器

黑/绿/褐色箭头末尾显示了相关的优化目标

类似的方案也适用于自监督的旋转识别

Implementation Details

多任务网络实施细节:该网络结合了不同的卷积深度架构,包含了对象分类器和自监督分类器。具体来说,通过添加全连接层是西安了对象分类器(Gc)和自监督分类器(Gp)。当模型中包含多个自监督分类任务时(如Jigsaw+Rotation),每个任务都有一个自己的自监督分类器。例如,打乱的图像经过Jigsaw自监督分类器(Gjp)处理,旋转图像经过Rotation自监督分类器(GRp)处理。在PDA设置中,引入了一个域分类器(Gd),经过在主干网络的最后一个池化层之后添加三个全连接层,并使用sigmoid函数作为最后的激活函数。在训练过程中,网络的所有特征层都是从预训练的ImageNet模型微调而来的,而Gc、gp和Gd则是从头开始训练的。

该网络有两个主要的超参数。参数a用于权衡自监督损失,b用于调节数据的输入过程在训练过程中,自监督变体的图像与原始图像一起输入网络,每个网络批次都包含它们两者,b指定了它们之间的相对比例。例如,b=0.6意味着对于每个批次,60%的图像是标准图像,而剩下的40%是旋转的或由打乱的补丁组成的图像。在我们的实验中,我们通过保留一个源验证集(训练数据的10%)并按照[33]的方法在其上进行模型选择来选择a和b。当组合Jigsaw+Rotation时,分别有aJ和aR,而由b调节的转换图像的比例是旋转的或打乱的图像,其概率相等。在DA设置中,a分别解耦为as和at,用于源数据和目标数据。在讨论实验结果时,我们将看到在源数据上通过交叉验证a然后设置a=as=at,或者将as=0固定以及手动调整at时对模型鲁棒性的影响。在DA和PDA中的其他参数是h和α。第一个是分配给熵损失的权重,我们将其安全地固定为较小的值:DA为0.1,PDA为0.2。最后,α平衡了梯度反转层的重要性,当其包含在PDA中时,我们采用了与[27]相同的调度方式来更新其值,使得域鉴别器的重要性随训练轮数增加而增加。

EXPERIMENTS
Self-Supervision for Domain Generalization

使用PACS数据集作为主要测试平台,在使用旋转和拼图自监督预训练的方法后,将它们与监督学习一起作为辅助任务在多任务模型中广泛使用。此外,还使用了VLCS和Office-Home数据集。

作者针对单源DG分析专注于使用数字数据集,以比较他们的方法与竞争方法的敏感性。对于PrDA,作者考虑了一个细粒度的汽车数据集

Self-Supervised Pretraining

使用旋转和拼图作为预训练任务。首先考虑了三个拼图模型和一个旋转模型,在没有使用原始标签的ImagenNet数据上进行寻来你。对于拼图,作者使用两个基于CFN的模型,这些模型具有9个基于AlexNet的孪生分支,分别从每个图像块中提取模型,然后再进入最终分类层之前重新组合它们。这些模型被标记为J-CFN和J-CFN+。第三个基于拼图的模型是由无序图重新组合的整个图像上训练的AlexNet模型,被定义为J-AlexNet,并训练了一个用于旋转识别的AlexNet模型,称为R-AlexNet。

p:表示使用基于图块的网络的方法

w:表示使用整个图像网络的方法

表的上半部分显示拼图的方法平均上提供了壁橱里整个重新组合图像更可靠的预训练模型,旋转预训练模型在性能上略优于基于补丁的拼图方法。

表的下半部分可以得出两个结论:

  1. 相比单任务监督模型,多监督和自监督提供了更好的结果
  2. 对于多任务问题,单分支更适合。
  3. 在这种情况下,将拼图任务从特征级别转移到图像级别简化了自监督任务及其与监督目标的组合。整个图像的旋转辅助任务在泛化方面的支持效果甚至略优于拼图

结果显示:在平均水平上,使用基于图块的拼图方法比处理整个重新组合图像更可靠。旋转预训练模型显示出最佳结果,略微优于基于图块的拼图方法。总的来说,作者发现将拼图任务从特征级别提升到图像级别在训练预训练模型时并不是一个好选择,而旋转任务是最简单和最有效的解决方案。

Supervised Pretraining and Multi-Task Learning

设计监督式学习和自监督学习结合起来的多任务方法:首先,作者对比了基于CFN多分支架构和普通AlexNet主干的模型,命名为C-CFN。无论使用哪种具体架构,作者使用DeepALL表示在所有原始源图像上训练的单任务监督模型,而使用Jigsaw(Puzzle)或Rotation来指定每个自监督任务与目标分类一起训练的多任务情况。

从表1的底部结果得出两个结论:

  1. 将监督学习和自监督学习结果起来的方式在不同领域中比单任务监督模型提供更好的结果无论选择的架构如何,DeepALL和Jigsaw/Rotation变体的比较都证明了这一点。
  2. 单分支架构更适合于当前的多任务问题。在这种情况下,将拼图任务从特征级别提升到图像级别简化了自监督任务及其与监督目标的结合。整个图像的旋转辅助任务在泛化方面甚至略优于拼图任务。
Single-Source Domain Generalization (多源领域泛化)

使用多种领域泛化任务进行评估,验证多任务方法的结果

  1. 基于网络参数的低秩约束
  2. 利用特定领域组件聚合
  3. 基于元学习
  4. 利用对抗分类器的不同方式

为公平比较,作者将每种方法的DeepALL结果作为参考

前五行都是极限模型的不同类型的多元领域泛化方法

  1. 基于对网络参数施加低秩约束,如TF和SLRC
  2. 利用领域特定组件聚合,如Epi-FCR,D-SAM
  3. 基于元学习策略,如MLDG\MetaReg和MASF
  4. 利用对抗分类器,如DDAIG\RAR和MMLD

在PACS数据集上,作者使用拼图、旋转任务以及它们的组合来测试他们的多任务方法。平均而言,除了在Resnet-18上,只有DDAIG获得了最佳结果之外,作者的方法在所有竞争对手中产生的结果要么相等要么更好。DDAIG为每个源样本提供领域注释,但作者的多任务方法不依赖于此。此外,DDAIG受益于针对每个领域的定制模型参数选择,而作者的方法的参数是固定的,并且每个数据集的所有领域对共享。

在VLCS数据集中,对于Office-Home数据集,旋转任务似乎比拼图任务更适合作为辅助任务,相对于DeepALL基线,旋转任务的想能提升了3个百分点,并且在拼图+旋转任务的情况下,优势更大。尽管DDAIG表现出平均结果最好的趋势,但其相对于DeepAll参考结果的改进仅略高于一个百分点。

单源领域泛化:

基于对抗数据增强(Adv.DA)的泛化能力进行比较

上排:拼图

下排:旋转

阴影背景:涵盖了在改变Adv.DA方法的超参数是所获得的整体结果范围

红色水平线:表示Adv.DA的参考结果?机器标准偏差是Adv.DA结果的参考线

蓝色柱状图:改变自监督任务权重α(自监督任务在训练中的重要性)和数据偏差β(输入数据中自监督样本的数量)是拼图法和旋转法的性能

Ablation and Hyper-Parameter Tuning(去除和超参数调整)

通过将自监督任务的重要性参数(α,β)设置为0,从而关闭自监督任务,只使用原始有序图像进行训练,从而得到一个基线模型。研究者好测试了只是用洗牌后的图像进行训练的情况,结果发现对象分类器无法收敛,进一步发现,当自监督任务处于活动状态时,即使没有洗牌后的图像,也可以通过调整超参数来获得与基线模型相当的性能。

其次,对拼图任务的超参数进行了调整。改变拼图任务中的类别数量,并观察到整体性能的变化在1.5个百分点左右,仍然优于基线模型

关于图像旋转任务,改变超参数对性能的影响较小,而且对具体参数设置的敏感度较低

自监督在其自身的测试中的性能:结果显示,自监督任务的性能逐渐提高。对于拼图任务,性能受到置换类别数量的影响,当任务更具挑战性时,性能下降。

第一张图:当改变损失权重α时,观察到结果相等或优于基线

第二张图:对于较高的α值,调整β对整体性能有显著影响

图三:

patch grid: 补丁网络

这组图反映自监督性能

图一:对象、旋转和拼图分类器的准确性随学习时期增长而增长

图二:当改变排列类别数P时,拼图准确性下降

Visual Explanation and Failure Cases (可视化解释和失败案例)

受监督的深度模型往往过于关注局部图像统计信息,这限制了学习表示的泛化性和鲁棒性特性。而拼图和旋转识别任务通过迫使网络利用整个图像,可以捕捉到全局信息并识别领域无关的物体形状。通过结合监督和自监督目标,我们旨在学习到更能捕捉有助于跨领域识别图像对象内容的辨别线索的表示。为了分析这种行为,我们在ResNet-18 DG实验中使用了类激活映射方法,并在PACS数据集上生成了图8中的激活图。前两行显示,我们的多任务方法结合了拼图或旋转的自监督,在定位物体类别方面优于DeepAll。旋转似乎在捕捉物体形状方面略逊于拼图,尤其在处理草图(见第二行和第六行的狗)、卡通和绘画(第四行和第五行)时,但在处理照片时表现得相当好。最后两行表明,对于拼图和旋转,识别错误与数据解释中的某些缺陷有关,而定位仍然具有意义。

简而言之,通过结合自监督任务和监督任务,模型能够更好地定位物体类别,并且自监督任务对于捕捉物体形状在不同类型的图像上表现出不同的精确度。识别错误主要与数据解释方面存在缺陷,但定位结果仍然有意义。

PDA

部分领域适应(PDA)设置下的实验结果。PDA是一种域适应问题,其中源域和目标域之间存在类别差异。文中介绍了几种用于处理PDA的方法,并使用Office-31和VisDA2017数据集进行了实验评估。结果表明,基于自监督任务(如Jigsaw和Rotation)的方法在PDA设置下表现优于其他自适应方法。此外,基于范数的自适应方法(HAFN和SAFN)也显示出良好的性能。虽然本方法并非专门设计用于PDA,但实验结果表明,辅助自监督任务对PDA的自适应有所帮助。最后,将估计的目标统计信息与样本选择策略相结合可以进一步提高性能。总的来说,文中提出的方法在PDA设置下展现出较好的性能,有助于解决域适应问题。

多任务方法明显优于仅源的基线,也优于LP和MCC。AdaGraph利用元信息和无标签数据,显示了最佳结果。考虑到AdaGraph和我们基于Jigsaw的结果之间的有限差距,我们断言当元数据信息存在噪声或缺失时,我们的方法可以作为可靠且廉价的备选方案。

### Self-Ensemble Concept In the realm of machine learning, self-ensemble refers to a technique where multiple models are created from variations or augmentations of training data points. These models collectively contribute towards making predictions that can be more robust than those made by any single model alone[^1]. The ensemble is built using different snapshots of the same neural network at various stages during its training process. The core idea behind this approach lies in leveraging diverse perspectives provided by these varied instances of the model trained on slightly altered datasets derived through transformations like noise addition or dropout regularization techniques applied over original inputs. This diversity helps improve generalization capabilities while reducing variance across predictions. #### Applications in Machine Learning One prominent application area for self-ensembles involves semi-supervised learning scenarios wherein only limited labeled examples exist alongside abundant unlabeled ones available for use during training phases. By applying consistency regularization methods such as Mean Teacher (MT), Temporal Ensembling (TE), Virtual Adversarial Training (VAT), etc., one ensures stable performance even when dealing with scarce supervision signals. Another significant utilization pertains to unsupervised domain adaptation tasks aiming to transfer knowledge acquired within source domains characterized by ample annotated samples into target environments lacking sufficient labeling but sharing similar characteristics otherwise unobserved directly due to distributional shifts between them both spatially and temporally speaking. Additionally, self-ensemble has been successfully employed in improving adversarial robustness against carefully crafted attacks designed specifically targeting deep networks' vulnerabilities exposed under certain conditions leading potentially catastrophic failures unless properly mitigated beforehand via defensive mechanisms embedded throughout architecture design choices including preprocessing steps taken prior feeding raw input features into subsequent layers responsible ultimately producing final outputs after passing several intermediate computations along pathways connecting neurons together forming complex webs capable performing intricate pattern recognition feats beyond human comprehension levels achievable today thanks largely advances brought forth recent years particularly around computational power availability coupled efficient algorithms development enabling faster experimentation cycles yielding better results overall time frame considered historically relevant benchmarks established previously before current era commenced officially ushering new age artificial intelligence research endeavors worldwide spanning numerous disciplines ranging natural sciences social studies humanities arts culture technology engineering mathematics statistics physics chemistry biology medicine health care environmental sustainability energy resources management policy governance ethics law regulation compliance security privacy protection safety assurance quality control standards setting benchmark creation measurement evaluation assessment feedback improvement innovation disruption transformation evolution revolution renaissance enlightenment awakening consciousness expansion awareness elevation transcendence ascension liberation freedom empowerment autonomy sovereignty independence interdependence cooperation collaboration coordination synchronization harmonization integration synthesis analysis decomposition reconstruction deconstruction construction building designing creating imagining envisioning conceptualizing theorizing hypothesizing experimenting validating verifying falsifying refuting rebutting arguing debating discussing communicating collaborating cooperating coordinating synchronizing harmonizing integrating synthesizing analyzing decomposing reconstructing deconstructing constructing building designing creating imagining envisioning conceptualizing theorizing hypothesizing experimenting validating verifying falsifying refuting rebutting arguing debating discussing communicating. ```python import numpy as np def create_self_ensemble(model, X_train, y_train=None): ensembles = [] # Create multiple versions of the dataset with slight modifications. for i in range(5): modified_X = apply_transformation(X_train.copy()) if y_train is not None: ensemble_model = train_model(model, modified_X, y_train) else: ensemble_model = train_unsupervised_model(model, modified_X) ensembles.append(ensemble_model) return ensembles def predict_with_self_ensemble(ensembles, X_test): all_predictions = [] for model in ensembles: prediction = model.predict(X_test) all_predictions.append(prediction) averaged_prediction = np.mean(all_predictions, axis=0) return averaged_prediction ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值