notes of paper: Learning to Compare: Relation Network for Few-Shot Learning

words:

conceptually  adv  概念地

training end-to-end from scratch  从头开始训练

meta-learning  元学习

unified  adj  统一的

scalability  n  可扩展性

emerging  作adj时  新出现的

stripy  adj  有条纹的

resurgence  n  (中断之后)再度兴起

fine-tune  微调

alleviate  vt  减轻

regime  n  管理制度,组织方法

contemporary  adj  同时代的,同期的

decompose  vt & vi  分解

exemplar  n  典范,样例

insufficient  adj  不足的

promising  adj  很有前途的,前景很好的

inference  n  推理

metric  n  原意是“度量标准”,可以译为“优值”

inductive  adj  归纳的

outperform  vt  做得比......更好,胜过

encompass  vt  包括

compelling  adj  令人信服的;引人入胜的

across the board  adv  全体都包括在内

alternatives  n  此处译为“其他的”

iterative  adj  反复的,迭代的

iterate through  遍历(iterate 本身译为“重复”)

discriminative  adj  判别的;有判别力的;歧视性的

surge  n & vi  急剧上升;激增

in the sense that  在这个意义上,从这方面来说(可以翻译为“即”)

extract  vt  提取,获得

configuration  n  布局;配置

low-latency  低延时的

leverage  n  杠杆作用(此处应该译为“借助”)

unrolling  v  铺开,展开

appealing  adj  吸引人的

adequacy  n  足够

entail  vt  招致,带来

in terms of  在......方面

be represented in  用......方法表示

prototypical network  原型网络

siamese network  孪生网络

span  vt  跨越

align  v  与......联合;使对准

manually  adv  手工地

disjoint  adj  分离的;不相交的

in principle  原则上;大体上

exploit  vt  (充分)发挥,(充分)利用

mimic  vt  模仿

split  作n时  分支,划分

feed through  馈通,贯穿

be fed into  被送入

concatenate  vt  把(一系列事件、事情等)联系起来

concatenation  n  一连串相关联的事情

scalar  n  标量

somewhat  adv  稍微,有点

conceptually  adv  在概念上

ground-truth  n  参考标准;(机器学习中)数据正确的标签

analogous  adj  相似的

in that  因为

datum  n  数据;资料

straightforward  作adj时  简单的;坦率的

modality  n  形式

heterogeneous  adj  不同的

subnet  n  子网络;分支网络

anneal  vt  使退火

baseline  n  基线,基准

statistician  n  统计学家,统计员

deviation  n  偏离,偏差

despite that  此处应译为“因为”

significantly  adv  显著地;数量相当大地;有意义地

confidence interval  n  置信区间

overlap  n & v  重叠;相交

conduct  vt  实施;执行

violate  vt  违背

comprise  vt  由......组成

benchmark  n  基准,参照

hubness problem  枢纽点问题(即高维空间中,某些点会成为大多数点的最近邻点。)

cross-modal  adj  跨通道的;交叉式的

inductive  adj  归纳的

at the cost of  以......为代价

harmonic  adj  调和的

specify  vt  指定;详述

Mahalanobis distance  马氏距离

approximator  n  逼近器

solely  adv  唯一地;仅仅

element-wise  adv  元素级地

separability  n  可分离性

efficacy  n  功效;效力

the extent to which ...  ......的程度 (有多大)

jointly  adv  共同地

symmetry  n  对称

empirically  adv  经验主义地

numerically  adv  数字上地

trivial  adj  平凡的;琐碎的

subsequent  adj  后来的;随后的

cyan  n  青色

magenta  n  品红色(紫色和红色的混合色)

in terms of   根据;就......而言

penultimate  adj  倒数第二的

tune  vt  调整

在这篇文章中,作者提出了 Relation Network (RN) 的概念。

作者指出目前一些比较成功的深度网络存在的一些弊端:需要提供大量有标签的数据而且需要很多次的迭代来更新参数。

目前已有的 few-shot learning 存在的问题:要么需要复杂的推理机制,要么需要复杂的RNN架构,要么需要对目标问题进行 fine-tune 。

这篇论文采用的核心方法是:train an effective metric for one-shot learning 。对 few-shot learning 而言,要学得一个能比较图片之间关联度的优值;对 zero-shot learning 而言,要学得一个能比较图片和与之相关的类别的描述之间关联度的优值。

作者提出一个双分支结构的 RN ,通过比较 query image 和 few-shot labeled sample image,来实现 few-shot recognition。

整体架构由一个 embedding module 和一个 relation module 组成。前者用于产生 query image 和 training image,后者用于对 query image 和 training image 进行比较。

对前人工作的借鉴体现在:embedding module 和 relation module 都是 meta-learned end-to-end 的,创新点在于:没有使用 RNN (使网络结构更加简单),也没有使用 fine-tuning (使训练更快) 。

MAML方法通过 meta-learn 来找到一个合适的初始权重,为后续的 fine-tuning 做准备。这种方法的弊端是需要 fine-tuning ,作者通过 feed-forward 的方式避免了 fine-tuning 。

基于 RNN Memory 的方法进行 few-shot learning 有一个很大的弊端:memory 必须保证在存储很长的历史信息的同时,不会发生遗忘。作者采用的方法是通过 feed forward CNN 来实现 learning-to-learn approach 。

原型网络和孪生网络通过学习 embeddings 来转换数据,使得类别能够通过 fixed nearest-neighbour 或 linear classifier 识别出来。作者在此基础上,定义了一个 relation classifier CNN ,识别的手段变成了一个 learnable metric (而非 fixed metric) 或是 non-linear classifier (而非 linear classifier) 。

