论文笔记及公式推导 《Supervised Discrete Hashing》

来源:互联网 发布:淘宝纸箱用什么机器 编辑:程序博客网 时间:2024/06/05 17:31

转载自http://jikaichen.com/2016/05/31/notes-on-sdh/,仅用作个人学习,如需删除,请联系本人。

原论文提出了一种解离散哈希问题的最优化方法,推出其闭式解。
笔者在阅读该论文的过程中,理解公式推导的过程中遇到了一些问题,现在将论文公式推导的详细内容记录于此。

原论文链接来自这里
http://arxiv.org/pdf/1508.07148.pdf

定义最优化问题

对于nn个样本的数据集X=xiniX=xiin, 我们要将其每个样本编码成 LL位的二进制码, B=bini1,1L×nB=biin∈−1,1L×n,即

xibi1,1L

一般做哈希问题需要利用类别信息,现定义一个线性多分类模型

y=G(b)=Wb=[w1b,,wCb]

其中 wkRL×1wk∈RL×1 是第 kk 类的参数向量,总共有C个类,y是各个类别的激活值,最大值对应的类标即为该样本所属的类标。

定义 Problem(1) 如下:

minB,W,Fi=1nL(yi,Wbi+λW2s.t.bi=sgn(F(xi)),i=1,,n..

其中F()是哈希函数,在接下来的讨论中还需要对它进行学习。λ 和它所在的是正则化项。

利用类似拉格朗日的方法,我们将Problem(1) 转化为Problem(2) :

minB,W,Fi=1nL(yi,Wbi+λW2+vi=1nbiF(xi)2 s.t.bi1,1L

其中 vv惩罚系数。上述最优化问题仍然是非凸的,但是我们可以利用类似coordinate descent的方法,固定其它变量,最优化某一变量,再更换另外的变量,以此迭代。

求解问题

对 F(x)建模

这里可以采用任何适当的方法来构造F(x), 原文采用核函数的方法:

F(x)=Pϕ(x)F(x)=P⊤ϕ(x)

其中
ϕ(x)=exp(xa1/σ)exp(xam/σ)ϕ(x)=[exp(‖x−a1‖/σ)⋮exp(‖x−am‖/σ)]

其中ajmj=1是从样本集合随机选取的中心点, PRm×L是映射矩阵,也是参数矩阵。

求解P

原文中直接给出了 P的闭式表达式,并没有推导过程,现将推导过程呈列如下:
上述最优化问题中的目标函数第一项和第二项与 P没有任何关系,而系数 v也可以去掉,将Problem(2)重写如下:

minPi=1nbiPϕ(xi)2

这个问题等价于线性多分类问题,把这里的 bi看成ground-truth 标签, ϕ(xi) 是核映射过后的样本,P为参数矩阵.

再把上述问题重写成矩阵形式如下:

minPPϕ(X)B2

矩阵各个元素的平方和可以写成矩阵的迹的形式:

minPtr((Pϕ(X)B)(Pϕ(X)B))

接下来对上述表达式关于 PP 求导。

PJ(P)=P[tr((Pϕ(X)B)(Pϕ(X)B))]=P[tr(ϕ(X)PPϕ(X)ϕ(X)PBBPϕ(X)+BB)]=P[tr(ϕ(X)PPϕ(X))tr(ϕ(X)PB)tr(BPϕ(X))+tr(BB)]=P[tr(ϕ(X)PPϕ(X))2tr(BPϕ(X))+tr(BB)]=[ϕ(X)ϕ(X)P+ϕ(X)ϕ(X)P2ϕ(X)B]

令上式等于0,解得:
P=(ϕ(X)ϕ(X))1ϕ(X)B

这里对上式求导的过程做几点说明:

  • 矩阵的迹具有旋转不变性和转置不变性,上述推导中第三行到第四行中运行了此性质,
  • 矩阵迹的性质详情参考维基百科trace词条的内容
    :https://en.wikipedia.org/wiki/Trace_(linear_algebra)
  • 矩阵的迹的求导过程中,普通函数求导的乘法法则在这里同样适用,上述推导中对第四行的第一项运用了该法则,即先对 PP 求导,再对 PP⊤ 求导,第四行第三项与PP无关,求导直接丢弃。
  • 关于含有矩阵迹的求导的详细内容可以参考该讲义的内容 http://cal.cs.illinois.edu/~johannes/research/matrix%20calculus.pdf
  • 另外,普通矩阵的求导法则参见维基百科中matrix calculus词条的内容。
    https://en.wikipedia.org/wiki/Matrix_calculus

求解WW

将上述Problem(2)重写成矩阵形式的Problem(3)

minB,W,FYWB2+λW2+vBF(X)2 s.t.B1,1L×n

与求解P同理,求得:

W=(BB+λI)1BYW=(BB⊤+λI)−1BY⊤

求解BB

Problem(3)展开,去掉与 BB 无关的第二项,可以得到:

minBY22tr(YWB)+WB2+v(B22tr(BF(X))+F(X)2)s.t.B1,1L×n

又可以写成Problem(4)

minBWB22tr(BQ)s.t.B1,1L×n

其中Q=WY+vF(X)Q=WY+vF(X)

Problem(3)转化为Problem(4)做几点说明:

  • YWB2=Y22tr(YWB)+WB2‖Y−W⊤B‖2=‖Y‖2−2tr(Y⊤W⊤B)+‖W⊤B‖2, 这里可以理解为完全平方公式。这里的模是Frobenius norm,即每个元素的平方和。原矩阵的每一个元素都可以拆成完全平方,再求和即为等号右边的情况。
  • B2=L×n‖B‖2=L×n, 每个元素都是正负1,平方都为1.
  • 去掉与 BB 无关的项即可得到Problem(4)

令 zz⊤ 为 B 的 ll 行, B是 B 除掉 z一行的矩阵。同理,q,Q,
,v,W,
q⊤,Q,v⊤,W,
 也是如此。
Problem(4)的第一项:

WB2=tr(BWWB)=const+zv2+2vWBz=const+2vWBz

这是原文的推导,笔者理解了半天愣是没理解,只能将自己理解的推导过程给出:

WB2=[Wv][Bz]2=WB+vz2=WB2+vz2+2tr(zvWB)=const+zv2+2tr(vWBz)=const+zv2+2tr((Wv)Bz)=const+zv2+2vWBz=const+2vWBz

对上述推导做几点说明:

  • 由于求的是矩阵的模,不妨将 W拆成上面的形式,即改变矩阵每一行的位置并不改变其模的大小,但是 B 也要做相应改变。
  • 第五行到第六行的推导中,Bz 是一个列向量,Wv 是跟其同维的列向量,那么 (Wv)Bz 就是一个标量,标量的迹就是它本身。
  • zv2=tr(vzzv)=nvv=const‖zv⊤‖2=tr(vz⊤zv⊤)=nv⊤v=const

Problem(4)的第二项:

tr(BQ)=tr(BQ+zq)=tr(BQ)+tr(zq)=const+qz

因此,Problem(4)可以重写成Problem(5)
minz(vWBq)zs.t.z1,1n

此问题为最小化问题,则其最优解为系数向量符号函数的相反数,即:
z=sgn(qBWv)