论文笔记:Conditional Coupled Generative Adversarial Networks for Zero-Shot Domain Adaptation

本文提出了一个比较有趣的 ZSDAZSDA(zero-shot domain adaptation) 的学习策略。

  • 假如现在我们有两个 UIT(Style Transfer)UIT(Style~Transfer) 的任务,
    论文笔记:Conditional Coupled Generative Adversarial Networks for Zero-Shot Domain Adaptation
  • 原本我们可以构建两个 CycleGANCycleGAN 就可以解决上面的问题,或者把数据混合在一起,训练一个更高鲁棒性的 CycleGANCycleGAN.
  • 但实际上,有时候我们并没有右下角的目标域的图像,这时候我们希望基于上面的 gray num.gray~num.color num.color~num. 数据集训练一个 UITUIT 模型,它也能够应用到下面的 gray lettercolor lettergray~letter \rightarrow color~letter,但现实中,本质上仍旧是统计学的深度学习算法并不能有这样的泛化能力。
  • 但如果我们知道了 gray num.gray lettergray~num.\sim gray~letter 之间的某种对应关系 AlignsAlign_s,那么,color num.color lettercolor~num.\sim color~letter 之间也必然存在某种对应关系 AligntAlign_t。我们可以利用这样的对应关系来作为监督信息,代替缺失的 color lettercolor~letter 数据。因为存在:[gray letter][Aligns][gray num.][UIT][color num.][Alignt][color letter] [gray~letter]\rightarrow [Align_s] \rightarrow [gray~num.]\rightarrow [UIT]\rightarrow[color~num.]\rightarrow[Align_t]\rightarrow[color~letter]

所以,理论上,这两个对应关系的限制是充分的。


1. CoCoGAN

首先,我们需要了解 CoGAN
论文笔记:Conditional Coupled Generative Adversarial Networks for Zero-Shot Domain Adaptation

  • 其基本思想是,除去样式,两个域在 content 方面是共享的,因此有两个生成器,起始于同一个 content latent space,同时两个网络共享底层(深层特征 content),异于高层(浅层特征 appearance);同样有两个鉴别器,异于底层,共享高层。
  • 因此,其目标函数为:
    maxg1,g2minf1,f2V(f1,f2,g1,g2)Ex1px1[logf1(x1)]+Ezpz[log(1f1(g1(z)))]+Ex2px2[logf2(x2)]+Ezpz[log(1f2(g2(z)))] \max_{g_1,g_2} \min_{f_1,f_2} V(f_1,f_2,g_1,g_2)\equiv \Bbb E_{x_1\sim p_{x_1}}[-\log f_1(x_1)]+\Bbb E_{z\sim p_z}[-\log (1-f_1(g_1(z)))] + \Bbb E_{x_2\sim p_{x_2}}[-\log f_2(x_2)]+\Bbb E_{z\sim p_z}[-\log (1-f_2(g_2(z)))] 其中,gig_i 是生成器/解码器,fif_i 是鉴别器,i=1,2i=1,2

