Style Neophile: Constantly Seeking Novel Styles for Domain Generalization 论文阅读

325 阅读9分钟

0 论文信息

1 背景介绍

图 1.我们方法的动机 : 我们通过自适应合成不同于源域风格和之前合成的新风格的多样的、似是而非的新风格来提高模型的泛化能力,然后在学习风格不变表示的训练中将它们注入到模型的中间特征中。

  目前大多数域泛化方法都提到要学一个域间不变的特征,这类方法通常假设每个域有不同的图像风格,然后强制同一个类的图像在不同风格下的特征是尽可能相似的。而,这些方法被限制在一个有限的风格集合上 (我们得到的域的数目是有限的),因为它们从一组固定的训练图像或通过插值训练数据获得增强的风格。本文提出了一种新的方法,能够产生更多风格的数据,这些风格甚至是完全没有在训练集出现过的。

2 方法详解

  在域泛化的基础上,我们假设一个领域可以由其样本的风格来表征,因此,风格不变表示可以很好地推广到任意不可见的领域。在此背景下,作为域泛化的一种解决方案,我们提出了一种通过风格扩展学习风格不变模型的新框架。其关键思想是不断地向 CNN 输入以前没有观察到的风格的训练数据,以最大化风格增强的效果。为了实现这一想法,我们的框架不断地生成合成的、合理的风格,这些风格与之前迭代中观察到的风格不同,并用这些合成的风格替换训练图像的风格,同时保留图像的语义信息。本节的其余部分概述了我们的框架 (章节 3.1)、新风格合成的详细算法 (章节 3.2) 以及新风格的训练策略 (章节 3.3)。

2.1 概述

  我们的方法用图像特征映射 ZRC×H×WZ\in\mathbb{R}^{C\times H\times W} 的通道均值和标准偏差 μ(Z),σ(Z)RC\mu(Z),\sigma(Z)\in\mathbb{R}^C 表示图像的风格如下 :

μ(Z)=1HWh=1Hw=1WZ,h,w(1)\mu(Z)=\frac{1}{HW}\sum_{h=1}^H\sum_{w=1}^WZ_{\cdot,h,w}\tag{1}
σ(Z)=1HWh=1Hw=1W(Z,h,wμ(Z))2(2)\sigma(Z)=\sqrt{\frac{1}{HW}\sum_{h=1}^H\sum_{w=1}^W(Z_{\cdot,h,w}-\mu(Z))^2}\tag{2}

  其中 H 和 W 表示特征图的高度和宽度。

图 2 所提到的方法的总体流程。(1) 每次迭代训练时,通过网络从源域图像中计算出源风格。然后,我们将它们放入队列,并将以前的源风格从源风格队列中取出。(2) 选择代表源风格队列的风格分布的源风格原型。(3) 用随机噪声抖动源风格生成新风格候选对象。(4) 选择既没有源域原型也没有前人新风格的新风格。(5) 选定的新风格进入队列,之前的新风格在新风格队列中退出队列。然后,在动态训练时,将随机抽取的新风格队列中的新风格注入到我们的模型中。步骤 (2)-(5) 在每次预定次数的迭代中执行,以不断寻找新的风格。

  在综合新风格之前,我们首先对网络到目前为止观察到的风格分布进行近似。为了近似和跟踪风格分布,我们的方法部署了两种风格队列 : 源风格队列和新风格队列。源风格队列保存最近观察到的源图像的风格。另一方面,新风格队列存储的新风格经过合成,与之前在两个队列中观察到的风格不同。注意 μ(Z)\mu(Z)σ(Z)\sigma(Z) 是分开保存的。当存储的风格数量超过限制时,从最老的风格中取出。基于这些风格队列,我们通过选择源原型和合成新风格的迭代过程不断寻找新的风格,如图 2 所示。

2.2 合成新风格

  我们确保新颖的风格满足两个标准 : 多样性和可信性。对于多样性,我们寻求在以前的迭代中没有观察到的风格。同时,它们应该是合理的,即不太偏离真实源风格的分布,以提供真实的风格。

  为此,我们提出了一种由原型选择、随机抖动和新风格选择三个步骤组成的新风格合成方法。首先,选择一些源风格的代表,称为源风格原型,以非参数的方式有效地识别源风格分布 (图 2(2))。此外,通过使用随机噪声抖动源风格来生成新风格的候选对象 (图 2(3))。然后选择与原型和之前生成的新风格最不同的候选文本子集作为新风格 (图 2(4))。通过迭代这些步骤,可以不断地合成与已观察到的不同的新风格,并将其存储在新风格队列中。本节的其余部分将详细阐述新风格合成的每一步。

  原型的选择。我们选择 mpm_p 原型,它很好地代表了存储在源风格队列中的源风格的分布。假设我们在队列中存储了一组源风格 S\mathcal{S}。设 PS\mathcal{P}\subseteq\mathcal{S} 为原型集。受可解释机器学习采样技术的启发,我们采用 S\mathcal{S}P\mathcal{P} 之间的平方最大平均差异 (MMD),核函数 k 来度量它们之间的差异 :

MMDk2(S,P)=1S2si,sjSk(si,sj)2SPsiS,pjPk(si,pj)+1P2pi,pjPk(pi,pj)(3)\text{MMD}_k^2(\mathcal{S},\mathcal{P})=\frac{1}{|\mathcal{S}|^2}\sum_{s_i,s_j\in\mathcal{S}}k(s_i,s_j)-\frac{2}{|\mathcal{S}||\mathcal{P}|}\sum_{s_i\in\mathcal{S},p_j\in\mathcal{P}}k(s_i,p_j)+\frac{1}{|\mathcal{P}|^2}\sum_{p_i,p_j\in\mathcal{P}}k(p_i,p_j) \tag{3}

  为了选出最具代表性的风格 P\mathcal{P},其分布与 S\mathcal{S} 的分布接近,将评分函数设计为 :

Jb(P)=1S2si,sjSk(si,sj)MMDk2(S,P)=2SPsiS,pjPk(si,pj)1P2pi,pjPk(pi,pj)(4)J_b(\mathcal{P})=\frac{1}{|\mathcal{S}|^2}\sum_{s_i,s_j\in\mathcal{S}}k(s_i,s_j)-\text{MMD}_k^2(\mathcal{S},\mathcal{P})\\ =\frac{2}{|\mathcal{S}||\mathcal{P}|}\sum_{s_i\in\mathcal{S},p_j\in\mathcal{P}}k(s_i,p_j)-\frac{1}{|\mathcal{P}|^2}\sum_{p_i,p_j\in\mathcal{P}}k(p_i,p_j) \tag{4}

  为了选出最具代表性的风格 P\mathcal{P},其分布与 S\mathcal{S} 的分布接近,将评分函数设计为 :

maxPS,PmpJb(P)(5)\max_{\mathcal{P}\subseteq\mathcal{S},|\mathcal{P}|\le m_p}J_b(\mathcal{P}) \tag{5}

  虽然这个最大化问题通常被认为是棘手的,但已经证明贪婪过程返回任何归一化单调子模函数的近似最优解。由于在别的论文中证明,径向基函数 (RBF) 核 k(xi,xj)=exp(γxixj)k(x_i,x_j) =\exp(−\gamma\lVert x_i-x_j\rVert) 为单调子模的式 (4),因此通过贪婪前向选择来完成原型选择,即重复抽样评分函数增加最多的风格作为原型。

