论文阅读笔记《Dynamic Few-Shot Visual Learning without Forgetting》
小样本学习&元学习经典论文整理||持续更新
核心思想
本文提出一种不会遗忘的动态小样本学习算法,严格来讲应该也属于基于外部记忆的小样本学习算法。本文的主体结构依旧是特征提取+分类器的组合,但作者提出了两点改进。传统的分类器通常是计算类别权重向量与图像对应的特征向量之间的点乘积,作为相似性得分,并以此进行分类预测,本文采用余弦相似性度量函数取代点乘积计算方式。此外对于新的类别样本,本文并没有采用SGD的方法训练分类器得到对应的类别权重向量,而是设计了一个小样本权重向量生成器,根据基础类别的权重向量生成新类别的权重向量。网络的整体结构如下图所示。
首先作者将训练集分为基础类别部分和新类别部分,基础类别部分包含大量的图像,而新类别部分每个类别仅有少量样本,而且两个部分之间是没有相同类别的,测试图片通常来自新类别部分对应的样本。通常的方法是将模型现在基础类别数据集上进行预训练,然后在新类别数据集上做微调训练,但这样做一方面会导致分类器忘记基础类别部分的样本,失去对基础类别的分类能力;另一方面,由于新类别样本数量较少,因此微调后的分类效果仍然较差。作者提出将分类器的类别权重向量分成两部分,分别对应基础类别和新类别,其中基础类别对应的权重向量还是按照常规的训练方式获得(也就是慢权重),而新类别对应的权重向量则是由权重生成器输出(也就是快权重),这样分类器就同时具备对基础类别和新类别进行分类的能力,对应题目中的“without Forgetting”。但是两种方法获得的权重可能在数值上存在较大的差异,如果还采用传统的点乘积方式来计算与测试图片的相似性得分的话,会存在较大的误差,因此作者提出使用余弦相似性度量方法
式中τ\tauτ表示一个放缩系数,zˉT\bar{z}^TzˉT表示经过L2规范化处理的测试图片对应的特征向量,wˉk∗\bar{w}^*_kwˉk∗表示经过L2规范化处理的类别权重向量。与点乘积相比,该方法增加了L2规范化处理,消除了基础类别权重和新类别权重在数值上的量级差异,分类效果更好。
至于类别权重生成器,常见的方式是计算所有类别特征向量的平均值wavg′w_{avg}'wavg′,然后再乘以一个可以学习的权重向量ϕavg\phi_{avg}ϕavg,最后计算二者的哈达玛积(逐元素对位相乘),如下式所示
但是该方法不能充分利用特征提取网络获取的信息,而且在新类别只包含一个样本(one-shot情形)时,平均操作就不能够准确的推测类别权重信息。因此作者提出一种采用注意力机制的权重生成方法,计算过程如下
式中N′N'N′表示新类别样本的数量,ϕq\phi_qϕq表示一个可学习的变换矩阵,将新样本对应的特征向量zˉi′\bar{z}_i'zˉi′转化为查询向量,kbk_bkb表示基础类别对应的可学习的“键”,每个“键”对应一个类别,wˉb\bar{w}_bwˉb表示基础类别对应的权重向量,Att()Att()Att()操作也就是注意力机制,先利用余弦相似性度量计算二者之间的相似程度,再用softmax函数将其转化为权重值。最后将watt′w_{att}'watt′和通过平均方式计算得到的wavg′w_{avg}'wavg′进行加权求和,就得到新类别样本对应的类别权重向量了,过程如下
该方法的内在假设是新类别和基础类别虽然没用相同的类别,但是类别之间还是有相似的,或者说有一定联系的,借助这一相似性对新类别的权重向量进行预测。
实现过程
网络结构
无具体介绍
损失函数
式中KbaseK_{base}Kbase表示基础类别的类别数量,NbN_bNb表示每个类别的样本数量,loss()loss()loss()表示交叉熵损失函数
训练策略
本文的训练过程分为两个阶段,第一个阶段只学习特征提取网络的参数θ\thetaθ和基础类别的权重向量WbaseW_{base}Wbase。第二个阶段学习权重生成器的参数ϕ\phiϕ,同时继续训练基础类别的权重向量WbaseW_{base}Wbase。
创新点
- 设计了采用注意力机制的权重生成模块,根据基础类别的权重向量,推测新类别的权重向量
- 将分类器中的点乘积计算方式,替换为余弦相似性度量方式
算法评价
本文一开始很难划分为某一类小样本学习算法,但由于在权重生成时利用了基础类别对应的权重向量,那么就肯定要在训练过程中保存该向量,并且快权重和慢权重更新方式常见于基于外部记忆的算法,因此将其划分为这一类别。实际上本文并没有显式的提供一个外部记忆模块,所用的“记忆”其实就是网络训练得到的权重。
如果大家对于深度学习与计算机视觉领域感兴趣,希望获得更多的知识分享与最新的论文解读,欢迎关注我的个人公众号“深视”。
论文阅读笔记《Dynamic Few-Shot Visual Learning without Forgetting》相关推荐
- 《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 示例:生物医学图 知识图谱上的预测查询 我们是否可以进行多跳推理,即在 ...
最新文章
- Git Bash Here 中文显示乱码,有遮挡, 的处理方法
- 《编写有效用例》导读书评——“Jolt大奖精选丛书”有奖征文
- 前端怎样获取后端生成的验证码图片,并且点击图片的时候改变验证码
- mysql中char和text的区别_mysql中text与varchar与char的区别
- 全文检索引擎Solr系列——Solr核心概念、配置文件
- python 2 3 共存_python 2 3 共存
- stm32cubeide外部中断_【STM32】HAL库 STM32CubeMX教程三----外部中断(HAL库GPIO讲解)
- Java验证(javafx)
- docker:安装mysql多个
- Linux进阶之软件管理
- linux查看内核分区,如何根据bootloader中MTD分区信息修改linux内核中的MTD分区
- Spring中使用Quartz之MethodInvokingJobDetailFactoryBean配置任务
- python 回溯法 子集树模板 系列 —— 17、找零问题
- paip.python错误解决5
- 记录一下自己简单的想法
- 计195班学子博文目录
- 多目标优化算法:多目标非洲秃鹫优化算法(Multi-objective Africans Vultures Optimization Algorithm,MOAVOA)提供MATLAB代码及参考文献
- iOS-内购注意 沙盒二次验证
- 求最大公因数的两种方法(高效方法)
- switch更新找不到服务器,任天堂Switch最新系统更新 修复数字商店bug
热门文章
- 数字麦克风灵敏度信噪比等指标解读
- 苹果Mac OS X 系统下屏幕截图快捷键
- Does setting the following sysctl settings require a system reboot?
- word2vec的pytorch实现
- LeetCode 319 灯泡开关[数学] HERODING的LeetCode之路
- 记一次服务器故障带来的网站降权恢复记录
- 智能电网与配网自动化工程建设
- 关于matplotlib的绘图风格
- python爬虫怎么下载图片到手机_python爬虫获取京东手机图片的图文教程
- java常量final是什么_java:变量,常量和final关键字--基础篇