array(2) { ["docs"]=> array(10) { [0]=> array(10) { ["id"]=> string(3) "428" ["text"]=> string(77) "Visual Studio 2017 单独启动MSDN帮助(Microsoft Help Viewer)的方法" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(8) "DonetRen" ["tagsname"]=> string(55) "Visual Studio 2017|MSDN帮助|C#程序|.NET|Help Viewer" ["tagsid"]=> string(23) "[401,402,403,"300",404]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400964" ["_id"]=> string(3) "428" } [1]=> array(10) { ["id"]=> string(3) "427" ["text"]=> string(42) "npm -v;报错 cannot find module "wrapp"" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "zzty" ["tagsname"]=> string(50) "node.js|npm|cannot find module "wrapp“|node" ["tagsid"]=> string(19) "[398,"239",399,400]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400760" ["_id"]=> string(3) "427" } [2]=> array(10) { ["id"]=> string(3) "426" ["text"]=> string(54) "说说css中pt、px、em、rem都扮演了什么角色" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(12) "zhengqiaoyin" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400640" ["_id"]=> string(3) "426" } [3]=> array(10) { ["id"]=> string(3) "425" ["text"]=> string(83) "深入学习JS执行--创建执行上下文(变量对象,作用域链,this)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "Ry-yuan" ["tagsname"]=> string(33) "Javascript|Javascript执行过程" ["tagsid"]=> string(13) "["169","191"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511399901" ["_id"]=> string(3) "425" } [4]=> array(10) { ["id"]=> string(3) "424" ["text"]=> string(30) "C# 排序技术研究与对比" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "vveiliang" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(8) ".Net Dev" ["catesid"]=> string(5) "[199]" ["createtime"]=> string(10) "1511399150" ["_id"]=> string(3) "424" } [5]=> array(10) { ["id"]=> string(3) "423" ["text"]=> string(72) "【算法】小白的算法笔记:快速排序算法的编码和优化" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "penghuwan" ["tagsname"]=> string(6) "算法" ["tagsid"]=> string(7) "["344"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511398109" ["_id"]=> string(3) "423" } [6]=> array(10) { ["id"]=> string(3) "422" ["text"]=> string(64) "JavaScript数据可视化编程学习(二)Flotr2,雷达图" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "chengxs" ["tagsname"]=> string(28) "数据可视化|前端学习" ["tagsid"]=> string(9) "[396,397]" ["catesname"]=> string(18) "前端基本知识" ["catesid"]=> string(5) "[198]" ["createtime"]=> string(10) "1511397800" ["_id"]=> string(3) "422" } [7]=> array(10) { ["id"]=> string(3) "421" ["text"]=> string(36) "C#表达式目录树(Expression)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "wwym" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(4) ".NET" ["catesid"]=> string(7) "["119"]" ["createtime"]=> string(10) "1511397474" ["_id"]=> string(3) "421" } [8]=> array(10) { ["id"]=> string(3) "420" ["text"]=> string(47) "数据结构 队列_队列实例:事件处理" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "idreamo" ["tagsname"]=> string(40) "C语言|数据结构|队列|事件处理" ["tagsid"]=> string(23) "["246","247","248",395]" ["catesname"]=> string(12) "数据结构" ["catesid"]=> string(7) "["133"]" ["createtime"]=> string(10) "1511397279" ["_id"]=> string(3) "420" } [9]=> array(10) { ["id"]=> string(3) "419" ["text"]=> string(47) "久等了,博客园官方Android客户端发布" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(3) "cmt" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511396549" ["_id"]=> string(3) "419" } } ["count"]=> int(200) } 222 Prototype Rectification for Few-Shot Learning - 爱码网

有关少样本学习(Few-shot Learning)的研究论文《Prototype Rectification for Few-Shot Learning》被全球计算机视觉顶会ECCV 2020接收为Oral论文(入选率仅2%)。

ECCV全称为European Conference on Computer Vision(欧洲计算机视觉国际会议),与ICCV和CVPR合称为全球计算机视觉三大顶级会议,每两年举办一次。据大会官方介绍,本届会议共收到5025份有效投稿,共接收1361篇,录取率为27%,其中1361篇接收论文里面,有104篇Oral以及161篇 Spotlight,分别占比2%和5%,堪称史上最难ECCV。

创新奇智CTO张发恩表示:“当前的深度学习技术对数据具有极大依赖性,如何减小数据依赖,利用较少的数据取得理想的识别效果成为当下亟待突破的技术难点。少样本学习旨在从已有类别的数据中学习先验知识,然后利用极少的标注数据完成对新类别的识别,打破了样本数据量的制约,在传统制造业等样本普遍缺失的领域具有实用价值,有助于推动AI落地。”

创新奇智本次发表的论文指出,少样本学习的瓶颈在于数据稀缺引起的偏差,主要包括类内偏差和跨类偏差,并提出相应方法有针对性地减小两项偏差,该思路经过严格的理论证明其合理性,并通过大量实验证明了方法的有效性,在少样本学习通用的数据集中达到了最优的结果。

以下为论文解读:

 

(论文初版arXiv地址为:https://arxiv.org/abs/1911.10713 。 后续Camera Ready版本将于近日更新,补充了更多数据集上的表现。

1、概述

少样本学习(Few-shot learning)旨在从大量有标注数据的类别中学习到普遍的规律,利用学习到的知识,能够使用少量的有标注数据(如一张或五张)完成对新类别的识别。原型网络是少样本学习中一类非常有效的方法,其针对不同的类别提取出对应的类原型,然后根据样本与类原型之间的距离进行分类。由于新类别的样本数量极少,原型网络所计算出的类原型存在一定的偏差。本文指出了制约原型网络效果的两个关键因素:类内偏差和跨类偏差,并且提出利用伪标签的方法减小类内偏差,利用特征偏移的方法减小跨类偏差,进一步通过理论分析指出原型网络准确率的理论下界,证明伪标签的方法可以提高理论下界从而提高整体准确率,最后,实验结果表明,本文的方法在miniImageNet和tieredImageNet上达到了最高水平的结果。

主要贡献

本文指出了原型网络在少样本学习中的两项制约因素:类内偏差(intra-class bias)及跨类偏差(cross-class bias)。本文利用伪标签和特征偏移,进行原型校正和减小偏差,简单有效地提高了少样本分类的表现。本文分析了理论下界与样本数量之间的关系,从而验证了所提方法的合理性,并给出了偏移量的推导过程。本文所提出的方法在通用的少样本数据集miniImageNet和tieredImageNet上达到了最优的结果。

2、方法

 

2.1 基于余弦相似度的原型网络(CSPN)

本文利用基于余弦相似度的原型网络(Cosine Similarity Based Prototypical Network,CSPN)得到少样本类别(few-shot class)的基础类原型。

首先在基础类别(base class)上训练特征提取器和余弦分类器,余弦分类器定义如下:

 

其中Fθ是特征提取器,W 为可学习权重,τ为温度参数。在模型训练阶段使用如下损失函数:

 

预训练结束后,使用下式得到few-shot class的基础类原型:

 

2.2 原型校正中的偏差消除(Bias Diminishing for Prototype Rectification)

在样本较少的情况下,比如K=1或K=5,计算所得基础类原型与理想的类原型之间存在一定偏差,减小偏差可以提高类原型的表征能力,从而提高分类准确率,本文指出如下两种偏差以及对应的减小偏差的方法。

类内偏差(intra-class bias)

 

即真实类原型(第一项)和使用少量样本计算的类原型(第二项)之间的偏差。真实的类原型往往是不可得的,可得的是利用少量有标注的数据集(support set)计算得到的类原型,为了减小这两项之间的偏差,本文提出利用无标注的数据集(query set)重新计算类原型。首先通过计算query set中的样本与基础类原型之间的余弦相似度获得query sample的伪标签,然后将top-z confident的query sample加入support set中,并根据下式重新计算,得到修正后的类原型P'n:

 

跨类偏差(cross-class bias)

 

即整个有标注数据集support set和无标注数据集query set之间的偏差。为了修正跨类偏差,本文在无标注数据中加入偏移量ξ, ξ的具体计算方式如下:

Prototype Rectification for Few-Shot Learning

2.3 理论推导Theoretical Analysis

本文通过以下理论推导,解释了上述方法的合理性以及该方法是如何提高少样本分类表现的。

理论下界

在原型网络中,假设最终的准确率与类原型和样本间余弦相似度之间呈正相关,即最终优化目标可以表示为:

 

再结合使用一阶近似、柯西施瓦茨不等式等方法进行推导验证,可以得到模型的理论下界:

 

可以看出模型最终效果和样本数之间呈正相关,因此可以通过引入无标签样本来提高模型理论下界,即增大T 可以提高模型表现。

有关偏移量ξ的推导过程详见论文,在这里就不敷述了。

3、实验

3.1实验结果

本文在少样本学习的两个公开数据集 (miniImageNet, tieredImageNet) 上进行了实验,与其他方法相比,本文提出的BD-CSPN在1-shot及5-shot的设置下均达到了最佳效果。

 

Prototype Rectification for Few-Shot Learning

3.2消融实验

本文通过消融实验进一步验证了模型每一部分的有效性。

Prototype Rectification for Few-Shot Learning

表中从上到下分别为:不使用原型修正的方法,单独使用跨类偏差修正,单独使用类内偏差修正以及同时使用类内偏差和跨类偏差修正的结果,可以看到减小偏差对最终结果有明显的提升。

 

本文进一步分析了原型校正中无标注样本的样本数量对于最终结果的影响,如图2(a-b)所示,随着无标注样本的增多最终效果有持续的提升,图2(c)中虚线为通过计算所得到的理论下界,可以看到本文的实验结果和理论相符。

 

本文采用不同的网络结构作为特征提取器,验证了原型校正的方法在不同网络结构下均有明显提升。

总结

本文提出一种简单有效的少样本学习方法,通过减小类内偏差和跨类偏差进行原型校正,从而显著提高少样本分类结果,并且给出理论推导证明本文所提方法可以提高理论下界,最终通过实验表明本方法在通用数据集中达到了最优结果,论文被ECCV 2020 接收为Oral。本文中提出的算法已经在创新奇智的实际场景中落地应用,可以从海量非结构化数据中根据极少数种子数据(1张至5张)挖掘出所需要的同类数据,可以极大的提升数据收集速度和准确率,降低成本。

相关文章: