前言 在本文中,作者引入了一个简单的框架,即Slimmable Domain Adaptation,以通过权重共享模型库改进跨域泛化,从中可以对不同容量的模型进行采样,以适应不同的精度效率权衡。此外,作者还开发了一种随机集成蒸馏方法,以充分利用模型库中的互补知识进行模型间交互。
在各种资源限制下,作者的框架在多个基准上大大超过了其他竞争方法,并可以保持对仅源代码模型的性能改进,即使计算复杂性降低到1/64。

欢迎关注公众号CV技术指南,专注于计算机视觉的技术总结、最新技术跟踪、经典论文解读、CV招聘信息。

论文:Slimmable Domain Adaptation

论文:http://arxiv.org/pdf/2206.06620

代码:https://github.com/hikvision-research/SlimDA

背景

深度神经网络通常对离线采集的图像(标记的源数据)进行训练,然后嵌入到边缘设备中,以测试从新场景中采集的图像(未标记的目标数据)。在实践中,这种模式由于域转移而降低了网络性能。近年来,越来越多的研究者对无监督领域适应(UDA)进行了深入研究,以解决这一问题。

Vanilla UDA旨在将源数据和目标数据对齐到联合表示空间中,以便根据源数据训练的模型可以很好地推广到目标数据。但是,学术研究与工业需求之间仍然存在差距:大多数现有的UDA方法仅使用固定的神经结构进行权重自适应,但无法有效地满足现实世界应用中各种设备的要求。

以图1所示的广泛使用的应用场景为例,在这种情况下,普通UDA方法必须反复训练一系列具有不同容量和体系结构的模型,以满足具有不同计算预算的设备的需求,这既昂贵又耗时。

为了解决上述问题,作者提出了Slimmable Domain Adaption(SlimDA),即只对模型进行一次训练,这样就可以灵活地从中抽取具有不同容量和体系结构的定制模型,以满足不同计算预算的设备的需求。

图1 SlimDA

当纤细的神经网络满足无监督领域自适应时,仍然存在两个挑战:

1)权重自适应:如何同时提高模型库中所有模型的自适应性能。

2) 架构适应:给定特定的计算预算,如何在未标记的目标数据上搜索适当的模型。

对于第一个挑战,作者提出了随机集成蒸馏(SEED)来交互模型库中的模型,以抑制模型内自适应对未标记目标数据的不确定性。表1显示了SEED和传统知识蒸馏之间的差异。

表1 传统知识蒸馏(CKD)与随机集成蒸馏(SEED)

对于第二个挑战,作者提出了一种无监督的绩效评估指标,可以缓解候选模型和锚模型之间的输出差异。度量值越小,假设性能越好。

贡献

1.提出了SlimDA,一个“一劳永逸”的框架,以共同适应资源有限设备的适应性能和计算预算。

2.提出了SEED,能够同时提高模型库中所有模型的适应性能。

3.设计了一个优化分离的三分类器来调节模型内适应和模型间交互之间的优化。

4.提出了一种无监督的性能评估指标,以促进架构适应。

相关方法

1.无监督域自适应(UDA)

现有的UDA方法旨在提高模型在未标记目标域上的性能。在过去几年中,提出了基于差异的方法和对抗性优化方法,通过域对齐来解决这个问题。SymNet开发了一种双分类器体系结构,以促进类别级领域混淆。最近,Li等人试图学习最佳架构,以进一步提高目标域的性能,这证明了网络架构对UDA的重要性。这些UDA方法侧重于实现在目标域上具有更好性能的特定模型。

2. 神经架构搜索(NAS)

NAS方法旨在通过强化学习、进化方法、基于梯度的方法等自动搜索最优架构。最近,一次性方法非常流行,因为只需要训练一个超级网络,并且同时优化了各种架构的多个权重共享子网络。这样,就可以从模型库中搜索最优的网络结构。在本文中,作者强调UDA对于NAS来说是一个未被注意到但意义重大的场景,因为它们可以在无监督的情况下合作优化特定于场景的轻量级体系结构。

3.跨域网络压缩

Chen等人提出了一种跨域非结构化剪枝方法。Y u等人采用MMD来最小化域差异,并在基于泰勒的策略中修剪过滤器,Yang等人专注于压缩图神经网络。Feng等人在通道修剪网络和全尺寸网络之间进行对抗性训练。然而,现有方法的性能仍有很大的改进空间。此外,他们的方法不够灵活,无法在不同的资源约束下获得众多的最优模型。

方法

1. SlimDA框架

在可精简的神经网络中已经证明,具有不同宽度(即层通道)的众多网络可以耦合到权重共享模型库中,并同时进行优化。从一个基线开始,在此基线中,SymNet直接与纤细的神经网络合并。

为了简单起见,SymNet的总体目标统一为Ldc。在每次训练迭代中,可以从模型库{(Fj,Csj,Ctj)}mj=1中随机抽样几个模型∈(F,Cs,Ct),命名为模型批次,其中m表示模型批次大小。此处(F、Cs、Ct)可被视为最大模型,其余模型可通过权重共享的方式从中采样。

