CVPR 2022 | 这个自蒸馏新框架新SOTA,降低了训练成本,无需修改网络

简介: CVPR 2022 | 这个自蒸馏新框架新SOTA,降低了训练成本,无需修改网络


机器之心编辑部

OPP O 研究院 联合上海交通大学提出的新的自蒸馏框架DLB无需额外的网络架构修改,对标签噪声具有鲁棒性,并可大幅节约训练的空间复杂度,在三个基准数据集的实验中达到了 SOTA 性能。

深度学习促进人工智能(AI)领域不断发展,实现了许多技术突破。与此同时,如何在有限硬件资源下挖掘模型潜能、提升部署模型的准确率成为了学界和业界的研究热点。其中,知识蒸馏作为一种模型压缩和增强的方法, 将泛化能力更强的「大网络模型」蕴含的知识「蒸馏」到「小网络模型」上,来提高小模型精度,广泛地应用于 AI 领域的全监督、半监督、自监督、域迁移等各个方向。


近日, OPPO 研究院联合上海交通大学将视角聚焦到知识蒸馏的范式本身,提出了新的自蒸馏框架:DLB(Self-Distillation from Last Mini-Batch),模型无需额外的网络架构修改,对标签噪声具有鲁棒性,并大幅节约训练的空间复杂度。此外,在三个基准数据的实验中,模型达到了 SOTA 性能。相关论文「Self-Distillation from the Last Mini-Batch for Consistency Regularization」已被 CVPR 2022 收录。


论文链接:https://arxiv.org/pdf/2203.16172.pdf


DLB 自蒸馏框架


如何减少蒸馏计算复杂度?


知识蒸馏通常可以划分为三类,即离线蒸馏、在线蒸馏和自蒸馏。其中,自蒸馏具有训练轻量、知识迁移效率高的特点,最近受到更多研究者的重视。

 

图 1:本文方法与其他自蒸馏方法的比较


但是传统的自蒸馏,例如 Be Your Own Teacher,在模型训练过程中需要对模型结构进行修改。除此以外,训练成本高、计算冗余且效率低下也是自蒸馏需要攻克的难题。


为了解决上述难题,让模型更好地部署到手机等终端设备中,OPPO 研究院和上海交通大学的研究员们提出了 DLB 自蒸馏框架。利用训练时前后 Batch 预测结果的一致性,在无需对模型进行网络结构修改的前提下,就能降低训练复杂度,增强模型泛化能力。


1. 本文的任务


提出更加轻量的自蒸馏方式,降低训练的计算复杂度,提高模型准确率和泛化性。


2. 本文创新与贡献


  • 提出 DLB,通过保存与下个 Batch 部分样本重叠的软目标(soft targets)进行自蒸馏。节省计算内存,并且简化训练流程。
  • 让训练样本的每次前向过程都与一次反向传播过程相关联,从而提升学习效率。
  • 实验分析了 DLB 训练方法的动态影响,发现其正则化效果来源于即时生效的平滑标签带来的训练一致性,为自蒸馏的理论研究提供了实验基础。


DLB 自蒸馏框架训练机制


DLB 在训练阶段的每个 iteration 中,目标网络扮演着「教师」和「学生」的双重角色。其中,教师的作用是生成下一个 iteration 的软目标进行正则化;学生的作用是从前一个 iteration 平滑的标签中蒸馏,并最小化监督学习目标。


数据集定义为,包含 n 个样本的 Batch 定义为:,以图像分类为例,图片先进行数据增强,然后将其输入神经网络,优化预测输出与真值间的交叉熵损失:


 

上式中 p_i 的表达式如下:


θ为网络参数,K 表示分类类别数,τ表示温度。


为了提高泛化能力,传统的 vanilla 知识蒸馏通过额外优化的 KL 散度损失来迁移预先训练好的 teacher 网络的知识,即:



不同于以往采用预先训练 teacher 模型的方式生成(P_i^τ ) ̃,DLB 采用训练中前一个 Batch 蕴含的信息生成(P_i^τ ) ̃,并将其作为正则化的即时平滑标签。

 

图 2:DLB 训练方式示意图


如图 2 所示,数据样本在第 t 次迭代时的定义为,神经网络的参数为θ_t。


B_t 和 B_(t-1)是通过使用数据采样器获得,在前向过程后计算 L_CE。每个小批次的一半限制为与上一个 iteration 一致,其余一半与下一个 iteration 一致。之后,前半部分小批次利用上一个 iteration 中生成的动态软目标进行学习。即由 t-1 次迭代的软标签(soften labels)生成。因此,引入的正则化损失公式如下:

 


存储平滑标签只需要很少的额外内存成本,所以带来的额外计算成本很低。整体损失函数由下式表示:



综上,DLB 算法整体的训练的伪代码如下所示:



实验设置


研究员们采用三个图像分类基准数据集评估性能,包括 CIFAR-10、CIFAR-100TinyImageNet。实验结果都达到了最佳性能,如下表所示:



具体而言,在平均错误率层面, DLB 在 CIAFR-100 改进幅度为 0.83% 至 2.50%,在 CIFAR-10 上为 0.37% 至 1.01%,在 TinyImageNet 上为 0.81% 至 3.17。值得一提的是,DLB 的表现明显优于 Tf-KD 和 PS-KD,这证明了 DLB 在模型泛化提升上的优势。


为了评估 DLB 与基于数据增强正则化方法的兼容性,研究员在 CIFAR-10 和 CIFAR-100 上将 DLB 与 CutMix、CutOut 和 DDGSD 相结合。如下所示,实验表明通过结合 DLB 和基于增强的正则化,可以实现额外的性能增益。

 

为了证明鲁棒性,研究员在训练之前向 CIFAR-100、CIFAR-10 随机注入标签噪声,实验结果如下图所示,DLB 可以有效地抵抗标签噪声并提高整体性能。



结语


本文提出了一种基于自蒸馏思想的深度学习训练策略,将自蒸馏思想融入到模型训练过程中,对传统知识蒸馏进行改进,无需额外预先训练 teacher 的过程。通过在三个基准数据集上进行实验,多维度论证了 DLB 训练策略的有效性与普适性。


当下,深度学习网络模型结构复杂度不断提升,使用有限硬件资源开发和部署 AI 模型成为新的科研问题。在本文中,研究员设计的 DLB 训练策略,在某种程度上解决了「不增加模型复杂度,提高模型准确率」这一业界难题。


未来,OPPO 将持续研发该算法,并将其赋能到相关业务场景中,不断提升 OPPO 产品的用户体验。


相关文章
|
机器学习/深度学习 算法 量子技术
GQNN框架:让Python开发者轻松构建量子神经网络
为降低量子神经网络的研发门槛并提升其实用性,本文介绍一个名为GQNN(Generalized Quantum Neural Network)的Python开发框架。
368 4
GQNN框架:让Python开发者轻松构建量子神经网络
|
机器学习/深度学习 算法 PyTorch
【Pytorch框架搭建神经网络】基于DQN算法、优先级采样的DQN算法、DQN + 人工势场的避障控制研究(Python代码实现)
【Pytorch框架搭建神经网络】基于DQN算法、优先级采样的DQN算法、DQN + 人工势场的避障控制研究(Python代码实现)
316 1
|
12月前
|
监控 前端开发 安全
Netty 高性能网络编程框架技术详解与实践指南
本文档全面介绍 Netty 高性能网络编程框架的核心概念、架构设计和实践应用。作为 Java 领域最优秀的 NIO 框架之一,Netty 提供了异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端。本文将深入探讨其 Reactor 模型、ChannelPipeline、编解码器、内存管理等核心机制,帮助开发者构建高性能的网络应用系统。
778 0
|
机器学习/深度学习 API TensorFlow
BayesFlow:基于神经网络的摊销贝叶斯推断框架
BayesFlow 是一个基于 Python 的开源框架,利用摊销神经网络加速贝叶斯推断,解决传统方法计算复杂度高的问题。它通过训练神经网络学习从数据到参数的映射,实现毫秒级实时推断。核心组件包括摘要网络、后验网络和似然网络,支持摊销后验估计、模型比较及错误检测等功能。适用于流行病学、神经科学、地震学等领域,为仿真驱动的科研与工程提供高效解决方案。其模块化设计兼顾易用性与灵活性,推动贝叶斯推断从理论走向实践。
467 7
BayesFlow:基于神经网络的摊销贝叶斯推断框架
|
机器学习/深度学习 算法 PyTorch
【DQN实现避障控制】使用Pytorch框架搭建神经网络,基于DQN算法、优先级采样的DQN算法、DQN + 人工势场实现避障控制研究(Matlab、Python实现)
【DQN实现避障控制】使用Pytorch框架搭建神经网络,基于DQN算法、优先级采样的DQN算法、DQN + 人工势场实现避障控制研究(Matlab、Python实现)
464 0
|
机器学习/深度学习 计算机视觉 网络架构
RT-DETR改进策略【Backbone/主干网络】| CVPR 2024替换骨干网络为 UniRepLKNet,解决大核 ConvNets 难题
RT-DETR改进策略【Backbone/主干网络】| CVPR 2024替换骨干网络为 UniRepLKNet,解决大核 ConvNets 难题
1135 12
RT-DETR改进策略【Backbone/主干网络】| CVPR 2024替换骨干网络为 UniRepLKNet,解决大核 ConvNets 难题
|
监控 安全 Cloud Native
企业网络架构安全持续增强框架
企业网络架构安全评估与防护体系构建需采用分层防御、动态适应、主动治理的方法。通过系统化的实施框架,涵盖分层安全架构(核心、基础、边界、终端、治理层)和动态安全能力集成(持续监控、自动化响应、自适应防护)。关键步骤包括系统性风险评估、零信任网络重构、纵深防御技术选型及云原生安全集成。最终形成韧性安全架构,实现从被动防御到主动免疫的转变,确保安全投入与业务创新的平衡。
1221 2
|
SQL 安全 网络安全
网络安全与信息安全:知识分享####
【10月更文挑战第21天】 随着数字化时代的快速发展,网络安全和信息安全已成为个人和企业不可忽视的关键问题。本文将探讨网络安全漏洞、加密技术以及安全意识的重要性,并提供一些实用的建议,帮助读者提高自身的网络安全防护能力。 ####
572 17
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将从网络安全漏洞、加密技术和安全意识三个方面进行探讨,旨在提高读者对网络安全的认识和防范能力。通过分析常见的网络安全漏洞,介绍加密技术的基本原理和应用,以及强调安全意识的重要性,帮助读者更好地保护自己的网络信息安全。
425 10
|
存储 SQL 安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将介绍网络安全的重要性,分析常见的网络安全漏洞及其危害,探讨加密技术在保障网络安全中的作用,并强调提高安全意识的必要性。通过本文的学习,读者将了解网络安全的基本概念和应对策略,提升个人和组织的网络安全防护能力。

热门文章

最新文章