-
paper下载地址:https://arxiv.org/abs/1703.05693
-
code下载地址:https://github.com/syfafterzy/SVDNet-for-Pedestrian-Retrieval
网络结构
作者所采用的基础网络为resnet-50,在最后一个全连接层的前面加了一个Eigenlayer,其实就是一个全连接层,只不过对参数做了SVD分解,因此称为SVDNet。
对全连接层做SVD分解的原因是:全连接层是以向量内积形式进行特征的相似性度量或者说分类,全连接层的权重之间存在相关性的,学出来的特征也是有相关性的,而在Person Re-ID的普遍测试中是以欧式距离进行相似性度量的,因此存在一定的误差。
训练过程
-
step0:用加了全连接层的resnet-50在之前训好的resnet-50上进行fine-tune直至收敛。
-
Restraint and Relaxation Iteration (RRI):
- 去相关:将新加的全连接层的权重进行SVD分解
W=USVTW=USVT
用US代替W,然后用WWTWWT的特征向量代替权重。 - 约束:固定本层参数继续fine-tune直至收敛。
- 松弛:不固定本层参数继续fine-tune直至收敛。
- 去相关:将新加的全连接层的权重进行SVD分解
- 重复RRI过程。
经过去相关和约束处理后,权重向量是正交的,但是这时候不一定收敛的很好,因此需要松弛步骤,然后不断重复次过程。
为什么要用WWTWWT特征向量来代替权重,而不是直接用USUS来代替权重?
作者的回答是:SVD分解的奇异特征向量的符号是不确定的,因此特征投影到权重上后的方向是不确定的,因此用WWTWWT特征向量来代替权重。
学习机制
假设f为Eigenlayer之后的输出,则特征之间的欧式距离为
由于V为酉矩阵,因此USUS来替换W之后的相似性度量是不变的,即
作者的实验也表明了这点
实验
点评:SVD分解的想法很好,但是感觉略鸡肋,可能是为了发文章吧(望作者见谅),其实只需要将网络稍微修改下,softmax也能到82%。可参考前一篇博客http://blog.csdn.net/q295684174/article/details/78744969