为了确保模型库能够得到充分的训练,应在每次训练迭代中对最大和最小的模型进行采样,并将其构成模型批的一部分。

该基线可被视为Eqn的两个交替过程。为了鼓励上述基线中的模型间交互,作者提出了SlimDA框架,如图2所示。该框架由随机集成蒸馏(SEED)和优化分离三分类器(OSTC)设计组成。

SEED旨在利用模型库中的互补知识进行多模型交互。Cs和Ct分类器上的红色箭头表示领域混淆训练Ldc和模型库中的知识聚合。Ca分类器上的紫色箭头表示种子优化Lseed。

图2 SlimDA框架

2. 随机集成蒸馏(SEED)

SEED旨在利用模型库中的互补知识进行多模型交互。模型库中的不同模型可以直观地学习有关未标记目标数据的补充知识。受带有模型扰动的贝叶斯学习的启发,作者通过蒙特卡罗采样利用模型库中的模型来抑制未标记目标数据的不确定性。

模型置信度定义:

锐化函数以诱导种子训练期间的隐式熵最小化:

3. 优化分离三分类器(OSTC)

其中前两个用于域混淆训练,最后一个用于接收随机聚合的知识以进行蒸馏。蒸馏损失公式如下:

4. 无监督性能评估指标

无监督绩效评估指标(UPEM):

实验

表2 ImageCLEF-DA数据集上的两项消融实验

表3 在ImageCLEF-DA数据集上对SlimDA中的成分进行消融实验

表4 ImageCLEF-DA对I→P适应任务的两次消融实验

表5 在ImageCLEF-DA数据集上与不同最先进的轻量级网络进行性能比较

表7 Office-31数据集上的性能

图3 与随机搜索模型在ImageCLEF-DA上的六项适应任务进行比较

图4 无监督绩效评估指标(UPEM)与使用ground-truth 标签的准确性之间的Pearson相关系数

图5 模型库的收敛性能

结论

在本文中,作者提出了一个简单而有效的SlimDA框架,以促进权重和架构的联合适应。在SlimDA中,提出的SEED利用权重共享模型库中的架构多样性来抑制未标记目标数据的预测不确定性,并且提出的OSTC调节模型内自适应和模型间交互之间的优化冲突。

通过这种方式,可以通过无需再训练的采样方式将资源满意模型灵活地分布到目标域上的各种设备上。为了验证SlimDA的有效性,进行了广泛的消融实验。

CV技术指南创建了一个计算机视觉技术交流群和免费版的知识星球,目前星球内人数已经700+,主题数量达到200+。

知识星球内将会每天发布一些作业,用于引导大家去学一些东西,大家可根据作业来持续打卡学习。

CV技术群内每天都会发最近几天出来的顶会论文,大家可以选择感兴趣的论文去阅读,持续follow最新技术,若是看完后写个解读给我们投稿,还可以收到稿费。 另外,技术群内和本人朋友圈内也将发布各个期刊、会议的征稿通知,若有需要的请扫描加好友,并及时关注。

加群加星球方式:关注公众号CV技术指南,获取编辑微信,邀请加入。

欢迎关注公众号CV技术指南,专注于计算机视觉的技术总结、最新技术跟踪、经典论文解读、CV招聘信息。

公众号其它文章

计算机视觉入门路线

计算机视觉中的论文常见单词总结

YOLO系列梳理(四)关于YOLO的部署

YOLO系列梳理(三)YOLOv5

YOLO系列梳理(二)YOLOv4

YOLO系列梳理(一)YOLOv1-YOLOv3

CVPR2022 | 可精简域适应

CVPR2022 | 基于自我中心数据的OCR评估

CVPR 2022 | 使用对比正则化方法应对噪声标签

CVPR2022 | 弱监督多标签分类中的损失问题

CVPR2022 | iFS-RCNN:一种增量小样本实例分割器

CVPR2022 | A ConvNet for the 2020s & 如何设计神经网络总结

CVPR2022 | PanopticDepth:深度感知全景分割的统一框架

CVPR2022 | 重新审视池化:你的感受野不是最理想的

CVPR2022 | 未知目标检测模块STUD:学习视频中的未知目标

CVPR2022 | 基于排名的siamese视觉跟踪

从零搭建Pytorch模型教程(六)编写训练过程和推理过程

从零搭建Pytorch模型教程(五)编写训练过程--一些基本的配置

从零搭建Pytorch模型教程(四)编写训练过程--参数解析

从零搭建Pytorch模型教程(三)搭建Transformer网络

从零搭建Pytorch模型教程(二)搭建网络

从零搭建Pytorch模型教程(一)数据读取

关于快速学习一项新技术或新领域的一些个人思维习惯与思想总结

