论文笔记: Deep Quantization Network for Efficient Image Retrieval
灵魂三问
论文提出的问题
由于quantization error, 哈希编码将不能准确地表达特征
论文做了什么?
- 用多池化层卷积神经网络,来表达图片
- 用全连接的哈希层来生成二进制哈希编码
- 用相应的交叉熵层来学习相似性
- 用配对的量化损失来控制哈希质量
论文达到了什么效果?
通过在标准的哈希检索数据集上的实验,文中的方法超过了最新的哈希方法。
深度哈希网络 Deep Hashing Network
相似检索通常是给一系列为N个点的的数据集 { x i } i = 1 N \left\{\boldsymbol{x}_{i}\right\}_{i=1}^{N} { xi}i=1N, 其中每一个点都是一个D维的特征向量 x ∈ R D \boldsymbol{x} \in \mathbb{R}^{D} x∈RD
所以我们的目标就是找一个非线性的哈希函数 f : x ↦ h ∈ { − 1 , 1 } K f: \boldsymbol{x} \mapsto \boldsymbol{h} \in\{-1,1\}^{K} f:x↦h∈{ −1,1}K来编码,将每一个 x x x编码成一个K-比特的哈希码。其中 S = { s i j } \mathcal{S}=\left\{s_{i j}\right\} S={ sij}通常由语义来构建。
所以整个结构以配对 ( x i , x j , s i j ) \left(\boldsymbol{x}_{i}, \boldsymbol{x}_{j}, s_{i j}\right) (xi,xj,sij)的形式作为输入。
模型
作者从Alexnet网络开始,作者将AlexNet网络中全连接层 fc8换成了 fch层,包括了K个隐形单元,也就是将fc7层转换为了一个K维的哈希编码。并把这一层的输出结果叫做 z i 8 z_i^8 zi8也就是第八层的输出,也就是哈希编码。
作者将输出挤压到 [ − 1 , 1 ] [-1,1] [−1,1]上,通过hyperbolic tangent(tanh)函数。
这个文章中,作者使用了pairwise-relationship,以及在Bayesian框架下控制了量化差异。
我们用汉明距离(Hamming distance)表示两个二进制编码的距离 dist H ( h i , h j ) = 1 2 ( K − ⟨ h i , h j ⟩ ) \operatorname{dist}_{H}\left(\boldsymbol{h}_{i}, \boldsymbol{h}_{j}\right)=\frac{1}{2}\left(K-\left\langle\boldsymbol{h}_{i}, \boldsymbol{h}_{j}\right\rangle\right) distH(hi,hj)=21(K−⟨hi,hj⟩)
我们用MLP最大似然估计估计 H H H, 也就是MAP 估计
log p ( H ∣ S ) ∝ log p ( S ∣ H ) p ( H ) = ∑ log p ( s i j ∣ h i , h j ) p ( h i ) p ( h j ) \begin{aligned} \log p(\boldsymbol{H} \mid \mathcal{S}) & \propto \log p(\mathcal{S} \mid \boldsymbol{H}) p(\boldsymbol{H}) \\ &=\sum \log p\left(s_{i j} \mid \boldsymbol{h}_{i}, \boldsymbol{h}_{j}\right) p\left(\boldsymbol{h}_{i}\right) p\left(\boldsymbol{h}_{j}\right) \end{aligned} logp(H