写在前面
对于CNN最后3层全连接来说,个人一直认为,为何不一步到位,而要几层全连接的主要原因就是
- 想更加综合卷积出来的特征,一次全连接就是一次综合,多次全连接就是多个综合,之后才进行投票分类;
- 想把这些特征映射到一个低维可划分的空间。这个映射过程可能需要非线性(可能这个空间非线性),所以需要几个非线性的叠加然后才进行投票分类。
并且我一直肤浅地认为全连接层就是综合投票,如果投票效果不好,就是抽取的特征有问题。
- 但是这篇论文读完,会对全连接层和多层全连接层有个更深入的认识。
论文地址:SVDNet for Pedestrian Retrieval,ICCV 2017 spotlight paper
作者介绍:Yifan Sun,也是MARS数据集的贡献者。 - 同时额外知识补充SVD原理理解,SVD计算理解;
简单理解的话就是把一个任意矩阵分解成三个矩阵相乘,这三个矩阵分别为
经过
变化后的正交基底组成的矩阵
,
由矩阵
的特征值开根号组成的对角矩阵
,
由矩阵
的单位特征向量组成的正交矩阵的转置
。
总之就是把映射到权重值不同的正交基上去。
TLNR
想把特征距离尽可能拉开,即使相似的特征(例如红色和粉色)也想拉开一些,会跟正则化思路很相似,提高训练的loss,从而提高模型精度。
但是由于ICCV篇幅所限,这篇论文主要讲解了SVDNet的核心思想,但背后的思考讲解的比较少。
MOTIVATION
作者观察到,在训练CNN网络的时候,全连接层的权重通常高度相关。
这会带来的问题就是:
- 造成用欧式距离(余弦距离也类似)计算检索的性能下降。因为欧式距离与余弦距离都有个重要的前提条件就是特征之间应该相互独立。
当FC层权重相关,那么卷积特征在FC权重的空间映射也会相关。这会导致在计算欧式距离时,这些映射后的比较相关的特征的影响作用更大。
比如Motivation的图,由于映射的粉色和红色的特征比较接近,从而弱化了蓝色特征的差异。导致了最终的绿点特征和黑点特征比较接近。(但是如果映射后的特征三者互相垂直的话,那么各个特征发挥的作用就是一样的,不会把蓝色特征的作用淹没?)(不懂。。)
有两个主要原因导致这个问题:
1.数据分布不均匀。下面的例子红色和粉色的权重向量高度相关。(不懂。。)
2.正交化的训练学习比较少

SVDNet思路
所以解决办法就是降低全连接层权重的冗余性。为此,作者提出了SVDNet。分三步:
1.全连接层的权重用SVD分解后,用
代替。
2.保持正交矩阵不动,更新其他层
3.正交矩阵不固定,整个网络一起训练。

训练时,进行identity分类训练。对于CaffeNet,将FC7替换为Eigenlayer;对于ResNet,在最后的全连接之前加入Eigenlayer;最后再经过FC输处一个identity。
测试时,取经过Eigenlayer之前或者之后的特征来进行距离计算。

算法流程如上,现在对上面这种采用SVD的机制进行数学分析。
- 首先,采用SVD的主要目的就是想在训练过程中把CNN抽完的特征正交地映射到某个空间上。那么对全连接层
,就是找到它的一组基底。当然它可能的基底组是很多的,而SVD中的
刚好就是基底,所以作者选择了
,再乘上权重矩阵
,作者证明如果用
,在计算图片之间距离的时候对抽取特征表征不会影响:


其中,代表两张图片,
为CNN抽取的特征,
为经过Eigenlayer的特征,
为之间的欧式距离。
由于为单位正交矩阵,所以
,所以上面两个距离计算公式是相等的,所以对于算法1中的第一步,不会有特征表征的丢失。
作者也考虑了其他降低相关性的方法,如下。但是从实验上看,只有的这种办法还是维持了相关指标。


- 采用这种直接替代的办法,从上面实验来看并不能立刻带来性能的提升,甚至其他降低相关性的办法还降低了一定的性能,那么怎么提升性能?
分析:直接替换,会使原来已经训练完毕的模型空间发生改变,本来是最优点的现在也许已经不是最优点了。需要fine-tune,来重新寻找最优点。
算法1中的第二步至第三步,就是来解决这个问题并进一步提升模型抽取特征的能力。
其中,restraint这一步,保持了正交的特性,从实验上看能提升模型的准确率;relaxation这一步虽会让整个模型再一次远离正交,但是能促进模型的收敛,从实验来看这一步会扰乱模型的准确率。但是在这样的交替训练下,总体的性能得到了提升。 - 作者还提出衡量相关性的指标


其实这个式子的意思就是自相关占总相关的比例。
它的取值范围为[, 1],当
正交时
最大,为1,当
为全1矩阵时
最小,为
。
用可以指导什么时候停止RRI(Restraint and Relaxation Iteration),当
稳定时,说明正交性稳定,模型就收敛。
Experiment
- 数据集选择Market-1501, CUHK03(有老的训练/测试集划分的版本和新的训练/测试集划分版本), DukeMTMC-reID。
- 网路选择在ImageNet上预训练的CaffeNet,ResNet-50。之后把CaffeNet的FC7换成Eigenlayer;而ResNet-50没有隐藏的全连接层,所以在把Eigenlayer直接插入最后一层全连接之前。
- 实验效果与Baseline对比,可见Eigenlayer之前和之后的特征效果提高都比较明显,而且效果差不多,但是之前的特征会更好一些。作者认为是训练的时候,反向传播也会把正交的这种特性传给输入的特征。

- 和其他方法的效果对比,CUHK03-NP是新的训练/测试集划分的版本。


- 对输出的维度进行分析,因为根据上文,维度越高,相关性可能越高,所以才要不断训练降低这种相关性。实验效果如下,发现实验效果与上文相符。而且对于有进行充分RRI训练的效果来说,相关指标效果会提高到一定程度,这说明进行RRI训练会降低特征之间的冗余性。

- 作者还进行RRI过程的实验观察,实验结果也显示,当
冻住时,效果提升,说明特征学习效果提升;当
不固定,效果停滞甚至下降;但是总体效果是不断提升。
对于如果进行RRI训练的话,其最终会到达一个稳定的值,这个值是否收敛也足以来证明模型已经收敛。

- 最后,作者把上面提到的其他降低相关性的办法进行RRI训练,观察效果。上面有实验已经说明直接替换除了
外,都有会一定的性能降低,但是训练后的效果显示除了
方法外,都有一定的性能提升,说明在检索问题中正交化能带来效果提升,仅仅降低相关性也会带来效果提升。

总结
从FC层的权重相关性入手,从而把正交的性质通过训练传给整个模型,提升模型学习的特征鉴别能力。
个人认为Introdution是最难理解的,线代基础好点的可能理解的快一些。
网友评论