CVPR2022 | 可精简域适应的更多相关文章

  1. ASP.Net开发WebAPI跨域访问(CORS)的精简流程

    1: Web.config里有一行: <remove name="OPTIONSVerbHandler" /> 这个要删除. 2: nuget安装Microsoft.A ...

  2. Windows 2003】利用域&amp;&amp;组策略自动部署软件

    Windows 2003]利用域&&组策略自动部署软件 转自 http://hi.baidu.com/qu6zhi/item/4c0fa100dc768613cc34ead0 ==== ...

  3. Web前端知识体系精简

    Web前端技术由html.css和javascript三大部分构成,是一个庞大而复杂的技术体系,其复杂程度不低于任何一门后端语言.而我们在学习它的时候往往是先从某一个点切入,然后不断地接触和学习新的知 ...

  4. spring mvc:ueditor跨域多图片上传失败解决方案

    公司在开发一个后台系统时需要使用百度的UEditor富文本编辑器,应用的场景如下: UEditor的所有图片.js等静态资源在一个专有的静态服务器上: 图片上传在另外一台服务器上: 因为公司内部会使用 ...

  5. SXWIN7X64EN_20181104_NET_msu_LITE英文精简版

    SXWIN7X64EN_20181104_NET_msu_LITE英文精简版该版本为英文精简版!该版本为英文精简版!该版本为英文精简版!一.前言:关于极限精简版的说明 本系统为极限精简版,极限精简版系 ...

  6. SX_WIN10X64LTSB2016_EN_LITE英文精简版

    SX_WIN10X64LTSB2016_EN_LITE英文精简版该版本为英文版!该版本为英文版!该版本为英文版!因为论坛巴基斯坦的maanu兄弟PM我,所以抽空做了一个.介绍沿用原来的,中文用谷歌翻译 ...

  7. WIN10X64_LTSB2016极限精简版by双心

    WIN10X64LTSB2016极限精简版by双心http://www.cnblogs.com/liuzhaoyzz/p/9162113.html 一.前言:关于极限精简版的说明 本系统为极限精简版, ...

  8. WIN7X64SP1极限精简版by双心

     WIN7X64SP1极限精简版by双心 http://bbs.wuyou.net/forum.php?mod=viewthread&tid=405044&page=1&ext ...

  9. jQuery的ajax跨域 Jsonp原理

    1.Jsonp Jsonp(json with padding)是JSON的一种“使用模式”,可用于解决主流浏览器的跨域数据访问的问题. Jsonp是为了解决ajax跨域发送http请求出现的,利用S ...

  10. 前端工程精粹(一):静态资源版本更新与缓存(附精简js的工具)

    转自:http://www.infoq.com/cn/articles/front-end-engineering-and-performance-optimization-part1/ 每个参与过开 ...

随机推荐

  1. 查看外网出口IP &amp;&amp; Traceroute

    一.CentOS 查看外网出口IP 1---------------- # curl ifconfig.me 2----------------# curl icanhazip.com 二.Trace ...

  2. 深入源码剖析String,StringBuilder,StringBuffer

    [String,StringBuffer,StringBulider] 深入源码剖析String,StringBuilder,StringBuffer [作者:高瑞林] [博客地址]http://ww ...

  3. TCP的流量控制和拥塞处理

    1. 利用滑动窗口实现流量控制 如果发送方把数据发送得过快,接收方可能会来不及接收,这就会造成数据的丢失.所谓流量控制就是让发送方的发送速率不要太快,要让接收方来得及接收.    利用滑动窗口机制可以 ...

  4. JavaScript 的正则也有单行模式了

    正则表达式最早是由 Ken Thompson 于 1970 年在他改进过的 QED 编辑器里实现的,正则里最简单的元字符 “.” 在当时所匹配的就是除换行符外的任意字符: "." ...

  5. 生成式模型 VS 判别式模型

    1 定义 1.1 生成式模型 生成式模型(Generative Model)会对x和y的联合分布p(x,y)建模,然后通过贝叶斯公式来求得 p(yi|x),然后选取使得p(yi|x) 最大的 yi,即 ...

  6. mybatis自己学习的一些总结

    曾经一直在使用spring的JDBCTEMPLATE和hibernate做项目.两个都还不错,spring的jdbctemplate用起来比較麻烦,尽管非常easy.而hibernate呢,用起来非常 ...

  7. java发送邮件功能[转]

    原文链接:https://blog.csdn.net/jjkang_/article/details/56521959 Javamail遵循两个协议,一个是smtp协议,另一个是pop3协议.一般情况 ...

  8. 11.UiAutomator 相关JAVA知识

    一.封装方法与模块化用例 1.方法: 在JAVA中,方法就好比日常生活中的一个动作,由动作组合成一系列完整的操作. 方法结构: 方法修饰符 方法返回值类型 方法名 { 方法体 } 比如: public ...

  9. caffe Python API 之SoftmaxWithLoss

    net.loss = caffe.layers.SoftmaxWithLoss(net.fc3, net.label) 输出: layer { name: "loss" type: ...

  10. mysql修改表中某个字段的默认值

    Mysql中用SQL增加.删除字段,修改字段名.字段类型.注释,调整字段顺序总结   在网站重构中,通常会进行数据结构的修改,所以添加,删除,增加mysql表的字段是难免的,有时为了方便,还会增加修改 ...