“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下差异比较大,可能稳定性也较差。