前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >学界 | ICCV 2017 spotlight论文解读:如何提高行人再识别的准确率

学界 | ICCV 2017 spotlight论文解读:如何提高行人再识别的准确率

作者头像
AI科技评论
发布2018-03-14 11:09:53
1K0
发布2018-03-14 11:09:53
举报
文章被收录于专栏:AI科技评论

AI科技评论按:本文作者孙奕帆,首发于知乎专栏「行人重识别」,AI科技评论获其授权转载。

文章链接:https://arxiv.org/abs/1703.05693

代码链接:https://github.com/syfafterzy/SVDNet-for-Pedestrian-Retrieval

一、背景简介

近年来,行人再识别问题(Person-reID)研究热度逐渐上升。与人脸识别相比,它在采集图像时不需要行人主动配合,在安防等领域具有极大的应用潜力。基于深度学习的行人再识别方法,在近几年快速进步,在绝大部分公开数据集上,深度学习特征均超过了手工设计特征。这篇文章的工作主要围绕利用如何更好地学习的深度特征,提高行人再识别的准确率进行。然而,这篇文章实际上没有具体针对行人再识别的特有问题进行分析、优化,笔者认为该方法在小数据集问题上,该方法具有一般性意义,并且,该方法对CNN特征的物理意义开展了一些有趣的思考。

二、Motivation

首先需要说明的是,SVDNet基于这样一个对CNN权向量的简单解读:假设CNN的一层网络,其输入是I,输出是O,权矩阵是W,那么O=W'*I运算是在做线性投影,而W中所含的权向量则是一组投影基向量。当训练一个用于提取re-ID问题中行人特征的深度卷积神经网络(CNN)时,与在其它所有典型的深度学习训练一样,通常所学到的权向量是“杂乱无章”的,这种杂乱无章体现在,网络同一层中的权向量,通常是存在较强的相关性(注意不是线性相关linear dependent)。这种相关性,对于特征表达可能会造成不必要甚至是非常有害的冗余。例如下图中,假设网络用于提取特征的特征层含有3个权向量,红色和粉色所代表的的权向量几何上更靠近,而蓝色的权向量相对较远,那么,当一个行人图像进入网络中后,它会最终投影到这3个权向量上,形成一个3维的特征,而在红色和粉色上的投影结果将会非常接近。这就使得,在蓝色上的投影结果相较之下无足轻重了,很有可能造成一些误判。

因此,我们希望对于特征表达层(该层的输出作为行人图像的特征),它的权向量是正交的。这里说远一点关于深度学习中的正交约束。其实,正交约束在深度学习中近几年并不少见。例如ICLR2016年的Reducing Overfitting in Deep Networks by Decorrelating Representations(arXiv:1511.06068),以及同样ICCV2017年的一篇工作arXiv:1511.06068。此外,诸如whitened network,以及ICML2017年的generalized whitened network,也都可以认为利用了正交化在深度学习种可能带来的好处。不过,值得注意的是,这些工作都是让把feature不同维度的值当成一个变量,希望不同维度上的变量是相互独立的。而SVDNet这篇工作避开了这个做法,希望权向量是正交的。在paper中,出于严谨的考虑,没有解释这两种做法的差异。笔者认为,这样做实际上是有巧妙意义的。受限于深度学习的训练方式,对特征施加正交约束时,只能在一个minibatch里去求feature的协方差矩阵,并要求该矩阵是对角阵,这种做法本身是无奈之举。而SVDNet这种做法避开了这个困难,它其实借助了这样一个思想:每一个权向量,都是相应特征相应维度上的模板(exemplar)或者代理(agent)。这种解读在最近的很多工作中都有所体现。

三、训练方法RRI

——如何在CNN训练中,对权向量施加正交约束

先说怎么做的,后面再解释为什么这么做。

做法非常简单,分为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,直最终收敛。

四、RRI中发生了什么?

