Feature Learning Based Deep Supervised Hashing with Pairwise Labels

来源:互联网 发布:php 新特性 好处 编辑:程序博客网 时间:2024/05/29 17:25

Feature Learning Based Deep Supervised Hashing with Pairwise Labels

现在实验室要求每周阅读一篇paper然后写成总结,作为一个博客的受益者,我也想写成博客的形式,将收获不局限于分享在小组内。但是,作为一个知识的传播者,如果传播错误的知识误导别人还不如不做。所以写每一篇博客都是忐忑不安,特别是国内一些厉害课题组的发表的paper,生怕误解作者的原意,还拿出来正儿八经的解读,贻笑大方。作为一个进阶的菜鸟,希望大家看到错误能够留言指正,我也要努力发表属于自己的paper。

Introduction

本篇是发表在IJCAI16上的一篇关于Deep Hash 的一篇Paper。下载地址
作者在本篇论文中提出了一种新的Deep Hash方法,DPSH(deep pairwise-supervised hashing),通过深度学习从pair-wise label中学习到图像的特征和hash code,并且在后面的实验中与其他方法比较,取得了较好的结果。
DPSH主要有以下几个方面:

  • 通过CNN的conv层学习图像特征
  • 使用网络的全连接层学习hash function
  • 设计合理的loss function使pair-wise中label相似的话,hash code尽可能相似,也就是相似的label,hash code之间的海明距离比较小,不相似的label,hash code 之间海明距离比较大。

Notation And Problem Definition

在论文中,z代表向量,Z代表矩阵,ZT代表矩阵的转置,||.||2代表向量之间的欧氏距离,sgn(.)代表sgn函数:

sgn(x){1,1,x>0x<0

假定有n个图片χ={xi}ni=1xi代表了第i张图片。因为监督的hash方法,图片都是有标签的,可以通过标签之间是否相似构造出相似性矩阵S={sij},sij{0,1}。当两个图片相似时,sij为1。当两个图片不相似时,sij=0。可以通过图片的label获取相似性矩阵。
hash function的目标是每一张图片学习到二进制码bi{1,1}c,c是二进制码的长度。并且生成的二进制码保持原有的相似性,即相似的图片的hash code之间的海明距离比较小,不相似的图片之间的hash code的海明距离比较大。整个网络的主要目标就是学习出c个hash function,保证上述的特性。

Model and Learning

网络结构如Figure1 所示:


图1
图 1

作者使用了CNN-F网络模型,上下两个CNN使用具有相同的网络结构,共享同样的权重。网络的具体参数如table 1所示:


表1

Object Function

给定所有点的二进制码B={bi}ni=1,点对之间的似然函数可以定义如下:

psij|B={σ(Ωij),1σ(Ωij),sij=1sij=0

上述公式中Ωij=12bTibjσ(Ωij)=11+eΩijbi{1,1}c
考虑所有的S,作者提出了如下的最优化目标:
minBJ1=logp(S|B)=sijSp(sij|B)=sijS(sijΩijlog(1+eΩij))(1)

上述目标最小化,恰好等价于相似的图片之间的海明距离最小。由于变量是离散的,无法求导,所以需要进行进一步的处理,一般的方法就是松弛变量,把{1,1}松弛到[1,1]。在本篇论文中,作者提出了一种新的求解方法,公式(1)可以写成如下的形式:
minB,UJ2=sijS(sijΘijlog(1+eΘij))(2)s.t.ui=bi,i=1,2,3,...,nuiRc×1,i=1,2,3,....nbi{1,1}c,i1,2,3,...n

上式中,Θ=12uTiuj U=uini=1
minB,UJ3=sijS(sijΘijlog(1+eΘij))+ηi=1n||biui||22(2)

η是正则化项。
在CNN网络中:
ui=WTϕ(xi,;θ)+v

W是权重,v是偏置,ϕ(xi,;θ)代表第7层全连接层和xi有关的输出,将ui代入到公式(2)中,可以得到一个end-to-end的hash模型:
minB,v,W,θJ=sijS(sijΘijlog(1+eΘij))+ηi=1n||bi(WTϕ(xi,;θ)+v)||22(3)

Learning

在公式(3)中,目标函数主要有四个参数,W,v,θ,B。作者采用了minibatch算法,每次从训练集中选取部分集合,进行学习。参数更新的过程中,作者采用了alternating method。每次保持其他参数固定,优化一个参数。
对于参数与bi,可以通过下面公式直接得到:

bi=sgn(ui)=sgn(WTϕ(xi;θ)+v),(4)

对于W,v,θ,使用BP的方式进行更新。目标函数对ui的导数如下所示:
Jui=12j;sijS(aijsij)uj+12j;sijS(ajisji)uj+2η(uibi)

aij=σ(12uTiuj)。然后利用上公式对W,v,θ进行求导:
JW=ϕ(xi;θ)(Jui)T(5)

Jv=Jui(6)

Jϕ(xi;θ)=WJui(7)

因为mini-batch训练过程中,只得到了训练数据的hash code,对没有在训练集中的数据,直接采用公式(8)得到hash code。
bq=sgn(xq)=sgn(WTϕ(xq;θ)+v),

整个算法的过程如图2所示:


图2
图 2

Experiment

作者实验中主要使用了两个数据集:

  • CIFAR-10 60000张图片,32*32大小。总共10类,每类共有图片6000张。
  • NUS-WIDE 270000张图片,总共81类,每张图片有多标签,作者使用了21类,每类至少5000张图片。
    对手工特征,CIFAR-10提取了500维的gist特征,NUS-WIDE提取了1134维的混合特征。在deep hash 方法中,作者将原始的图片resize到224*224作为网络的输入。
    对CIFAR-10数据集,作者每类选取100张图片作为测试集,监督的方法,每类选取500张图片作为训练集,无监督的方法其他的图片作为训练集。在NUS-WIDE数据集中,作者从21从常用的label中每类100张图片作为测试集,监督的方法每类选取500张图片作为训练集。和之前的方法相比,实验结果如下图3所示:

    图3
    图 3

DPSH0是HPSH的一种版本,在学习过程中不更新参数的版本。
超参数η在不同的数据集中设置不同,从图4可以看出,map的结果和超参数的设计有关。


这里写图片描述
图 4

Conclusion

与其他的deep hash相比,都是使用了CNN的conv层获取图像的特征,使用全连接层获取hash function。作者设计了新的目标函数的优化方法和参数更新的过程,并通过实验得到了更优的结果。

0 0
原创粉丝点击