Deep Hashing Network for Efficient Similarity Retrieval

本文介绍了一种深度哈希网络(DHN),它通过改进传统的监督哈希方法,利用CNN学习图像特征并直接生成二进制码,减少量化误差。DHN在NUS-WIDE、CIFAR-10和Flickr数据集上的实验表明其在相似性检索任务上的优势。

Deep Hashing Network for Efficient Similarity Retrieval

Introduce

这是发表在AAAI-2016的一篇paper,下载地址
在本篇论文之前的监督Hash方法,第一步通过手动学习或者机器学习得到特征向量,第二步学习二进制的Hash Code。然而,这种方法存在明显的缺点,首先提取的特征并不一定完善,并且学习的二进制的Hash Code也有量化的误差。所以作者提出了Deep Hashing Network(DHN)。DHN模型主要从以下四个部分对之前的方法进行改进:

  • 使用CNN来学习图像的特征。
  • 使用CNN的全连接层来生成二进制码。
  • 减少交叉熵损失,使原始空间相似的图片在海明空间也相似。
  • 减少量化误差提高Hash Code的质量。
    在下面详细介绍一下改进过程:

Deep Hashing Network

相似性检索中,给定训练集N个points { xi}Ni=1 ,每一个是一个D维的特征向量, xRD 。每一对特征向量之间有一个相似性的label sij ,如果 xi xj 相似, sij=1 ;如果 xi xj 不相似, sij=0 。我们的目标就是学习到非线性的hashing function f:xh{ 1,1}Kh=f(x)
在本篇论文中,作者提出了如下图所示的网络结构,网络的输入是一组 { xi,xj,sij} 三元组。
图1 网络结构
figure1 显示的图片是AlexNet的修改,原始AlexNet网络结构con1-con5是5个卷积层,fc6-fc8是三个全连接层。对于每一个全连接层l总会学习到一个非线性的mapping。

zli=al(Wlzl1i+bl)

这里 zli 是原始的数据 xi 在l层的表示, Wl,bl 分别表示l-th 层网络的权重和偏置, al 表示激活函数,这里采用了ReLU函数 al(x)=max(0,x) 。由于需要将原始的数据映射为K维的hash code,作者修改了网络的第8层,将AlexNet的fc8的softmax classifier变成了有K个隐节点的fch layer。 hi=zli,l=8 。为了保证fch layer的输出的范围在[-1,1]之间,作者将该层的激活函数修改为 al(x)=tanh(x) 。为了保证fch layer输出的hash code 性能良好,需要保持hash code 和原始的S中相似性一致,并且输出的二进制码量化误差最小。
一对二进制码 hi hj ,海明距离和内积之间有以下的性质
distH(hi,hj)=12(Khi,hj)

图像的label已知的,通过label可以得到相似性的矩阵 S={ sij} ,那么最好的目标就是在相似性矩阵已知的情况下,根据贝叶斯公式可知,后验的概率与先验概率和似然函数的乘积正相关:
logp(H|S)logp(S|H)p(
目前没有直接的站内引用内容可以用于回答关于Covariance Attention Guidance Mamba Hashing在跨模态检索方面的问题。但一般来说,在跨模态检索领域,相关的哈希方法旨在将不同模态的数据(如图像、文本等)映射到低维的哈希码空间,以实现高效的检索。 Covariance Attention Guidance Mamba Hashing可能具有以下特点用于跨模态检索: - **协方差注意力机制**:可以捕捉不同模态数据之间的协方差关系,更好地挖掘模态间的相关性,从而在生成哈希码时保留更多有用的跨模态信息。 - **Mamba结构**:Mamba可能为模型带来高效的计算能力和更好的序列建模能力,有助于处理不同模态数据中的序列特征,提高哈希码的质量。 要获取关于Covariance Attention Guidance Mamba Hashing用于跨模态检索的详细资料,可以通过以下途径: - **学术数据库**:如IEEE Xplore、ACM Digital Library、ScienceDirect等,搜索相关的学术论文。 - **开源代码平台**:如GitHub,查找是否有该方法的开源实现和相关文档。 示例代码(这里只是一个概念性的伪代码,并非真实可运行代码): ```python # 假设这是一个Covariance Attention Guidance Mamba Hashing模型类 class CAGMambaHashing: def __init__(self, input_dim, hash_dim): # 初始化模型参数 self.input_dim = input_dim self.hash_dim = hash_dim # 定义协方差注意力层和Mamba层 # 这里只是示意,实际需要具体实现 self.covariance_attention = CovarianceAttention() self.mamba_layer = MambaLayer() self.output_layer = OutputLayer(hash_dim) def forward(self, x_modality1, x_modality2): # 前向传播 attn_output = self.covariance_attention(x_modality1, x_modality2) mamba_output = self.mamba_layer(attn_output) hash_code = self.output_layer(mamba_output) return hash_code ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值