论文阅读理解 - Deep Learning of Binary Hash Codes for Fast Image Retrieval

Deep Learning of Binary Hash Codes for Fast Image Retrieval

1. 摘要

  • 针对图像检索问题,提出简单有效的监督学习框架
  • CNN网络结构能同时学习图像特征表示以及 hash-like 编码函数集合
  • 利用深度学习以逐点(point-wise)的方式,得到二值哈希编码(binary hash codes),以快速检索图像;对比卷积pair-wised方法,在数据大小上具好的扩展性.
  • 论文思想,当数据标签可用时,可以利用隐层来学习能够表示图像类别标签的潜在语义的二值编码

2. 方法

这里写图片描述
Figure 1: 基于分层深度搜索的图像检索框架.

方法主要包括三部分:

  • Module1 - 在ImageNet上有监督地预训练CNN网络,以学习得到丰富的mid-level图像表示特征;
  • Module2 - 添加隐层(latent) 网络层,通过在目标图像数据集finetuning网络,该隐层可以学习得到图像的 hashes-like 编码表示;
  • Module3 - 利用 hashes-like 二值编码和 F7 层特征,采用 coarse-to-fine 策略检索相似图片.

2.1 Hash-like 二值编码学习

假设网络的最终输出分类层 F8 F 8 依赖于 h h 个hidden attributes,各属性是 0 或 1(0表示不存在,1表示存在). 如果图像的二值激活编码相似,其应该具有相同标签.

如Figure 1所示,这里在 F7 F8 F 8 层间嵌入一个隐层 H H .

  • 该隐层H 是一个全连接层,其神经元激活情况由后面的 F8 F 8 层来控制, F8 F 8 层编码了图像语义并用于最终分类.

    • 该隐层 H H 不仅提供了F7层丰富特征的抽象表示,还联系着 mid-level 特征和 high-level 语义.
    • 该隐层 H H 采用的是Sigmoid函数,以使激活值在 {0, 1} 之间.

    为了适应数据集,在目标数据集 fine-tune CNN网络.

    • 初始权重设为ImageNet数据集预训练的CNN权重;
    • 隐层H和最终分类层 F8 F 8 的权重采用随机初始化.
    • 无需对深度CNN模型修改太多,即可同时学习得到图像的视觉特征描述子,和 hashing-like 函数,以进行有效的图像检索.

      2.2 基于分层深度搜索的图像检索

      采用 coarse-to-fine 搜索策略进行快速精确的图像检索.

      • 首先,检索得到相似 high-level 语义特征的候选图片集,即,具有隐层得到隐含二值激活值想死;
      • 然后,进一步过滤具有相似外表的图片,主要是基于最深的 mid-level 图像特征表示进行相似性排名.
      2.2.1 Coarse-level 搜索

      给定图像 I I , 首先提取隐层输出作为图像特征,记为 Out(H). 通过设定阈值,即可以得到其二值编码. 即,对于二值激活的每一个字节 j=1,2,...,h j = 1 , 2 , . . . , h ( h h 为隐层的节点数), H的输出二值编码:

      Hj=1,if Outj(H)0.5;otherwise Hj=0 H j = 1 , i f   O u t j ( H ) ≥ 0.5 ; o t h e r w i s e   H j = 0

      Γ=I1,I2,...,In Γ = I 1 , I 2 , . . . , I n 表示用于检索的 n n 张图片组成数据集,其每张图片对应的二值编码记为ΓH=H1,H2,...,Hn , 其中 Hi{0,1}h H i ∈ { 0 , 1 } h .

      给定待查询图片 Iq I q 及其二值编码 Hq H q , 如果 Hq H q HiΓH H i ∈ Γ H 的Hamming 距离小于阈值,得到一个有 m m 张候选图片的图片池,P={I1c,I2c,...,Imc}.

      2.2.2 Fine-level 检索

      给定待查询图片 Iq I q 及候选图片池 P={Ic1,Ic2,...,Icm} P = { I 1 c , I 2 c , . . . , I m c } ,采用 F7 F 7 层提取的图片特征来从候选图片池 P P 中确认前 k 张图片.

      Vq V q VPi V i P 分别表示待查询图片 q q 和图片池中候选图片 Iic 的特征向量,则其欧氏距离相似性计算为:

      si=||VqVPi|| s i = | | V q − V i P | |

      如果欧氏距离越大,则两张图片的相似性越强. 通过对候选图片进行排序,即可得到最终的检索图片.

      3. 实验结果

      3.1 数据集

      • MNIST Dataset - 10类手写数字,0~9,共 60000张训练图片,10000测试图片,每张数字图片都归一化为 28×28 28 × 28 的灰度图片.

      • CIFAR-10 Dataset - 10类物体,每一类有 6000 张图片,一种60000张图片,其中50000张作训练,10000张作测试.

      • Yahoo-1M Dataset - 一共1124087张商品图片,116类服装类别,如 TOP,Dress,Skirt等. 如Figure2.
        这里写图片描述

      3.2 检索结果

      这里写图片描述
      这里写图片描述

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
"Deep Hashing for Compact Binary Codes Learning" 是一篇关于深度哈希学习的论文。该论文提出了一种用于学习紧凑二进制码的深度哈希算法。以下是该论文中深度哈希算法的公式推导过程: 1. 首先,给定一个训练集 $\{x_i\}_{i=1}^n$ 和它们的标签 $\{y_i\}_{i=1}^n$,其中 $x_i$ 是输入数据,$y_i$ 是输出标签。 2. 然后,利用神经网络学习一个将输入数据映射到二进制码的哈希函数 $h(x_i)$,其中 $h(x_i)$ 是一个 $k$ 位的二进制向量,$k$ 是哈希码的长度。 3. 在深度哈希学习中,我们使用多个哈希函数来生成多个二进制码。因此,我们学习 $m$ 个哈希函数,每个哈希函数对应一个二进制码 $B_j$。 4. 对于每个输入数据 $x_i$,我们得到 $m$ 个哈希码 $B_j^i$,其中 $j=1,2,...,m$。 5. 然后,我们将这些哈希码组合成一个紧凑的二进制码 $b_i$,即 $b_i = [B_1^i, B_2^i, ..., B_m^i]$。 6. 确定损失函数,使得学习到的二进制码可以最大程度地保留数据之间的相似度。 7. 定义损失函数 $L$,其中 $L$ 由两部分组成:量化损失和分类损失。 8. 量化损失用于衡量哈希码的质量,分类损失用于保留数据之间的相似度。 9. 量化损失可以表示为:$L_{quan} = \sum_{i=1}^n\sum_{j=1}^m\frac{1}{2}(B_j^i - h_j(x_i))^2$,其中 $h_j(x_i)$ 是第 $j$ 个哈希函数的输出。 10. 分类损失可以表示为:$L_{cls} = -\sum_{i=1}^n\sum_{j=1}^n w_{ij}y_iy_j\log\sigma(b_i^Tb_j)$,其中 $w_{ij}$ 是样本 $i$ 和 $j$ 之间的相似度权重,$\sigma$ 是 sigmoid 函数。 11. 最终的损失函数可以表示为:$L = \lambda L_{quan} + L_{cls}$,其中 $\lambda$ 是量化损失的权重。 12. 在训练过程中,我们使用反向传播算法来优化损失函数,学习到最优的哈希函数和二进制码。 这就是 "Deep Hashing for Compact Binary Codes Learning" 论文中深度哈希算法的公式推导过程。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值