【阅读笔记】Deep Mutual Learning

Abstract

模型蒸馏是一种有效且广泛使用的技术,可将知识从教师网络转移到学生网络。典型的应用是从强大的大型网络或集成转移到小型网络,以满足低内存或快速执行的要求。在本文中,我们提出了一种 深度相互学习(DML)策略。与模型蒸馏中静态预定义教师和学生之间的单向迁移不同,使用 DML, 学生的集合在整个训练过程中协作学习并互相教授。我们的实验表明, 各种网络架构都受益于相互学习,并在类别和实例识别任务上都取得了令人信服的结果。令人惊讶的是, 它表明不需要先前强大的教师网络 – 一组简单的学生网络的相互学习工作,而且优于来自更强大但静态的教师的蒸馏

Introduction

基于蒸馏的模型压缩与观察相关,即 小型网络通常具有与大型网络相同的表示能力;但与大型网络相比, 它们更难训练并找到实现所需功能的正确参数。也就是说,限制似乎在于优化的难度,而不是网络规模。 为了更好地学习小型网络,蒸馏方法从一个强大的(深度和/或广泛的)教师网络(或网络集成)开始,然后训练一个较小的学生网络来模仿教师模仿教师的类概率和/或特征表示可以传达超出传统监督学习目标的额外信息。学习模仿老师的优化问题比直接学习目标函数更容易,学生可以匹配甚至超过更大的老师。

在本文中,我们旨在解决学习小而强大的深度神经网络的相同问题。然而,我们探索了一个不同但相关的概念来模拟蒸馏——相互学习。 Distillation 从一个强大的、经过预训练的教师网络开始,然后将知识单向传输给一个未经训练的小学生。 相比之下,在相互学习中,我们从一群未经训练的学生开始,他们同时学习共同解决任务。具体来说,每个学生都接受了两种损失的训练: 传统的监督学习损失,以及将每个学生的类后验与其他学生的类概率对齐的 模仿损失。以这种方式进行训练后,结果表明,在这种基于同伴教学的场景中, 每个学生的学习都比在传统的监督学习场景中单独学习时要好得多。此外,相互学习的学生网络比通过大型预训练教师的传统蒸馏训练的学生取得更好的结果。此外,虽然对蒸馏的传统理解需要一个比预期学生更大、更强大的老师,但事实证明,在许多情况下,与独立学习相比,几个大型网络的相互学习也提高了性能。这使得深度互学习策略具有普遍适用性,例如,它也可以用于对模型大小没有限制且只关注识别精度的应用场景。

为什么所提出的学习策略应该起作用可能并不明显。当学习过程从所有小型且未经训练的学生网络开始时, 额外的知识从何而来?为什么它会收敛到一个好的解决方案,而不是被群体思维束缚为”盲人引导盲人”。通过考虑以下几点可以获得对这些问题的一些直觉: 每个学生主要受到传统监督学习损失的指导,这意味着他们的表现通常会提高,并且他们不能作为一个群体任意漂移到群体思维中。通过监督学习,所有网络很快就会为每个训练实例预测相同(真实)的标签;但由于每个网络从不同的初始条件开始,它们学习不同的表示,因此它们对下一个最可能类别的概率的估计会有所不同。正是这些次级量在蒸馏以及相互学习中提供了额外的信息。 在相互学习中,学生群体有效地汇集了他们对下一个最有可能的类的集体估计。根据他们的同伴找出并匹配每个训练实例的其他最可能的类会增加每个学生的后验熵 ,这有助于他们收敛到更稳健(更平坦)的最小值,并更好地泛化到测试数据。这与最近关于深度学习中高后验熵解决方案(网络参数设置)的鲁棒性的工作有关,但选择比盲熵正则化更明智的替代方案。

Contributions

  1. 它适用于各种网络架构,以及由大小混合网络组成的异构群组;
  2. 效能随着队列中网络的数量而增加——这是一个很好的特性,因为通过仅在小型网络上进行训练,它们中的更多可以适应给定的 GPU 资源,从而实现更有效的相互学习;
  3. 它也有利于半监督学习,因为在标记和未标记数据上都激活了模仿损失。

Method

【阅读笔记】Deep Mutual Learning

1、公式化

【阅读笔记】Deep Mutual Learning

由神经网络 Θ1 给出的样本 xi 的类别 m 的概率:

【阅读笔记】Deep Mutual Learning

