论文地址:https://www.aaai.org/AAAI21Papers/AAAI-39.WanF.pdf
代码:https://github.com/WanFang13/NCE-Net
发表于:AAAI’21

Abstract

深度神经网络(DNN)已被广泛地应用于主动学习。尽管它很有效,但当标记集和未标记集之间存在明显的分布偏差时,判别性分类器(softmax分类器)的泛化能力是值得怀疑的。在本文中,我们试图用最近邻(NN)分类器取代深度神经网络中的softmax分类器,考虑到它在未知子空间中的渐进式泛化能力。我们提出的主动学习方法,即最近邻分类器嵌入式网络(NCE-Net),旨在减少过度估计未标记样本的风险,同时提高查询信息丰富样本的机会。NCE-Net在概念上很简单,但却出乎意料地强大,从子集信息的角度来看,它定义了一个量化模型在主动学习上泛化能力的指标。实验结果表明,通过基于rejection或confusion confidence的简单选择。NCE-Net在图像分类和目标检测任务中,以明显的优势改善了最先进的技术。

I. Motivation

本文是指出了这么个现象:

虚线圈内的空心图案是我们已标注的样本。在这种情况下,我们可以拟合出一个分类边界如灰色的线所示。在这种情形下,利用一些主流的主动学习准则,我们可能会去选择m、p作为最有价值的样本;现在的问题在于,由于实际上的分类边界可能也属于红色这种情况,那么此时选择m、q会更为合适。这种情况在已标注样本数量较小,已标注未标注数据集之间分布差异较大时会更为明显。

II. Active Learning with Softmax Classifier

这里我们考虑传统的基于softmax的主动学习场景。以ResNet-18为例,其可以拆成为一个用于特征提取的backbone以及一个用于分类的softmax分类头(ave-pool + FC + softmax)。分类头可以简化为一个参数为wwwbbb的小网络,至此,输入图像xxx,提取到了特征fxf_{x}fx,在此特征基础上利用分类头进行分类得到的概率p(fx)p(f_x)p(fx)为:pc(fx)=exp⁡(wc⋅fx+bc)∑cexp⁡(wc⋅fx+bc)p_{c}\left(f_{x}\right)=\frac{\exp \left(w_{c} \cdot f_{x}+b_{c}\right)}{\sum_{c} \exp \left(w_{c} \cdot f_{x}+b_{c}\right)} pc(fx)=cexp(wcfx+bc)exp(wcfx+bc) 这里的pc(fx)p_{c}\left(f_{x}\right)pc(fx)指的是样本属于类别ccc的概率。最终网络的训练损失为:Lsoftmax =−log⁡pyx(fx)\mathcal{L}_{\text {softmax }}=-\log p_{y_{x}}\left(f_{x}\right) Lsoftmax=logpyx(fx) yx∈{1,2,...,C}y_{x} \in \{1,2,...,C\}yx{1,2,...,C}表示样本xxx的真实标签,CCC为总类别数。

III. Soft Nearest Neighbor Classifier

基于softmax的主动学习大多有个如下隐藏假设,即在已标注小样本集上训练的softmax分类器,能够比较好的泛化到完整样本集上,也就是这么个意思:

但这实际上是比较难成立的(如motivation中所述),为此,考虑直接把softmax分类头去掉,换成最近邻分类头(Soft Nearest Neighbor Classifier),如下:y∗=arg⁡max⁡c∑iδ(−d(fx,fxic))y^{*}=\arg \max _{c} \sum_{i} \delta\left(-d\left(f_{x}, f_{x_{i}}^{c}\right)\right) y=argcmaxiδ(d(fx,fxic)) 这个思想简单来说其实就是KNN聚类。对于给定的一个未标注样本,如果其特征向量fxf_xfx与类别ccc的已标注向量fxicf_{x_i}^cfxic最近,那么我们将该样本xxx预测为类别cccδ(⋅)\delta(·)δ()为激活函数,d(⋅)d(·)d()为距离函数,可以选用欧氏距离或者余弦距离。

IV. Nearest Neighbor Classifier Embedded Network

本节我们继续对上节中所提到的SNN分类头进行分析。很容易发现SNN分类头有个问题,即在进行推理的时候,每个样本需要与所有已标注的样本进行比较,会非常消耗时间。为此,本文的解法是为每一类样本各学习NNN个原型向量,这NNN个原型向量将作为相应类的代表,到时候只需要将新样本的特征向量与原型向量进行比较即可:pc(fx)=max⁡nδ(−d(fx,mc,n))p_{c}\left(f_{x}\right)=\max _{n} \delta\left(-d\left(f_{x}, m_{c, n}\right)\right) pc(fx)=nmaxδ(d(fx,mc,n)) 这样使得SNN分类头变得可训练。

V. Sample Selection

由于本文把softmax给直接搞掉了,所以之前的entropy之类的都没法用了…为此本文提出了两种新的样本选择策略:

Rejection Confidence

Mrej(x)=∑c1−pc(fx)\mathcal{M}_{r e j}(x)=\sum_{c} 1-p_{c}\left(f_{x}\right) Mrej(x)=c1pc(fx)

Confusion Confidence

Mconf (x)=∑c(1+pc(fx)−max⁡cpc(fx))\mathcal{M}_{\text {conf }}(x)=\sum_{c}\left(1+p_{c}\left(f_{x}\right)-\max _{c} p_{c}\left(f_{x}\right)\right) Mconf(x)=c(1+pc(fx)cmaxpc(fx))

