通过学习发现伪像进行自我监督的特征学习

摘要

 我们介绍了一种基于对抗训练的新型自我监督学习方法。我们的目标是训练一个鉴别器网络,以将真实图像与带有合成伪像的图像区分开,然后从其中间层提取特征,并将其转移到其他数据域和任务中。为了生成带有伪影的图像,我们预训练了一个大容量的自动编码器,然后使用一种损坏和修复策略:首先,冻结自动编码器,并通过随机删除其条目来损坏编码器的输出。其次,我们用维修网络扩充解码器,并以对抗性的方式针对鉴别器进行训练。修复网络通过修补掉掉的功能条目来帮助生成更逼真的图像。为了使区分者专注于伪像,我们还使其能够预测特征中删除了哪些条目。我们通过实验证明,通过创建和发现工件发现的功能可以在多个基准中达到最先进的性能。

1引言

 深度学习的最新发展展示了从图像中学习有用功能的强大能力[23],然后可以将其转移到其他多项任务[12、13、35、38]。 这些系统依赖于大型注释数据集,这需要昂贵且费时的人工。 为了解决这些问题,已经提出了自我监督的学习方法[7、28、32、42、44]。 这些方法从没有注释数据的图像中学习特征。 有些人通过以下策略介绍了一个前置任务:一个人保留有关输入数据的一些信息,然后训练网络以恢复它。 例如,某些方法保留图像区域[32],颜色[44]或灰度和颜色值[45]; 其他人则控制了补丁的位置[7,28]或其他外部信息,例如自我运动[19]。 在自我监督学习中,主要挑战是定义一个与学习特征的最终应用最相关的借口任务。
 为了实现这一目标,我们建议通过将图像分类为真实的或带有伪影的方法来学习特征(请参见图1)。 我们旨在创建图像伪像,以便能够发现它们的模型需要准确表示对象,从而构建可以很好地转移到诸如对象分类,检测和分割等任务的特征。 创建工件的第一种方法是使用修复算法[2,6]。 这些方法除了在较大的绘画区域上计算效率低外,还不适合用于培训,因为它们可能会引入低级统计信息,而神经网络可以很容易地学会检测这些统计信息。 这可能会限制网络从对象中学到的东西。 因此,如图1所示,我们代替了在像素级别上编辑图像,而是篡改了它们的特征表示并创建了损坏的图像,以使纹理伪像在局部不明显,但在全局上不正确。
 为了产生伪像,我们首先训练一个自动编码器以再现图像。然后,我们从编码特征中随机删除条目(在瓶颈处),从而丢失了有关输入图像的某些信息。然后,我们向解码器添加修复神经网络,以帮助其渲染逼真的图像。修复网络在解码器的每一层都修补了特征表示,但是其有限的容量使其无法完全恢复丢失的信息。通过这种方式,我们获得了带有无法通过局部分析检测到的伪影的图像。然后,我们训练鉴别器以区分真实图像和损坏图像。此外,我们还使鉴别器输出为掩码,以指示删除了哪些功能条目。这隐含地帮助鉴别者将注意力集中在图像中的重要细节上。我们还使用真实掩码将修复网络的范围限制为与丢弃的项目相对应的功能。这限制了维修网络以全局一致的方式替换丢失的信息的能力。然后以对抗方式训练维修网络和鉴别器。但是,与其他对抗方案相反,请注意,我们的维修网络在设计上并未完全混淆鉴别器。最后,我们从鉴别器传递特征,因为这是学习图像分布近似值的模型。
 我们的贡献可以归纳如下:1)一种基于特征图像检测的新颖特征学习框架,不需要人工注释。 2)创建具有非平凡伪像的图像的方法; 3)我们的功能在多项迁移学习评估(ILSVRC2012 [5],Pascal VOC [11]和STL-10 [4])上达到了最先进的性能。

3 架构概述

 我们简要总结了将在下一部分中介绍的体系结构的组件。 令x为数据集中的训练图像,令 x ^ \hat{x} x^为带有伪影的版本。 作为模型,我们使用由以下组件组成的神经网络(另请参见图2):
