您的位置:首页 > Web前端

Feature Learning Based Deep Supervised Hashing with Pairwise Labels

2016-10-17 16:36 507 查看

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=1,xi代表了第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

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



Object Function

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

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

上述公式中Ωij=12bTibj,σ(Ωij)=11+e−Ωij,bi∈{−1,1}c

考虑所有的S,作者提出了如下的最优化目标:

minBJ1=−logp(S|B)=−∑sij∈Sp(sij|B)=−∑sij∈S(sijΩij−log(1+eΩij))(1)

上述目标最小化,恰好等价于相似的图片之间的海明距离最小。由于变量是离散的,无法求导,所以需要进行进一步的处理,一般的方法就是松弛变量,把{−1,1}松弛到[−1,1]。在本篇论文中,作者提出了一种新的求解方法,公式(1)可以写成如下的形式:

minB,UJ2=−∑sij∈S(sijΘij−log(1+eΘij))(2)s.t.ui=bi,∀i=1,2,3,...,nui∈Rc×1,∀i=1,2,3,....nbi∈{−1,1}c,∀i∈1,2,3,...n

上式中,Θ=12uTiuj U=uini=1

minB,UJ3=−∑sij∈S(sijΘij−log(1+eΘij))+η∑i=1n||bi−ui||22(2)

η是正则化项。

在CNN网络中:

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

W是权重,v是偏置,ϕ(xi,;θ)代表第7层全连接层和xi有关的输出,将ui代入到公式(2)中,可以得到一个end-to-end的hash模型:

minB,v,W,θJ=−∑sij∈S(sijΘij−log(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的导数如下所示:

∂J∂ui=12∑j;sij∈S(aij−sij)uj+12∑j;sij∈S(aji−sji)uj+2η(ui−bi)

aij=σ(12uTiuj)。然后利用上公式对W,v,θ进行求导:

∂J∂W=ϕ(xi;θ)(∂J∂ui)T(5)

∂J∂v=∂J∂ui(6)

∂J∂ϕ(xi;θ)=W∂J∂ui(7)

因为mini-batch训练过程中,只得到了训练数据的hash code,对没有在训练集中的数据,直接采用公式(8)得到hash code。

bq=sgn(xq)=sgn(WTϕ(xq;θ)+v),

整个算法的过程如图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

DPSH0是HPSH的一种版本,在学习过程中不更新参数的版本。

超参数η在不同的数据集中设置不同,从图4可以看出,map的结果和超参数的设计有关。



图 4

Conclusion

与其他的deep hash相比,都是使用了CNN的conv层获取图像的特征,使用全连接层获取hash function。作者设计了新的目标函数的优化方法和参数更新的过程,并通过实验得到了更优的结果。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Deep-Hash
相关文章推荐