论文阅读笔记《Low-shot Visual Recognition by Shrinking and Hallucinating Features》
小样本学习&元学习经典论文整理||持续更新
核心思想
之前我解读过这篇文章(点此查看)结果那只是作者上传到arXiv上的早期版本,与作者最终在ICCV2017上发表的正文相差甚远,早期版本只是介绍了使用SGM进行正则化,提高特征提取网络表征能力的部分,而没有介绍利用生成模型进行数据扩充的过程(怪不得许多文章都把这篇论文划分到数据增强类型的算法,我当时还很奇怪)。首先本文确定了一种新的小样本学习的基准(benchmark),整个学习过程分成两个阶段:表征学习(representation learning)和小样本学习(low-shot learning),如下图所示。
在表征学习阶段,就是使用带有大量训练样本的基础类别数据集CbaseC_{base}Cbase训练得到一个好的特征提取网络;然后再小样本学习阶段,就是使用带有少量训练样本的新类别数据集CnovelC_{novel}Cnovel和CbaseC_{base}Cbase一起训练得到一个好的分类器。为了解决小样本学习阶段,新类别数据集样本数量过少的问题,作者首先提出一种数据增强的方法,用于扩充新类别数据集的样本数量。作者的想法是同一类别不同样本之间的差异是能够泛化到其他的类别中的。具体地说,假设类别aaa中有两个样本z1z_1z1和z2z_2z2,如果我们可以获取到z1→z2z_1\rightarrow z_2z1→z2的变化过程,并将其运用到类别bbb的样本xxx上,就可以得到一个新的合成样本x^\hat{x}x^。基于这一想法,作者就使用一个生成器GGG,将类别aaa中的两个样本对应的特征向量c1ac_1^ac1a,c2ac_2^ac2a和类别bbb中的样本对应的特征向量c1bc_1^bc1b,级联起来后输入到GGG中得到对应的合成样本c^2b=G([c1a,c2a,c1b])\hat{c}_2^b=G([c_1^a,c_2^a,c_1^b])c^2b=G([c1a,c2a,c1b])(此处与原文略有出入,但过程是一致的)。
此外作者还希望提高特征提取网络的表征能力,思路是利用正则化项来约束小样本学习阶段得到的分类器VVV与表征学习阶段分类器WWW之间的差异。作者认为在对特征提取器和分类器一起训练时,特征提取器可能会较少的编码一些区分度低的特征,因为这些信息最终会被分类器忽视。但在小样本学习阶段,学习器无法从少量的样本中选择出那些对于新样本有用的特征信息,因此通过约束特征激活值的范数(L1,L2或本文提出的加权范数SGM)能够强制学习器只编码那些有用的信息。SGM的介绍参见另一篇博客论文阅读笔记《Low-shot visual object recognition》。
实现过程
网络结构
特征提取器可采用ResNet-10或ResNet-50,生成器采用带有三层全连接层的MLP。
损失函数
训练生成器的损失函数如下L=λLmse(c^2b,c2b)+Lcls(W,c^2b,b)L=\lambda L_{mse}(\hat{c}_2^b,c_2^b)+L_{cls}(W,\hat{c}_2^b,b)L=λLmse(c^2b,c2b)+Lcls(W,c^2b,b)
第一项表示生成的样本c^2b\hat{c}_2^bc^2b与真实样本,c2b,c_2^b,c2b之间的差异,第二项表示对生成的样本进行类别预测得到的分类损失。
训练分类器的损失函数如下
其中
训练策略
在进行数据增强时并不是对所有的样本都进行扩充,而是只对数量少于一个限定值的样本进行扩充,用于学习变化过程的样本从基础类别数据集中进行采样。
创新点
- 提出一种新的小样本学习基准算法:表征学习+小样本学习
- 提出一种数据增强的方法,利用生成器进行样本数据扩充
- 提出一种通过SGM正则化提高学习器表征能力的方法
算法评价
本文也是小样本学习的经典文章之一了,它不仅开创了表征学习(特征提取器)+小样本学习(分类器)这一基准算法,而且还是最早使用ImageNet 1K这一极具挑战性的数据集进行小样本学习研究的。其采用的数据增强和正则化的方法,也成为了后面许多算法的研究基础。
如果大家对于深度学习与计算机视觉领域感兴趣,希望获得更多的知识分享与最新的论文解读,欢迎关注我的个人公众号“深视”。
论文阅读笔记《Low-shot Visual Recognition by Shrinking and Hallucinating Features》相关推荐
- 《Beta Embeddings for Multi-Hop Logical Reasoning in Knowledge Graphs》论文阅读笔记
<Beta Embeddings for Multi-Hop Logical Reasoning in Knowledge Graphs>论文阅读笔记 主要挑战贡献: KG上的推理挑战主要 ...
- 论文阅读 | NIPS‘20 | Beta Embeddings for Multi-Hop Logical Reasoning in Knowledge Graphs
很有意思的一篇paper.在众多Knowledge Graph Embedding (KGE) 的论文中通过问题设计和有意思的解决方式脱颖而出. 首先来看看问题设计. 一般的KGE model都是利用 ...
- Beta Distribution Guided Aspect-aware Graph for Aspect Category Sentiment Analysis论文阅读笔记(EMNLP2021)
目录 标题翻译:基于Beta分布引导方面感知图的方面类别情感分析 原文链接:https://aclanthology.org/2021.emnlp-main.19.pdf 摘要: 1 引言 2 相关工 ...
- Phrase-BERT: Improved Phrase Embeddings from BERT with an Application to Corpus Exploration论文阅读笔记
问题: 因为bert是在长文本(512token长度)预训练的,因此,如果没有特定于任务的微调,BERT在短语和句子上的表现通常比简单基线(如GLoVe的平均池化)更差.且字节2020在EMNLP上的 ...
- DeepWeak: Reasoning Common Software Weaknesses via Knowledge Graph Embedding 阅读笔记
DeepWeak: Reasoning Common Software Weaknesses via Knowledge Graph Embedding 阅读笔记 Article Background ...
- [论文阅读笔记] Are Meta-Paths Necessary, Revisiting Heterogeneous Graph Embeddings
[论文阅读笔记] Are Meta-Paths Necessary? Revisiting Heterogeneous Graph Embeddings 购物返利 www.cpa5.cn 本文结构 解 ...
- 论文阅读笔记—Reasoning on Knowledge Graphs with Debate Dynamics(AAAI,2020)
这是一篇非常有趣的工作,看完会觉得眼前一亮. 论文标题:Reasoning on Knowledge Graphs with Debate Dynamics 发表于AAAI,2020 动机 很多机器 ...
- 论文阅读笔记——《a simple but tough-to-beat baseline for sentence embeddings》
<a simple but tough-to-beat baseline for sentence embeddings>published at ICLR 2017. ICLR会议的论文 ...
- Learning Hierarchy-Aware Knowledge Graph Embeddings for Link Prediction论文阅读笔记
我的博客链接 0. 前言 1. 作者试图解决什么问题? 作者想在KGE中对语义层级(semantic hierarchies)进行建模. 2. 这篇论文的关键元素是什么? semantic hiera ...
- 斯坦福图机器学习CS224W笔记自用: Reasoning in Knowledge Graphs using Embeddings
1. 基于嵌入的知识图推理 目标:如何对知识图进行多跳推理? 知识图推理: 回答多跳查询 路径查询 连接查询 Query2box 示例:生物医学图 知识图谱上的预测查询 我们是否可以进行多跳推理,即在 ...
最新文章
- block之--- 基本使用
- python中ocr软件tesseract使用
- thinkphp5基本的一些操作/API友好/获取请求信息(Request)/判断请求类型(GET...)/验证参数数据(Validate)/连接数据库/原生sql语句查询
- (pytorch-深度学习系列)模型参数的初始化与访问操作-学习笔记
- java-log入门【目的把日志写入socket】
- XILINX ZYNQ7100 的上电顺序
- DOM-window下的常用子对象-location-刷新页面
- jdk8升级jdk11报 java.lang.ClassNotFoundException: javax.xml.bind.JAXBException
- python中add函数_add_argument函数的dest参数
- [IOI2018]-day1 简要题解
- html box 竖线,【CSS】这种竖线效果如何实现呢
- 如何理解泊松分布和泊松过程
- 5个高质量简历模板网站,免费、免费、免费
- 听说CDN高防和高防IP是服务器安全的“翘楚”,那么你知道这二者的区别吗?
- 深入理解操作系统实验——bomb lab(phase_2)
- 使用Fairseq微调预训练模型
- 高职计算机自主招生面试题,高职自主招生面试题
- http的了解、get/post的区别
- 刚刚!腾讯官宣移动开发人才这样选
- 如何使用GES进行社交关系考据?---GES查询能力介绍