ICLR2021 | 清华大学黄高团队:显存不够?不妨抛弃端到端训练

智源导读:本文主要介绍清华大学黄高团队被ICLR2021接收的一篇文章:Revisiting Locally Supervised Learning: an Alternative to End-to-End Training。

论文链接:https://openreview.net/forum?id=fAbkE6ant2

代码链接:https://github.com/blackfeather-wang/InfoPro-Pytorch

撰文 | 王语霖,清华大学

首发于知乎专栏:炼丹学徒的笔记

本文研究了一种比目前广为使用的端到端训练模式显存开销更小、更容易并行化的训练方法:将网络拆分成若干段、使用局部监督信号进行训练。

我们指出了这一范式的一大缺陷在于损失网络整体性能,并从信息的角度阐明了,其症结在于局部监督倾向于使网络在浅层损失对深层网络有很大价值的任务相关信息。

为有效解决这一问题,我们提出了一种局部监督学习算法:InfoPro。在图像识别和语义分割任务上的实验结果表明,我们的算法可以在不显著增大训练时间的前提下,有效节省显存开销,并提升性能。

01

研究动机

一般而言,深度神经网络以端到端的形式训练。以一个13层的简单卷积神经网络为例,我们会将训练数据输入网络中,逐层前传至最后一层,输出结果,计算损失值(End-to-End Loss),再从损失求得梯度,将之逐层反向传播以更新网络参数。

图1 端到端训练(End-to-End Training)

尽管端到端训练在大量任务中都稳定地表现出了良好的效果,但其效率至少在以下两方面仍然有待提升。其一,端到端训练需要在网络前传时将每一层的输出进行存储,并在逐层反传梯度时使用这些值,这造成了极大的显存开销,如下图所示。

图2 端到端训练具有较大的的显存开销

其二,对整个网络进行前传-->反传的这一范式是一个固有的线性过程。前传时深层网络必须等待浅层网络的计算完成后才能开始自身的前传过程;同理,反传时浅层网络需要等待来自深层网络的梯度信号才能进行自身的运算。这两点线性的限制使得端到端训练很难进行并行化以进一步的提升效率。

图3 端到端训练难以并行化

为了解决或缓解上述两点低效的问题,一个可能的方案是使用局部监督学习,即将网络拆分为若干个局部模块(local module),并在每个模块的末端添加一个局部损失,利用这些局部损失产生监督信号分别训练各个局部模块,注意不同模块间没有梯度上的联通。下图给出了一个将网络拆分为两段的例子。

图4 局部监督学习(Locally Supervised Learning)

相较于端到端训练的两点不足,局部监督学习在效率上先天具有显著优势。其一,我们一次只需保存一个局部模块内的中间层输出值,待此模块完成反向传播后,即可释放存储空间,进而复用同样的空间用以存储下一个局部模块的中间层输出值,如下图所示。简言之,理论上显存开销随局部模块数呈指数级下降。

图5 局部监督学习可有效降低显存开销

其二,不同局部模块的反向传播过程并没有必然的前后依赖关系,在工程实现上,不同模块的训练可以自然的并行完成,例如分别使用不同的GPU,如下图所示。

图6 局部监督学习易于并行化完成

02

问题分析与假设

相信大家看到这里,都会有一个问题:既然局部监督学习的效率自然地高于端到端训练,为什么它现在没有被大规模应用呢?其问题在于,局部监督学习往往会损害网络的整体性能。

以图片识别为例,考虑一种简单自然的情况,我们使用标准的线性分类器+SoftMax+交叉熵作为每个局部模块的损失函数,在CIFAR-10数据集上使用局部监督学习训练ResNet-32,结果如下所示,其中  代表局部模块的数目。可以看出随着值的增长,网络的测试误差急剧上升。

图7 局部监督学习倾向于损害网络性能

若能解决性能下降的问题,局部监督学习就有可能作为一种更为高效的训练范式而取代端到端训练。出于这一点,我们探究和分析了这一问题的原因。

上述局部监督学习和端到端训练的一个显著的不同点在于,前者对网络的中间层特征直接加入了与任务直接相关的监督信号,从这一点出发,一个自然的疑问是,由此引发的中间层特征在任务相关行为上的区别是怎样的呢?因此,我们固定了图7中得到的模型,使用网络每层的特征训练了一个线性分类器,其测试误差如下图右侧所示。其中,横轴代码取用特征的网络层数,纵轴代表测试误差,不同的曲线对应于不同的取值,表示端到端的情形。

