SSKD:自我监督知识蒸馏
动机:希望探索一种更通用和模型不可知的方法,从预训练的教师模型中提取“更丰富的隐藏知识”。看似不同的自我监督任务可以作为一个简单但强大的解决方案。
简介:利用具有选择性传输的噪声自监督信号进行蒸馏的实用方法。自监督信号改善了传统蒸馏,在少镜头和噪声标签场景下具有显著的增益。
对正常数据和单个分类任务的模拟扩展到对转换数据的模拟,并使用额外的自我监督任务。教师的自我监督预测包含丰富的结构化知识,可以促进学生更全面的知识提炼。在本例中,对变换图像的对比学习作为自我监督的任务。它通过图像变换t(·)构造单个正对和多个负对,然后鼓励网络识别正对。教师和学生的骨干分别表示为和,而相应的输出表示为t和s,下标表示索引。
1、方法模型
1.1先验方法
1.1.1知识蒸馏
与硬标签(一个热矢量)相比,优化良好的教师模型预测的软目标可以提供额外的信息。分配给错误类别的相对高概率编码了不同类别之间的语义相似性。强迫学生模仿老师的预测会导致学生学习到这些无法用硬标签单独表达的次要信息。为了获得软目标,引入了温度标度,以软化峰值软最大分布:
其中x是数据样本,i是类别指数,是x在类别i上获得的得分logit,是温度。通过KL发散度测量的知识蒸馏损失为:
其中t和s分别表示教师和学生模型,C表示类的总数,表示数据集。学生模型的完全损失函数L是标准交叉熵损失和知识蒸馏损失的线性组合:
其中λ1和λ2是平衡参数。
1.1.2基于对比预测的自监督任务
基于对比预测方法在自我监督学习中的成功,在框架中采用了对比预测作为自我监督任务。对比预测的总体目标:通过潜在空间中的对比损失最大化数据点与其转换版本之间的一致性。
给定一个包含N个数据点的小批量,我们对每个数据点应用独立变换t(·)(从同一分布t中采样),并获得。和都被送入教师或学生网络,以提取特征。在网络顶部添加投影头。投影头是一个2层多层感知器。它将表示映射到应用对比损失的潜在空间,即。
将作为正对,作为负对。
给定一些,对比预测任务是从集合中识别相应的。网络最大化正对之间的相似性,最小化负对之间的类似性。使用余弦相似性。将和之间的相似性组织成矩阵形式A:
其中表示和之间的相似性。对比预测的损失是
其中是另一个温度参数(不同于蒸馏中的)。损失形式类似于softmax损失,可以理解为最大化和来自正对的概率。在匹配和的过程中,网络学习变换不变特征。
然而,在SSKD中,主要目标不是学习变换不变的表示,而是利用对比预测作为辅助任务,从教师模型中挖掘更丰富的知识。
1.2SSKD学习
该框架的教师和学生网络都包含三个组件,即主干f(·)、分类器p(·)和SS模块c(·,·)。教师培训分为两个阶段。
第一阶段:通过分类任务训练和;
第二阶段:通过自我监督任务微调。
在学生培训中,除了标准标签丢失外,我们还强制学生在分类输出和自我监督输出上模仿老师。
对比预测被选为SS任务,因此SS模块和由两层MLP和相似度计算模块组成。
1.2.1教师网络训练
输入为正常数据和转换版本。变换t(·)从预定义的变换分布t中采样。选择了四种变换,即颜色下降、旋转、裁剪,然后调整大小和颜色失真。我们将和喂入到主干网络,并获得它们的特征。
教师网络训练包括两个阶段。
第一阶段:利用分类损失对网络进行训练。仅更新主干和分类器。
ps:分类损失不在变换数据上计算,因为变换T比通常的数据增强更重。它的目标不是扩大训练集,而是使在视觉上不太类似于x。
第二阶段:固定了和,并且仅使用等式中的对比预测损失更新SS模块中的参数,如上面的对比预测损失公式所示。
第一阶段简单地是用于分类的网络的典型训练。第二阶段,旨在调整SS模块,以使用现有主干的特征进行对比预测。
这允许我们从SS模块中提取知识进行蒸馏。值得指出的是,由于MLP网络较小,第二阶段训练效率较高,因此很容易为SSKD准备教师网络。
1.2.2学生网络训练
在训练教师的SS模块后,我们将softmax(具有温度标度)沿行维度应用于教师的相似性矩阵A引出概率矩阵,其中表示和为正对的概率。类似的操作应用于学生以获得。使用和,可以计算教师和学生的SS模块输出之间的KL散度损失:
转换后的数据点是对比预测任务的副产品。虽然我们不要求学生正确分类,但我们可以鼓励学生的分类器输出接近教师的输出。损失函数为:
学生网络的最终损失是上述项的组合,即方程中的交叉熵损失、、、:
其中是平衡参数。
1.3自我监督提升
当执行对比预测时,教师可能会产生不准确的预测,例如,将分配给,。因为教师的骨干网络没有与SS模块一起进行对比预测微调。与传统的知识蒸馏类似,教师为错误答案分配的相对概率包含教师丰富的知识。转移这些不准确但结构化的知识是SSKD的核心。
根据经验发现,极不正确的预测仍然可能误导学生的学习。为了改善这些异常值的负面影响,采用启发式方法执行选择性迁移。具体而言,将预测的误差水平定义为分类任务中相应真实标签的排名。给定变换后的样本和相应的正配对指数i,我们将网络分配给每个的分数按降序排序。的秩表示预测的误差水平。
秩为1表示预测完全正确。较低的秩指示较高的误差程度。在学生的训练过程中,我们根据教师预测的误差水平,以升序对小批量中的所有进行排序,并仅传输所有正确预测和排名前k%的错误预测。这种策略抑制了教师预测中的潜在噪音,并只传递有益的知识。
2、总结
1、提出了一个新的框架,称为SSKD,这是首次尝试将自我监督与知识蒸馏相结合。采用对比预测作为辅助任务,帮助从教师网络中提取更丰富的知识。
2、设计了一种选择性迁移策略来抑制教师知识中的噪声。
3、通过使用各种架构在CIF AR100和ImageNet上进行彻底的实验来检验我们的方法。
4、SSKD可以使学生更接近老师,并在少量镜头和嘈杂标签场景下工作良好。
SSKD:自我监督知识蒸馏相关推荐
- 【论文翻译_自监督知识蒸馏】Self-supervised Label Augmentation via Input Transformations
通过输入转换实现自监督标签增强 Hankook Lee 1 Sung Ju Hwang 2 3 4 Jinwoo Shin 2 1,2020年. 摘要 自我监督学习,通过在给定输入信号的情况下构建人工 ...
- IJCAI 2021 | 中科院计算所:自监督增强的知识蒸馏方法
知识蒸馏作为模型压缩里的一项重要技术,在学术界和工业界都得到了广泛的研究. 近日,AI Drive 邀请中科院计算所在读博士生杨传广,分享其在 IJCAI 2021 上发表的最新工作:自监督增强的知识 ...
- 知识蒸馏论文翻译(8)—— Knowledge Distillation Meets Self-Supervision(自监督)
知识蒸馏论文翻译(8)-- Knowledge Distillation Meets Self-Supervision(自监督) XXXXXXX 文章目录 知识蒸馏论文翻译(8)-- Knowledg ...
- ECCV 2020 | 自监督任务辅助的知识蒸馏
本文介绍了一种利用自监督任务辅助知识蒸馏的方法:Knowledge Distillation Meets Self-Supervision [1]. 这篇文章(以下简称SSKD)来自香港中文大学和南洋 ...
- 【AAAI 2021】自监督目标检测知识蒸馏:Distilling Localization for Self-Supervised Representation Learning
[AAAI 2021]自监督目标检测知识蒸馏:Distilling Localization for Self-Supervised Representation Learning 论文地址: 代码地 ...
- 【CVPR 2021】自我知识蒸馏:Self-distillation with Batch Knowledge Ensembling Improves ImageNet Classification
[CVPR 2021]自我知识蒸馏:Self-distillation with Batch Knowledge Ensembling Improves ImageNet Classification ...
- 知识图谱-生物信息学-医学顶刊论文(Briefings in Bioinformatics-2021):MPG:一种有效的自我监督框架,用于学习药物分子的全局表示以进行药物发现
6.(2021.9.14)Briefings-MPG:一种有效的自我监督框架,用于学习药物分子的全局表示以进行药物发现 论文标题:An effective self-supervised framew ...
- 知识蒸馏综述:蒸馏机制
作者丨pprp 来源丨GiantPandaCV 编辑丨极市平台 导读 这一篇介绍各个算法的蒸馏机制,根据教师网络是否和学生网络一起更新,可以分为离线蒸馏,在线蒸馏和自蒸馏. 感性上理解三种蒸馏方式: ...
- 【论文解读】Knowledge Review:知识蒸馏新解法
今天介绍一篇我司的文章Distilling Knowledge via Knowledge Review(缩写为KR),提出知识蒸馏的新解法. 之前在知乎回答过一个知识蒸馏的问题,为何感觉" ...
最新文章
- mysql创建表语句 引擎、编码和字符集设置
- 【Unity3D】资源对象、预设、查找对象、组合模式等知识点
- Reporting Service 告警w WARN: Thread pool pressure. Using current thread for a work item
- python图像锐化_opencv实现图片模糊和锐化操作
- 下拉导航中绝对定位与相对定位问题
- python canvas画移动物体_Python:Tkinter的GUI设计——物体实时移动
- javaweb实训第二天上午——jQuery基础
- word2016点击关闭后卡死问题
- Julia : where与类型限定
- 汇编语言中xor指令_汇编语言基本指令
- 两个经纬度偏角_转载:经纬度和方位角之间的关系
- 加权平均数的例子_加权平均数公式(加权平均数公式例子)
- DataWindow的数据更新技术及应用
- 致远oa系统unix 服务器,致远oa如何设置服务器地址
- 2013.12.26 M-Learning
- Windows 局域网中文件进行自动同步备份通过synctoy和计划任务实现
- nova3安装android10系统,华为nova3 刷机教程 华为nova3 强刷升级教程
- NVL和COALESCE的区别
- 《JAVA筑基100例》导读
- X60的BIOS白名单-黑苹果之路
热门文章
- DMGI:Unsupervised Attributed Multiplex Network Embedding
- 数字图像处理(四)空间滤波
- 关于建造的逻辑: BIM和VDC
- linux如何转化u盘格式的文件格式,uefi启动u盘安装linux怎么将u盘转换格式
- 马尔可夫过程 matlab,马尔可夫过程matlab
- 德国基尔大学 计算机系,德国基尔大学专业
- Android的智能数字多媒体播放器-dvico TVIX Xroid A1
- 仙剑奇侠传一怎么修改服务器,仙剑奇侠传1秘籍_仙剑1作弊方法大全
- connectify-me破解
- wget 自己服务器上的文件,关于linux:wget可以用于获取服务器上的所有文件吗?...