[cvpr2017]Deep Hashing Network for Unsupervised Domain Adaptation

introduction

  • 作者的框架(Domain Adaptive Hashing (DAH) )通过学习source domain和target domain的信息哈希码来进行分类(数据量很庞大,所以考虑到了哈希,可以利用哈希的快速查询和低内存使用)。
  • 作者在一个新的数据集——Office-Home——上进行试验,这个数据集有来自4个域的图像信息(15500图像65个类),作者希望正式自己的算法在多重的迁移学习中能够有优秀的性能。
  • 本文仅限于非监督
  • 哈希将高维的数据转换为紧凑的二进制代码,并且为类似的数据项生成类似的二进制代码。
  • 作者推荐使用一个深层网络来输出二进制哈希码(而不是概率值)来用于分类。
  • 作者认为在网络的最后一层输出哈希值而不是概率有两个优点:
    • 哈希值可以用于没有标签的target domain上的数据的唯一损失函数(unique loss function)的建立
    • 预测期间,可以将测试样本的哈希值与训练样本的哈希值进行比较,以获得更加健壮(robust)的类别预测
  • 作者用以下的组件来寻来深层网络:
    • 对source domain上的数据进行监督性的hash损失,确保来自同一个类的source 样本具有相似的哈希值
    • 对target domain上的数据进行无监督的熵损失( entropy loss ),使得每个target 样本与一个正确的source domain上的类对应,并且和别的类不同
    • 通过使用多内核MMD(multi-kernel Maximum Mean Discrepancy (MK-MMD)),来学习网络内部的可转移特征,以最小化source domain和target domain之间的分布差异(distribution difference)。

Domain Adaptive Hashing Networks

  • 定义:
    [cvpr2017]Deep Hashing Network for Unsupervised Domain Adaptation_第1张图片

  • 网络架构:
    [cvpr2017]Deep Hashing Network for Unsupervised Domain Adaptation_第2张图片

    • 前5层卷积层,后三层全连接层
    • source domain的使用监督哈希损失(supervised hash loss),target domain的使用非监督熵损失(unsupervised entropy loss)
    • hash-fc8层之后学习的是二进制哈希码 hi{1,+1}d ,由上述的两个损失函数共同驱动更新。
    • supervised hash loss确保了唯一并且有判别性的哈希值,即,如果 xi xj 属于相同的类别,则它们的哈希值 hi hj 相似,否则不同。
    • unsupervised entropy loss则是基于source domain和target domain的特征表示(fc8层输出的那些特征向量)将source domain和target domain上数据的散列值对齐。
    • 作者把网络的输出记为 ψ(x)Rd ,并转换为哈希码 h=sgn(ψ(x)) ,其中 sgn() 是符号函数。
    • 类后验概率(样本 x 的标签为 y )记为 f(x)=p(y|h)
    • 使用函数 f() 来对target domain进行预测
    • 为了使得source domain和target domain的特征表示足够相似,作者在source domain和target domain的全连接层之间上加了MMD损失。

Reducing Domain Disparity

  • 作者的模型中,cov1-cov5层是对source domain和target domain通用的,但全连接层是分开针对source domain和target domain的,或者说 task-specific 的,因此在迁移之前需要调整。作者在三个全连接层之间都加了多层MK-MMD损失:
    [cvpr2017]Deep Hashing Network for Unsupervised Domain Adaptation_第3张图片
    [cvpr2017]Deep Hashing Network for Unsupervised Domain Adaptation_第4张图片
    • 所使用的核函数被定义为PSD核(半正定的核函数)的一个凸组合

Supervised Hashing for Source Data

  • hamming distance(汉明距离):
    [cvpr2017]Deep Hashing Network for Unsupervised Domain Adaptation_第5张图片
  • 相似概率的函数如下:
    [cvpr2017]Deep Hashing Network for Unsupervised Domain Adaptation_第6张图片
    • 使得两个样例相似(属于同一类)的时候,哈希码的hamming distance较小。不属于同一类的时候,hamming distance则较大。
  • 似然函数:
    [cvpr2017]Deep Hashing Network for Unsupervised Domain Adaptation_第7张图片
    • 通过最小化上述的表达式,就可以得到适当的哈希值
    • 但是这是一个离散优化问题,优化起来有一定的的难度,所以作者引入了松弛变量 ui=ψ(xi) (就是网络输出的那个)
    • 但是这依然存在问题
      • 近似误差(approximation error),当 hi,hj ui,uj 替代的时候
      • 量化误差(quantization error),当实数编码 ui 被二进制化的时候。
      • 为了解决近似误差,作者在网络的最后一层增加了一个 tanh() 作为激活函数使得 ui(1,+1)
      • 为了解决量化误差,引入了量化损失 ||uisgn(ui)||22
  • 最终的优化目标:
    [cvpr2017]Deep Hashing Network for Unsupervised Domain Adaptation_第8张图片

Unsupervised Hashing for Target Data

  • 作者使用一个概率相似度度量 ui,yj 来学习具有判别能力的target domain上的映射。
  • 一个理想的target output uti 应该和大部分来自某个类(假设为 jth 类)的source 样本相似。和大部分来自非 jth 类的source 样本不相似(作者从每个类中抽取 K 个样本,假设不失一般性的情况下)。
  • pij 为target 样本 xi 被认为属于类 jth 的概率:
    [cvpr2017]Deep Hashing Network for Unsupervised Domain Adaptation_第9张图片
  • 当target 样本 xi 仅仅和其中一个类相似而和其余的类不相似时,它的概率向量 pi=[pi1,...,piC]T 趋向于one-hot向量(one-hot向量内部的元素仅由一个为1,剩下全部为0)
  • 作者假设所有的 pi 向量是一个one-hot向量(已被称为低熵概率向量low entropy probability vectors)
  • 作者引入一个熵损失函数,来使得这个向量更加接近one-hot 向量(one-hot 向量的熵很低),是target 样本的输出仅仅和其中一个source 的类中的样本相似:
    [cvpr2017]Deep Hashing Network for Unsupervised Domain Adaptation_第10张图片

Domain Adaptive Hash Network

  • 综合以后的损失函数:
    [cvpr2017]Deep Hashing Network for Unsupervised Domain Adaptation_第11张图片
  • 网络架构(预先使用VGG-FImageNet 2012上做了训练):
    [cvpr2017]Deep Hashing Network for Unsupervised Domain Adaptation_第12张图片
  • 关于数据集Office-Home的细节自行去看论文吧

Experiments

源码
其余的实现细节就自行去查看论文了

你可能感兴趣的:(domain,adaptation)