行人重识别:SVDNet行人检索

网络结构

作者所采用的基础网络为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直至收敛。
  • 重复RRI过程。

经过去相关约束处理后,权重向量是正交的,但是这时候不一定收敛的很好,因此需要松弛步骤,然后不断重复次过程。

扫描二维码关注公众号,回复: 3704363 查看本文章

为什么要用WWTWWT特征向量来代替权重,而不是直接用USUS来代替权重?

作者的回答是:SVD分解的奇异特征向量的符号是不确定的,因此特征投影到权重上后的方向是不确定的,因此用WWTWWT特征向量来代替权重。

学习机制

假设f为Eigenlayer之后的输出,则特征之间的欧式距离为

 

 

由于V为酉矩阵,因此USUS来替换W之后的相似性度量是不变的,即

 

 

作者的实验也表明了这点

 

 

实验

 

 

点评:SVD分解的想法很好,但是感觉略鸡肋,可能是为了发文章吧(望作者见谅),其实只需要将网络稍微修改下,softmax也能到82%。可参考前一篇博客http://blog.csdn.net/q295684174/article/details/78744969

猜你喜欢

转载自blog.csdn.net/wfei101/article/details/82794374