[CVPR 2015] Simultaneous Feature Learning and Hash Coding with Deep Neural Networks [paper]网络
Hanjiang Lai, Yan Pan, Ye Liu, Shuicheng Yan.ide
NINH方法分为三个步骤:(1)经过一个卷积网络获得中间图像特征;(2)经过divide-and-encode模块获得每张图片的哈希编码;(3)获得图像对的triplet ranking loss,再经由反向传播更新网络。函数
输入为图像对\((I, I^-, I^+)\),其中\(I\)为查询图像,\(I^-\)为与\(I\)不类似的图像,\(I^+\)为与\(I\)类似的图像。这种输入形式能够更好得表达类似信息“与\(I^-\)相比,图像\(I\)与\(I^+\)更类似”。Triplet ranking hinge loss定义为:学习
为了便于优化,加入松弛技巧——将Hamming norm替换为L2 norm。获得新的损失函数以下:优化
损失函数关于\(F(I)、F(I^-)、F(I^+)\)的导数为:ui
由于损失函数的求导过程很是简单,所以能够容易结合进神经网络的反向传播过程当中。编码
Shared Sub-Network使用相同的神经网络结构以及相同的参数获得triplet图像对中的每一张图像的特征表达。网络结构和参数以下表所示:spa
在该部分,一种替代的策略是对于图像\(I\)使用单独的网络结构和参数,而图像\(I^-\)和\(I^+\)使用相同的网络结构和参数。可是论文中的实验证实,对三个图像使用相同的网络结构和参数的表现会因为这种替代策略。设计
Divide-and-Encode(DAE)经过Shared Sub-Network获得每张图片的特征向量后,将这个向量切片成r个部分,每一个部分再经过全链接层链接到一个节点,最后经过sigmoid函数转化为[0, 1]以内的值。经过上述步骤,即可以获得一张图片r比特的哈希编码。在这个过程当中,由于每一个哈希编码是由特征向量的子部分获得的,哈希编码之间的冗余性少,有利于图像的检索。3d
这个部分另外一种策略简称为FC,将整个特征向量经过全链接层直接链接到r个节点,再借由sigmoid函数获得图片的哈希编码。显然这种策略下,每一位哈希编码都利用到了整个特征向量的信息,容易形成冗余。论文的实验也证实了DAE的表现会因为FC。