©PaperWeekly 原创 · 作者 | 张一帆
学校 | 中科院自动化所博士生
研究方向 | 计算机视觉
Domain adaptation(DA: 域自适应),Domain generalization(DG: 域泛化)一直以来都是各大顶会的热门研究方向。DA 假设我们有有一个带标签的训练集(源域),这时候我们想让模型在另一个数据集上同样表现很好(目标域),利用目标域的无标签数据,提升模型在域间的适应能力是 DA 所强调的。
以此为基础,DG 进一步弱化了假设,我们只有多个源域的数据,根本不知道目标域是什么,这个时候如何提升模型泛化性呢?核心在于如何利用多个源域带来的丰富信息。本文挑选了四篇 ICCV 2021 域泛化与域自适应相关的文章来研究最新的进展。
CrossNorm-SelfNorm
论文标题:
CrossNorm and SelfNorm for Generalization under Distribution Shifts
论文链接:
https://arxiv.org/abs/2102.02811
代码链接:
https://github.com/amazon-research/crossnorm-selfnorm
简而言之,Batch Normalization 与 instance normlization 通常都假设训练数据与测试数据独立同分布。本文提出了两种新的 normalization 方法,CrossNorm 和 SelfNorm,二者可以很好的提升模型的泛化性。
1.1 Motivation and Insights
文章的两个方法分别对应两个目标:
1. 扩增训练数据分布。传统的 normalization 都是为了使得训练更加稳定和快速,那么作者是否能用 normalization 的方法进行数据的增强呢?答案是肯定的。一般来说,作者认为 RGB 图像的均值和方差代表了他的风格信息,交换他们的均值和方差不会对类别标签产生影响。CrossNorm 要做的事情就是在训练中交换特征图 channel-wise 的均值和方差,使得模型对风格变化更加鲁棒。
2. 减小域分布偏差。即使有了 1,模型依然会遇到完全没有见过的风格。一种可行的方式即减小训练和测试数据之间的分布。文章发现,作者可以通过调整 RGB 图像的均值和方差来缩小这种风格的差异。而 SelfNorm 的目标就是使用 attention 机制来调整 channel-wise 的均值和方差。
1.2 Methodology
先来简单复习一下 instance normalization。对于 2D 的 CNN,作者有 的特征图, 就是 IN 要做的事情。
CrossNorm 要做的事情要不复杂,他将不同特征图的均值和方差进行互换:
更详细的说,对于单个样本,作者可以交换他每个 channel 之间的均值和方差,对多个样本作者可以交换 instance level 的均值和方差。
作者还提出了一个小 trick,即通过裁剪来提供更多的风格信息。文中给出了三种裁剪策略,content only, style only 和 both。对于 content only 而言,当作者给 替换统计变量时才进行裁剪,当计算 的统计变量以提供给 时不裁剪,style 则相反。
SelfNorm 这里的核心就是一个重新标准化的均值和方差 ,这里的 都是可学习的注意力方程(两个全连接层,输入是两个标量,输出是一个标量),是通过训练得到的,那么被校准后的特征图可以写作:
1.3 Experiments
在实验过程中,一个重要的问题是在哪里?以及放置多少 crossnorm 或者 selfnorm 层。这个问题本身是非常难搜索的,因为每个位置都可以放。为了简化问题,作者转向模块化设计,将它们嵌入到一个网络单元中。比如在 resnet 中,作者将它放在 residual module 里。
CN+SN 的方法在绝大多数 backbone上的效果好于现有的数据增强的方法,而且 CNSN 和他们是正交的,CNSN 不依赖于任何形式的图像操作,将 CNSN 与 augmix 结合之后效果来到了目前的 SOTA。文中还有更多数据集以及 numerical 的实验,