随机抖动的风格候选 作为新风格的候选对象,在源风格 S\mathcal{S} 中加入随机噪声,生成一组随机风格 D\mathcal{D}。首先,计算源风格 S\mathcal{S} 的信道标准差 σ(S)RC={s1,s2,...,sN}\sigma(\mathcal{S})\in\mathbb{R}^C=\{s_1,s_2,...,s_N\}。然后从高斯分布 N(0,λdiag(σ(S))N(0,\lambda\cdot\text{diag}(\sigma(\mathcal{S})) 中采样随机噪声向量,其中 λ\lambda 是一个标量超参数;在考虑真实源风格分布的情况下,设置高斯分布的标准差与 σ(S)\sigma(\mathcal{S}) 成正比,用于采样似是噪声。然后将采样的噪声添加到源风格中,构成不同的、似是而非的随机风格的 D\mathcal{D}。然后,我们在下一步从 D\mathcal{D} 中抽样固定数量的新风格。

新风格的选择 为了保证新风格的多样性,我们选择了一些没有被观察到的风格的近似分布很好地代表的新风格。设 P=PV\mathcal{P}'=\mathcal{P}\cup\mathcal{V} 是观察到的风格的集合,其中 V\mathcal{V} 是新风格队列中先前合成的风格的集合。为了量化新风格的质量,我们采用以下见证函数 :

g(x)=1DdiDk(x,di)1PpjPk(x,pj)(6)g(x)=\frac{1}{|\mathcal{D}|}\sum_{d_i\in\mathcal{D}}k(x,d_i)-\frac{1}{|\mathcal{P}'|}\sum_{p_j\in\mathcal{P}'}k(x,p_j) \tag{6}

  其中第一个项度量与候选新风格的相似度,第二个项度量与观察到的风格的相似度。一个最大化了见证功能的新风格将很好地代表新风格候选人,同时又与被观察风格截然不同。样本新风格 CD\mathcal{C}\subseteq\mathcal{D} 的评分函数为 :

L(C)=xlCg(xl)(7)L(\mathcal{C})=\sum_{x_l\in\mathcal{C}}g(x_l) \tag{7}

  此外,我们还采用了 log-行列式正则化器,它鼓励在优化过程中选择的新颖风格的多样性,并且被称为子模块。正则化器由下式正式给出 :

r(C)=logdetKC,C(8)r(\mathcal{C})=\log\det \text{K}_{\mathcal{C},\mathcal{C}} \tag{8}

  其中 KC,C\text{K}_{\mathcal{C},\mathcal{C}} 是核矩阵,其中所有 xi,xjCx_i,x_j\in\mathcal{C} 的条目 ki,j=k(xi,xj)k_{i,j}=k(x_i,x_j)。最后,我们选择最大化以下得分函数的新风格 :

maxCD,CmcL(C)+r(C)(9)\max_{\mathcal{C}\subseteq\mathcal{D},|\mathcal{C}|\le m_c}L(\mathcal{C})+r(\mathcal{C}) \tag{9}

  由于式 (9) 中的分数函数为单调子模,因此也采用一种贪心算法,选择最新颖的风格重复递增函数进行优化;然后将抽样的新风格存储在新风格队列中。

  综上所述,我们的新风格合成过程由这 3 个步骤组成,在整个学习过程中,每一次预定次数的迭代都要执行,不断寻找新风格。该过程对均值和标准差分量分别进行,以合成各自的新风格。

2.3 使用新风格数据训练

  在训练目标模型的过程中,通过动态注入合成的新风格,使输入图像的特征图风格多样化。根据前面的工作,我们首先通过实例规范化对特征映射进行规范化,然后将新风格注入到风格规范化的特征映射中。对于特征映射 RC×H×W\mathbb{R}^{C\times H\times W},这种风格注入由

StyIn(Z;a,b)=aZμ(Z)σ(Z)+b(10)\text{StyIn}(Z;a,b)=a\cdot\frac{Z-\mu(Z)}{\sigma(Z)}+b \tag{10}

  其中,a,bRCa,b\in\mathbb{R}^C 分别为标准差和均值的随机新风格。它可以应用于网络的多个卷积块,这将在章节 4.2 中进一步讨论。本节的其余部分描述了整体的训练过程和损失函数,包括新风格的注入。

  设 f=f(2)f(1)f=f^{(2)}\circ f^{(1)} 表示目标网络,并假设在 f(1)f^{(1)} 的输出中注入新的风格。给定源图像 X 及其单热标签向量 y 作为输入,通过最小化普通交叉熵损失来训练网络 :

Lceori=ylogf(X)(11)\mathcal{L}_{\text{ce}}^{\text{ori}}=-y^{\top}\log f(X) \tag{11}

  同时,计算源风格 μ(Z)\mu(Z)σ(Z)\sigma(Z),其中 Z=f(1)(X)Z=f^{(1)}(X),并分别存储在源风格队列中。然后,我们将相同的图像转发到网络中,同时向其特征映射 Z 注入新的风格,并对输出应用交叉熵损失 :

Lcesty=ylogf(2)(StyIn(f(1)(X)))(12)\mathcal{L}_{\text{ce}}^{\text{sty}}=-y^{\top}\log f^{(2)}(\text{StyIn}(f^{(1)}(X))) \tag{12}

  优化两个交叉熵损失使 f(2)f^{(2)} 具有风格不变性和良好的广义性。为了进一步提高泛化能力,我们还引入了损耗,迫使原始输入的软化预测与风格注入的软化预测之间保持一致。具体来说,损失被表述为预测之间的 kullback-leibler (KL) 发散 :

Lconsto2s=KL(f(X)/τf(2)(StyIn(f(1)(X)))/τ)(13)\mathcal{L}_{\text{const}}^{\text{o2s}}=\text{KL}\left(f(X)/\tau||f^{(2)}(\text{StyIn}(f^{(1)}(X)))/\tau\right) \tag{13}
Lconsts2o=KL(f(2)(StyIn(f(1)(X)))/τf(X)/τ)(14)\mathcal{L}_{\text{const}}^{\text{s2o}}=\text{KL}\left(f^{(2)}(\text{StyIn}(f^{(1)}(X)))/\tau||f(X)/\tau\right) \tag{14}

  其中 τ\tau 是温度超参数。将所有内容结合在一起,总目标由下式给出 :

Ltotal=(1w1)Lceori+w1Lcesty+w2(Lconsto2s+Lconsts2o)(15)\mathcal{L}_{\text{total}}=(1-w_1)\mathcal{L}_{\text{ce}}^{\text{ori}}+w_1\mathcal{L}_{\text{ce}}^{\text{sty}}+w_2\left(\mathcal{L}_{\text{const}}^{\text{o2s}}+\mathcal{L}_{\text{const}}^{\text{s2o}}\right) \tag{15}

  其中 w1w_1w2w_2 是平衡超参数。总之,网络是使用式 (15) 的目标进行训练的,同时,源风格存储在队列中。随着训练的进行,新风格合成步骤会定期执行,以不断寻找新风格。

3 实验

  暂时略。

4 个人感想

  十分有意思的想法 : 通过生成新的风格来强化域训练的泛化能力。但是,如何验证新构造出来的风格数据是“合理”的呢?这个问题值得进一步思考 (有没有可能引入 GAN 来完善相关工作)。