论文解读:Channel Importance Matters in Few-Shot Image Classification

文章汇总

参考文章ICML2022|Channel Importance Matters in Few-Shot Image Classification - 知乎

一句话总结

Channel bias问题,使模型在迁移到下游小样本分类任务时泛化能力较差,本文在测试阶段仅用一行代码就减弱这个问题的影响。

Channel bias问题

想象一下一个即将在miniImageNet上训练的模型。miniImageNet有很多动物类别,没有植物类别,但这些动物经常以各种植物为背景。

因此在训练的过程中(第一行),该模型发现,用于分辨这些动物的判别性特征是动物身体部位的一些细节,与背景无关,不禁窃喜,嘿嘿,这些植物都是些障眼法,可以被忽略,咱就关注那些动物身上的判别性特征就行。

可想而知,当此模型在测试阶段看到一堆iNaturalist的植物(第二行)时心里是崩溃的:这些玩意我都见过,但真的没啥印象呀,这咋区分的开:) 下一次该模型痛改前非,在iNaturalist上老老实实地训练,结果还是Too naive。测试时,一不小心碰上了细粒度Plant Disease数据集(第三行),又双叒叕懵逼了:这些不同的类别不都是一种植物么??这有啥区别,那些奇奇怪怪的纹路我也见过,但在之前训练时跟分类没啥关系啊,内心崩溃*2。

如果上面这个例子里的直觉是正确的,那么任何一种任务分布转移,都会导致判别性特征发生变化,而模型并未及时觉察出这一点,仍以过往经验来完成测试阶段的任务。很明显,模型训练之前学习得的“某种”经验不好使了,因此在测试时会表现差。

本质就是神经网络确实在测试阶段把channel 重视程度搞错了。我们把神经网络图像特征表示存在的这个问题称为channel bias问题。

偶然发现的函数

通过特定特征转换,对特征表示进行纠偏,使得性能有提升

其中k是一个大于0的超参数。在测试阶段,把这个函数逐一作用于每一个图像特征表示的每一个维度(也称为通道--channel),就这么简单的一个操作(仅需一行代码),我们发现,就能大幅度提升各种模型在各种测试数据集上的小样本分类性能

验证起效果场景

函数仅在存在任务分布偏移(训练和测试的数据集数据分布有明显差异)的时候才有效果

可视化分析函数作用

上图可视化了miniImageNet训练所学特征表示在Plant Disease上的channel情况。x轴每一条竖线是一个channel在这个数据集上的平均值,我们称为该值为Mean Magnitude of Channel(MMC)。红色和绿色分别为作用该函数前后的MMC。明显地,我们发现这个函数压低了高MMC的channel,并大幅度提升了低MMC的channel

好了,我们现在已经把Channel bias问题中的“特征”和神经网络所学特征表示的“channel”对等了起来,特征重视程度的偏差转化为了channel重视程度的偏差。我们也发现MMC可以作为channel重视程度的一种度量。

三个发现

1.神经网络确实在测试阶段把channel 重视程度搞错了。大的普通应变小,小的普遍应变大。在CUB上,一些MMC大的channel(靠右的那几个)其oracle MMC应降低5-10倍左右,而偏低的一些MMC(靠左的那一坨)则oracle MMC应提升乃至数十倍。我们把神经网络图像特征表示存在的这个问题称为channel bias问题。

2.任务分布转移大,则channel bias更严重。明显地,CUB的channel bias比miniImageNet测试集上严重的多。右图红色的线明显偏移了y=x,而左图偏移程度很小。

3.前面提到的简单函数对MMC进行了一定程度的纠偏。明显可以发现,蓝色的线比y=x更接近红色的线。因此虽然提出的简单函数仍然不够完美,但依然作出了该有的努力。

摘要

Few-Shot Learning (FSL)要求视觉模型在任务分布变化的情况下快速适应全新的分类任务。了解这种任务分配转变所带来的困难是FSL的核心。在本文中,我们展示了一个简单的通道智能特征转换可能是从通道角度解开这个秘密的关键。当面对测试时间数据集中新颖的少镜头任务时,这种转换可以大大提高学习图像表示的泛化能力,同时与数据集和训练算法的选择无关。通过对这种转换的深入分析,我们发现FSL中表征转移的困难源于图像表征的严重通道偏差问题:通道在不同的任务中可能具有不同的重要性,而卷积神经网络可能不敏感,或者对这种转移的反应不正确。这指出了现代视觉系统泛化能力的一个核心问题,是未来需要进一步关注的问题。我们的代码可在GitHub: Let’s build from here · GitHub Frankluox/Channel_Importance_FSL获得。

