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

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

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

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

定义最优化问题

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

xibi1,1L

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

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

其中  wkRL×1 wk∈RL×1 是第  k k 类的参数向量,总共有 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

其中  v v惩罚系数。上述最优化问题仍然是非凸的,但是我们可以利用类似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))

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

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

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

求解 W W

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

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

与求解 P 同理,求得:

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

求解 B B

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

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.
  • 去掉与  B B 无关的项即可得到Problem(4)

令  z z⊤ 为  B  的  l l 行,  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)

猜你喜欢

转载自blog.csdn.net/qq_27245709/article/details/78186093