这两种策略思想上与entropy都是比较接近的,算是SNN场景下的entropy。

VI. Experiment


这里有个比较神奇的实验结果,即使用本文的方法,在只进行随机初始化采样的情况下。本文的方法都能在softmax的基础上直接涨5%。不过该实验结果目前只在Cifar-10数据集上观察得到。

注: 主动学习在分类上的benchmark一般只在cifar-10/cifar-100上跑,不会去刷ImageNet这种。

Summary

简单来说本文的意思是,由于softmax分类器带来的分类边界本身不会很准,为此会拖累那些基于softmax的AL方法(entropy之类的)。为此本文把softmax分类器换成了soft nearest neighbor分类器,直接算距离来判别样本类别,避免了这一问题。

[论文阅读] Nearest Neighbor Classifier Embedded Network for Active Learning相关推荐

  1. 论文阅读“Nearest Neighbor Matching for Deep Clustering”(CVPR2021)

    论文标题 Nearest Neighbor Matching for Deep Clustering 论文作者.链接 作者:Dang, Zhiyuan and Deng, Cheng and Yang ...

  2. 最近邻分类器(Nearest Neighbor Classifier)

    先从简单的方法开始说,先提一提最近邻分类器/Nearest Neighbor Classifier,不过事先申明,它和深度学习中的卷积神经网/Convolutional Neural Networks ...

  3. 论文阅读11——《Mutual Boost Network for Attributed Graph Clustering》

    是聚类让我们"聚类",我整理了部分深度图聚类代码,希望大家多多支持(GitHub代码):A-Unified-Framework-for-Deep-Attribute-Graph-C ...

  4. 论文阅读:Saliency-Guided Region Proposal Network for CNN Based Object Detection

    论文阅读:Saliency-Guided Region Proposal Network for CNN Based Object Detection (1)Author (2)Abstract (3 ...

  5. 论文阅读Batch Normalization: Accelerating Deep Network Training byReducing Internal Covariate Shift

    论文阅读Batch Normalization: Accelerating Deep Network Training byReducing Internal Covariate Shift 全文翻译 ...

  6. 论文阅读:Natural Language Processing Advancements By Deep Learning: A Survey

    文章目录 一.介绍 二.背景 1.人工智能和深度学习 (1)多层感知机 (2)卷积神经网络 (3)循环神经网络 (4)自编码器 (5)生成对抗网络 2.NLP中深度学习的动机 三.NLP领域的核心概念 ...

  7. 论文阅读 【CVPR-2022】 A Simple Multi-Modality Transfer Learning Baseline for Sign Language Translation

    论文阅读 [CVPR-2022] A Simple Multi-Modality Transfer Learning Baseline for Sign Language Translation st ...

  8. 【论文阅读】Gait Quality Aware Network: Toward the Interpretability of Silhouette-Based Gait Recognition

    Gait Quality Aware Network: Toward the Interpretability of Silhouette-Based Gait Recognition 摘要 Intr ...

  9. 论文阅读——CcNet:A cross-connected convolutional network for segmenting retinal vessels using multi-scale

    论文阅读:CcNet:A cross-connected convolutional network for segmenting retinal vessels using multi-scale ...

最新文章

  1. 表白这件事,比解 bug 要难多少?
  2. 电脑台式计算机描述不可用,win7系统计算机描述不可用的解决方法
  3. 深入理解Emoji(三) —— Emoji详解
  4. 测试Mybatis时事务自动回滚,无法完成增删改
  5. C++ 对象的内 存布局(下)
  6. java rsa 公钥加密_java – 使用公钥进行RSA解密
  7. 信号调制产生边频的原理及希尔伯特解调
  8. Mariadb安装及主从搭建,基于centos7
  9. add jar and proxy repo
  10. vue 打印出git提交信息_VUE项目构建打包生成Git信息(VERSION和COMMITHASH文件)
  11. Oracle外键级联删除和级联更新
  12. 虽然今天angular5发布了,但我还是吧这篇angularjs(1)+webpack的文章发出来吧哈哈哈...
  13. android 文件加密源码
  14. UnicodeDecodeError: 'ascii' codec can't decode byte 0xf6 in position 0: ordinal not in range(128)
  15. 骨龄测试软件app_测测app下载-工具包-测测下载v1.0.11 安卓版-西西软件下载
  16. 物联网智能数据处理技术
  17. .NET Core 如何验证信用卡卡号
  18. EXCEL生成MySql建表语句
  19. 详解 物理四大神兽————薛定谔的猫
  20. JS输入框统计文字数量,并过滤拼音时的统计

热门文章

  1. html script 设置编码,HTML Script text用法及代码示例
  2. 可变悬挂与空气悬挂的区别_案例分析:宝马7系F02左后空气悬挂下趴检测与维修...
  3. ES6更新的3种精简化代码,(1.速写属性 2.速写方法 3.模板字符串)
  4. python 函数中参数的传递方式(三分钟读懂)
  5. python爬取bilibili弹幕_GitHub - yxwangnju/Bilibili-Bullet-Screen-Crawler: 一个爬取bilibili上弹幕的简单python程序...
  6. mysql多源复制 知乎_技术分享 | MySQL 多源复制场景分析
  7. python爬取邮件内容_登陆邮箱 爬取邮件
  8. AUTOSAR标准与产业发展动态
  9. Numpy高级操作大全!!!
  10. pytorch学习笔记(三十五):Momentum