1. 介绍

深度卷积神经网络(Krizhevsky et al, 2012;他等人,2016)在过去十年中彻底改变了计算机视觉,使从大量图像中自动学习表征成为可能。学习到的表征可以很好地泛化到全新的图像。因此,在大多数基准测试中,图像分类性能接近人类。然而,除了识别以前看到的类别外,人类还可以在变换的环境中快速改变图像模式的焦点并且仅仅通过一些观察就能识别出新的类别。这种快速学习能力,被称为Few-Shot learning (FSL),挑战了当前视觉模型快速适应不同于训练中的新分类任务的能力。这种任务分布转移意味着新任务中的类别、图像域或类别粒度与训练任务中的类别、图像域或类别粒度存在偏差。

最近对少量图像分类的研究强调了学习图像表示质量的重要性(Raghu等人,2020;Doersch等,2020;Dhillon等,2020;田等,2020;Rizve et al, 2021),并且还表明,当存在任务分布转移时,神经网络学习的表征不能很好地泛化到新的少镜头分类任务(Chen et al, 2021;Doersch等,2020;Agarwal et al, 2021)。因此,研究任务分布的变化对图像表征泛化能力的影响是至关重要的。

如图1所示,任务分布的变化可能会导致判别图像特征的变化,而这些特征对当前的分类任务至关重要。例如,在动物识别任务中,在miniImageNet上训练的卷积神经网络可以成功地识别出与动物相关的判别信息。尽管网络学习到的表示可以编码一些植物信息(来自图像背景),但植物并没有作为miniImageNet的主要类别出现,并且对于网络来说,在从iNaturalist数据集采样的新颖的少数镜头任务中区分各种植物可能是不够的。

即使该网络在iNaturalist上训练得很好,可以识别植物,但由于粒度的变化,它很难适应识别植物病害的新任务,因为判别信息现在变成了更细粒度的叶片病变部分。

在本文中,我们证明了在少镜头学习中遇到的这种困难会导致学习图像表示(即特征)中的通道偏差问题。具体而言,在全局池化后的层中,学习到的特征中的不同通道寻求不同的模式(如Zhou et al ., 2015;Bau等人,2017))在训练过程中,并且通道根据其对训练任务的重要性进行加权(以有偏差的方式)。然而,当应用于新的小样本分类任务时,学习到的图像特征通常变化不大或不适应新任务的类别而发生不适当的变化。这种对训练任务的偏向可能导致在新任务中对图像特征的不精确关注。

导致我们发现通道偏置问题的是一个简单的变换函数,它是我们在数学分析课本中找到的。该转换函数仅在测试时动态地应用于图像表示的顶部通道,可以持续且大幅度地提高对分布外的少镜头分类任务的预测,与数据集和训练算法的选择无关(例如,在19个不同的测试时间数据集上,5-way 5-shot任务的平均改进为0.5-7.5%,如表1所示)。通过分析,我们发现通道偏差问题的存在。并表明该变换通过调整目标任务上图像表示的通道平均幅度(MMC)来校正通道重点。具体来说,它是一种平滑函数,可以抑制大MMC的通道,并在很大程度上放大小MMC的通道。

为了进一步理解通道偏置问题,我们在二值分类任务中对图像表示的MMC进行了oracle调整。这些研究表明,通道偏置问题存在于许多不同类型的目标任务中,并且随着分布偏移的扩大,通道偏置问题变得更加严重(如图6所示)。此外,通过测试时间镜头分析,我们验证了通道偏置问题在少镜头设置下需要更多的关注,而在多镜头设置下,简单的微调可以帮助解决该问题。

2. a Channel-wise Feature Transformation

见上面文章汇总

4. Analysis of the Number of Shots

我们已经看到,通道偏差问题是图像表示不能很好地推广到新的少量分类任务的主要原因之一。然而,有两个问题仍然需要回答:(1)我们仍然不清楚这个问题是否只与少拍图像分类有关。在之前的所有实验中,我们在每个类只给出5个标记图像的任务上进行测试。如果我们在新任务中有更多的训练样本会发生什么?(2)信道偏置问题对不同测试时间方法的影响有多大?如果我们有机会对学习到的表示进行微调,那么提出的简单转换是否仍然有效?为了回答这些问题,我们对三种具有代表性的测试时间方法进行了镜头分析实验,这些方法是大多数主流的少镜头分类算法所采用的或基础:(1)ProtoNet中提出的基于度量的最近邻质心分类器(NCC)方法,该方法首先对支持集中每个类的图像特征进行平均,形成类质心,然后将查询特征分配给最近邻质心的类;(2)线性分类器(LC),根据学习到的支持集中的图像特征训练线性层;(3)微调,利用支持集中的图像对特征提取器和线性层进行微调。在miniImageNet的训练集上使用最先进的S2M2算法对特征提取器进行训练,并在miniImageNet的测试集上使用上述三种测试时间方法,在支持集的每个类别中使用不同数量的标记图像进行测试。结果如图8所示。我们展示了所有方法的原始精度,以及简单变换对性能的影响。

我们首先看一下右图,它显示了简单变换对所有方法的影响。对于所有测试的照片,NCC和LC的性能增益保持在一个相对较高的值,每个类最多有400个标记图像。这表明信道偏置问题不仅与少镜头设置有关,而且存在于多镜头设置中。然而,当我们有大量的支持图像时,我们有另一种选择,直接微调特征提取器。微调方法有可能通过直接修改图像表示和校正信道分布来完全解决信道偏置问题。右图显示,简单的变换并没有改善微调方法,因此信道偏置问题确实在很大程度上得到了缓解。在左图中,微调方法在多镜头设置中表现出优势,但在少镜头设置中表现出不足。因此,我们可以推断,通道偏置问题只存在于少数镜头设置中,在这种情况下,冻结特征提取器并在学习到的特征上构建分类器是更好的选择。

我们还有另一个值得注意的观察结果。简单变换在NCC上的性能增益保持在一个固定值附近,而LC上的性能增益随着射击次数的增加而降低。从而在一定程度上缓解了多镜头环境下的信道偏置问题。这是因为更多的标记数据告诉线性分类器关于数据的类内方差的足够信息,从而可以通过修改线性变换矩阵的每一行的比例来调整MMC。因此,线性分类器可以稳定地提高其性能,当更多的标记数据进入时,直到无法实现更多的线性分离,并且需要使用时间微调来直接调整特征空间。

6. 结论

本文揭示了少样本图像分类中的通道偏置问题。这个问题可以通过本工作中提出的简单的通道特征转换来缓解。这种转换在测试时使用,不增加任何计算开销,可以应用于大多数预训练的卷积神经网络和少量学习算法。我们证明了它可以作为一种先验知识来规范特征的通道分布。进一步分析,包括对oracle MMC平差的推导,全面分析了信道偏置问题。我们希望本研究揭示的通道偏差问题,以及对不同测试时间方法的分析,可以让社区更好地理解少射分类中的任务分布转移和表征转移,从而有助于产生更好的算法。

参考资料

文章下载(ICML(CCF A) 2022)

https://arxiv.org/pdf/2206.08126.pdf

📎Channel Importance Matters in Few-Shot Image Classification.pdf

代码地址

GitHub - Frankluox/Channel_Importance_FSL: [ICML 2022] Channel Importance Matters in Few-shot Image Classification

核心代码

def simple_transform(x, beta):zero_tensor = torch.zeros_like(x)x_pos = torch.maximum(x, zero_tensor)x_neg = torch.minimum(x, zero_tensor)x_pos = 1/torch.pow(torch.log(1/(x_pos+1e-5)+1),beta)x_neg = -1/torch.pow(torch.log(1/(-x_neg+1e-5)+1),beta)return x_pos+x_neg

关于特征转换函数的讨论

见论文附录E

参考文章

ICML2022|Channel Importance Matters in Few-Shot Image Classification - 知乎

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

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

相关文章

VScode+Zotero+Latex文献引用联动

