“Self-Challenging Improves Cross-Domain Generalization”阅读笔记

“Self-Challenging Improves Cross-Domain Generalization”阅读笔记

1 Motivation

1) 分类模型在域内取得了很好的判别效果,但跨域表现受限;

2) 卷积神经网络过度依赖对反向传播有重要影响的少数特征,导致其对于图像特征学习不够全面。

2 Contribution

1) 提出自挑战算法,强迫模型从弱势特征中归纳图像属性;

2) 提升了卷积神经网络模型的泛化能力。

3 Approach

3.1 表征自挑战(RSC)原理

所谓自挑战,就是强迫模型从对分类结果贡献更小的特征中学习如何分类。RSC想要解决的问题,其实是同一标签物体跨域判别不准确的问题,而不是学习不同物体的泛化表示,比如说,域 D 1 D_1 D1中的猫都有“胖胖的脸”这个属性,如果只针对 D 1 D_1 D1设计分类模型,那只需要根据“胖胖的脸”就能完成任务,可对于不同域中猫的图像来说,它们共有的属性可能是“胡须”、“耳朵”等相似的特征,RSC期望在域 D 1 D_1 D1更多关注这种不同域间都共享的通用表征,以实现更强的跨域泛化性。

RSC方法通过以梯度为判断标准,对所有特征求梯度,梯度值较大者表明该特征对模型分类结果影响较大,为了使模型不过度依赖这些容易的特征,在训练时将其抹去(置零),强迫模型从其他更不受关注的特征中学习类别信息,进而平衡模型从不同特征中提取信息的强度,其思想如下图所示(从上到下分别为原始模型,RSC训练,RSC训练后模型,中间颜色深浅表示梯度值高低):

该方法理解起来还是很容易的,对于一个分类任务,其输入为图像-标签对 < x , y > <\mathbf{x},\mathbf{y}> <x,y>,图像经过神经网络 f ( ⋅ , θ ) f(·,\theta) f(,θ)做出对应的类别预测,网络的训练损失为:

上面就是一个很传统的分类任务的表现形式,损失函数 l ( ⋅ , ⋅ ) l(·,·) l(,)通常是交叉熵函数。

f ( ⋅ , θ ) f(·,\theta) f(,θ)的最后一个进行类别预测的模块记为 h ( ⋅ , θ top ) h(·,{\theta}^{\text{top}}) h(,θtop),记 h ( ⋅ , θ top ) h(·,{\theta}^{\text{top}}) h(,θtop)的输入特征为 z \mathbf{z} z

可以计算最后 h ( ⋅ , θ top ) h(·,{\theta}^{\text{top}}) h(,θtop)关于 z \mathbf{z} z的梯度:

这里的 ⨀ \bigodot 表示点乘,这里的梯度表示 z \mathbf{z} z的不同维度对 h ( ⋅ , θ top ) h(·,{\theta}^{\text{top}}) h(,θtop)分类结果的贡献程度,然后设置一个超参数 p p p,表示将要舍弃的特征占总特征的百分比,对 g z \mathbf{g}_{\mathbf{z}} gz进行排序,将梯度值最高的前 p p p个特征值置零,得到修改后的特征 z ~ \tilde{\mathbf{z}} z~

z ~ \tilde{\mathbf{z}} z~作为 h ( ⋅ , θ top ) h(·,{\theta}^{\text{top}}) h(,θtop)的输入,计算损失:

再使用梯度下降算法更新整个网络 f ( ⋅ , θ ) f(·,\theta) f(,θ)的参数。这个训练目的就是期望增强模型对不同特征的提取利用能力,避免模型对少数关键特征过拟合,从而增强泛化性

3.2 RSC有效性论证——关于 p p p

根据上一节的分析不难发现,RSC只对分类模型的最后一层 h ( ⋅ , θ top ) h(·,{\theta}^{\text{top}}) h(,θtop)求梯度,而其输入对于 h ( ⋅ , θ top ) h(·,{\theta}^{\text{top}}) h(,θtop)而言可以视为是普通数据。为了证明RSC方法的跨域能力,作者给出了其跨域性能差异的上界:

这里的 S \mathcal{S} S D \mathcal{D} D分别表示两个不同的域, θ ^ \hat{\theta} θ^ θ ⋆ {\theta}^\star θ分别表示模型的经验参数和理论上最优参数,下标表示模型是通过RSC方法训练得到的模型,这两个模型都被认为在域 S \mathcal{S} S上训练得到的。这里的 L ( ⋅ ; ⋅ ) L(·;·) L(;)表示模型 θ \theta θ对数据域的平均分类损失:

对于上面的不等式,左边的值越小,表明本文使用RSC训练出的模型接近最优水准,同时对不同的域都有相似的表现,以体现其参数的泛化能力。不等式右边根号项中的第一项取决于模型的选择,第二项中的 δ \delta δ是一个概率因子,表示不等式以概率 1 − δ 1-\delta 1δ成立,论文并没有给出其定义,我们把这两项都看成常数项。那不等式左侧的最大值就取决于 ξ ( p ) ξ(p) ξ(p),这是一个关于RSC超参数 p p p的函数。

作者给出了其经验估计:

这里的 h ( θ , z ) h(\theta,\mathbf{z}) h(θ,z)不再表示之前的预测头了,而是与 L ( ⋅ ; ⋅ ) L(·;·) L(;)一样,表示对某个域的分类损失平均值:

为了建立 ξ ^ ( p ) \hat{ξ}(p) ξ^(p) p p p的关系,作者在此做了一个假设,即“在训练时,RSC操作会导致loss值的增加”,这个假设相对来说比较容易理解,RSC操作把对预测最有效的特征擦除了,模型进行预测就会变得更困难,从而导致loss的增大,并且loss增大的程度与被擦除的重要特征的数目肯定成正相关,对于 ξ ^ ( p ) \hat{ξ}(p) ξ^(p)等价表达式中的两项,就有如下关系:

这里的 γ t ( p ) \gamma_t(p) γt(p)也是一个与 p p p相关的表达式,其值恒大于等于1。

定义模型第 t t t步迭代时,与 ξ ^ ( p ) \hat{ξ}(p) ξ^(p)具有相同表达形式的函数 Γ ( θ ^ RSC ( t ) ) \mathcal{Γ}(\hat{\theta}_{\text{RSC}}(t)) Γ(θ^RSC(t))

对于学习率 η \eta η很小的训练过程,作者又给出了 Γ ( θ ^ RSC ( t ) ) \mathcal{Γ}(\hat{\theta}_{\text{RSC}}(t)) Γ(θ^RSC(t))的计算公式:

上面的 g ~ \tilde{\mathcal{g}} g~是对网络权重计算的梯度,根据上面的公式,随着训练的不断深入, Γ ( θ ^ RSC ( t ) ) \mathcal{Γ}(\hat{\theta}_{\text{RSC}}(t)) Γ(θ^RSC(t))。的值会越变越小,迭代完成后, Γ ( θ ^ RSC ( t ) ) = ξ ^ ( p ) \mathcal{Γ}(\hat{\theta}_{\text{RSC}}(t))=\hat{ξ}(p) Γ(θ^RSC(t))=ξ^(p),作者可视化了 Γ ( θ ^ RSC ( t ) ) \mathcal{Γ}(\hat{\theta}_{\text{RSC}}(t)) Γ(θ^RSC(t))的值随训练过程的变化,除第一个epoch之外,随着迭代深入, Γ ( θ ^ RSC ( t ) ) \mathcal{Γ}(\hat{\theta}_{\text{RSC}}(t)) Γ(θ^RSC(t))不断下降,也说明RSC训练的模型的泛化性在不断提高。同时,上面那个公式中的 γ t ( p ) \gamma_t(p) γt(p)项控制了 Γ ( θ ^ RSC ( t ) ) \mathcal{Γ}(\hat{\theta}_{\text{RSC}}(t)) Γ(θ^RSC(t))的下降速率,根据作者做的假设, γ t ( p ) \gamma_t(p) γt(p) p p p是正相关关系,也就是说, p p p越大,模型的泛化性会更好,但是 p p p也不能太大,否则模型学不动。

3.3 RSC应用方式

本文提了两种进行RSC的方法,本质上并无特殊区别,关键在于应用RSC的方向不同。

具体来说,本文使用ResNet+FC的架构作为骨干网络,特征 Z \mathbf{Z} Z是ResNet的最后一层卷积层的输出,大小为 [ 512 × 7 × 7 ] [512×7×7] [512×7×7]的特征图,为了送进后续的全连接层中,需要对其进行降为操作。

1) 第一种方案是对进行通道间的全局平均池化,将 Z \mathbf{Z} Z压成 [ 7 × 7 ] [7×7] [7×7]的特征图,即一共有49个特征,这是RSC的默认方法;

2) 第二种是在每个通道内进行全局平均池化,将 Z \mathbf{Z} Z压成 [ 512 × 1 ] [512×1] [512×1]的特征图,即一共有512个特征。

此外,对于一个Batch中的数据,并不对所有的数据进行RSC操作,而是额外引入了一个概率超参数 p b p_b pb,只对分类最容易(由交叉熵损失判定)的前 p b % p_b \% pb%的数据进行RSC。

4 Experiment

4.1 数据集

1) PACS数据集:包含来自4个域(艺术绘画、卡通、素描、照片)的7类物体的图像,在其中3个域上训练一个模型,在剩余的一个域上进行测试。

2) VLCS数据集:取自4个域/数据集(PASCAL VOC 2007, LabelMe, Caltech and Sun datasets)上的五个类。

3) Office-Home数据集:取自4个域(艺术、剪贴画、产品和真实世界)上的64个目标。

4) ImageNet-Sketch数据集:取自两个域(原始ImageNet和ImageNet-Sketch(素描风格))上的1000个类。

4.2 消融实验

作者在PACS上对不同的网络设置进行了消融实验,以验证其架构的合理性。

1)特征筛选机制

包括使用随机筛选,激活后最大值筛选和最大梯度值筛选三种方案每个Batch中有50%的图像被应用RSC,其被擦除的特征比例为50%:

2) 特征擦除百分比

实验与理论分析类似, p p p的值不能太大,也不能太小,擦除三分之一的特征相对来说效果比较好。(那为什么不用这个 p p p值进行第一项的消融实验,有点好奇)

3) RSC应用百分比

经过实验,一个Batch里对33%的图像应用RSC效果也比较好,不过优势没有那么显著:

4) 池化尺度选择

作者分析了3.3节进行通道间的池化方法和通道间-通道内混合的池化方法(几率均为50%),结果发现混合的池化反而能有更好的表现:

4.2 跨域评估

作者对比了一些不同的方法,RSC在大部分实验中确实取得了更加sota的效果:

4.3 分类实验

同时还用更深的网络在ImageNet上做了分类实验,RSC可以比Baseline在更小的网络架构上实现更好的分类效果,但是对比的Baseline有点少,而且很多方法在19年就已经达到80%以上的准确率了,泛用性有待验证:

根据别人实验的结果,这个方法收敛比较快,而且泛化性确实比较好,但是精度其实没有很高,而且论文中汇报的结果在不同的seed下差异比较大,可能稳定性也较差。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值