大数据中怎么解决长尾分布问题以及解耦类别特征并实现空间增广,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
现实世界的数据通常遵循长尾分布,也就是说每个类的数量通常是不同的。例如,数据集头部类中样本数很多,而尾部类中样本数很少。然而我们希望模型是能够公平的表示整个数据集,而不是偏向某些样本多的类。解决长尾问题的各种方法中,类平衡损失、重采样和数据增广是比较常见的方法。但是对于尾部类来说,我们不得不考虑一些其他知识来弥补丢失的信息。在本文中,作者提出了一种新的方法来解决长尾问题——在特征空间中将头部类的特征增广到尾部类特征上。具体来说是将每个类的特征解耦成类特有和类共有特征,将尾部类的类特有特征和头部类的类共有特征进行融合,从而实现特征空间的增广。该方法在iNaturalist, ImageNet-LT, Places-LT 和长尾的CIFAR集四个数据集上都取得了不错的效果。
简介
长尾分布广泛存在于视觉任务中。如图所示在分类和检测任务中存在长尾分布问题。
长尾分布带来的主要问题是在训练时,因为尾部类数据量少,统计信息不够丰富,因而模型并不能很好的表达尾部类。现有的方法主要有数据增广,下采样,过采样,和平衡损失函数的构建等。但是这些方法当尾部类数量极少时,性能并不理想。如下图所示。
本文提出了在特征空间中,将头部类的信息迁移到尾部类上,具体方法如下。
本文方法
本文首先用CAM方法提取注意力区域,得到每个类的类特有特征和类共有特征。之后将尾部类的类特有特征和头部类的类共有特征进行融合。
首先来介绍一下CAM(Class Activation Map)。
M是我们得到的高亮图。c是类别,x,y是像素位置,k是通道,w是权重,f是特征向量。当M越大,意味着x,y处的特征对于c这一类别来说越发重要。之后我们将M归一化到0-1,给一个阈值,通过下面的公式,我们就能得到类特有特征(s代表specific)和类共有特征(g代表generic)。
其中,代表Hadamard乘积,而当x大于等于0时,sgn(x)=1,小于0时,sgn(x)=0。
之后我们来看整体的训练流程。第一步是进行全部数据的训练,得到提取特征的子网络和基础分类器,用于之后的步骤中。第二步是根据刚刚得到的提取特征网络和分类器,以及之前的CAM,进行尾部类的增广。可以看到,第二步进去一张尾部类图片和一张头部类图片,选取头部类图片时是选取的与尾部类距离较近,容易混淆的头部类(根据置信度排序得到)。
第三步则是微调。注意第三步和第二步是同步进行的,统称为第二阶段。第二阶段整体算法流程如下。
数据集: Long-tailed CIFAR-10 and CIFAR-100, ImageNet-LT and Places-LT Dataset,iNaturalist 2017 and 2018.
对比实验:
消融实验
结果分析
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注亿速云行业资讯频道,感谢您对亿速云的支持。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。