在RRI中,每个Restraint阶段后,权向量被去相关了、W变成了正交矩阵、ReID的准确度提升了;而在每个Relaxation阶段后,权向量重新相关起来,ReID的准确度停滞甚至略微降低(相较于上一个Restraint)。但是,比较Relaxation阶段,我们可以发现,W正交度S(W)在提升,而Reid的准确度也在提升,直到二者几乎同时达到了收敛状态。见下图:

上图是本文最重要、最有趣的一张图,它对SVDNet这个方法的原理起到了一种“知其然、知其所以然“意义上的证明。图中S(W)——用来衡量W正交度的变量定义本文不再叙述,非常简单直观,关心的同学可以去查看论文。有趣的地方在于:紧张训练阶段,reID性能提升;而放松训练阶段,reID性能降低。这似乎与我们人类的学习规律类似:提倡张弛结合,紧张时进步,而交替地放松,是为了积累。

五、性能

SVDNet 方法的性能,在2017年初接近当时的state of the art。而且,为了方法的纯粹性,SVDNet没有采用除了“镜像”之外的任何图像增强,输入图像也是采用baseline模型的默认尺寸。具体性能比较见论文,这里仅展示一下在market-1501数据集上的对比。

采取时下常用的一些预处理及数据增强后,SVDNet水平进一步提高。例如在market-1501上,在采用256*128这样的图像尺寸之后,resnet-backboned SVDNet能够达到约84+%的rank-1准确度、65+%的mAP。进一步采用random crop数据增强后,能够达到88% R-1 accuracy和 68%的mAP。在DukeMTMC-reID数据集上,SVDNet的表现相对更为抢眼。

另外,值得一提的是,SVDNet在caffenet这种老古董网络结构上也取得非常不错的性能。这个特点在其他方法中通常是难以做到的(当然,知识蒸馏等方法或许也能达到)。

六、有趣的关键

——为什么用SVD来对W去相关

关于为什么用SVD来对W进行去相关,文中简单做了一些证明:任意两个样本x1和x2,给定它们在EigenLayer之前的特征h,考察它们在线性投影后的距离,用W(=USV‘)和US作为线性投影层的权矩阵,两种情况下,样本间的距离是严格保持不变的。而用其它一些去相关方法,样本间的距离发生改变,且实验验证均降低了“去相关操作”后的reid性能。详细实验和推导证明见论文。

文中关于上述保距去相关的证明公式非常明了,然而,“想”一个做法比“证明”一个做法远远要难的多。作者这个做法其实最早来自于一个直观解读:CNN的每个线性层把输入投影到了新的特征空间,CNN在训练过程中,学到了很有鉴别力的投影基向量,也就是W中的各个权向量。以及一个思考:如果CNN告诉我们,一组权向量非常好,但是,CNN有点语无伦次、重复累赘,能不能让CNN清晰地告诉我们,这组权向量所代表的那些投影基向量,其等效的本质(正交基)是什么?

举个极端的例子,假设某一层的权向量有3个,并且是是2维的,分别是v1=(0,1),v2=(0,1),v3=(1,0),显然,这个权向量结果是不合理的,因为肯定只需要2个权向量就足够了,那么,问题来了,CNN认为(0,1)和(1,0)两个投影方向上的结果是否同样重要呢?我们是否可以简单地保留v1和v3,直接丢掉v2呢?我们直觉上会觉得,不是这样的,CNN试图告诉我们,在(0,1)上的投影结果更重要,SVDNet中的这个去相关方法,就是将CNN学到的投影向量转换到一组正交基上、并完全尊重、采纳CNN学到的知识本质的方法。

PCA代替SVD,会更好吗?

关于SVD去相关,还有另一个有趣的讨论,是在paper 得到初审结果之后,一位审稿人提出的,而这个问题,也被不少读者提出:那就是,如果对W进行PCA,也能得到一个正交的矩阵,而且在其它数据处理的地方,经验通常是:PCA总是优于SVD。那么,对W进行PCA到底行不行?用W进行PCA会不会更好?笔者认为这是一个非常棒的问题。

