【论文笔记】Are Large Kernels Better Teacheres than Transformers for ConvNets

devtools/2024/11/13 2:08:00/

Abstract

本文提出蒸馏中小核ConvNet做学生时,与Transformer相比,大核ConvNet因其高效的卷积操作和紧凑的权重共享,使得其做教师效果更好,更适合资源受限的应用。
用蒸馏从Transformers蒸到小核ConvNet的效果并不好,原因是架构不同。

Github Repository

1 Information

在蒸馏过程,小核ConvNet做学生模型时,与Vision Transformers相比,大核ConvNet有以下优势:

  • 同样好的精度
  • 相似甚至更大的有效感受野(Effective receptive field, ERF)
  • (更重要的)是卷积操作,而不是自注意力模块

本文,在小核ConvNet做学生模型时,将现代大核ConvNet和先进Vision Transformers进行对比。本文发现在logits-level distillation和feature-level distillation下,大核ConvNet的效果都比Vision Transformers更有效。

3 Experimental Setup

本文目标是在蒸馏下全面比较Vision Transformers和现代大核ConvNet,并研究哪种更适合作为小核ConvNet的教师。

Evaluation Metrics

给定教师模型 T T T(具有较高的任务准确率 a c c ( t e a c h e r ) acc(teacher) acc(teacher),学生模型 S S S(具有较低的任务准确率 a c c ( s t u d e n t ) acc(student) acc(student),通过知识蒸馏提高后者的准确率至 a c c ( d i s t i l l e d ) acc(distilled) acc(distilled)
采用两种度量:
Direct Gain表示有知识蒸馏和无知识蒸馏的直接表现差异:
Direct Gain = a c c ( d i s t i l l e d ) − a c c ( s t u d e n t ) (1) \text{Direct Gain}=acc(distilled)-acc(student)\tag{1} Direct Gain=acc(distilled)acc(student)(1)
教师很难拥有相同的准确率,因此使用Effective Gain:
Effective Gain = a c c ( d i s t i l l e d ) − a c c ( s t u d e n t ) a c c ( t e a c h e r ) (2) \text{Effective Gain}=\frac{acc(distilled)-acc(student)}{acc(teacher)}\tag{2} Effective Gain=acc(teacher)acc(distilled)acc(student)(2)

Dataset, Teacher and Student Models

在常用的ImageNet数据集(1000类别,1281167训练图像,50000验证图像)进行实验。

有两个主要的蒸馏pipeline:

  • Pipeline I: 大核ConvNet→小核ConvNet
  • Pipeline II: Transformers→小核ConvNet

对于两个pipeline,学生模型选择了带有3×3卷积核的ResNet-50和带有7×7卷积核的ConvNeXt-T。
对于Pipeline I,教师模型选择ConvNeXt-T和SLaK;
对于Pipeline II,教师选择ViT-S,Swin-T,CSWin-T。

Distillation Methods

为了得出可靠的结论,本研究采用了logits-level distillation和feature-level distillation相结合的方法。
不失一般性,选择KD、NKD作为logits-level distillation,选择FD作为feature-level distillation。

4 Experimental Results

4.1 Large-Kernel ConvNet vs. Transformer as Teachers

4.1.1 Logit-level Distillation

![[Pasted image 20240920200800.png]]
![[Pasted image 20240920200809.png]]

  • 大核ConvNets比Transformers更适合做小核ConvNets的教师。
  • 与小核相比,学生模型从大核ConvNets获得的提升更多。
  • 大核ConvNets可以让学生训练得更快。

4.1.2 Feature-level Distillation

![[Pasted image 20240920202947.png]]
![[Pasted image 20240920204102.png]]

在feature distillation下,从蒸馏出的学生模型的表现来看,大核ConvNet比Transformers的表现要好。
当使用多层特征图进行特征蒸馏(FD)时,大核卷积网络作为教师模型的优势仍然优于基于Transformer的教师模型。

4.2 Scaling to Longer Training

本文还将训练epoch从120次延长到300次,并展现了从大核教师和基于Transformer的教师中提取的ResNet-50的性能。
![[Pasted image 20240920212721.png]]
显而易见,较长训练周期的性能趋势与短周期高度一致。在所有五个教师模型中,SLaK-T教师模型使得学生模型表现最佳,这表明大核教师模型相较于基于Transformer的教师模型在较长训练过程中同样具有优势。

5 What Else are Transferrable from Larger Kernels Teachers?

5.1 Transferring Effective Receptive Fields(ERF)

有效感受野(Effective Receptive Fields, ERF)是指包含对该单元输出有非忽略影响的任意输入像素的区域。
![[Pasted image 20240920215356.png]]

图1:ConvNeXt-T从不同教师模型蒸馏而来的有效感受野(ERF)。学生模型是带有7×7卷积核的ConvNeXt-T。左图为未经蒸馏的监督学习ConvNeXt-T,而其余图像来自于蒸馏后的ConvNeXt-T。
总体而言,来自51×51大核SLaK蒸馏的学生模型相比于来自Transformer教师模型蒸馏的学生模型,表现出更大且更密集的ERF。这进一步证明大核卷积网络在蒸馏过程中比Transformer更能有效地传递大ERF,从而提高学生模型的性能。

5.2 Transferring Robustness

![[Pasted image 20240920221853.png]]
结果如表7所示。

  • 从现代ConvNets蒸馏出的学生优于从最新的Transformer模型学习的学生模型。
  • 在大核教师中,SLaK-T相比ConvNeXt向学生传递了更好的鲁棒性,尽管它作为教师模型的鲁棒性较低。
  • 鲁棒的Transformer并不一定能有效地传递给小核学生。这表明,在分布内(in-distribution)和分布外(out-of-distribution)的表现上,大核卷积网络比先进的视觉Transformer和小核网络更强大。

http://www.ppmy.cn/devtools/114877.html

相关文章

Unity 设计模式 之 结构型模式 -【适配器模式】【桥接模式】 【组合模式】

Unity 设计模式 之 结构型模式 -【适配器模式】【桥接模式】 【组合模式】 目录 Unity 设计模式 之 结构型模式 -【适配器模式】【桥接模式】 【组合模式】 一、简单介绍 二、适配器模式 (Adapter Pattern) 1、什么时候使用适配器模式 2、使用适配器模式的好处 3、适配器…

Android中的四大组件

Android中的四大组件是Android应用开发中的基石,它们分别是Activity、Service、BroadcastReceiver和ContentProvider。这四个组件各自承担着不同的角色和功能,共同构成了Android应用程序的骨架。下面将详细阐述这四大组件的作用及其特点。 1. Activity&…

基于STM32设计的路灯故障定位系统(微信小程序)(229)

文章目录 一、前言1.1 项目介绍【1】项目开发背景【2】设计实现的功能【3】项目硬件模块组成1.2 设计思路【1】整体设计思路【2】ESP8266工作模式配置1.3 项目开发背景【1】选题的意义【2】可行性分析【3】参考文献【4】项目背景【5】摘要1.4 开发工具的选择【1】设备端开发【2…

sqlite数据库设计工具

下载 开发环境 VS2022 + Qt5.14.2 CMake修改 add_subdirectory(sqlite3-cmake) include_directories(${CMAKE_SOURCE_DIR}/sqlite3-cmake/src) target_link_libraries(${PROJECT_NAME} sqlite3) 效果 参考 https://github.com/sqlitebrowser/sqlitebrowser

【医学半监督】互补一致性半监督学习

摘要: CC-Net 从互补信息的角度有效利用了无标记数据,解决了现有半监督分割算法从无标记数据中提取信息能力有限的问题。CC-Net 的互补对称结构包括一个主模式和两个辅助模式。互补一致性是由主模型和辅助模型之间的模型级扰动形成的,从而加强了它们之间的一致性。两个辅助模…

论文阅读-《Attention is All You Need》

注意力就是一切 【要点】:论文提出了一种全新的网络架构——Transformer,完全基于注意力机制,无需使用循环和卷积,实现了在机器翻译任务上的性能提升和训练效率的显著提高。 【方法】:通过构建一个仅使用注意力机制的…

深入了解package.json文件

在前端项目开发中,我们经常会遇到package.json文件。这个文件不仅是一个简单的配置文件,它还承担了项目管理的重任。下面,我们将深入探讨package.json文件的各个字段和作用,并通过实例来帮助你更好地理解和使用它。 package.json…

AIGC时代!AI的“iPhone时刻”与投资机遇

AIGC时代!AI的“iPhone时刻”与投资机遇 前言AI的“iPhone时刻”与投资机遇 前言 AIGC,也就是人工智能生成内容,它就像是一股汹涌的浪潮,席卷了整个科技世界。它的出现,让我们看到了人工智能的无限潜力,也…