LCE:一个随意转换模型的通用框架
摘要:对于生产中的视觉检索系统,在推出新模型的时候能够和旧模型特征兼容可以很大的降低成本,甚至可以避免对现有图库图像重新提取特征。论文Learning Compatible Embeddings 提出了一个通用、可以适用于直接兼容、向旧模型兼容和向新模型兼容的方式跨模型兼容以及模型兼容训练的框架。LCE的兼容方法是通过一个转换来直接对齐模型之间的类中心,并对新模型限制了更紧凑的类内分布。作者在多种场景下做了实验,例如训练数据集、损失函数、网络架构以及特征维度的变化,并证明了LCE只损失了微小的精度就有效地实现了模型兼容。
论文地址:https://arxiv.org/abs/2108.01958
代码地址:https://github.com/IrvingMeng/LCE
01
.背景
我们发现的模型兼容的应用场景很广泛,从模型训练的角度,模型兼容分为跨模型兼容(cross model compatibility)和模型兼容训练(compatible training),跨模型兼容是要兼容两个已经训练完成的模型,模型兼容训练是在训练新模型过程中加入了模型兼容的约束,以确保两个模型处于同一个特征空间。从模型兼容的方向来说,跨模型兼容可以分为向新模型兼容(backward),向旧模型本兼容(forward),直接兼容(direct)或者同时兼容到一个新空间中(double forward)。最后一种方向会消耗大量的计算资源并且使用场景比较局限,所以我们没有考虑。
上图描述了probe和gallery之间的人脸比对过程,如果probe和gallery的feature来自同一个模型,两者可以很好的比对。但在工业界中,模型升级后,probe和gallery的feature会由不同模型产生,这样就难以有理想的比对效果。洗库 (backfilling) 是解决上述问题最直接方法,在这个过程中需要获取到gallery库中feature对应的所有图片,在有些公司,受隐私的限制,难以获取到历史全量图片。即使历史库已经就绪,也可能会受到计算资源和推理速度的限制。这时就需要一个模型兼容的解决方案,这样就可以避免洗库遇到的各种障碍。
0
2
.LCE框架
对其标准
之前在模型兼容方向已经有了一些的工作,之前的对其标注大都是基于点到点的,即要求新旧模型特征一一对应。在这样的约束下,兼容的性能会受到原本模型的限制,难以有性能上的提升。我们在保证类中心对齐的同时,放松了对点的约束,也就是论文中提出的点到集的约束。我们这样做既保证了兼容的效果,也给模型提供了一定的自由学习空间。
训练框架
上图是我们的LCE框架,model 1是个训练完成的老模型,model 2是个待训练或者就绪的新模型。T是转换器,用来结耦初始feature和转换后的feature。训练过程中,通过转换器我们把新老图片特征和类中心转换为对应空间上。在loss层面,我们的LCE loss是由三部分组成。Alingnment loss是用来约束两个模型的类中心,要求类别中心一致。boundary loss是让对齐后的类簇更紧凑, 对应我们新提出的点到集合的对齐标准,classification loss是用来监督学习过程,以便模型可以快速准确的收敛。
0
3
.实验
实验部分,我们首先对LCE的模块进行消融实验以探究不同模块的影响。然后我们在跨模型对齐(CMC)和对齐训练(CT)两个场景对齐。对CMC来说,我们的对比方法RBT是该场景下的sota。对CT,我们对比了l2 对齐,BCT对齐和我们的方法在不同情况下的性能比较。最终结果表明我们能够在不同对齐场景和训练场景都取得性能提升。
消融实验
首先我们进行了几项消融研究,以调查我们方法中不同成分的影响。我们采用resnet50网络结构,使用MS1Mv2数据集作为训练数据,使用NormFace Loss训练的模型模拟老模型,使用ArcFace Loss训练的模型作为新模型。实验表表明Transformation module 、alignment loss和boundary loass对兼容效果都有着积极的作用。
上图是我们对类簇抽样作图。可以发现同一个类中的来自同一张图片的新老模型的feature,并没有严格一一对应,同时新模型获得了更紧凑的类内分布。也证明了我们的方法是一种点到集合的约束,可以把新老模型的类中心对齐,并且对齐后的类中还具有更紧凑的类内分布。
CMC实验
在CMC实验中,我们采用的是由InsightFace提供的三种预训练模型(模型细节见上图左表)。对比方法我们用了sota的RBT,并选用NormFace损失函数和ArcFace损失函数作为跨模型兼容时的分类损失。在使用ArcFace损失函数的时候,两种方法获得比较接近的效果,但是在使用NormFace损失函数的时候,RBT模型的性能效果下降超过了1%,这表明我们模型对齐的鲁棒性。
CT实验
在CT实验中,我们对训练数据集、分类损失、网络结构以及特征维数进行了研究。我们选用了KD(L2)和BCT作为基准。上图左表表明了在更换训练集时, 通过我们的LCE的升级后的模型性能超过通过其它方法升级的性能65%。上图右表表明在更换分类损失函数时,我们的LCE升级后的模型性能也优于其方法。
上面两个表分别展现在网络结构和特征维度发生变换时,我们的模型都能很好的工作,通过我们的方法训练的模型在性能上远远超过其它方法。
0
4
.总结
LCE是针对模型兼容问题设计的一个通用框架。这个框架是通过点到集合的方法来兼容两个模型,并对新模型的类内分布做了更严格的限制。作为一个通用的框架,我们的LCE可以应用在多个方向的跨模型兼容训练以及模型兼容训练,能够解决实际场景中模型兼容的多样性和准确性问题,在AiBee的私有测试集上面相比sota得到了接近10个点的提升。公开数据集上,我们的实验也表明了LCE在多种兼容场景下仅有微小的精度损失,可以获得非常好的兼容效果。同时我们LCE也可以扩展到行人再识别, 车辆再识别以及图片检索等其它多个任务。