在 few-shot learning 中存在3个数据集:一个 training set,一个 support set,和一个 testing set。

C-way K-shot:如果 support set 中包含 C 个不同的类,而且每个类中包含 K 个有标签的样本时,此时的 few-shot 问题称为 C-way K-shot 问题。(e.g. K = 1 时称为 one-shot ,K = 5 时称为 five-shot ,K = 0 时称为 zero-shot 。)

作者指出,如果仅仅使用 support set ,原则上也可以训练出一个分类器,只是它的性能并不好。因此作者先在训练集上进行 meta-learning 以获取 transferrable knowledge ,再使用 support set 进行 few-shot learning ,这样得到的分类器效果会更好。

在每一轮迭代时,随机从训练集中挑出 C 个类,每个类 K 个样本,来构成 sample set S = {(xi, yi)} ;然后从剩下的部分中也挑出 C 个类,来构成 query set Q = {(xj, yj)} 。sample / query set 的目的是用来对 support / test set 进行 simulate 。

xi(来自 sample set S)和 xj(来自 query set Q)通过 embedding module f_phi 产生两个 feature map f_phi(xi) 和 f_phi(xj) ,然后由 operator C(· , ·) 结合起来,构成 C(f_phi(xi) , f_phi(xj)) 。

经过 operator C(· , ·) 结合之后的 feature map(即 C(f_phi(xi) , f_phi(xj)) )被送入 relation module g_phi ,并产生一个(0,1)之间的相关系数,以此来表征 xi 和 xj 之间相似度的大小。

在 C-way one-shot 问题中,总共会产生 C 个相关系数( query input 只有一个 xj ,sample input 共 C 类,每类只有 1 个,因此总共会产生 C 对 feature map)。

5-way 1-shot 的架构如下:

作者将该 few-shot learning 问题视为回归相关系数的问题而非分类问题,因此损失函数采用的是 MSE 而非 CrossEntropy 。

大多数 few-shot learning model 的 embedding model 都使用了 4 个卷积块,为了比对的公平性,作者也采取了同样的架构设计,如下图所示:

每一个 Convolutional Block 都包含了 64 个 3x3 的卷积核、一个 batch normalisation 层和一个 ReLU 层。embedding module(箭头从下往上数的前4个 Convolutional Block)中的前两个 block 还各自包含一个 2x2 的 max-pooling 层,后两个 block 则没有。这样做的目的是希望得到的 feature map 能够继续参与其他的卷积运算(这里指的是 relation module 中的卷积运算),因为如果 embedding module 中的 pooling 层太多,feature map 的尺寸会迅速减小,这样在 relation module 中可供利用的信息就会很少,不利于相关系数的计算。

relation module 由两个 convolutional block 和两个 fully-connected layer 组成,在两个 convolutional block 后面还各自连接了两个 2x2 的 max-pooling 层。沿着箭头的方向,第一个 fully-connected layer 是 8 维的且激活函数是 ReLU,第二个 fully-connected layer 是 1 维的且激活函数是 Sigmoid(采用 Sigmoid 是为了产生(0,1)之间的相关系数)。

所有的与 few-shot learning 有关的实验采用的都是 Adam 方法,初始学习率设置为 0.001,每 100,000 轮衰减为原来的一半。

作者将自己的工作和其他 state of the art 工作进行了对比,这些工作包括:

neural statistician

Matching Nets with and without fine-tuning

MANN

Siamese Nets with Memory

Convolutional Siamese Nets

MAML

Meta Nets

Prototypical Nets

Meta-Learner LSTM

作者对数据集进行了增强:对 Omniglot 数据集,将原始图片分别旋转 90 度,180 度和 270 度得到增强后的数据集,从原始的数据集中挑出 1200 个类,和与之对应的增强后的数据一起,用作训练;将剩下的 423 个类和与之对应的增强后的数据一起,用作测试。所有的图片都被 resize 成 28x28 。

在实际训练时,5-way 1-shot 总共有 20 个 query image,5-way 5-shot 也有 20 个 query image,20-way 1-shot 有 11 个 query image,20-way 5-shot 有 10 个 query image 。

因此 5-way 1-shot 在每一轮训练中都有 20x5 = 100 个 image 。

在 Omniglot 数据集上:作者在比较训练结果时,是将1000次随机测试的结果进行平均。作者指出,5-way 5-shot 比最好结果低 0.1% 是因为那些训练结果要么机制复杂,要么使用了 fine-tune ,而作者并没有采用这些方法。

在 miniImageNet 数据集上,作者分别选了 64,16,20 个类分别用于 training,validation 和 testing 。其中,16 个 validation class 仅仅用来监测泛化性能。作者依据现有的 few-shot learning 工作,分别做了 5-way 1-shot 和 5-shot 的分类测试。

作者在列举为什么 Relation Network 可以 work 时,指出了前面一些 few-shot work 采用的方法:learning a fixed metric or fixed features and shallow learned metric 。与这些方法不同的是,Relation Network 可以认为是同时 learning a deep embedding and learning a deep non-linear metric (similarity function)。

总结:

作者提出了 Relation Network 的方法来解决 few-shot 和 zero-shot learning 的问题。Relation Netwoek 通过学习 an embedding and a deep non-linear distance metric 来比较 query 和 sample items 。

补充: 

关于 Zero-Shot Learning 一篇很好的入门文章:https://blog.csdn.net/tianguiyuyu/article/details/81948700

原文地址:https://www.cnblogs.com/tbgatgb/p/10907183.html