图8 中间层特征的线性可分性

从结果中可以观察到一个明显的现象:局部监督学习所得到的中间层特征在浅层时就体现出了极好的线性可分性,但当特征进一步经过更深的网络层时,其线性可分性却没有得到进一步的增长;相比而言,尽管在浅层时几乎线性不可分,端到端训练得到的中间层特征随着层数的加深可分性逐渐增强,最终取得了更低的测试误差。于是便产生了一个非常有趣的问题:局部监督学习中,深层网络使用了分辨性远远强于端到端训练的特征,为何它得到的最终效果却逊于端到端训练?难道基于可分性已经很强的特征,训练网络以进一步提升其线性可分性,不应该得到更好的最终结果吗?这似乎与一些之前的观察(例如deeply supervised net)矛盾。

为了解答这个疑问,我们进一步从信息的角度探究网络特征在可分性之外的区别。我们分别估计了中间层特征  与输入数据  和任务标签  之间的互信息  和,并以此作为中包含的全部信息和任务相关信息的度量指标。

图9 估算互信息

其结果如下图所示,其中横轴为取用信息的层数,纵轴表示估计值。从中不难看出,端到端训练的网络中,特征所包含的总信息量逐层减少,但任务相关信息维持不变,说明网络逐层剔除了与任务无关的信息。与之形成鲜明对比的是,局部监督学习得到的网络在浅层就丢失了大量的任务相关信息,特征所包含的总信息量也急剧下降。我们猜测,这一现象的原因在于,仅凭浅层网络难以如全部网络一般有效分离和利用所有任务相关信息,因此索性去丢弃部分无法利用的信息换取局部训练损失的降低。而在这种情况下,网络深层接收到的特征相较网络原始输入本就缺少关键信息,自然难以基于其建立更有效的表征,也就难以取得更好的最终性能。

图10 中间层特征包含的信息

基于上述观察,我们可以总结得到:局部监督学习之所以会损害网络的整体性能,是因为其倾向于使网络在浅层丢失与任务相关的信息,从而使得深层网络空有更多的参数和更大的容量,却因输入特征先天不足而无用武之地。

03

方法详述

为了解决损失信息的问题,本文提出了一种专为局部监督学习定制的损失函数:InfoPro。首先,我们引入一个基本模型。如下图所示,我们假设训练数据受到两个随机变量影响,其一是任务标签 ,决定我们所关心的主体内容;其二是无关变量,用于决定数据中与任务无关的部分,例如背景、视角、天气等。

图11 变量作用关系假设

基于上述变量设置,我们将InfoPro损失函数定义为下面的结合形式。它用于作为局部监督信号训练局部模块,由两项组成。第一项用于推动局部模块向前传递所有信息;在第二项中,我们使用一个满足特殊条件无关变量来建模中间层特征中的全部任务无关信息(无用信息),在此基础上迫使局部模块剔除这些与任务无关的信息。

图12 InfoPro损失函数

InfoPro与端到端训练和在 2. Analysis 中所述的简单局部监督学习(Greedy Supervised Learning)的对比如下图所示。简言之,InfoPro的目标是使得局部模块能够在保证向前传递全部有价值信息的条件下,尽可能丢弃特征中的无用信息,以解决局部监督学习在浅层丢失任务相关信息、影响网络最终性能的问题。事实上,这也是我们前面观察到的、端到端训练对网络浅层的影响形式。InfoPro与其它局部学习方法最大的区别在于它是非贪婪的,并不直接对局部的任务相关行为(如Greedy Supervised Learning中基于局部特征的分类损失)做出直接约束。

图13 3种训练算法的对比

在具体实现上,由于InfoPro损失的第二项比较难以估算,我们推导出了其的一个易于计算的上界,如下图所示:

图14 InfoPro损失的一个易于计算的上界

关于这一上界的具体推导过程、一些数学性质和其实际上的计算方式,由于流程比较复杂且不关键,不在此赘述,欢迎感兴趣的读者参阅我们的文章~

04

实验结果