其次,我们可以理解 CoCoGAN
论文笔记:Conditional Coupled Generative Adversarial Networks for Zero-Shot Domain Adaptation
同样的,所谓的 ConditionalConditional 是指加了一个 cc 用于决定让模型处理哪一个任务。

  • 我们称 gray num.color num.gray~num.\rightarrow color~num. 是一个(与目标任务)无关的任务(irrelevant task/IRIR
  • 我们称另一个 gray lettercolor lettergray~letter\rightarrow color~letter 是目标/相关任务(relevant task/RR
  • c=0c=0 时,处理 IRIRc=1c=1 时,处理 RR.

假如我们四个域的图像数据都有:Xsir,Xtir,Xsr,Xtr{X_s^{ir},X_t^{ir},X_s^r,X_t^r},那么可以直接使用 CoGAN 的对抗 loss,即,我们使用
maxgs,gtminfs,ftV(fs,ft,gs,gt)Exspxs[logfs(xs,c)]+Ezpz[log(1fs(gs(z,c),c))]+Extpxt[logft(xt,c)]+Ezpz[log(1ft(gt(z,c),c))] \max_{g_s,g_t} \min_{f_s,f_t} V(f_s,f_t,g_s,g_t)\equiv \Bbb E_{x_s\sim p_{x_s}}[-\log f_s(x_s,c)]+\Bbb E_{z\sim p_z}[-\log (1-f_s(g_s(z,c),c))] + \Bbb E_{x_t\sim p_{x_t}}[-\log f_t(x_t,c)]+\Bbb E_{z\sim p_z}[-\log (1-f_t(g_t(z,c),c))] 但实际上,第三项 Extpxt[logft(xt,c)]E_{x_t\sim p_{x_t}}[-\log f_t(x_t,c)] 只能取到 c=0c=0,那么这样的训练是不充分的,结果是 gtg_t 过分偏向于 gray num.color num.gray~num.\rightarrow color~num.,对于 c=1c=1 的时候,要么 gt(z,1)g_t(z,1) 也是 彩色数字,要么就什么也不是,而不是理想的彩色字母。

因此,我们需要增加新的限制——

2. Representation Alignment

在高层表征中,如 encoderencoderdecoderdecoder 之间。

rs(Xsir,c=0)rt(Xtir,c=0)real data        rt(T(Xsir),c=0)fake data \underbrace{r_s(X_s^{ir},c=0) \equiv r_t(X_t^{ir},c=0)}_{real~data} ~~~~~~~~\approx \underbrace{r_t(T(X_s^{ir}),c=0)}_{fake~data} rs(Xsr,c=1)rt(Xtr,c=1)real data        rt(T(Xsr),c=1)fake data \underbrace{r_s(X_s^{r},c=1) \equiv r_t(X_t^{r},c=1)}_{real~data} ~~~~~~~~ \approx \underbrace{r_t(T(X_s^{r}),c=1)}_{fake~data} 假如我们认为下面的对齐存在:rs(Xsir,c=0)rs(Xsr,c=1) r_s(X_s^{ir},c=0) \sim r_s(X_s^{r},c=1) 则必然会有: rt(Xtir,c=0)rt(Xtr,c=1) r_t(X_t^{ir},c=0) \sim r_t(X_t^{r},c=1) 即在两个源域 IRSIR_SRSR_S 以某种方式对齐,则其对应的目标域 IRTIR_TRTR_T 必定也以某种方式对齐。
但是由于我们没有:rt(Xtr,c=1)r_t(X_t^{r},c=1),所以需要近似地在合成图像 fake datafake~data 上去对齐
那如果我们现在希望用 task classifier\rm task~classifier 去表达这种限制,可以有:

l(.)l(.) 为 logistics 函数
在源域上有:maxhsLsExspXsir[l(hs(xs))]+ExspXsr[l(hs(xs))]Align: real data in S+Ezpz[l(hs(gs(z,c=0)))]+Ezpz[l(hs(gs(z,c=1)))]Align: fake data in S \max_{h_s} L_s \equiv \underbrace{ {\Bbb E}_{x_s\sim p_{X_s^{ir}}}[l(h_s(x_s))] + {\Bbb E}_{x_s\sim p_{X_s^{r}}}[l(h_s(x_s))] }_{{\rm Align}:~real~data~in~S} + \underbrace{ {\Bbb E}_{z\sim p_z}[l(h_s(g_s(z,c=0)))] + {\Bbb E}_{z\sim p_z}[l(h_s(g_s(z,c=1)))]}_{{\rm Align}:~fake~data~in~S} 同时,在目标域上有:maxhtLtExtpXtir[l(ht(xt))]Align: real data in T+Ezpz[l(ht(gt(z,c=0)))]+Ezpz[l(ht(gt(z,c=1)))]Align: fake data in T \max_{h_t} L_t \equiv \underbrace{ {\Bbb E}_{x_t\sim p_{X_t^{ir}}}[l(h_t(x_t))]}_{{\rm Align}:~real~data~in~T} + \underbrace{ {\Bbb E}_{z\sim p_z}[l(h_t(g_t(z,c=0)))] + {\Bbb E}_{z\sim p_z}[l(h_t(g_t(z,c=1)))]}_{{\rm Align}:~fake~data~in~T}


这里有个疑问,既然在这里有 a×ba2+b22a+b2a\times b \le {{a^2+b^2}\over{2}} \le {{a+b}\over{2}},不应该是最大化 abab 则必然 最大化 a+ba+b?为什么这里使用的是加法而不是乘法?
此外就是,上面的两条式子是为了好看,实际上只有 Align: real data in S{\rm Align}:~real~data~in~SAlign: fake data in T{\rm Align}:~fake~data~in~T 是起作用的。这就是我们要对齐的东西。

这里也给出了,当我们试图对齐两个分布的时候,可以通过引入 task classifier 来拉近,目标是让两个分布的输入趋近于同一个值(在这里是 logistics 值都 1\rightarrow 1),
但是这样会容易导致分类器对任何输入都输出是 11 ,这是不对的,从作者的设置来看,这个分类器的 loss 是不对的,只用在了鉴别器的优化。即:
(fs^,ft^,hs^,ht^)=arg minfs,ft,hs,htV(fs,ft,gs^,gt^)(Ls+Lt) (\hat{f_s},\hat{f_t},\hat{h_s},\hat{h_t})=\argmin_{f_s,f_t,h_s,h_t} V(f_s,f_t,\hat{g_s},\hat{g_t})-(L_s+L_t) (gs^,gt^)=arg maxgs,gtV(fs^,ft^,gs,gt)(\hat{g_s},\hat{g_t})=\argmax_{g_s,g_t} V(\hat{f_s},\hat{f_t},g_s,g_t) 但无论如何,本文提出了一个比较好的 DADA 的学习策略,通过另外一组无关的任务,构建一个 aligementaligement 来作为额外的限制。


这一节我们带大家系统认识一下几个手写数据集:
论文笔记:Conditional Coupled Generative Adversarial Networks for Zero-Shot Domain Adaptation
总共四个数据集({DM,DF,DN,DE}\{ D_M,D_F,D_N,D_E \}),但是,实际上每个数据集只有 GrayGray 版本,我们称之为 GDomainG-Domain(第1行),我们需要制作不同 style 的其他 3 个 版本/domains。

  • 制作 ColorColor 版本(第2行)CDomainC-Domain

对于每一张灰度图 IRh×w×1I\in\Bbb R^{h\times w\times 1},从彩色图像数据集 BSDS500 中选择一张图像,随机 crop 出一个块 PRm×n×3P\in \Bbb R^{m\times n\times3},然后合并:Ic=IPI_c=|I-P|

  • 制作 EdgeEdge 版本(第3行)EdomainE-domain

对彩色图像使用 Canny edge detector
Ie=canny(Ic)I_e=canny(I_c)

  • 制作 NegativeNegative 版本(第4行)NDomainN-Domain

In=255II_n=255-I


这一节我们介绍实验

1. baseline

  • ZDDAZDDA 这是另外一个唯一使用 DL 于 ZSDA 任务的方法
  • CoCoGAN w/o TCoCoGAN~w/o~T 不使用对应关系作为额外限制的 CoCoGANCoCoGAN

2. 模型评价指标

同样以最开始的例子讲述:

  • 得到训练后的模型 gs,gtg_s, g_t
  • c=1c=1,随机采取一些随机数 zz,获取 x~sr=gs^(z,c=1)\widetilde{x}_s^r=\hat{g_s}(z,c=1)x~tr=gt^(z,c=1)\widetilde{x}_t^r=\hat{g_t}(z,c=1),我们认为 x~sr,x~tr\widetilde{x}_s^r,\widetilde{x}_t^r 是同一个字母。
  • 利用已有的 XsrX_s^r 的数据集训练一个字母分类器 Cs(xsr)C_s(x_s^r)
  • 用这个分类器 Cs(xsr)C_s(x_s^r) 去对 {x~sr}\{\widetilde{x}_s^r\} 做识别,也就得到了 {x~tr}\{\widetilde{x}_t^r\} 的标签
  • 用这些标签信息去训练一个字母分类器 Ct(x~tr)C_t(\widetilde{x}_t^r)
  • 用这个鉴别器去对 XtrX_t^r 作分类,根据该数据集本身的 GTGT 计算 Ct(xtr)C_t(x_t^r) 分类的准确度

3. 实验结果

论文笔记:Conditional Coupled Generative Adversarial Networks for Zero-Shot Domain Adaptation
结果当然是碾压对方其他两个 baselinesbaselines.