1.两个自编码网络 { E , D 1 , D 2 , D 3 , D 4 , D 5 } \{E,D_1,D_2,D_3,D_4,D_5\} {E,D1,D2,D3,D4,D5},E是编码器,D是解码器,经过预训练以重现高保真真实图像x, ϕ ( x ) \phi(x) ϕ(x)是解码器的输出。
2.应用于E的特征输出的空间遮罩Ω,生成的蒙版特征表示为 ϕ ( x ) ^ = Ω ⊙ ϕ ( x ) + ( 1 − Ω ) ⊙ ( u ∗ ϕ ( x ) ) \hat{\phi(x)}=\Omega\odot \phi(x)+(1-\Omega)\odot(u*\phi(x)) ϕ(x)^=Ωϕ(x)+(1Ω)(uϕ(x))
3.鉴别器网络C将x分类为真实图像,将x分类为假图像; 我们还训练鉴别器输出遮罩Ω,以便它学会定位所有伪像;
4.修复网络 R 1 , R 2 , R 3 , R 4 , R 5 {R_1,R_2,R_3,R_4,R_5} R1R2R3R4R5添加到两个解码器网络之一的层上; 层 R i R_i Ri的输出被mask遮罩,因此它仅影响被遮罩的特征。
维修网络和鉴别器以对抗性方式接受了真实/损坏分类损失的培训。

4.学习发现伪像

 我们的主要目标是训练一个分类网络(鉴别器),以便它学习真实图像的准确分布。 先前的工作[34]表明,经过训练以区分真实图像和伪图像的鉴别器会开发出具有有趣抽象功能的特征。 在我们的工作中,我们以这种观察为基础,并探索一种控制伪图像损坏程度的方法(请参阅第4.1节)。 因此,我们训练分类器来区分真实图像和损坏图像(请参见第4.3节)。 如前所述,通过解决该任务,我们希望分类器学习适用于其他任务的特征,例如对象分类,检测和分割。 在下一部分中,我们将更详细地描述我们的模型,并提出旨在避免学习琐碎特征的设计选择。
 在我们的方法中,我们希望能够创建不太现实的损坏图像,否则分类器可以通过仅检测低级统计信息(例如异常的局部纹理图案)将它们与真实图像区分开。 同时,我们希望具有尽可能多的可变性,以便分类器可以构建可靠的真实图像模型。
 为了解决后一种问题,我们随机破坏了现有数据集的真实图像。 为了解决第一个问题,而不是在像素级别上编辑图像,我们破坏了它们的特征表示,然后仅通过修复低层的细节部分修复了破坏。
 我们将图像x编码为特征φ(x)∈R M×N×L,其中 φ ( x ) = E ( x ) φ(x)= E(x) φ(x)=E(x),然后在M×N域中的每个空间坐标处,我们随机丢弃所有L具有给定概率θ∈(0,1)的通道。这定义了一个二进制掩码矩阵Ω∈{0,1} M×N,其中哪些特征项被丢弃 ( Ω i j = 0 ) (Ω_{ij} = 0) Ωij=0,哪些被保留 ( Ω i j = 1 ) (Ω_{ij} = 1) Ωij=1。丢弃的特征通道被平均特征的相应条目代替,该平均特征的相应条目是通过将 φ ( x ) φ(x) φ(x)与大的均匀核 u u u卷积而得到的。作为替代方案,我们还用随机噪声替换掉掉的特征通道。实验上,我们发现这两种方法在性能上没有显着差异。遮罩during是在训练期间在线生成的,因此同一图像x在每个时期都要经受不同的遮罩。如果我们将损坏的特征直接提供给解码器D,则输出将极其不切实际(请参见图3(c))。因此,我们引入了一个修复网络,该网络可以部分补偿由于面罩造成的信息丢失。修复网络在解码器 D i D_i Di的层之间引入修复层 R i R_i Ri。这些层接收损坏的功能或解码器层的输出作为输入,并仅允许修复丢失的条目。更准确地说,我们将第一解码器层 D 1 D_1 D1的输入定义为:
ϕ ( x ) ^ + ( 1 − Ω ) ⊙ R 1 ( ϕ ( x ) ) ^ \hat{\phi(x)}+(1-\Omega)\odot R_1(\hat{\phi(x))} ϕ(x)^+(1Ω)R1(ϕ(x))^
在随后的 D 2 D_2 D2层, D 3 D_3 D3层和 D 4 D_4 D4层,我们使用最近邻方法对蒙版 Ω \Omega Ω进行上采样,并匹配相应中间输出的空间尺寸,即,我们向每个层 D i D_i Di提供以下输入,其中i = 2,3,4
D i − 1 + ( 1 − U i − 1 ( Ω ) ) ⊙ R i ( D i − 1 ) D_{i-1}+(1-U_{i-1}(\Omega))\odot R_i(D_{i-1}) Di1+(1Ui1(Ω))Ri(Di1)
其中, U i − 1 U_{i-1} Ui1表示与 D i − 1 D_{i-1} Di1输出的空间维度最近的上采样。 最后,我们还对编码器E进行了设计,以使项目编码的功能在空间上是局部的,并且彼此之间的重叠很少。 为此,我们用五层定义编码器 E = E 1 , E 2 , E 3 , E 4 , E 5 E = {E_1,E_2,E_3,E_4,E _5} E=E1E2E3E4E5,其中E 1使用步幅为1的3×3卷积滤波器,其余四层为 E 2 , E 3 , E 4 和 E 5 E_2,E_3,E_4和E_5 E2E3E4E5使用步幅为2的2×2卷积滤波器。如图4所示,此设计将每个编码特征条目的接收场限制为输入图像中的18×18像素斑块。 2个像素与相邻色块重叠。 因此,删除这些特征条目之一与删除输入图像中的18×18像素色块之一基本相同。
 在图3中,我们显示了真实图像和在不同条件下获得的相应损坏图像的两个示例。 图3(a)显示了原始图像和蒙版Ω,其中M,N = 8,如左下角所示。 下降概率为θ= 0.5。 图3(b)显示了通过我们完整的架构获得的最终损坏图像。 请注意,在本地无法确定图像是真实的还是损坏的。 仅通过查看更大的区域并利用实际对象的先验知识,就可以确定图像已损坏。 为了进行比较,我们在图3(c)和(d)中分别显示了通过禁用修复网络和使用没有掩码限制的修复网络获得的相应损坏图像。 最后,在图3(e)中,我们两次应用了修复网络,并观察到引入了更易于检测的低级伪像。

4.2 复制实像

 给定如上一节所述生成的损坏图像,我们应该准备训练判别器C。实际图像确实可以仅仅是来自我们用于创建损坏图像的同一数据集的原始图像。 该方案的一个潜在问题是,鉴别器可以学习基于解码器网络引入的图像处理模式,将真实图像与损坏的图像区分开。 肉眼可能看不到这些模式,但是神经网络似乎很擅长发现它们。 例如,网络已学会检测色差[7]或下采样模式[29]。
 为避免此问题,我们使用相同的自动编码器 E , D {E,D} ED来生成损坏的图像,并复制真实图像。 由于解码器的最后最后一层 D 5 D_5 D5用于生成真实图像和损坏图像,因此我们希望两个图像共享相同的处理模式。 这可以阻止鉴别器将注意力集中在这种模式上。
 因此,我们对该自动编码器进行了预训练,并确保其具有高容量,以便以高精度复制图像。 E E E D D D的训练是标准的优化,具有以下最小二乘目标
L a u t o = ∑ x ∼ p ( x ) ∣ D ( E ( x ) ) − x ∣ 2 L_{auto} =\sum_{x∼p(x)}|D(E(x)) − x| ^2 Lauto=xp(x)D(E(x))x2

4.3 训练鉴别器

5 实验

5.1 消融分析

我们通过对STL-10进行分类的转移学习来验证模型中的主要设计选择[4]。 所有结果都是通过在未标记的训练集上训练400个时代的模型以及在标记的训练集上进行200个时期的监督转移学习获得的。 在传输过程中,使用标准的AlexNet体系结构,但我们删除了pool5层以处理较小的图像大小。 卷积层中的权重被传递,而全连接层则被随机初始化。 我们执行以下实验:
(a)输入的图像是真实的:我们证明最好使用自动编码的图像作为判别训练的真实示例。这里的理由是鉴别器可以利用解码器网络的像素模式来确定真实图像和损坏图像。在这种情况下,我们还观察到了常见的GAN伪影(见图6(a))。在我们的模型中,判别器的输入通过相同的卷积层。
(b)分布式vs.本地修复网络:在这里,我们说明了在整个解码器中分布修复网络的重要性。在本地情况下,我们在第一个解码器层之前连续应用五个修复层。在这种设置中,我们观察到了更多的低级工件(参见图6(b))。
(c)-(f)丢包率:我们展示了不同的θ值如何影响分类性能。考虑以下值:0.1、0.3、0.5(基线),0.7和0.9。下降率对学习功能的性能有很大的影响。大约0.7的值可提供最佳结果,而较低的丢弃率会明显降低性能。下降率低时,对象部件不太可能损坏。这使得示例对于学习语义内容的价值降低了。
(g)没有掩码预测:该实验表明,通过下降掩码提供的附加自监信号可提高性能。
(h)3×3编码器卷积:在本实验中,我们让编码器特征重叠。我们用3×3卷积替换2×2卷积。这会使接收场从18×18增加到33×33,并导致15个像素重叠。我们观察到传输性能略有下降。
(i)在修复层中不设门控:我们展示了训练的影响,而没有对带有防滴罩的修复网络进行门控。如果没有门控,修复网络可能会影响所有图像区域。
(j)没有损坏示例的历史记录:[39]之后,我们保留了一个损坏示例的缓冲区,并建立了小批量,用缓冲区中的样本替换了一半的损坏示例。 删除历史记录会对性能产生较小的负面影响。
(k)没有维修网:在这种消融中,我们将维修网完全去除。 在这种情况下表现不佳说明了对抗训练的重要性。
(l)GAN而不是损坏和维修:我们测试了训练标准GAN来创建假示例的替代方法,而不是我们的损害修复方法。 在这种情况下,我们会观察到更差的表现和不稳定的对抗训练
 表1给出了判别器在STL-10上的传递学习性能。在图6中,我们显示了一些生成模型的渲染图。

