zoukankan      html  css  js  c++  java
  • 【Deep Hash】CNNH

    [AAAI 2014] Supervised Hashing via Image Representation Learning [paper] [code]
    Rongkai Xia , Yan Pan, Hanjiang Lai, Cong Liu, Shuicheng Yan.

    1. Overcome

    之前的哈希方法,大都使用手工的图像特征(如GIST等)作为图像的特征表达, 但是这些手工特征是采用无监督的方式提取的,难以很好得保存原始图片的语义信息。而深度深度神经网络可以很好得表达图像特征信息,因此作者便提出了基于深度的哈希检索方法——CNNH。

    2. Contribute

    • 第一个采用深度神经网络解决哈希检索问题;
    • 采用coordinate descent method学习数据集的近似哈希编码,效率高,计算速度快;
    • 在学习哈希函数的同时可以得到图像的特征表达。

    3. Algorithm

    论文中,作者提出了一种监督哈希方法——CNNH,可以同时学习到图像的特征表达以及哈希函数。

    CNNH具有两个阶段,Stage 1将相似矩阵分解为低维的哈希矩阵H,得到每个样本对应的哈希编码。但是这个过程并没有学习到哈希函数,因此无法对新的图像进行哈希编码;Stage 2利用Stage 1得到的哈希编码,以及每个样本对应的类别标签作为ground-truth来训练网络,从而得到哈希函数。假设Stage 1的哈希编码有r个比特位,样本的类别数有c个,那么网络输出层的节点就共有(r + c)个输出节点。

    CNNH的输入为原始的图片信息,假设网络已经训练完毕后,对于一张新的测试图片,CNNH输出层的前r个节点就是该图片所对应的哈希编码,后c个节点则表示了图片的类别信息。

    Stage 1

    根据类别标签获得相似矩阵S,根据KSH中的结论,(H_{i·})(H_{j·})的汉明距离与内积$H_{i·}H_{j·}^T $是一一对应的,因此可以得到如下目标优化函数:

    其中,为了解决优化问题,令(H ∈ [−1,1]^{n×q})>。

    之后,通过coordinate descent method方法每次单独对(H_{i,j})进行更新。为了确保每次更新的(H_{ij})不超过[-1, 1]的范围,对更新步长d加入以下操作。这个操作确保了在对(H_{ij})更新时,值不会超过[-1, 1],如果d小于(H_{ij})与边界的距离,则取d,如果大于则取-1或1。

    算法流程如下:

    Stage 2

    Stage 2利用Stage 1得到的哈希编码,以及每个样本对应的类别标签作为ground-truth来训练神经网络。

    CNNH网络具有三个卷积层,分别有32, 64, 128 filters。输出层有(r + c)个节点,其中r为哈希编码的比特数,c为数据集的类别数。类别标签的引入使得网络具有了迁移学习的能力,能够更好得学习到图像的特征表达。在训练完毕后,全连接层所对应的值就是每张图片的特征向量。

  • 相关阅读:
    Array
    StringBuffer
    String
    字节流
    正则表达式
    coursera 机器学习 linear regression 线性回归的小项目
    立个FLAG!
    排序题目练习(Ignatius and the Pincess IV、排序、Clock、排名)
    codeforces 1006
    codeforces
  • 原文地址:https://www.cnblogs.com/CSLaker/p/10096630.html
Copyright © 2011-2022 走看看