0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何度量知识蒸馏中不同数据增强方法的好坏?

CVer 来源:CVer 2023-02-25 15:41 次阅读

1. 研究背景与动机

知识蒸馏(knowledge distillation,KD)是一种通用神经网络训练方法,它使用大的teacher模型来 “教” student模型,在各种AI任务上有着广泛应用。数据增强(data augmentation,DA) 更是神经网络训练的标配技巧。

知识蒸馏按照蒸馏的位置通常分为(1)基于网络中间特征图的蒸馏,(2)基于网络输出的蒸馏。对于后者来说,近几年分类任务上KD的发展主要集中在新的损失函数,譬如ICLR’20的CRD和ECCV’20的SSKD将对比学习引入损失函数,可以从teacher模型中提取到更丰富的信息,供student模型学习,实现了当时的SOTA。

本文没有探索损失函数、蒸馏位置等传统研究问题上, 我们延用了最原始版本的KD loss (也就是Hinton等人在NIPS’14 workshop上提出KD的时候用的Cross-Entropy + KL divergence )。我们重点关注网络的输入端:如何度量不同数据增强方法在KD中的好坏?(相比之下,之前的KD paper大多关注网络的中间特征,或者输出端)。系统框图如下所示,本文的核心目标是要提出一种指标去度量图中 “Stronger DA” 的强弱程度。

7b96bbf2-b351-11ed-bfe3-dac502259ad0.png

这一切起源于一个偶然的实验发现:在KD中延长迭代次数,通常可以非常明显地提升KD的性能。譬如KD实验中常用的ResNet34/ResNet18 pair, 在ImageNet-1K上,将迭代次数从100 epochs增加到200 epochs,可以将top1/top5准确率从70.66/89.88提升到71.38/90.59, 达到当时的SOTA方法CRD的性能(71.38/90.49)。这显得很迷,将最baseline的方法训练久一点就可以SOTA?经过很多实验分析我们最终发现,是数据增强在背后起作用。

直觉上的解释是:每次迭代,数据增强是随机的,得到的样本都不一样。那么,迭代次数变多,student见到的不一样的样本就越多,这可以从teacher模型中提取到更丰富的信息(跟对比学习loss似乎有着异曲同工之妙),帮助student模型学习。

很自然我们可以进一步推想:不同数据增强方法引入的数据“多样性”应该是不同的,譬如我们期待基于强化学习搜出来的AutoAugment应该要比简单的随机翻转要更具有多样性。简单地说,这篇paper就是在回答:具体怎么度量这种多样性,以及度量完之后我们怎么在实际中应用。

为什么这个问题重要?(1)理论意义:帮助我们更深地理解KD和DA,(2)实际意义:实验表明在KD中使用更强的DA总能提高性能,如果我们知道了什么因素在控制这种“强弱”,那么我们就可以缔造出更强的DA,从而坐享KD性能的提升。

2. 主要贡献和内容

文章的主要贡献是三点:

(1)我们提出了一个定理来严格回答什么样的数据增强是好的,结论是:好的数据增强方法应该降低teacher-student交叉熵的协方差。

定理的核心部分是看不同数据增强方法下训练样本之间的相关性,相关性越大意味着样本越相似,多样性就越低,student性能应该越差。这个直觉完全符合文中的证明,这是理论上的贡献。值得一提的是,相关性不是直接算原始样本之间的相关性,而是算样本经过了teacher得到的logits之间的相关性,也就是,raw data层面上样本的相关性不重要,重要的是在teacher看来这些样本有多么相似,越不相似越好。

(2)基于这个定理,提出了一个具体可用的指标(stddev of teacher’s mean probability, T. stddev),可以对每一种数据增强方法算一个数值出来, 按照这个数值排序,就知道哪种数据增强方法最好。文中测试了7种既有数据增强方法, 发现CutMix最好用。

(3)基于该定理,提出了一种新的基于信息熵筛选的数据增强方法,叫做CutMixPick,它是在CutMix的基础上挑选出熵最大的样本(熵大意味着信息量大,多样性多)进行训练。实验表明,即使是使用最普通的KD loss也可以达到SOTA KD方法(例如CRD)的水平。

3. 实验效果

文中最重要的实验是,验证提出的指标(T. Stddev)是否真的能刻画不同数据增强方法下student性能(S. test loss)的好坏,也就是二者之间的相关性如何。结果表明:相关性显著!

文章总共测试了9种数据增强方法,我们在CIFAR100,Tiny ImageNet, ImageNet100上均做了验证,相关性都很强,p-value多数情况下远小于5%的显著性界限,如下所示:

7ba9d214-b351-11ed-bfe3-dac502259ad0.png

7bde4698-b351-11ed-bfe3-dac502259ad0.png

这其中最有意思的一点是,纵轴是student的性能,而横轴的指标是完全用teacher计算出来的,对于student没有任何信息,但是somehow,二者呈现出很强的相关性。这说明,KD中对DA好坏的评价很可能独立于student的。同时,对于不同teacher、数据集,DA之间的相对排序也比较稳定(譬如CutMix稳定地比Cutout要好)。这些都意味着我们在一种网络、数据集下找到的好的DA有很大概率可以迁移到其他的网络跟数据集中,大大提升了实际应用价值。

4. 总结和局限性

本文关注数据增强在知识蒸馏中的影响,在理论和实际算法方面均有贡献,主要有三点:(1) 我们对 “如何度量知识蒸馏中不同数据增强方法的好坏” 这一问题给出了严格的理论分析(答:好的数据增强方法应该最小化teacher-student交叉熵的协方差);(2)基于该理论提出了一个实际可计算的度量指标(stddev of teacher’s mean probability);(3)最后提出了一个基于信息熵筛选的新数据增强方法(CutMixPick),可以进一步提升CutMix,在KD中达到新的SOTA性能。






审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 神经网络
    +关注

    关注

    42

    文章

    4759

    浏览量

    100465
  • CRD
    CRD
    +关注

    关注

    0

    文章

    14

    浏览量

    4003

原文标题:NeurIPS 2022 | 如何度量知识蒸馏中不同数据增强方法的好坏?一种统计学视角

文章出处:【微信号:CVer,微信公众号:CVer】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    面向对象软件度量C&K方法的研究与改进

    在现有面向对象软件度量方法度量准则的基础上,结合面向对象技术特性,对C&K面向对象度量方法进行了分析和改进,提出了类的复杂性、类的
    发表于 05-25 21:50 12次下载

    基于AHP度量模型的安全管理度量方法

    本文以GB17859、ISO/IEC17799 等相关标准作为指导依据,针对信息安全管理绩效的 度量问题提出了一套基于AHP 模型的安全管理度量方法,并重点阐述了度量模型中
    发表于 06-18 09:36 28次下载

    基于等级保护的安全管理度量方法研究

    本文提出了一种基于国家等级保护标准GB17895 的安全管理度量方法,阐述了度量要素的提取及度量结果的量化等问题的解决方案,并依据ISO/IEC17799 标准设计了安全管理
    发表于 08-24 15:22 21次下载

    构件内聚性度量方法研究

    构件的内聚性度量是衡量构件质量的一个重要指标。度量构件内聚度的经典方法程序切片,由于切片划分的不同,其度量值不同。本文不仅很好地度量构件的内
    发表于 01-09 11:58 7次下载

    面向云数据的隐私度量研究进展

    的隐私度量方法进行综述:首先,对隐私保护技术和隐私度量进行概述,给出攻击者背景知识的量化方法,提出云数据
    发表于 12-15 16:46 0次下载
    面向云<b class='flag-5'>数据</b>的隐私<b class='flag-5'>度量</b>研究进展

    混杂数据的多核几何平均度量学习

    在机器学习和模式识别任务,选择一种合适的距离度量方法是至关重要的,度量学习主要利用判别性信息学习一个马氏距离或相似性度量.然而,大多数现有
    发表于 12-25 17:16 0次下载

    内存取证的内核完整性度量方法

    内核级攻击对操作系统的完整性和安全性造成严重威胁.当前,内核完整性度量方法度量对象选取上存在片面性,且大部分方法采用周期性度量,无法避免T
    发表于 01-10 14:52 2次下载

    深度学习:知识蒸馏的全过程

    知识蒸馏的核心思想是通过迁移知识,从而通过训练好的大模型得到更加适合推理的小模型。本文作者介绍了知识蒸馏的全过程,以及引用Hinton等人的
    的头像 发表于 01-07 14:36 6044次阅读

    基于知识蒸馏的恶意代码家族检测方法研究综述

    近年来,恶意代码变种层出不穷,恶意软件更具隐蔽性和持久性,亟需快速有效的检测方法来识别恶意样本。针对现文中提出了一种基于知识蒸馏的恶意代码家族检测方法,该模型通过逆向反编译恶意样本,利
    发表于 04-20 14:49 9次下载
    基于<b class='flag-5'>知识</b><b class='flag-5'>蒸馏</b>的恶意代码家族检测<b class='flag-5'>方法</b>研究综述

    电池修复技术:做蒸馏水的方法是怎样的

    许多年前,该村经常停电,应急灯也很流行。 每个人都在玩电池逆变器。 电池和应急灯必须充满蒸馏水。 如果您不愿购买它们,请使用以下本机方法: 这个方法很好。 用这种蒸馏
    发表于 05-18 17:15 2256次阅读
    电池修复技术:做<b class='flag-5'>蒸馏</b>水的<b class='flag-5'>方法</b>是怎样的

    若干蒸馏方法之间的细节以及差异

    以往的知识蒸馏虽然可以有效的压缩模型尺寸,但很难将teacher模型的能力蒸馏到一个更小词表的student模型,而DualTrain+SharedProj解决了这个难题。
    的头像 发表于 05-12 11:39 1404次阅读

    关于快速知识蒸馏的视觉框架

    知识蒸馏框架包含了一个预训练好的 teacher 模型(蒸馏过程权重固定),和一个待学习的 student 模型, teacher 用来产生 soft 的 label 用于监督 student 的学习。
    的头像 发表于 08-31 10:13 864次阅读

    用于NAT的选择性知识蒸馏框架

    尽管NAT在拥有许多潜在的优势,目前的工作这类模型仍然在很大程度上依赖于句子级别的知识蒸馏(sequence-level knowledge distillation, KD)[2]。由于需要并行预测所有token,NAT对单
    的头像 发表于 12-06 14:44 682次阅读

    TPAMI 2023 | 用于视觉识别的相互对比学习在线知识蒸馏

    representation learning [1] 的扩展版本,论文讲解链接为: https://zhuanlan.zhihu.com/p/574701719 摘要: 无需教师的在线知识蒸馏联合地训练多个学生模型并且相互地蒸馏
    的头像 发表于 09-19 10:00 738次阅读
    TPAMI 2023 | 用于视觉识别的相互对比学习在线<b class='flag-5'>知识</b><b class='flag-5'>蒸馏</b>

    任意模型都能蒸馏!华为诺亚提出异构模型的知识蒸馏方法

    相比于仅使用logits的蒸馏方法,同步使用模型中间层特征进行蒸馏方法通常能取得更好的性能。然而在异构模型的情况下,由于不同架构模型对特征的不同学习偏好,它们的中间层特征往往具有较大
    的头像 发表于 11-01 16:18 946次阅读
    任意模型都能<b class='flag-5'>蒸馏</b>!华为诺亚提出异构模型的<b class='flag-5'>知识</b><b class='flag-5'>蒸馏</b><b class='flag-5'>方法</b>