知识蒸馏用于度量学习(一)

Learning Metrics from Teachers: Compact Networks for Image Embedding

链接:https://arxiv.org/abs/1904.03624

Code:https://github.com/yulu0724/ EmbeddingDistillation

知识蒸馏是实现模型压缩的一种有效的方法,它受启发于人类社会中教师和学生之间的教授关系。人类社会中,教师一般具有更多的知识,可以通过指导学生使得学生获得解决问题的能力。类似地,知识蒸馏将特征提取能力强但是复杂的模型定义为教师模型,特征提取能力弱但是简单易实现的模型定义为学生模型,通过教师模型对学生模型的指导来使得学生模型获得类似教师的特征提取能力。也就是说知识蒸馏致力于让学生模型通过模仿教师模型来获得和教师模型相似的能力。常见的知识蒸馏主要用于分类任务,在这篇文章中作者将知识蒸馏模型应用于度量学习中。

摘要:度量学习可以用于图像检索和人脸识别等诸多领域。在本文中,作者引入知识蒸馏,在小型网络上实现图像嵌入。知识蒸馏已成功地用于图像分类,但尚未用于度量学习。作者提出了两个新的损失函数用于深层教师网络与小型学生网络间的通信。作者在CUB-200-2011,Cars-196,Stanford Online Products数据库上进行了实验,结果显示小型学生网络的效果明显优于类似规模的标准网络的效果。在MobileNet-0.25上,提出的方法可以将Recall @ 1从27.5%提高到44.6%。

度量学习:度量学习是通过神经网络将图像转换为特征量,并通过合适的损失函数使得在特征空间中特征具有明显的类内相似性和类间相异性,在论文中作者使用了Triplet loss:

知识蒸馏用于度量学习

知识蒸馏想让学生网络的特征和教师网络的特征具有相同的分布,也即是越相似也好,因此一个很自然的想法是约束学生和教师网络提取的同一张图像的特征之间的距离,这也就是作者提出的第一个蒸馏损失函数,作者称为absolute teacher:

回到度量学习上,度量学习的目的就是使得同类特征间的距离尽可能小,异类特征间的距离尽可能大,也即是说是约束特征间的距离,因此可以使用另一种更高效的蒸馏损失函数,约束教师和学生特征距离间的距离,也即是对于同样的两张图像,使得学生网络得到的它们间的距离和教师网络得到的它们间的距离,尽可能地像,这即是作者提出的第二个蒸馏损失函数,称为relative teacher

到这里将标准的度量学习的损失函数与蒸馏函数结合起来,作者提出了整体的损失函数

对于两种损失函数,作者用下图进行了可视化描述,从图中可以解读到,假设由学生网络S1变换到学生网络S2,当相对损失为零,也即是教师和学生网络特征分布相同时,绝对损失仍旧存在。

接着作者又结合了以前的知识蒸馏模型,并进行了实验。

评价:这篇论文中,作者将知识蒸馏引入到度量学习中,并提出两种蒸馏损失函数,分别从点和线上描述教师和学生特征之间的关系。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值