SVDNet for Pedestrian Retrieval
文章链接: arXiv:1703.05693
代码链接:syfafterzy/SVDNet-for-Pedestrian-Retrieval
知乎链接:https://zhuanlan.zhihu.com/p/29326061
这篇文章认为,神经网络提取的特征经常会比较冗余,不够正交化。文章的思路虽然用在了reid里,但是可以通用。
做法非常简单,分为3步,称之为Restraint and Relaxation Iteration (RRI):
1、去相关——每次训练模型收敛之后,对特征表达层的权矩阵W进行奇异值分解,即W=USV',然后,用US去取代原来的W,这时,W变成了一个正交阵(每个权向量彼此正交),且新的权向量是原来权矩阵WW'的本征向量。经过这样一次去相关之后,原本已经收敛的模型偏离原先的局部最优解、在训练集上的分类损失变大了。
2、紧张训练(Restraint)——固定住步骤1中的W不更新,学习其它层参数,直至网络重新收敛。需要注意的是,在这种情况下,网络会收敛到一个次优解:因为它有一层的W是受限制。因此,在接下来,我们会取消这个限制,继续训练。
3、松弛训练(Relaxation)——在步骤2之后,取消W固定的限制,这个时候,网络会发现对于拟合训练样本会这个目标会有一个更好的解:请注意,仅仅是针对拟合训练样本这个目标。我们实验发现,这个模型使用在训练集上(包含全新的ID)时,它的泛化能力是相对较弱的。
而在步骤3之后,W里的权向量重新变的相关起来。因此,我们把这3步迭代起来,形成RRI,直最终收敛。