其中 logit 𝑧𝑚 是 Θ1 中”softmax”层的输出。

对于多类分类,训练网络 Θ1 的目标函数定义为预测值与正确标签之间的交叉熵误差,

【阅读笔记】Deep Mutual Learning

传统的监督损失训练网络预测训练实例的正确标签。为了提高 Θ1 在测试实例上的泛化性能,我们使用另一个对等网络 Θ2 以它的后验概率 p2 的形式提供训练经验。为了量化两个网络的预测 p1 和 p2 的匹配,我们使用 Kullback Leibler (KL) Divergence。

从 p1 到 p2 的 KL 距离计算为:

【阅读笔记】Deep Mutual Learning

因此,网络 Θ1 和 Θ2 的整体损失函数 LΘ1 和 LΘ2 分别为:

【阅读笔记】Deep Mutual Learning

通过这种方式,每个网络都可以学习正确预测训练实例的真实标签(监督损失 LC)以及匹配其对等点的概率估计(KL 模仿损失)。

我们基于 KL 散度的模仿损失是不对称的,因此对于两个网络来说是不同的。可以改为使用对称 Jensen-Shannon Divergence 损失:

【阅读笔记】Deep Mutual Learning

然而,我们凭经验发现, 使用对称或非对称 KL 损失没有任何区别

2、优化

模型蒸馏和 DML 之间的一个关键区别在于,在 DML 中,两个模型是联合和协同优化的,两个模型的优化过程被密切干预。相互学习策略嵌入在每个基于小批量的模型更新步骤中,用于两个模型以及整个训练过程。使用相同的小批量学习模型。在每次迭代中,我们计算两个模型的预测,并根据对方的预测更新两个网络的参数。 Θ1 和 Θ2 的优化是迭代进行的,直到收敛。算法 1 中总结了优化细节。 如果在单个 GPU 上运行,它由 4 个连续步骤组成。当有两个 GPU 可用时,可以通过在一个 GPU 上并行运行步骤 1、2 和在另一个 GPU 上并行运行步骤 3,4 来实现分布式训练。

【阅读笔记】Deep Mutual Learning

3、 扩展到更大的学生群体

提出的 DML 方法自然会扩展到学生群体中的更多网络。给定 K 个网络 Θ1, Θ2, …, ΘK(K ≥ 2),优化 Θk, (1 ≤ k ≤ K) 的目标函数变为:

【阅读笔记】Deep Mutual Learning

等式(10)表明,对于 K 个网络,每个学生的 DML 有效地将队列中的其他 K-1 个网络作为教师来提供模仿目标。等式 (6) 现在是 (10) 的特例,其中 K = 2。请注意,我们添加了系数 1 / K-1 以确保训练主要由真实标签的监督学习指导。具有两个以上网络的 DML 优化是算法 1 的直接扩展。这种学习策略自然适合分布式学习[21]:它可以通过在一个设备上学习每个网络并在设备之间传递小概率向量来进行分布式学习。

对于两个以上的网络,DML 的一个有趣的替代学习策略是 将所有其他 K-1 网络的集合作为单个教师来提供一个组合的模仿目标,这与蒸馏方法非常相似,但在每个小批量模型更新。那么 Θk 的目标函数可以写成:

【阅读笔记】Deep Mutual Learning

在我们的实验中(参见第 4.8 节),我们发现 这种具有单个集成教师(表示为 DML e )的 DML 策略导致比具有 K -1 个教师的 DML 更差 的性能。这是因为构建教师集成的模型平均步骤(等式(11))使教师的后验概率在真实类中更加峰值,从而降低了所有类的后验熵。因此,这与 DML 的目标之一相矛盾,即产生具有高后熵的稳健解决方案。

4、扩展到半监督学习

提出的 DML 直接扩展到半监督学习。在半监督学习设置下,我们只激活标记数据的交叉熵损失,同时计算所有训练数据的基于 KL 距离的模仿损失。这是 因为 KL 距离计算不需要类标签,因此也可以使用未标记的数据。将标记和未标记的数据表示为 L 和 U,其中 X = L ∪ U,学习网络 Θ1 的目标函数可以重新表述为:

【阅读笔记】Deep Mutual Learning

Original: https://blog.csdn.net/qq_29260257/article/details/123401476
Author: 一只瓜皮呀
Title: 【阅读笔记】Deep Mutual Learning

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/691268/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球