贾浩楠 发自 凹非寺
量子位 报道 | 公众号 QbitAI

在迁移学习任务中,一直存在这样的问题:

目标域由于没有标签,常常导致分界面附近混淆较多的数据。

中科院计算所的在读研究生崔书豪等,提出了一种新的解决方法:批量核范数最大化 (Batch Nuclear-norm Maximization,BNM)。

在典型的标签不足场景下(如半监督学习等),BNM可以有效地提升学习效果。

并且,大量实验表明,BNM的性能要优于目前主流的一些方法,并且搭配起来使用,效果也很不错。

这篇论文已被接收为CVPR 2020 Oral。

主要思路

类别预测的判别性与多样性同时指向批量响应矩阵的核范数,这样就可以最大化批量核范数来提高迁移问题中目标域的性能。

可以通过分析批量类别响应组成的批量矩阵A,尝试从判别性和迁移性进行优化。

判别性

所谓判别性,指的是预测类别的过程是否坚定。比如对于二类问题的响应:
1、[0.9,0.1]判别性较高
2、[0.6,0.4]判别性较低。

常见的方法采用最小化熵来得到较高的判别性。我们发现矩阵A的F范数与熵有着相反的单调性,从而可以通过最大化A的F范数来提升判别性。

多样性

多样性可以近似表达为批量矩阵中预测的类别数量,即预测的类别数量多则响应多样性大。

考虑不同类别响应的线性相关性,如果两个响应属于不同类别,那么响应会差别较大线性无关,如果属于相同类别则近似线性相关:
1、[0.9,0.1]与[0.1,0.9]线性无关
2、[0.9,0.1]与[0.8,0.2]近似线性相关。

那么预测类别数也就是矩阵中最大的线性无关向量数,即矩阵的秩。

BNM

核范数是矩阵奇异值的和,在数学上有两点结论:

1、核范数与F范数相互限制界限
2、核范数是矩阵秩的凸近似

所以类别预测的判别性与多样性同时指向矩阵的核范数,我们可以最大化矩阵核范数(BNM)来提升预测的性能。

比如上图中,如果使用熵最小化(EntMin)和BNM来优化,当熵相同的时候,使用BNM优化更容易使得核范数更大,从而预测对拥有较少数量的类别(绵羊)。

实现

在常用的框架Pytorch与Tensorflow中,均可通过一行代码实现BNM。

Pytorch:

TensorFlow:

应用

我们将BNM应用到三个标签不足的场景中:半监督学习、领域适应和开放域物体识别。

实验表明,在半监督学习中可以提升现有方法;在领域适应中BNM约束明显优于EntMin,并且单一的BNM约束可以达到与现有方法相近的性能,如下图:

在开放域物体识别中单一的BNM约束超过有着冗杂损失函数的UODTN,达到SOTA性能,如下图:

同时在开放域物体识别中,我们统计了随机采样的批量响应中未知类所占比例,如图:

我们发现BNM确实可以保持未知类所占比例,从而保障整体预测的类别数量与准确性,从而保持多样性。

此方法主要针对的是缺少标签场景下分界面附近数据密度较大的问题,对于迁移相关的任务有着较为普遍的改善价值。

作者介绍

论文作者包括中科院计算所学生崔书豪,卓君宝;计算所副研究员王树徽,李亮;国科大讲席教授黄庆明和华为诺亚方舟实验室田奇博士。

本文第一作者崔书豪,2018年本科毕业于清华大学自动化系,现在是中科院计算所VIPL实验室二年级硕士生,研究方向为深度领域适应学习与开放域学习技术。指导老师王树徽,长期从事跨模态、跨域分析推理技术研究

值得一提的是,崔书豪以第一作者向CVPR 2020提交了两篇论文,另一篇是Gradually Vanishing Bridge for Adversarial Domain Adaptation,目前也被接收。

传送门

论文原址:
https://arxiv.org/pdf/2003.12237.pdf

第二篇CVPR:
https://arxiv.org/abs/2003.13183

BNM项目Github主页:
https://github.com/cuishuhao/BNM

崔书豪知乎:
https://zhuanlan.zhihu.com/p/121507249

作者系网易新闻·网易号“各有态度”签约作者

—  —

「地平线核心技术系列公开课」第三期报名中。4月3日20:00,地平线应用平台架构师穆黎森,将在线介绍地平线AI Express如何助力算法工程化落地,并剖析其应用案例。

戳下图二维码,即可报名、加入交流群~

直播推荐 | 地平线核心技术解析系列课

学习计划 | 关注AI发展新动态

量子位 QbitAI · 头条号签约作者

վ'ᴗ' ի 追踪AI技术和产品新动态

喜欢就点「在看」吧 !

CVPR 2020 Oral:一行代码提升迁移性能,中科院计算所研究生一作相关推荐

  1. NeurIPS 2020 :新一代算法“鉴黄师”诞生,中科院计算所研究生一作

    贾浩楠 发自 凹非寺 量子位 报道 | 公众号 QbitAI 不知道那位不愿意透露姓名的唐马儒先生,现在看太阳还是不是绿色的? 第一代网络鉴黄师,牺牲小我,造福了千万家. 撇开玩笑不谈,维持健康良好的 ...

  2. NeurIPS 2020中国入选论文:新一代算法“鉴黄师”诞生,中科院计算所研究生一作...

    贾浩楠 发自 凹非寺 量子位 报道 | 公众号 QbitAI 不知道那位不愿意透露姓名的唐马儒先生,现在看太阳还是不是绿色的? 第一代网络鉴黄师,牺牲小我,造福了千万家. 撇开玩笑不谈,维持健康良好的 ...

  3. 【CVPR2020 Oral】只需一行代码就可提升迁移性能

    关注上方"深度学习技术前沿",选择"星标公众号", 精选文章,第一时间送达! 作者:Hassassin 知乎链接:https://zhuanlan.zhihu. ...

  4. CVPR 2020 Oral 文章汇总,包括论文解读与代码实现

    点击上方,选择星标或置顶,不定期资源大放送! 阅读大概需要10分钟 Follow小博主,每天更新前沿干货 [导读]本文为大家整理了10篇CVPR2020上被评为Oral的论文解读和代码汇总. 1.Ra ...

  5. CVPR 2020 Oral 汇总:论文 / 代码 / 解读(更新中)

    在2月24日,CVPR 2020 公布接收论文结果公布,从 6656 篇有效投稿中录取了 1470 篇论文,录取率约为 22%.3月13日,CVPR Oral结果公布了.有大佬已经分享了自己的工作,本 ...

  6. CVPR 2020 Oral | 旷视研究院提出双边分支网络BBN:攻坚长尾分布的现实世界任务...

    IEEE 国际计算机视觉与模式识别会议 CVPR 2020 (IEEE Conference on Computer Vision and Pattern Recognition) 将于 6 月 14 ...

  7. 旷视提双边分支网络BBN:攻坚长尾分布的现实世界任务 | CVPR 2020 Oral

    作者 | 旷视研究院 出品 | AI科技大本营(ID:rgznai100) 导读:本文是旷视 CVPR 2020 论文系列解读文章,也是 CVPR 2020 Oral展示论文之一,它揭示了再平衡方法解 ...

  8. MAML-Tracker: 目标跟踪分析:CVPR 2020(Oral)

    MAML-Tracker: 目标跟踪分析:CVPR 2020(Oral) Tracking by Instance Detection: A Meta-Learning Approach 论文链接:h ...

  9. 提高图形匹配精度,亮风台提出「完全可训练」的图匹配方法|CVPR 2020 Oral

    来源|亮风台投稿 6月14日-19日,CVPR 2020在线上举行,据了解,本届大会共收到6656篇投稿,接收论文1470篇,录用率约22%,低于CVPR 2019论文录用率(25%),为十年以来最低 ...

最新文章

  1. button 与 input type=button 的区别【2012/07/23】
  2. Hello Android – 迈出android开发第一步
  3. 计算机软硬件基础体系标准,国内首个计算机软硬件基础体系标准发布
  4. 中文分词入门之字标注法4
  5. [Golang] 用interface{}实现泛型出现的问题
  6. es6 Mixin 模式的实现
  7. 微异构Embree照片级光线追踪解决方案
  8. Android 系统性能优化(40)---Android LowMemoryKiller原理分析
  9. jQuery特效:实现瀑布流
  10. 精益创业(LeanStartup)
  11. Linux系统中用源代码编译安装软件和查看进程
  12. java求根号值_Java-求根号n(示例代码)
  13. quartus13.0用原理图输入法设计8位全加器
  14. 目前建站系统用的比较多的几个系统(几款值得推荐的建站系统)
  15. linux探索之旅pdf,【Linux探索之旅】第四部分第一課:壓縮文件,解壓無壓力
  16. 数仓的基本概念【精】
  17. 中国机械式停车设备行业投资建议与发展机遇研究报告2022版
  18. 线性代数(二十二) :行列式的展开式
  19. SpringMVC 程序开发
  20. 【华为机试真题Python】高矮个子排队

热门文章

  1. WPF Viewport3D 解决透视模式时窗体模糊
  2. Javascript中的apply、call、bind
  3. C#制作自定义安装程序
  4. Java多线程中的Runnable和Thread
  5. python列表修改数据_使用列表理解修改数据框架列
  6. com.tadu.android中文,塔读文学(com.tadu.android) - 6.68 - 应用 - 酷安
  7. python如何解决高并发_Flask 处理高并发、多线程
  8. controller调用controller的方法_SpringCloud Alibaba微服务实战三 - 服务调用
  9. 下列哪个不是python合法的变量名_下列哪个不是Python中合法的数据类型?
  10. 分享Kali Linux 2017年第29周镜像文件