深度哈希-DHN

深度哈希-DHNDeepHashingN 源码 https github com zhuhan1236 dhn caf

大家好,欢迎来到IT知识分享网。

Deep Hashing Network for Efficient Similarity Retrieval AAAI 2016
源码:https://github.com/zhuhan1236/dhn-caffe

与上一篇文章类似,通过设计损失函数,使得最后全连接层的输出分布近似于二值{-1,+1}分布。不过这篇论文从理论上说明了为什么这样设计损失函数。

哈希方法的目标是得到二值编码,所以优化过程中经常会遇到离散取值的约束,因此通常来说无法使用基于梯度的方法对目标函数进行优化。为了简化问题,通常的做法是改用一个更宽松的约束,比如不再要求“二值码”是二值的,而是只要在一个规定的范围中即可。优化结束后,再对松弛过的“二值码”进行量化,得到最终的真二值码,深度哈希算法通常采用这种做法。

松弛(Relaxation)带来的问题

用论文中的话说:1、控制量化误差,如果最后一层的输出是任意分布的话,强制二值化成{-1,+1},显然会造成很大误差。论文用实验证实了这一结论。2、一般的会使用内积近似代替汉明距离来衡量图片之间的相似度。因为汉明距离只适用于二值码,而最后一层的输出为连续实数。对于一个二值码{-1,+1},汉明距离与内积有如下关系:

distH(hi,hj)=12(Khi,hj)



同样地,如果最后一层的输出不是近似二值分布的话,使用内积近似代替汉明距离会有很大误差。

如何设计损失函数

在Iterative Quantization (ITQ)中,为了减小量化误差,使用如下目标函数:

QITQ=||hisgn(hi)||2



论文在ITQ的基础上做了改进:

因为

hi


sgn(hi)
符号相同,所以


||hisgn(hi)||2=|||hi||sgn(hi)|||2=|||hi|1||2|||hi|1||1.(norm inequality)

所以 |||hi|1||1 为ITQ目标函数的上界,并且An important advantage of the proposed loss is that the L1-loss may encourage sparsity, that is, more hash bits maybe enforced to be {−1, 1} compared with the L2-loss。

附L1范数与L2范数的区别:L2范数是指向量各元素的平方和然后求平方根。使用L2范数的规则项 ||W||2 ,可以使得W的每个元素都很小,都接近于0,但与L1范数不同,它不会让它等于0,而是接近于0。

作者设计了pairwise cross-entropy loss

L=si,jS(log(1+exp(<zi,zj>))sij<zi,zj>)



其本质就是交叉熵损失函数:


L=si,jS(sijlog(σ(Ωij))+(1sij)log(1σ(Ωij)))



其中

Ωij=<zi,zj>,σ(Ωij)=11+eΩij
,总之根据损失函数,当

sij=0
时,要求

Ωij
很小,即不相似。反之当

sij=1
时,要求

Ωij
很大,即相似。这个损失函数为了使学习到的哈希函数能够保持语义相关性。参考: 交叉熵代价函数

接着设计了
pairwise quantization loss


Q=si,jS(|||zi|1||1+|||zj|1||1)

网络结构如下:

这里写图片描述

实验结果:

这里写图片描述
DHN-B:没有量化过程(直接使用实数特征来检索),代表该网络的性能上限。
DHN-Q:不加pairwise quantization loss
DHN-E:将pairwise cross-entropy loss 改成传统的损失函数: L=si,jS(sij1K<zi,zj>)2 (Liu et al.2012; Xia et al. 2014)

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/149614.html

(0)
上一篇 2025-03-23 12:45
下一篇 2025-03-23 13:00

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信