[论文阅读] Nearest Neighbor Classifier Embedded Network for Active Learning
论文地址: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)。分类头可以简化为一个参数为www、bbb的小网络,至此,输入图像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(wc⋅fx+bc)exp(wc⋅fx+bc) 这里的pc(fx)p_{c}\left(f_{x}\right)pc(fx)指的是样本属于类别ccc的概率。最终网络的训练损失为:Lsoftmax =−logpyx(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∗=argmaxc∑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)=maxnδ(−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)=c∑1−pc(fx)
Confusion Confidence
Mconf (x)=∑c(1+pc(fx)−maxcpc(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相关推荐
- 论文阅读“Nearest Neighbor Matching for Deep Clustering”(CVPR2021)
论文标题 Nearest Neighbor Matching for Deep Clustering 论文作者.链接 作者:Dang, Zhiyuan and Deng, Cheng and Yang ...
- 最近邻分类器(Nearest Neighbor Classifier)
先从简单的方法开始说,先提一提最近邻分类器/Nearest Neighbor Classifier,不过事先申明,它和深度学习中的卷积神经网/Convolutional Neural Networks ...
- 论文阅读11——《Mutual Boost Network for Attributed Graph Clustering》
是聚类让我们"聚类",我整理了部分深度图聚类代码,希望大家多多支持(GitHub代码):A-Unified-Framework-for-Deep-Attribute-Graph-C ...
- 论文阅读: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 ...
- 论文阅读Batch Normalization: Accelerating Deep Network Training byReducing Internal Covariate Shift
论文阅读Batch Normalization: Accelerating Deep Network Training byReducing Internal Covariate Shift 全文翻译 ...
- 论文阅读:Natural Language Processing Advancements By Deep Learning: A Survey
文章目录 一.介绍 二.背景 1.人工智能和深度学习 (1)多层感知机 (2)卷积神经网络 (3)循环神经网络 (4)自编码器 (5)生成对抗网络 2.NLP中深度学习的动机 三.NLP领域的核心概念 ...
- 论文阅读 【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 ...
- 【论文阅读】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 ...
- 论文阅读——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 ...
最新文章
- 表白这件事,比解 bug 要难多少?
- 电脑台式计算机描述不可用,win7系统计算机描述不可用的解决方法
- 深入理解Emoji(三) —— Emoji详解
- 测试Mybatis时事务自动回滚,无法完成增删改
- C++ 对象的内 存布局(下)
- java rsa 公钥加密_java – 使用公钥进行RSA解密
- 信号调制产生边频的原理及希尔伯特解调
- Mariadb安装及主从搭建,基于centos7
- add jar and proxy repo
- vue 打印出git提交信息_VUE项目构建打包生成Git信息(VERSION和COMMITHASH文件)
- Oracle外键级联删除和级联更新
- 虽然今天angular5发布了,但我还是吧这篇angularjs(1)+webpack的文章发出来吧哈哈哈...
- android 文件加密源码
- UnicodeDecodeError: 'ascii' codec can't decode byte 0xf6 in position 0: ordinal not in range(128)
- 骨龄测试软件app_测测app下载-工具包-测测下载v1.0.11 安卓版-西西软件下载
- 物联网智能数据处理技术
- .NET Core 如何验证信用卡卡号
- EXCEL生成MySql建表语句
- 详解 物理四大神兽————薛定谔的猫
- JS输入框统计文字数量,并过滤拼音时的统计
热门文章
- html script 设置编码,HTML Script text用法及代码示例
- 可变悬挂与空气悬挂的区别_案例分析:宝马7系F02左后空气悬挂下趴检测与维修...
- ES6更新的3种精简化代码,(1.速写属性 2.速写方法 3.模板字符串)
- python 函数中参数的传递方式(三分钟读懂)
- python爬取bilibili弹幕_GitHub - yxwangnju/Bilibili-Bullet-Screen-Crawler: 一个爬取bilibili上弹幕的简单python程序...
- mysql多源复制 知乎_技术分享 | MySQL 多源复制场景分析
- python爬取邮件内容_登陆邮箱 爬取邮件
- AUTOSAR标准与产业发展动态
- Numpy高级操作大全!!!
- pytorch学习笔记(三十五):Momentum