[AAAI 2014] Supervised Hashing via Image Representation Learning [paper] [code]
Rongkai Xia , Yan Pan, Hanjiang Lai, Cong Liu, Shuicheng Yan.html
以前的哈希方法,大都使用手工的图像特征(如GIST等)做为图像的特征表达, 可是这些手工特征是采用无监督的方式提取的,难以很好得保存原始图片的语义信息。而深度深度神经网络能够很好得表达图像特征信息,所以做者便提出了基于深度的哈希检索方法——CNNH。算法
论文中,做者提出了一种监督哈希方法——CNNH,能够同时学习到图像的特征表达以及哈希函数。网络
CNNH具备两个阶段,Stage 1将类似矩阵分解为低维的哈希矩阵H,获得每一个样本对应的哈希编码。可是这个过程并无学习到哈希函数,所以没法对新的图像进行哈希编码;Stage 2利用Stage 1获得的哈希编码,以及每一个样本对应的类别标签做为ground-truth来训练网络,从而获得哈希函数。假设Stage 1的哈希编码有r个比特位,样本的类别数有c个,那么网络输出层的节点就共有(r + c)个输出节点。函数
CNNH的输入为原始的图片信息,假设网络已经训练完毕后,对于一张新的测试图片,CNNH输出层的前r个节点就是该图片所对应的哈希编码,后c个节点则表示了图片的类别信息。学习
根据类别标签得到类似矩阵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。ui
算法流程以下:编码
Stage 2利用Stage 1获得的哈希编码,以及每一个样本对应的类别标签做为ground-truth来训练神经网络。spa
CNNH网络具备三个卷积层,分别有32, 64, 128 filters。输出层有(r + c)个节点,其中r为哈希编码的比特数,c为数据集的类别数。类别标签的引入使得网络具备了迁移学习的能力,可以更好得学习到图像的特征表达。在训练完毕后,全链接层所对应的值就是每张图片的特征向量。