Unsupervised Domain Adaptation with Residual Transfer Networks(2017)

来源:互联网 发布:百度域名 编辑:程序博客网 时间:2024/06/01 09:12

introduction

  • 作者认为,domain adaption(域适应)方法旨在通过学习domain-invariant feature(域不变特征)来桥接source domain和target domain,从而能够在target domain没有标签的情况下,利用source domain所学到的分类器对target domain进行预测。
  • 现在已经可以将domain adaption嵌入到deep feature学习的过程(该过程希望学得domain-invariant feature)当中了。
  • 先前的deep domain adaption(深度域适应)方法假定source domain上的分类器可以被直接通过学习得到的domain-invariant feature转换到target domain上来,但是作者认为这个假设在实际中太过于严格,因为检查source domain和target domain上的分类器是否可以共享通常是不可行的。
  • 因此,作者在更加一般的的情况下对domain adaption进行研究,其中,source classifier(source domain上的分类器)和target classifier(target domain上的分类器)之间的差异是一个小的perturbation function(扰动函数)。
  • 本文的目的是通过将分类器和特征的adaptation过程嵌入到一个统一的深层网络架构中,从有标记的source domain和未标记的target domain中学习得到adaptive classifiers(自适应分类器)和transferable feature(可转移特征)。
  • 作者从2015年的deep resudual learning中得到启发(可以去这篇博客看一下),并提出了一个叫做Residual Transfer Network(RTN)的新的框架,并假设source classifier和target classifier在一个很小的resdual function(残差函数,就是博客中的F(x))。
  • 作者通过将几层网络插入到深层网络当中来实现classifier adaptation(分类器适应),通过参考target classifier(?为什么参考它)来明确的学习resdual function。
  • 作者通过计算神经网络中几个层的feature的张量积,并且将它们嵌入到reproducing kernel Hilbert spaces(再生核希尔伯特空间)当中来匹配feature的适应(adaptation)(就是后面提到的MMD)

Relative Work

  • 近期的进展表明,深度网络所学习到的抽象特征只能减少域和域之间的差异,但是并不能够移除这种差异。

  • 深度学习和域适应的结合:

    • 在CNN中添加一个或者几个层,使这些层学习到的特征的分布相近
    • 或者添加一个full-connected的子网络来建立一个domain discriminator(域分类器),并且使网络所学习到的特征可以使domain discriminator混淆。
    • 但是以上这些方法都建立在“source classifier可以通过网络学习得到的domain-invariant feature 来直接地转换得到target classifier”这样一个假设当中。
    • 但是这个假设在source classifier和target classifier不能共享参数的时候不成立。当理想联合假设的组合误差(?the combined error of the ideal joint hypothesis)很大的时候,并不存在一个单一的分类器可以同时在source domain和target domain上有很好的表现。
  • residual network 相关:

    • 这个网络是一个拥有上百层的非常深的网络,学习了一个被称为 ΔF(X)的residual function(残差函数),最终结果是这个残差函数加上输入本身( identity mappings)的 relu
  • 作者希望在一个深度网络框架当中,通过residual function  ΔF(X)来桥接source classifier fS(x)和target classifier fT(x)
  • 作者将target classifier的输出直接给residual function作为输入,可以更有效率地获得source classifier和target classifier之间的联系。

Residual Transfer Networks

  • source domain:

    •  DS={(xSi,ySi)}nSi=1
    •  nS个labeled data
    • 服从的分布为 p
    • 希望学习到的分类器为 y=fS(x)
  • target domain:

    •  DT={xTj}nTj=1
    •  nT个unlabeled data
    • 服从的分布为 q,其中 qp
    • 希望学习到的分类器为 y=fT(x)
  • 因为分布 p(x,y)q(x,y),且分类器 fS(x)fT(x),这些mismatches(不相匹配)可以通过共通的adaptation来修复,使得domain adaptation更加有效。

  • 分类器:source domain上的empirical error(经验误差):

    minfS1nSi=1nSL(fS(XSi),ySi))

    其中 L(,)表示交叉熵损失函数。

  • 因为卷积层能够学习到一个可以在两个域中转换的普适的特征,所以作者决定对预先训练的卷积层所学到的特征fine-tune(微调)而不是直接adapt。

Feature Adaptation

