点击上方“视学算法”,选择加"星标"或“置顶”

重磅干货,第一时间送达

者:听笙

https://zhuanlan.zhihu.com/p/112248291

本文已由原作者授权,不得擅自二次转载

论文:https://arxiv.org/abs/2002.10826

长尾数据下的特征学习格外困难。解决尾部类别样本少、类内多样性不足的根本做法是增加样本。那么如何增加?我们在CVPR2020“Deep Representation Learning on Long-tailed Data: A Learnable Embedding Augmentation Perspective”的工作中提出了为尾部类别构造云、用“特征云”来充实尾部类的方法。与之前两个方法(CVPR2019[1]和NeurIPS2018[2])的工作不同,它们都利用生成对抗网络(GAN),为尾部类别生成额外的“虚构”样本,取得了更好的提升。然而,真的需要在原始图像空间来增加吗?GAN的训练与调用都非常消耗资源,有没有更实用、高效的办法?我们的工作给出了更巧妙、高效的解决。

我们的方法直截了当地聚焦到了特征空间,在学到的特征空间中,为尾部ID增加一些虚拟的样本。这些新增的虚拟样本就像电子云缠绕原子核一样,缠绕在实际样本四周,因此我们形象地称之为“feature cloud”。任何cloud的本质是一个概率模型,如何建立这个“feature cloud”的概率模型呢,我们提出向头部ID学习。我们使尾部ID保持“矮要承认,挨打站稳”的低姿态,既然自身由于样本数量稀少,导致类内多样性不足,那么就以谦虚的态度向头部ID 学习,将头部ID 的类内多样性transfer到尾部ID。因此,我们的方法可以非常直观地描述为——用特征云填充尾部类别单薄的特征空间,就像电子云填充空荡荡的原子一样。

接下来我们按照:什么是长尾分布?长尾分布会带来什么问题?我们是怎么解决的?以及使用我们的方法会尾部数据的特征学习带来什么改善?四个方面对我们的工作进行介绍.

1. 什么是长尾分布?

数据分布呈现上图所示的分布被称之为长尾分布,顾名思义就是有很长的“尾巴”的分布。这样的分布是广泛存在于实际的训练数据中的,即有大量的ID,它们所拥有的样本数量十分稀少,有限的样本数量不足以代表这个类别真实的分布情况,这样的ID 被定义为tail class (图中黄色部分)。而少量的ID,其样本量充分,类内多样性丰富,这样的类别定义为head class(图中蓝色部分)。

2. 长尾分布会带来什么问题?

CVPR2019[1]认为:当数据呈现长尾分布时,会导致分类器出现bias(势利眼),分类器更偏向于识别样本量充足,类内多样性丰富的头部类,从而忽略了尾部类,这对尾部类而言是不公平的。我们认为由于尾部ID的数量庞大,而且每个尾部ID所拥有的样本数量稀少,这会导致特征空间十分混乱,大量类别的辨识度不高,使得特征空间发生扭曲,畸变。最终网络学习得到的是一个不健康的模型,先天畸形。

具体地,我们将特征空间想象成一片巨大的领土,我们在Duke数据集中挑选8个头部类,使用t-SNE对其进行可视化。在(a)中我们可以发现每个head class都具有很大的“领土面积”,并且每个head class之间具有较大的类间距离,可以被很好的区分开(头部ID之间互相不爽,彼此之间分的很开)。如图(b)所示,当我们将其中4个头部类的样本数量进行削减,重新训练模型,我们发现tail class在特征空间中所占据的“领土面积”变得十分狭窄,受到了head class的“欺凌”,并且tail class不具有良好的区分度,它们与head class之间距离变得很近(人微言轻,势单力薄,寻求大腿,赶紧抱好)。最终导致原始良好的特征空间发生了崩塌。为了进一步验证我们的发现(特征空间中的“阴暗”),我们对特征向量与其类中心的夹角进行建模。这个角度的分布是可以反映类内分布的。在re-ID的一组实验设置<H20,S4>下,其中H 表示head class别数,T 表示每个tail class的样本数量,我们对类内夹角做定量的分析:head class的类内夹角方差为0.463(±0.0014),tail class的类内夹角方差为0.288(±0.0089)。这进一步说明了:相比较于tail class,样本数量丰富的head class具有更高的类内多样性。由于tail class的类内多样性不足,有限的样本不足以表征其所属ID 的真实分布,网络在学习的过程中,也不会对该类别进行充分的学习。这最终就会导致特征空间发生了畸变,模型丧失了对大部分ID(尾部ID)有效的鉴别能力。

3. 我们是怎么解决长尾分布带来的问题的?

毕竟打铁还需自身硬,要想让分类器对尾部类具有很好的辨识能力,那么尾部类自身就要“硬”起来,即在训练过程中,我们希望样本数量有限的尾部ID 也能够提供丰富的类内多样性,那应该怎么办呢?我们提出让tail class去学习head class的类内多样性,换句话说,我们将从head class学习的类内多样性transfer到tail class,以此来弥补在训练过程中tail class类内多样性的不足。为此,我们提出了“feature cloud”的概念:给定一个尾部类的特征向量,围绕为其生成许多虚拟的特征向量 (概率分布服从在head class中学习到的分布),我们将这一簇 称之为特征云。

在模型训练过程中,给tail class中每个instance的特征向量构建一个“特征云”,这样一个具体的特征向量就被一个“云”代替,一个tail class 就被属于这个类的多个“云”所表示,使得tail class可以在特征空间中占据更多的“领土面积”,通过将每一个属于tail class 的feature构建为一个“特征云”,进而将自身与其他类推的更远(这简直就是翻身农奴把歌唱啊)。

那么如何构建这个“特征云”呢?方法十分简单,我们使用特征向量与其对应的类中心之间的夹角分布来建模类内的特征分布。因此我们要学习head 与tail的类内夹角分布,我们假设夹角分布服从Gaussian distribution且每个类的夹角分布是彼此独立的。通过在训练过程中不断统计每个类别的类内夹角分布,可以得到:

  • head class 的类内夹角分布(如图红色线):

  • tail class的类内夹角分布(如图绿色线):

  • 特征云的分布(如图黄色线):

  • 我们将在head class学习到的角度方差transfer到tail 类中,为每个属于tail class的特征向量构建一个“feature cloud”,最终我们可以得到一个新的tail class类内夹角分布(如图蓝色线):

4. 使用我们的方法会对尾部类的特征学习带来什么样的改善?

通过对tail class构建“feature cloud”,我们训练得到新模型,我们使用t-SNE对其提取的特征进行可视化,如下图所示:

我们发现通过在训练过程中为尾部数据构建“feature cloud”,丰富其在训练过程中的类内多样性,最终模型训练结束后:

  • tail class 的类内变得更加紧凑;

  • 每个tail class可以与其它类明显地区分开,即使属于每个tail class的真实样本数量少,但是通过像head class学习,增强了自身的“实力”,可以做到和head class平起平坐);

在<H20,S4>这组实验设置下,我们再次统计了最终尾部类的类内角度方差为:0.201,比baseline(0.288)中要低,这说明通过使用我们的方法,进一步提升了tail class的类内紧凑性。

我们的方法在没有使用GAN 这种复杂的augmentation手段的前提下,获得了和这些方法一致的提高,简单而有效地缓解了长尾分布对特征学习造成的恶劣影响。具体方法及实验结果见论文:

https://arxiv.org/abs/2002.10826

1. Yin X, Yu X, Sohn K, et al. Feature transfer learning for face recognition with under-represented data[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2019: 5704-5713.

2. Gao H, Shou Z, Zareian A, et al. Low-shot learning via covariance-preserving adversarial augmentation networks[C]//Advances in Neural Information Processing Systems. 2018: 975-985.

麻烦给我一个在看!

CVPR2020 | 为尾部样本构造特征云,就像用电子云填充空旷的原子——长尾数据上的特征学习方法...相关推荐

  1. pandas用众数填充缺失值_sklearn中的数据预处理和特征工程

    小伙伴们大家好~o()ブ,我是菜菜,我的开发环境是Jupyter lab,所用的库和版本大家参考: Python 3.7.1(你的版本至少要3.4以上 Scikit-learn 0.20.0 (你的版 ...

  2. 大数据:“人工特征工程+线性模型”的尽头

    大数据:"人工特征工程+线性模型"的尽头 作者:李沐 来源:http://qing.blog.sina.com.cn/1953709481/74733da9330036o7.htm ...

  3. 文本数据的传统特征提取方法

    作者:Dipanjan (DJ) Sarkar 编译:ronghuaiyang 导读 介绍了一些传统但是被验证是非常有用的,现在都还在用的策略,用来对非结构化的文本数据提取特征. 介绍 在本文中,我们 ...

  4. 新大陆物联网-Android实现网关功能-连接云平台并上传传感器数据-获取执行器指令并执行-Android网关开发-通信-数据上传云平台-JAVA原理讲解-免费云平台使用-竞赛2022国赛真题

    目录 一.任务要求 二.开发环境 三.网关上线 四.数据上传与命令下发 五.JSON命令解析思路 六.总结 一.任务要求 我们将要实现的效果是:Android开发平板与Lora板进行有线串口通信,解析 ...

  5. 《Comprehensive Privacy Analysis of Deep Learning》补完以及Deepfool对抗样本构造算法

    本文关于推理攻击领域关于深度学习的隐私性的全面分析<Comprehensive Privacy Analysis of Deep Learning>,以及介绍Deepfool对抗样本构造算 ...

  6. 创建ogg文件 c语言,Ogg音频格式文件的样本构造(CVE-2018-5146)

    原标题:Ogg音频格式文件的样本构造(CVE-2018-5146) *严正声明:本文仅限于技术讨论与分享,严禁用于非法途径 下面的所有分析都是在Firefox 59.0 32位上进行的.由于笔者是刚入 ...

  7. 《大数据》2015年第3期“网络大数据专题”——基于特征学习的文本大数据内容理解及其发展趋势...

    基于特征学习的文本大数据内容理解及其发展趋势 袁书寒,向 阳,鄂世嘉 (同济大学计算机科学与技术系 上海 201804) 摘要:大数据中蕴含着重要的价值信息,文本大数据作为大数据的重要组成部分,是人类 ...

  8. 数据预处理与特征工程—12.常见的数据预处理与特征工程手段总结

    文章目录 引言 1.数据预处理 1.1 数据清洗 1.1.1 异常值处理 1.1.2 缺失值处理 1.2 特征预处理 1.2.1 数值型特征无量纲化 1.2.2 连续数值型特征分箱 1.2.2.1 无 ...

  9. 机械故障诊断信号幅域分析- 时域统计特征 | 基于python代码实现,在CWRU和IMF轴承数据集上实战

    最详细的机械故障信号时域特征分析及实战 1.摘要 2.有量纲幅域参数计算公式及物理意义 3.无量纲幅域参数计算公式及物理意义 4.模拟数据代码实战 4.1 导入包 4.2 生成模拟正弦数据 4.3 绘 ...

最新文章

  1. MySQL:互联网公司常用分库分表方案汇总!
  2. 太阳电池板特性实验_汕头市通风柜厂家报价-广州中增实验室设备
  3. App启动闪屏黑屏问题
  4. python3.6字典有序_Python-字典是用Python3.6+订购的吗?
  5. Java21-day12【网络编程(网络编程入门(ip地址、端口、协议、InetAddress)、UDP通信程序、TCP通信程序)】
  6. 在Linux服务器之间迁移帐号信息
  7. C++_类和对象_封装_案例_立方体类_案例点和圆的关系---C++语言工作笔记039
  8. 【IEEE Transactions NNLS】DSAN: Deep Subdomain Adaptation Network for Image Classification译读笔记
  9. 条款一:尽量使用const、inline而不是#define
  10. The best programmers are the quickest to Google
  11. 关于带宽,数据速度,码元,码间串扰
  12. 科研网站大全,你值得拥有!
  13. 教你们一招免300元直接认证小程序的办法
  14. NVIDIA显卡型号有哪些?怎么知道自己电脑的型号?
  15. 数码相机SD卡无法读取怎么办?照片怎么恢复
  16. iOS HomeKit Quick Start iOS HomeKit快速入门 Lynda课程中文字幕
  17. 三方支付之支付宝支付实现逻辑
  18. 2022年上半年信息系统项目管理师上午客观题参考答案及解析(一)
  19. 多媒体 || GIF压缩与JPEG压缩的对比
  20. 网络传输介质详细说明【包括线序】

热门文章

  1. redis删除过期key的算法_面试官别再问我Redis内存满了该怎么办了
  2. 联邦学习,为何而生?
  3. Kaggle金牌得主的Python数据挖掘框架,机器学习基本流程都讲清楚了
  4. AI换脸、声音篡改等,明确写入新版《民法典》
  5. 在线直播 | 是事实还是贩卖焦虑?IT行业也偏爱“小鲜肉”​
  6. 如何更新你的机器学习模型?手把手带你设计一个可持续的预测模型!
  7. AI和大数据如何落地智能城市?京东城市这6篇论文必读 | KDD 2019
  8. Python最抢手、Go最有前途,7000位程序员揭秘2019软件开发现状
  9. 2018 区块链技术及应用峰会(BTA)·中国全日程新鲜出炉,更多精彩议题看不停
  10. ELK不香了!我用Graylog