一、VScodeLatex联动 1、VScode的安装 2、texlive.iso安装 可以参考以下,也可以忽略所有直接一步一步默认安装 https://zhuanlan.zhihu.com/p/442308176 3、Vscode的插件安装:【latex workshop】 4、打开设置,搜索json,然后点击…

POS 之 最终确定性

Gasper Casper 是一种能将特定区块更新为 最终确定 状态的机制,使网络的新加入者确信他们正在同步规范链。当区块链出现多个分叉时,分叉选择算法使用累计投票来确保节点可以轻松选择正确的分叉。 最终确定性 最终确定性是某些区块的属性,意味…

一次一对一服务引起的沉思和笑话

前情提要 客户需求: 分析页面代码和接口请求协议和参数需求,将人工下载视频怎么获得最终的视频链接,这一逻辑清晰的展示并讲解清除。我询问了是否需要成品爬虫,他说代码他自己能搞定。 我给的价格选择: 第一种、首…

m4a是什么文件格式?音质是无损吗?

m4a文件格式作为一种音频文件格式,源于MPEG-4标准的制定,该标准致力于提供高效的多媒体编解码方案。通常使用AAC编码,可以提供高质量的音频,但不是无损格式。AAC是一种有损压缩格式,它能够在减小文件大小的同时保持相对…

miniprogram-ci小程序机器人区分环境ci自动上传代码

miniprogram-ci 是从微信开发者工具中抽离的关于小程序/小游戏项目代码的编译模块。 开发者可不打开小程序开发者工具,独立使用 miniprogram-ci 进行小程序代码的上传、预览等操作 密钥及 IP 白名单配置 使用 miniprogram-ci 前应访问"微信公众平台-开发-开…

Seurat 中的数据可视化方法

本文[1]将使用从 2,700 PBMC 教程计算的 Seurat 对象来演示 Seurat 中的可视化技术。您可以从 SeuratData[2] 下载此数据集。 SeuratData::InstallData("pbmc3k")library(Seurat)library(SeuratData)library(ggplot2)library(patchwork)pbmc3k.final <- LoadData(…

基于逻辑回归实现乳腺癌预测(机械学习与大数据)

基于逻辑回归实现乳腺癌预测 将乳腺癌数据集拆分成训练集和测试集&#xff0c;搭建一个逻辑回归模型&#xff0c;对训练集进行训练&#xff0c;然后分别对训练集和测试集进行预测。输出以下结果&#xff1a; 该模型在训练集上的准确率&#xff0c;在测试集上的准确率、召回率和…

python 爬虫爬取知乎LOL图片(亲测)

获取信息 访问url后按f12调试 点击network 定位图片信息&#xff1a; 可以看到&#xff0c;每个图片的名字和下载地址在标红处&#xff0c;示例如下&#xff1a; data-actualsrc“https://pic4.zhimg.com/v2-1681ff26afbd5f92aa5790b4dee6a63f_b.jpg” 现在就是requests访问…

UE4 Niagara 关卡1.4官方案例解析

sprites can face the camera&#xff0c;or they can face any arbitrary vector&#xff0c;in this case the vector between the center of the system and the particle itself&#xff08;粒子可以面对摄影机&#xff0c;也可以面对任意向量&#xff0c;在这个实例中的向…

Excel中怎么求排名

使用Rank函数 1.在需要显示排名的单元格内&#xff0c;输入“RANK&#xff08;数值&#xff0c;数值列表&#xff0c;排序方式&#xff09;” 2.将“数值”替换为需要计算排名的单元格的地址&#xff0c;例如E2单元格。 3.将“数值列表”替换为排名的数值范围&#xff0c;例…

光纤常用的七种模块,多模与单模光纤区别有哪些?

中午好&#xff0c;我的网工朋友。 在当今的光纤通信中&#xff0c;光纤被广泛地应用在网络、电视、电话等各种通信系统中。 有网工小白经常会问到关于光纤的接口有哪些?如何使用&#xff1f; 多模光纤与单模光纤的传输距离、传输带宽、使用波长等问题一直让很多网工人疑惑…

【HTML】HTML基础7.1(无序列表)

目录 标签 属性 效果 注意 标签 <ul> <li>列表里要装的东西</li> <li>列表里要装的东西</li> <li>列表里要装的东西</li> </ul> 属性 type&#xff1a; circle空心圆disc实心圆square方框 效果 circle空心圆效果…