网络架构:

  • 首先,CNNs之后加一个bottleneck layer(我查了一下,这个瓶颈层是为了减少feature的维度而被创建出来的。。。) fcb来减少feature的维度。

  • 之后使用multiple layers  L={fbc,fcc}的feature,在source domain上微调(fine-tune) CNNs。目的是为了让source domain和target domain更加相似。

    • 为了使mutiple layers L的adaptation进行得更加有效,作者建议使用mutiple layers L之间的张量积来做一个 lossless multi-layer feature fusion(无损多层特征融合)。
    • 定义: zSi=ΔlLxsli
    • 定义: zTi=ΔlLxtli
    • 我查了一下,这里的张量积大概是矩阵的张量积也就是克罗内克积,百度百科一下就可以知道。
    • 之后,作者之后利用最小化source domain和target domain之间Maximum Mean Discrepancy(MMD,最大平均差异)来做adaptation(域适应)(使用了kernel trick):
      minfS,fTDL(DS,DT)=i=1nsj=1nsk(zsi,zsj)n2s+i=1ntj=1ntk(zti,ztj)n2t2i=1nsj=1ntk(zsi,ztj)nsnt

      其中,特征核函数 k(z,z)=evec(z)vec(z)2/b是一个带宽为b的高斯核函数
  • 与DAN不同,作者使用了多层特征的MMD惩罚。作者认为他的优势这样可以获取到multilayer之间充分的互动(?can capture full interactions across multilayer features)并且能够更好地选择模型

Classifier Adaptation

  • 因为feature adaptation并不能够消除分类模型中的mismatch(不匹配),所以作者认为还需要学习分类器的adaptation来使得domain adaptation更加有效。
  • 作者假设classifier fs(x) ft(x)之间仅仅相差一个微小的perturbation function(扰动函数) Δf(x)
  • 其中 ft(x)=fs(x)+Δf(x)
  •  Δf(x)是一个仅由input feature x决定的函数。
  • 然而,这些方法需要target domain上的标签来学习这个perturbation function,无法在这个非监督域适应任务中使用。所以换成学习 fs(x)=ft(x)+Δf(x)这个函数。
  • 作者假设在target domain和source domain被合理地连接在一起后,perturbation function Δf(x)可以从source domain中标记的数据和target domain中不被标记的数据中共同学习得到。
  • 采取学习residual function ΔF(x)=ΔF(x)x(最终希望学习的函数是 ΔF(x)+F(x))而不知直接学习的原因是,二者学习的难度是不一样的。
  • 作者认为虽然identity mappings(就是之前提到的x直接作为学习到的函数本身)不太可能是最优的,但是依据这个identity mappings找到一个 perturbation function远比直接学习一个全新的函数要容易的多。residual learning(残差学习?)是成功训练一个非常深的网络的关键所在。

  • 作者基于上述的观察,在网络中加入了residual block(如网络架构图最右侧所示)

  • 推导运算:
    •  fS(x)为source classifier中 fcc层的输出, fT(x)为target classifier中 fcc层的输出
    • 但是 fS(x)(大写)被定义为: fS(x)=fT(x)+Δf(x)因为target domain没有标签所以如果选择 fT(x)会导致back propagation无法工作
    • 最终的输出都经过softmax 激活处理: fs(x)=Δσ(fS(x)) ft(x)=Δσ(fT(x)),其中 σ()为softmax,为了保证最终的输出为“可能性”。
    • Residual layer  fc1fc2作为全连接层,并保证 ft(x)不会偏离 fs(x)太远。
    • 但是即便如此,仍然不能够保证 ft(x)能够很好的切合target domain,因此作者利用entropy minimization principle(熵最小化原理)来优化参数,通过最小化各个类的条件分布 ftj(xti)=p(ytj=j|xti;ft)的熵来鼓励target domain上类之间的low-density separation(低密度分离?我的理解是输出更加趋向一个one-hot vector,因为one-hot vector的熵是最低的)
      minft1nti=1ntH(ft(xti))

      这就是entropy penalty(熵惩罚)。其中条件信息熵 H(ft(xti))=cj=1ftj(xtj)log(ftj(xtj)) c为类(label)的数目, j就是label, ftj(xtj)=p(ytj=j|xti;ft)为给定数据时标签是 j的概率,也就是类的后验概率。不了解信息熵可以看一看这里:信息熵,条件熵。

Residual Transfer Network

  • 分类器 fS最终的学习公式(整合):
    fS=minft+Δf1nsi=1nsL(fs(xsi),ysi)+γnti=1ntH(ft(xti))+λDL(Ds,Dt)

    其中, λ γ是一对tradeoff parameters,用来前面权衡张量MMD惩罚和entropy惩罚的比重。

Experiments

  • 作者提到说他使用的是动量为0.9的mini-batch SGD,其中在RevGrad(Reverse Gradient)实现的学习率退火策略:
    • 因为计算成本太高,不去搜索合适的学习率
    • 随着SGD的进行网络的学习率会进行自适应调整: ηp=η0(1+αp)β,其中 p随着训练的进行,线性地从0变为1,α=10,β=0.75,η=0.01
    • 性能:
阅读全文
0 0
原创粉丝点击