首先,用PCA对权向量进行去相关,本身是完全可以的,正如文中对比的QR分解等方法一样。而且PCA去相关,同样可以嵌入到RRI之中,不断提高SVDNet的性能。笔者在rebuttal中,做了实验,用PCA代替SVD,能够获得仅仅轻微低于SVDNet方法的性能。但是,大家应该注意到,PCA和SVD虽然数学意义非常不同,但是,二者在具体运算上,是很相似的:PCA多一个0-均值化运算。而实际上,权向量本身是非常接近0均值的,因此,两种方法在最终效果上比较接近,其实是非常自然的。

然而,笔者还想指出,在SVDNet的去相关操作中,只有使用SVD是严格的、具有数学意义的,而PCA不是。首先,简单地来看文中的公式:用US去替代W是保证替换权矩阵后、任意两个样本的距离不发生改变,因此保留了CNN原有的鉴别能力,这是非常严格的。更重要的是,PCA和SVD在去相关时的数学意义完全不同,看如下的示意图:

假设CNN学到了一个2X2的权矩阵,即有2个权向量,分别是W1和W2。现在,我们分别用SVD和PCA对W这个矩阵进行处理,SVD会得到左边所示的两个绿色正交向量S1和S2,S1方向上的投影结果将会被乘以相对较大的权系数;PCA则会得到右图所示的两个红色正交向量(实际上,P1的向量长度会是0,即P1方向上的投影结果无足轻重)。在这个示意图中,显然,PCA是不合理的:如果CNN认为黑色的W1和W2是重要的投影方向,那么,直观上我们也能感受到,S1(或者P1)方向上的投影结果将是非常重要的。而且,PCA在得到P1和P2时,实际上不是把W1和W2当成两个向量来处理。PCA实际上是把W1和W2当成两个点的坐标,求这两个点散布最大的方向(P2>P1),这样做是缺乏数学意义的。

七、另一个直观解读

本文对CNN得权向量,除了做空间上的投影解读外,还暗示了一种解读,在文中受篇幅限制未能展示,那就是——权向量实际上是用于产生特征的模板。以caffenet为例,当我们采用FC7的输出作为特征时,实际上是在拿FC6的特征去与FC7的4096个模板进行相似性比较(向量内积运算),并将4096个相似值作为最终的特征。在这个意义上,SVDNet可以认为是让获取特征的模板变得更为丰富。利用Yosinski在2015年ICML[1311.2901] Visualizing and Understanding Convolutional Networks中提供的深度特征可视化工具,我们可以对最大激活指定神经元的输入进行可视化,从何直观感受一下这些潜在模板的真面目。

上图中,第一行展现的是5个高度相关的权向量所代表的的神经元所对应的模板图像,第二行展现的是正常训练方法中,挑选出的5个不相关权向量所代表的神经元所对应的的模板图像,第三行则是通过SVDNet训练方法后,任意的5个权向量对应的模板图像。一个直观感受是:在baseline方法中,隐含了大量高度相似的模板图像,而经过SVDNet之后,所有的模板变得不相像,因此特征更加丰富了起来。

八、在其它视觉任务上的推广

到这里,大家应该同意,SVDNet并没有专门针对行人的固有特点做量身定制的分析与优化。从上图,我们也可以直观感受到,SVDNet训练得到的神经元更加丰富,达到了的降低过拟合的作用。这种机制在其它视觉任务上或许也有一定的效果。我们还在探究之中。从目前的实验结果来看,SVDNet在分类任务上有一定的提高效果。在Cifar-10分类任务中,用resnet-20做baseline,rank-1 accuracy从91.8%提高到了93.5%。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2017-10-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AI科技评论 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
人脸识别
腾讯云神图·人脸识别(Face Recognition)基于腾讯优图强大的面部分析技术,提供包括人脸检测与分析、比对、搜索、验证、五官定位、活体检测等多种功能,为开发者和企业提供高性能高可用的人脸识别服务。 可应用于在线娱乐、在线身份认证等多种应用场景,充分满足各行业客户的人脸属性识别及用户身份确认等需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档