1、在不同局部模块数目的条件下,稳定胜过baseline。

2、大量节省显存,且不引入显著的额外计算/时间开销,效果相较端到端训练略有提升;

3、ImageNet大规模图像识别任务上的结果,节省显存的效果同样显著,效果略有提升。

4、Cityscapes语义分割实验结果,除节省显存方面的作用外,我们还证明了,在相同的显存限制下,InfoPro可以使用更大的batch size或更大分辨率的输入图片。

05

结语

总结来说,这项工作的要点在于:(1)从效率的角度反思端到端训练范式;(2)指出了局部监督学习相较于端到端的缺陷在于损失网络性能,并从信息的角度分析了其原因;(3)在理论上提出了初步解决方案,并探讨了具体实现方法。

欢迎大家follow我们的工作~

@inproceedings{wang2021revisiting,title = {Revisiting Locally Supervised Learning: an Alternative to End-to-end Training},author = {Yulin Wang and Zanlin Ni and Shiji Song and Le Yang and Gao Huang},booktitle = {International Conference on Learning Representations (ICLR)},year = {2021},url = {https://openreview.net/forum?id=fAbkE6ant2}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/65132.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

清华大学黄高——图像数据的语义层扩增方法

⬆⬆⬆ 点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入! 2020 年 9 月 25 日,在由中国科协主办,清华大学计算机科学与技术系、AI TIME 论道承办的《2020 中国科技峰会系列活动青年科学家沙龙——人工智能学术生态与产业创新》上&#xf…

DenseNet发明者黄高:动态模型好在哪里?

智源导读:自2012年至今,计算机视觉领域蓬勃发展,各种模型不断涌现,短短 8 年时间,计算机视觉领域便发生了天翻地覆的变化。那么如何看待过往变化,当下研究又如何? 12月10日晚,在【青…

对话 DenseNet 一作黄高:做有韧劲、能抗压、不断探索未知的科研

点击上方“计算机视觉工坊”,选择“星标” 干货第一时间送达 作者丨刘冰一 来源丨极市平台 清华大学助理教授、密集连接卷积网络 (DenseNet)提出者 、计算机视觉领域一作顶会论文被引次数最高的国内学者、百万青橙奖奖金获得者..... 这些标签…

测试工程师的好日子来啦?Testin发布AI测试产品,提升易用性和自动化效率

2019年10月26日,以"AI未来"为主题的第二届NCTS中国云测试行业峰会在北京国际会议中心正式开幕。在本次大会上,Testin 总裁徐琨正式发布测试业务Testin云测的全新AI产品iTestin。作为 Testin 人工智能战略中的重要一环,iTestin 融合…

【CodingNoBorder - 07】无际软工队 - 求职岛:ALPHA 阶段测试报告

无际软工队 - 求职岛:ALPHA 阶段测试报告 项目内容这个作业属于哪个课程2022年北航敏捷软件工程这个作业的要求在哪里团队项目-Alpha阶段测试报告我们在这个课程的目标是熟悉敏捷开发的方法论,并通过实际开发产品进行实践。这个作业在哪个具体方面帮助我…

pytest测试报告Allure - 动态生成标题生成功能、添加用例失败截图

一、动态生成标题 默认 allure 报告上的测试用例标题不设置就是用例名称,其可读性不高;当结合 pytest.mark.parametrize 参数化完成数据驱动时,如标题写死,其可读性也不高。 那如果希望标题可以动态的生成,采取的方案…

❀YOLOv5学习❀图像标注工具LabelImg的下载,配置和使用。

LabelImg是图形图像注释工具。它是用Python编写的,并将Qt用于其图形界面。批注以PASCAL VOC格式(ImageNet使用的格式)另存为XML文件。此外,它还支持YOLO格式。下载这个,主要是为了YOLOv5中,做自己的数据集&…

brat事件标注平台使用教程

事件图谱首先涉及到的是事件标注,我采用的是brat事件标注平台,该平台使用的是Linux系统,因为我的电脑是windows系统, 将brat安装在了linux虚拟机(Ubuntu)上。 一.下载与安装 1.下载brat 进入brat官网brat…

OpenAI 成近期顶流团队?如何使用 OpenAI 和 Node.js 构建 AI 图像生成器?

摘要: 12月7号,知名人工智能研究机构 Open AI 在Youtub上发布视频介绍使用OpenAI 和 DALL-E 模型创建一个网络应用程序,该应用程序将根据输入的文本从头开始生成图像。https://www.youtube.com/watch?vfU4o_BKaUZE 前言💖 大家好&#xff0…

AI 自动写代码插件 Copilot(副驾驶员)

AI 自动写代码插件 Copilot 提示:Copilot单词直译过来就是副驾驶员的意思。 介绍:本质上就是基于GitHub开源的亿级别的代码,训练AI模型,自动生成代码。 就是数据量(GitHub的数据量就很大!)能够决定你AI模型精度的上…

软件测试中的AI——运用AI编写测试用例

文章目录 一、现状二、测试技术可结合AI的几个方向三、尝试使用AI编写测试用例(实验过程)1、AI联系上下文的能力弱2、回答的内容类似于能在网上搜索到的内容3、需要有一个明确的指令4、输出内容有限5、无法想象到需求描述之外的内容 四、总结&#xff1a…

AI热度降温?揭秘加德纳技术成熟度曲线与AI发展阶段

一文解决你所有对 AI 的焦虑 近期,我们发现ChatGPT的热度似乎不如前几个月。许多人尝试了这个技术,觉得它非常强大,但似乎与自己的日常生活和工作关系不大,因此逐渐失去了兴趣。 然而,这实际上是技术发展的正常周期&…

王炸赚钱组合!!ChatGPT + AI大模型

“ 你近期有体验过哪些大模型产品呢? 你有使用大模型API做过一些实际开发吗? 在你日常开发中,可以与大模型相关应用结合来完成工作吗? ” 从去年底开始,大模型的发展趋势就非常迅猛,这也代表着人工智能进入…

ChatGPT + AI大模型 = 王炸!!!

“ 你近期有体验过哪些大模型产品呢? 你有使用大模型API做过一些实际开发吗? 在你日常开发中,可以与大模型相关应用结合来完成工作吗? ” 从去年底开始,大模型的发展趋势就非常迅猛,这也代表着人工智能进入…

ChatGPT+低代码,好用到飞起?

ChatGPT 凭借短短 2 个月,月活用户突破 1 亿,成为史上用户增长速度最快的消费级应用程序。ChatGPT 的爆火,在全球范围内掀起了一场关于 AI 技术革命的狂潮,AIGC 也迅速成为科技圈最火赛道。 更有国际咨询机构预测,203…

信用卡兴趣人群洞察报告.pdf

男性用户对信用卡的关注度显著高于女性 信用卡兴趣人群年龄集中在24-40岁,与主流消费人群相吻合。41岁以上人群信用卡关注度明显滑落 深广信用卡关注度最高,占据前四名知州、西安等中西部城市占据前十名中半数名额 信用卡兴趣人群高度集中于iPhone手机,其次分别为三星、魅族…

关于程序员的调查报告

最近Stack Overflow发布一份开发者调查报告,内容涵盖了开发人员最喜欢的技术到工作偏好等等各种问题。下面小编就带大家一起来看一看。 NO.1 最常用的的编程语言: 我们发现Python的使用度今年超过了Java,Python的势头有点猛啊!&am…

c语言进行数据统计分析的研究报告,统计分析报告范文

统计分析报告范文 大家都知道,统计分析的写作是为了制作统计分析文章。在统计部门,统计分析文章则称为统计分析报告。下面是一篇统计分析报告范文,欢迎阅读! 统计分析报告范文 【目录】 一.引言 二.研究目的 三.数据分析 I.对能源生产及构成的…

论文阅读报告

0 2022/6/23-2022/6/25 1. FLAME: Taming Backdoors in Federated Learning 1.1 本文的贡献 我们提出了FLAME,这是一种针对FL中后门攻击的防御框架,能够消除后门而不影响聚合模型的良性性能。与早期的后门防御相反,FLAME适用于一般对手模型…

「市场调研」简说

1. 外部因素评价矩阵EFE EFE矩阵可以帮助战略制定者归纳和评价经济、社会、文化、人口、环境、政治、政府、法律、技术以及竞争等方面的信息。 建立EFE矩阵的五个步骤如下:  1) 列出在外部分析过程中所确认的外部因素,包括影响企业和其所…