5.2 转移学习实验

 我们对标准数据集进行分类,检测和语义分割的转移学习实验,并使用θ= 0.7的下降率对AlexNet鉴别器进行了预训练。

5.2.1 STL-10的分类

 STL-10数据集[4]的设计考虑了无监督的表示学习,并且是比较的通用基准。 该数据集包含100,000个未标记的训练图像,5,000个标记的训练图像,这些图像均匀地分布在10个类别的监督传输中,另外8,000个测试图像。 数据由96×96彩色图像组成。 我们随机调整图像大小并提取96×96作物。 在无监督的训练下进行了400个时期,在有监督的转移下进行了另外200个时期。
 我们遵循标准的评估协议,并在十个预定义的折叠中执行监督训练。 我们将所得的平均准确度与表2中的最新结果进行了比较。我们可以观察到性能比其他方法有所提高。 请注意,表2中比较的模型没有使用相同的网络体系结构,因此很难将性能差异归因于特定因素。 尽管如此,它还是展示了提出的自我监督学习任务和模型的潜力。

5.2.2 PASCAL VOC的多标签分类,检测和细分

 Pascal VOC2007和VOC2012数据集包含来自20个对象类的图像。由于图像中对象的大小,姿势和位置的高度可变性,它是一个相对具有挑战性的数据集。这些数据集是表示学习的标准基准。我们仅转移基于AlexNet的鉴别器的卷积层,并随机初始化完全连接的层。 Krähenbühl等人提出的依赖数据的重新缩放。 [22]在所有实验中均采用标准做法。卷积层是微调的,即不冻结。这证明了判别权重作为其他任务初始化的有用性。表3显示了与最新功能学习方法的比较。
VOC2007分类。对于多标签分类,我们使用Krähenbühl等人提供的框架。 [22]。对“ trainval”数据集的随机作物进行微调。最终预测被计算为每个测试图像10个随机作物的平均预测。凭借69.8%的mAP,我们在此任务上实现了最先进的性能。
在VOC2007上检测。 Fast-RCNN [12]框架用于检测。我们遵循[22]中的指南,并使用多尺度培训和单尺度测试。所有其他设置均保持其默认值。 mAP为52.5%,我们获得了第二好的结果。
VOC2012上的语义分段。我们使用具有默认设置的标准FCN框架[25]。我们使用10 -4的固定学习率训练100,000次迭代。我们的鉴别器权重达到了最先进的结果,联合的平均交集(mIU)为38.1%。

5.2.3 ImageNet和位置上的分层性能

 我们使用[44]中引入的评估框架来评估在网络的不同深度学习到的表示的质量。所有卷积层都被冻结,并且在它们之上训练多项式逻辑回归分类器。调整卷积层的输出大小,以使展平特征的大小相似(〜9200)。表4中给出了与ImageNet上其他模型的比较。我们的模型优于该基准中的所有其他方法。还要注意,我们的转换功能的性能甚至比受监督的竞争对手稍好。为了证明学习到的表示形式可以普遍应用于其他输入数据,对Places [47]数据集也进行了相同的实验。该数据集包含来自205个场景类别的240万张图像。如表5所示,对于conv2-conv5层,我们的性能优于其他所有方法。还要注意的是,我们以37.3%实现了最高的整体精度。

5.3 特征的定性分析

 为了更好地了解鉴别者学到了什么,我们使用了不同的网络可视化技术。 我们在图7中显示了学习的conv1滤波器以及最大程度地激活了每个卷积层的某些神经元的图像补丁[13、43]。我们在conv1滤波器中观察到了显着的边缘检测器,就像在有监督的情况下可以观察到的那样 AlexNet。 图8显示了使用我们的conv5功能获得的最近邻居检索。
 我们使用图9中的Grad-CAM [37]来说明辨别器在实物与有伪影之间做出决策时着重于哪些图像区域。 我们可以看到,鉴别器经常寻找丢失或存在的对象部分。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值