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
定义:
-
网络架构:
- 前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损失:
- 所使用的核函数被定义为PSD核(半正定的核函数)的一个凸组合
Supervised Hashing for Source Data
- hamming distance(汉明距离):
- 相似概率的函数如下:
- 使得两个样例相似(属于同一类)的时候,哈希码的hamming distance较小。不属于同一类的时候,hamming distance则较大。
- 似然函数:
- 通过最小化上述的表达式,就可以得到适当的哈希值
- 但是这是一个离散优化问题,优化起来有一定的的难度,所以作者引入了松弛变量
ui=ψ(xi) (就是网络输出的那个) - 但是这依然存在问题
- 近似误差(approximation error),当
⟨hi,hj⟩ 被⟨ui,uj⟩ 替代的时候 - 量化误差(quantization error),当实数编码
ui 被二进制化的时候。 - 为了解决近似误差,作者在网络的最后一层增加了一个
tanh() 作为**函数使得ui∈(−1,+1) - 为了解决量化误差,引入了量化损失
||ui−sgn(ui)||22
- 近似误差(approximation error),当
- 最终的优化目标:
Unsupervised Hashing for Target Data
- 作者使用一个概率相似度度量
⟨ui,yj⟩ 来学习具有判别能力的target domain上的映射。 - 一个理想的target output
uti 应该和大部分来自某个类(假设为jth 类)的source 样本相似。和大部分来自非jth 类的source 样本不相似(作者从每个类中抽取K 个样本,假设不失一般性的情况下)。 -
pij 为target 样本xi 被认为属于类jth 的概率: - 当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 的类中的样本相似:
Domain Adaptive Hash Network
- 综合以后的损失函数:
- 网络架构(预先使用VGG-F在ImageNet 2012上做了训练):
- 关于数据集Office-Home的细节自行去看论文吧
Experiments
源码
其余的实现细节就自行去查看论文了