转载自http://jikaichen.com/2016/05/31/notes-on-sdh/,仅用作个人学习,如需删除,请联系本人。
原论文提出了一种解离散哈希问题的最优化方法,推出其闭式解。
笔者在阅读该论文的过程中,理解公式推导的过程中遇到了一些问题,现在将论文公式推导的详细内容记录于此。
原论文链接来自这里
http://arxiv.org/pdf/1508.07148.pdf
定义最优化问题
对于
一般做哈希问题需要利用类别信息,现定义一个线性多分类模型
其中
定义 Problem(1) 如下:
其中
利用类似拉格朗日的方法,我们将Problem(1) 转化为Problem(2) :
其中
求解问题
对
F(x)
建模
这里可以采用任何适当的方法来构造
其中
其中
求解
P
原文中直接给出了
上述最优化问题中的目标函数第一项和第二项与
这个问题等价于线性多分类问题,把这里的
再把上述问题重写成矩阵形式如下:
矩阵各个元素的平方和可以写成矩阵的迹的形式:
接下来对上述表达式关于
令上式等于0,解得:
这里对上式求导的过程做几点说明:
- 矩阵的迹具有旋转不变性和转置不变性,上述推导中第三行到第四行中运行了此性质,
- 矩阵迹的性质详情参考维基百科trace词条的内容
:https://en.wikipedia.org/wiki/Trace_(linear_algebra) - 矩阵的迹的求导过程中,普通函数求导的乘法法则在这里同样适用,上述推导中对第四行的第一项运用了该法则,即先对
P 求导,再对P⊤ 求导,第四行第三项与P 无关,求导直接丢弃。 - 关于含有矩阵迹的求导的详细内容可以参考该讲义的内容 http://cal.cs.illinois.edu/~johannes/research/matrix%20calculus.pdf
- 另外,普通矩阵的求导法则参见维基百科中matrix calculus词条的内容。
https://en.wikipedia.org/wiki/Matrix_calculus
求解
W
将上述Problem(2)重写成矩阵形式的Problem(3):
与求解
求解
B
将Problem(3)展开,去掉与
又可以写成Problem(4):
其中
对Problem(3)转化为Problem(4)做几点说明:
-
∥Y−W⊤B∥2=∥Y∥2−2tr(Y⊤W⊤B)+∥W⊤B∥2 , 这里可以理解为完全平方公式。这里的模是Frobenius norm,即每个元素的平方和。原矩阵的每一个元素都可以拆成完全平方,再求和即为等号右边的情况。 -
∥B∥2=L×n , 每个元素都是正负1,平方都为1. - 去掉与
B 无关的项即可得到Problem(4)
令
,v⊤,W,
Problem(4)的第一项:
这是原文的推导,笔者理解了半天愣是没理解,只能将自己理解的推导过程给出:
对上述推导做几点说明:
- 由于求的是矩阵的模,不妨将
W 拆成上面的形式,即改变矩阵每一行的位置并不改变其模的大小,但是B 也要做相应改变。 - 第五行到第六行的推导中,
B′z 是一个列向量,W′v 是跟其同维的列向量,那么(W′v)⊤B′z 就是一个标量,标量的迹就是它本身。 -
∥zv⊤∥2=tr(vz⊤zv⊤)=nv⊤v=const
Problem(4)的第二项:
因此, Problem(4)可以重写成 Problem(5)
此问题为最小化问题,则其最优解为系数向量符号函数的相反数,即: