【阅读笔记】Deep Mutual Learning
Abstract
模型蒸馏是一种有效且广泛使用的技术,可将知识从教师网络转移到学生网络。典型的应用是从强大的大型网络或集成转移到小型网络,以满足低内存或快速执行的要求。在本文中,我们提出了一种深度相互学习(DML)策略。与模型蒸馏中静态预定义教师和学生之间的单向迁移不同,使用 DML,学生的集合在整个训练过程中协作学习并互相教授。我们的实验表明,各种网络架构都受益于相互学习,并在类别和实例识别任务上都取得了令人信服的结果。令人惊讶的是,它表明不需要先前强大的教师网络 - 一组简单的学生网络的相互学习工作,而且优于来自更强大但静态的教师的蒸馏。
Introduction
基于蒸馏的模型压缩与观察相关,即小型网络通常具有与大型网络相同的表示能力;但与大型网络相比,它们更难训练并找到实现所需功能的正确参数。也就是说,限制似乎在于优化的难度,而不是网络规模。为了更好地学习小型网络,蒸馏方法从一个强大的(深度和/或广泛的)教师网络(或网络集成)开始,然后训练一个较小的学生网络来模仿教师。模仿教师的类概率和/或特征表示可以传达超出传统监督学习目标的额外信息。学习模仿老师的优化问题比直接学习目标函数更容易,学生可以匹配甚至超过更大的老师。
在本文中,我们旨在解决学习小而强大的深度神经网络的相同问题。然而,我们探索了一个不同但相关的概念来模拟蒸馏——相互学习。Distillation 从一个强大的、经过预训练的教师网络开始,然后将知识单向传输给一个未经训练的小学生。相比之下,在相互学习中,我们从一群未经训练的学生开始,他们同时学习共同解决任务。具体来说,每个学生都接受了两种损失的训练:传统的监督学习损失,以及将每个学生的类后验与其他学生的类概率对齐的模仿损失。以这种方式进行训练后,结果表明,在这种基于同伴教学的场景中,每个学生的学习都比在传统的监督学习场景中单独学习时要好得多。此外,相互学习的学生网络比通过大型预训练教师的传统蒸馏训练的学生取得更好的结果。此外,虽然对蒸馏的传统理解需要一个比预期学生更大、更强大的老师,但事实证明,在许多情况下,与独立学习相比,几个大型网络的相互学习也提高了性能。这使得深度互学习策略具有普遍适用性,例如,它也可以用于对模型大小没有限制且只关注识别精度的应用场景。
为什么所提出的学习策略应该起作用可能并不明显。当学习过程从所有小型且未经训练的学生网络开始时,额外的知识从何而来?为什么它会收敛到一个好的解决方案,而不是被群体思维束缚为“盲人引导盲人”。通过考虑以下几点可以获得对这些问题的一些直觉:每个学生主要受到传统监督学习损失的指导,这意味着他们的表现通常会提高,并且他们不能作为一个群体任意漂移到群体思维中。通过监督学习,所有网络很快就会为每个训练实例预测相同(真实)的标签;但由于每个网络从不同的初始条件开始,它们学习不同的表示,因此它们对下一个最可能类别的概率的估计会有所不同。正是这些次级量在蒸馏以及相互学习中提供了额外的信息。在相互学习中,学生群体有效地汇集了他们对下一个最有可能的类的集体估计。根据他们的同伴找出并匹配每个训练实例的其他最可能的类会增加每个学生的后验熵,这有助于他们收敛到更稳健(更平坦)的最小值,并更好地泛化到测试数据。这与最近关于深度学习中高后验熵解决方案(网络参数设置)的鲁棒性的工作有关,但选择比盲熵正则化更明智的替代方案。
Contributions
- 它适用于各种网络架构,以及由大小混合网络组成的异构群组;
- 效能随着队列中网络的数量而增加——这是一个很好的特性,因为通过仅在小型网络上进行训练,它们中的更多可以适应给定的 GPU 资源,从而实现更有效的相互学习;
- 它也有利于半监督学习,因为在标记和未标记数据上都激活了模仿损失。
Method
1、公式化
由神经网络 Θ1 给出的样本 xi 的类别 m 的概率:
其中 logit
【阅读笔记】Deep Mutual Learning相关推荐
- 阅读笔记(Communication-Efficient Learning of Deep Networks from Decentralized Data)
阅读笔记(Communication-Efficient Learning of Deep Networks from Decentralized Data) 动机 联邦平均 实验结果 MINIST优 ...
- Pytorch实现Deep Mutual Learning网络
-Model(pytorch版本 参考资料: 信息熵是什么? 交叉熵和相对熵(KL散度), 极大似然估计求loss, softmax多分类 一文搞懂熵.相对熵.交叉熵损失 class torch.nn ...
- 【知识蒸馏】Deep Mutual Learning
[GiantPandaCV导语]Deep Mutual Learning是Knowledge Distillation的外延,经过测试(代码来自Knowledge-Distillation-Zoo), ...
- 论文阅读笔记:SCAN: Learning to Classify Images without Labels
论文阅读笔记:SCAN: Learning to Classify Images without Labels 摘要 简介和相关工作 方法 表征学习 语义聚类损失 2.3 通过自标记进行微调 3 实验 ...
- Deep Mutual Learning
论文地址: https://arxiv.org/abs/1706.00384 论文简介 该论文探讨了一种与模型蒸馏(model distillation)相关却不同的模型---即相互学习(mutual ...
- 论文阅读:Deep Bilateral Learning for Real-Time Image Enhancement
Deep Bilateral Learning for Real-Time Image Enhancement ABSTRACT 对于移动端的图像处理,性能功耗是一个非常大的挑战,这篇文章提出了一种新 ...
- [深度学习论文笔记]Modality-aware Mutual Learning for Multi-modal Medical Image Segmentation
Modality-aware Mutual Learning for Multi-modal Medical Image Segmentation 多模态医学图像分割中的模态感知互学习 Publish ...
- 论文笔记——Deep Residual Learning for Image Recognition(论文及相关代码)
啊先说一些题外话,在刚刚进入深度学习的时候就在知乎上看到关于何恺明大神的phd的传奇经历.大概就是何大牛顶着光环选手的称号进的MSRA,peer的到第1-2年就已经各种论文刷到飞起,但是何大牛到第三年 ...
- 论文阅读笔记:ProjectionNet: Learning Efficient On-Device Deep Networks Using Neural Projections
提示:阅读论文时进行相关思想.结构.优缺点,内容进行提炼和记录,论文和相关引用会标明出处. 文章目录 前言 介绍 相关工作 神经投影网络(Neural Projection Networks) Pro ...
最新文章
- API编程基本控件使用
- 【优化SQL Server循环更新、插入耗时长的问题】
- python实现地牢迷宫生成
- Activity-数据状态的保存
- 设计模式笔记二十:观察者模式 |更新版
- 怎么把打开方式还原计算机程序,打开方式怎么还原【图文】
- cloud源码-Feign
- 远程连接Ubuntu服务器
- PHP利用memcache缓存技术提高响应速度
- 毕业2月有余,苏州同学腐败第二次大聚会
- MR求两个用户的共同粉丝列表
- 操作系统之进程通信:高级通信机制四大类
- Linux服务器集群系统(一)
- openlayers3—地图图层数据来源(ol.source)
- 《 ERP高级计划》书的解读之二APS算法分析之单一:内点方法(蔡颖)(转)
- Redis学习之srem命令
- 项目总结之词法分析器
- 湖南省政务云灾备_全省唯一的省级政务云灾备基地在内江正式启动
- 【BugKu-CTF论坛writeup(杂项)】图穷匕见
- 蓝牙4.0 BLE协议结构图详解
热门文章
- BNN - 基于low-bits量化压缩的跨平台深度学习框架
- LeetCode(SQL)难度-中等
- 多云时代下数据管理技术_建立一个混合的多云数据湖并使用Apache Spark执行数据处理...
- Linux系统vscode断点单步运行调试C++程序
- c语言卸载了软件打不开了,控制面板卸载不了程序,手把手教你如何处理控制面板中卸载不掉的软件...
- Cerebral Cortex:疼痛热刺激引起的脑功能网络分离与整合
- Netgen编译出错的解决方案
- 【转载】PCB设计方法和技巧
- 人过三十,能不能成大事?看这10个细节足够,听话听音看人看小
- 聊天界面的制作(三)——表情列表发送功能