目录
1 Introduction
目标 : 机器像人类一样智能
进展: 借助强大的计算机设备(GPU,分布式平台)、大型数据集、先进的模型和算法,
A
I
AI
AI智能不断提高,并在不少领域击败人类,同时
A
I
AI
AI也给日常生活中许多智能工具的发展带来了帮助
问题:
A
I
AI
AI 在小样本方面表现不好,而人类却能利用过去学到的知识来快速适应新任务
方向: 弥合
A
I
AI
AI同人类之间的差距。由于
M
L
ML
ML 能够随着经验来自动提高性能(concerned with the question of how to construct computer programs that automatically improve with experience),可以借助此来解决小样本问题
F S L FSL FSL的目的/作用:
- 可以从有限数量的带标签样本中学习
- 可以在带标签样本很难或不可能获取的情况下学习
- 可以帮助减轻收集大规模标签样本的负担
本片文章的贡献:
- 给出了 F S L FSL FSL的正式定义,不仅概括到包括现有的 F S L FSL FSL工作,而且还具体到阐明 F S L FSL FSL的目标是什么以及我们如何解决它
- 用具体的例子列出 F S L FSL FSL的相关学习问题,澄清它们与 F S L FSL FSL的相关性和差异
- 指出 F S L FSL FSL监督学习问题的核心问题是不可靠的经验风险最小化,并基于机器学习中的误差分解对其进行了分析
- 进行广泛的文献阅读,并从数据、模型和算法的角度将它们组织在统一的分类中,还对每个类别的优缺点进行了总结和讨论
- 在问题设置、技术、应用和理论等方面提出了 F S L FSL FSL的发展方向
Notation
-
对于一个 F S L FSL FSL任务 T T T,给定一个数据集 D = ( D t r a i n , D t e s t ) , D t r a i n = ( x i , y i ) , i = 0 , . . . , I ( I D=(D^{train},D^{test}),D^{train}=(x^i,y^i),i=0,...,I(I D=(Dtrain,Dtest),Dtrain=(xi,yi),i=0,...,I(I通常很小)为训练集, D t e s t = x t e s t D^{test}=x^{test} Dtest=xtest为测试集
-
假设任务的真实分布为 p ( x , y ) p(x,y) p(x,y),对此真实分布应该有一个最优假设(optimal hypothesis) h ^ \hat{h} h^来描述它,我们需要做的就是去求出这个最优假设,但很难
-
通常的做法是,给定一个假设空间 H H H,然后从里面找一个假设 h h h来逼近 h ^ \hat{h} h^。假设空间 H H H由你的模型和参数的初始化决定,寻找 h h h的过程就是优化过程
-
实际上就是机器学习的过程描述,只是此时数据集很少
2 Overview
2.1 Problem Definition
背景: F S L FSL FSL 是 M L ML ML 的一个子领域
定义一:机器学习
经验
E
x
p
e
r
i
e
n
c
e
Experience
Experience :
E
E
E,数据集
任务
T
a
s
k
Task
Task :
T
T
T,如图像分类
性能度量
P
e
r
f
o
r
m
a
n
c
e
m
e
a
s
u
r
e
Performance \ measure
Performance measure :
P
P
P,如分类准确性
- 一个计算机程序的性能可以通过经验来提高,该经验与用性能度量来衡量的任务相关,那么它就可以从关于任务和性能度量的经验中学习
- A computer program is said to learn from experience E with respect to some classes of task T and performance measure P if its performance can improve with E on T measured by P
定义二: F e w s h o t L e a r n i n g Few \ shot \ Learning Few shot Learning
- a type of machine learning problems (specified by E, T , and P), where E contains only a limited number of examples with supervised information for the target T
F S L FSL FSL应用:
- 监督学习问题
- F e w s h o t c l a s s i f i c a t i o n Few \ shot \ classification Few shot classification
- F e w s h o t r e g r e s s i o n Few \ shot \ regression Few shot regression
- 强化学习问题
- F e w s h o t r e i n f o r c e m e n t l e a r n i n g Few \ shot\ reinforcement\ learning Few shot reinforcement learning
具体应用场景例子:
与表1相比,表2的经验E多出了
p
r
i
o
r
k
n
o
w
l
e
d
g
e
prior \ knowledge
prior knowledge一列,原因在于:
F
S
L
FSL
FSL的
E
E
E只包含与任务
T
T
T相关的少量的有监督信息的样本,导致一般的监督学习方法会在此问题上失败,因此
F
S
L
FSL
FSL选择将已有的监督信息与一定的先验知识结合
补充:
- o n e s h o t l e a r n i n g one \ shot \ learning one shot learning: 在 E E E中只有一个样本
- z e r o s h o t l e a r n i n g zero \ shot \ learning zero shot learning: 在 E E E中不包含任何样本,但需要包含其他形态的信息,如属性,词嵌入 w o r d e m b e d d i n g s word \ embeddings word embeddings【给定先验的知识,形状像马,身上有像老虎一样的条纹,且像熊猫一样是黑白色的,就可以找到斑马】
2.2 Relevant Learning Problems
讨论一些相关的机器学习问题
-
W
e
a
k
l
y
s
u
p
e
r
v
i
s
e
d
l
e
a
r
n
i
n
g
:
Weakly \ supervised \ learning:
Weakly supervised learning:
E
E
E中的监督信息不完整、不准确、有噪声;
F
S
L
FSL
FSL可以看作是一种弱监督——不完全监督,只有少量的样本含有监督信息
- S e m i − s u p e r v i s e d l e a r n i n g : Semi-supervised \ learning: Semi−supervised learning: 在标记样本数量很少的情况下,通过在模型训练中引入无标记样本来避免传统监督学习在训练样本不足(学习不充分)时出现性能(或模型)退化的问题;具体案例包括 P o s i t i v e − u n l a b e l e d l e a r n i n g Positive-unlabeled \ learning Positive−unlabeled learning
- A c t i v e l e a r n i n g : Active \ learning: Active learning: 模型主动地提出一些标注请求,将一些经过筛选的数据提交给专家进行标注
- 区别:
- 不完全监督的弱监督学习只包括分类和回归,而FSL还包括强化学习问题
- 不完全监督的弱监督学习主要使用无标签数据作为 E E E中的附加信息,而 F S L FSL FSL利用各种先验知识,如预训练的模型,来自其他领域或模态的监督数据,并且不限制使用无标签数据
-
I
m
a
l
a
n
c
e
d
l
e
a
r
n
i
n
g
Imalanced \ learning
Imalanced learning:
E
E
E中的样本类别不平衡(比例不平衡)
- 区别: 不平衡学习从数据集中学习y的偏态分布(severely skewed distribution);而 F S L FSL FSL的训练和测试只使用了几个样本
-
T
r
a
n
s
f
e
r
l
e
a
r
n
i
n
g
Transfer \ learning
Transfer learning: 将从有大量训练数据的源域和源任务学到的知识转移到训练数据有限的目标域和目标任务
- D o m a i n a d a p t a t i o n : Domain \ adaptation: Domain adaptation: 源/目标任务相同,但源/目标域不同
- 联系: 迁移学习方法在 F S L FSL FSL被广泛使用
- M e t a l e a r n i n g Meta\ learning Meta learning: 通过提供的数据集和元学习者( m e t a − l e a r n e r meta-learner meta−learner)跨任务提取的元知识来改进新任务的 P P P, m e t a − l e a r n e r meta-learner meta−learner在任务中捉奸学习通用信息( m e t a − k n o w l e d g e meta-knowledge meta−knowledge)。许多 F S L FSL FSL方法是元学习方法
注: F S L FSL FSL可以是各种形式的学习,监督,半监督,强化学习,迁移学习等等,其本质上的定义取决于可用的数据。但现在大多数时候在解决FSL任务时,采用的都是 m e t a L e a r n i n g meta Learning metaLearning
2.3 Core Issue
2.3.1 E m p i r i c a l R i s k M i n i m i z a t i o n Empirical \ Risk \ Minimization Empirical Risk Minimization
-
最小化损失函数:机器学习中寻找最优的假设 h h h通常是找到一组最优的参数来确定该假设,并通过给定的训练集,最小化损失函数(如下所示)这一目标来指示最优参数的搜索
m i n θ ∑ ( x ( i ) , y ( i ) ) ∈ D t r a i n l ( h ( x ( i ) ; θ ) , y ( i ) ) \underset{\theta}{min}\sum_{(x^{(i)},y^{(i)})\in D^{train}}l(h(x^(i);\theta),y^{(i)}) θmin(x(i),y(i))∈Dtrain∑l(h(x(i);θ),y(i)) -
期望风险:训练模型时是通过训练集来拟合真实分布,但存在训练出来的分布同真实分布不一样的情况,中间的差值称为期望风险 R R R(expected risk,期望损失),表达如下
R ( h ) = ∫ ℓ ( h ( x ) , y ) d p ( x , y ) = E [ ℓ ( h ( x ) , y ] R(h) = \int{\ell(h(x),y)dp(x,y)}=\mathbb{E}[\ell(h(x),y] R(h)=∫ℓ(h(x),y)dp(x,y)=E[ℓ(h(x),y] -
经验风险: 理论上说,让期望风险最下化才能逼近真实分布,但因为你并不知道真实分布,所以最小化期望风险是无法实现的,而在机器学习中通常用经验风险(empirical risk)来替换期望风险,经验风险就是在训练集上预测的结果和真实结果的差异,也是我们常说的损失函数,表达如下
R I ( h ) = 1 I ∑ i = 1 I ℓ ( h ( x i ) , y i ) R_I(h) = {1\over I}\sum_{i=1}^I\ell(h(x_i),y_i) RI(h)=I1i=1∑Iℓ(h(xi),yi)
为了分析,给出符号定义:
其中,
h
^
\hat{h}
h^是真实分布的假设,
h
∗
h^*
h∗是在假设空间
H
H
H中最小化期望风险得到的假设,
h
I
h_I
hI是在假设空间
H
H
H中最小化经验风险得到的假设
为了简单,这三个假设都是唯一的,那么
t
o
t
a
l
e
r
r
o
r
total \ error
total error可被分解为:
E
[
R
(
h
I
)
−
R
(
h
^
)
]
=
E
[
R
(
h
∗
)
−
R
(
h
^
)
]
⏟
ε
a
p
p
(
H
)
+
~
E
[
R
(
h
I
)
−
R
(
h
∗
)
]
⏟
ε
e
s
t
(
H
,
I
)
\mathbb{E}[R(h_I)-R(\hat{h})]=\underbrace{\mathbb{E}[R(h^*)-R(\hat{h})]}_{\LARGE{\varepsilon_{\small{app}}}\small{(H)}}+ \underbrace{\tilde{}\ \mathbb{E}[R(h_I)-R(h^*)]}_{\LARGE{\varepsilon_{\small{est}}}\small{(H,I)}}
E[R(hI)−R(h^)]=εapp(H)
E[R(h∗)−R(h^)]+εest(H,I)
~ E[R(hI)−R(h∗)]
- 等式右边第一项表示的是假设空间
H
H
H中期望的最优假设和真实假设近似误差【
只管眼前不顾未来预测,过拟合
】,即 a p p r o x i m a t i o n e r r o r approximation\ error approximation error,这一项其实由你所选择的模型和参数的初始化分布决定的,这也就是为什么有的时候,模型选择的简单了,你给再多的数据也训练不好,欠拟合 - 等式右边第二项就是我们训练得到的假设(最小化经验风险得到的)和H中期望的最优假设的估计误差【
使估计系数尽量接近真实系数,但是此时对训练样本(当前问题)得到的估计值不一定是最接近真实值的估计值;但是对模型本身来说,它能适应更多的问题(测试样本
】,即 e s t i m a t i o n e r r o r estimation\ error estimation error,我们训练得到的假设也是从假设空间H中选择的,但有时候会陷入局部最优,或者提供的训练数据分布有偏差,导致无法到全局最优
2.3.2 U n r e l i a b l e E m p i r i c a l R i s k M i n i m i z e r Unreliable\ Empirical \ Risk\ Minimizer Unreliable Empirical Risk Minimizer
+对于等式右边第二项 当样本数量足够大时,理论上有:
ε
e
s
t
(
H
,
∞
)
=
lim
I
→
∞
E
[
R
(
h
I
)
−
R
(
h
∗
)
]
=
0
\LARGE{\varepsilon_{\small{est}}}\small{(H,\infty)} = \lim_{I\to\infty}{\mathbb{E}[R(h_I)-R(h^*)]}=0
εest(H,∞)=I→∞limE[R(hI)−R(h∗)]=0
- 传统的机器学习都是建立在大规模的训练数据上的,因此 ε e s t ( H , I ) \LARGE{\varepsilon_{\small{est}}}\small{(H,I)} εest(H,I)是很小的
- 但是在FSL任务上,训练数据很小,因此
ε
e
s
t
(
H
,
I
)
\LARGE{\varepsilon_{\small{est}}}\small{(H,I)}
εest(H,I)是很大的,所以如果采用传统的训练模式,如softmax+交叉熵,将极容易陷入过拟合(overfit)【
对训练集内所有样本表现都很好,但到了测试集就不行了
】,此时经验风险不可靠
FSL的主要任务:最小化估计误差过大的问题
注:
https://www.cnblogs.com/jiangxinyang/p/12163215.html
2.4 Taxonomy
为了缓解 F S L FSL FSL监督学习中具有不可靠的经验风险最小化 h I h_I hI的问题,必须使用先验知识
根据使用先验知识增强了哪些方面,现有的FSL作品可以分为以下几个方面:
- D a t a Data Data: 使用先验知识来增强训练数据集——增大数据量,那么传统的机器学习模型和算法就能运用在增强后的数据上
- M o d e l Model Model:使用先验知识来限制模型复杂度,降低假设空间 H H H的大小(根据先验知识,灰色部分不包含最优假设 h ∗ h^* h∗),使得当前的数据集可以满足
- A l g o r i t h m Algorithm Algorithm:使用先验知识来提供一个好的搜索策略,寻找最优假设的参数 θ \theta θ,可以是一个好的搜索起始点,也可以是一个明确的搜索策略,来寻找最优点
3 DATA
在 F S L FSL FSL方法中
-
可以通过 h a n d − c r a f t e d hand-crafted hand−crafted规则进行数据增强
- 高度依赖领域知识,需要昂贵的人力成本
- 扩充规则可能是特定于数据集的,这使得它们很难应用于其他数据集
- 人类不可能列举出所有可能的不变性
- 人工数据增强并不能完全解决 F S L FSL FSL问题
-
也可以通过以下更高级的方法进行数据增强
结论:
- 一般来说,通过增加 D t r a i n D_{train} Dtrain来解决 F S L FSL FSL问题是简单易懂的——通过利用目标任务的先验信息来扩充数据
- 然而,通过数据增强来解决FSL问题的缺点是增强策略通常是以一种特别的方式为每个数据集量身定制的,并且不容易用于其他数据集(特别是来自其他领域的数据集)
- 当前也有出现了 A u t o A u g m e n t AutoAugment AutoAugment技术
- 当前大部分方法主要针对图像设计,文字、音频等很少
4 MODEL
- 如果我们想使用机器学习模型来解决 F S L FSL FSL问题,我们需要使用假设空间 H H H很小的模型,这样样本复杂度也就小了
- 对于一些简单的任务,这样是可行的,但是对于复杂的任务,小的模型会导致 ε a p p ( H ) \LARGE{\varepsilon_{\small{app}}}\small{(H)} εapp(H)很大,而现实中大多数任务都很复杂,它们的特征很多,且特征维度也很高
- 因此我们只能一开始给一个假设空间H很大的模型,然后通过一些先验知识将这个空间中无效的假设去掉,缩小假设空间,方法可以分类如下:
4.1 Multitask Learning
- 在存在多个相关任务的情况下,多任务学习通过利用任务通用信息和任务特定信息同时学习这些任务
- 由于这些任务是同时学习的,各任务学习得到的参数受其他任务的约束
根据任务参数的约束方式,多任务学习分为参数共享(parameter sharing)和参数绑定(parameter tying)
4.1.1 Parameter Sharing(hard parameter sharing)
可以是数据相同任务不同,也可以是数据和任务都不同,但是数据具有领域性等等
-
不同task之间共享相关层的参数,而在task-specific层和classification层对于特定的任务不做共享,这样做就能利用先验知识缩小假设空间
-
由于对于大部分参数进行了共享,模型的过拟合概率会降低,共享的参数越多,过拟合几率越小,共享的参数越少,越趋近于单个任务学习分别学习
4.1.2 Parameter Tying(soft parameter sharing)
每个任务都有自己的模型和参数,需要调整模型参数之间的距离,使得不同模型之间参数尽可能的相似,也就是参数之间的距离最小化,常见是正则化
4.2 Embedding Learning
相信这个世界是简单的
Representation Learning
- 将训练集中所有的样本通过一个函数 f ( . ) f(.) f(.)嵌入到一个低维可分的空间 Z Z Z
- 将测试集中的样本通过一个函数 g ( . ) g(.) g(.)嵌入到这个低维空间Z
- 通过相似度函数 s ( . ) s(.) s(.)计算嵌入后的测试样本和所有训练样本之间相似度,选择相似度最高的样本的标签作为测试样本的标签
- 原理是将原始数据压缩至一个更小的低维空间,以此换来一个更小的假设空间
- 关键就是嵌入函数怎么获得——通过学习
根据根据嵌入函数 f ( . ) f(.) f(.)和 g ( . ) g(.) g(.)在不同任务中的参数是否不同,嵌入学习可以分为任务特定 t a s k − s p e c i f i c e m b e d d i n g m o d e l task-specific \ embedding \ model task−specific embedding model、任务不变 t a s k − i n v a r i a n t e m b e d d i n g m o d e l ; task-invariant \ embedding \ model; task−invariant embedding model;、两者混合 h y b r i d e m b e d d i n g m o d e l hybrid\ embedding \ model hybrid embedding model 三类
4.2.1 Task-specific Embedding Model
仅使用来自该任务的样本来学习为每个任务量身定制的嵌入函数
4.2.2 Task-invariant Embedding Model
- 从包含足够样本和各种输出的大规模数据集中学习一般嵌入函数,然后直接将其用于新的小样本训练集 D t r a i n D_{train} Dtrain中,而无需重新训练
- 有很多工作在训练时模拟few-shot learning的场景,用N个类中的U个类用于训练
- 大多数任务不变嵌入模型通过
m
e
t
a
−
l
e
a
r
n
i
n
g
meta-learning
meta−learning方法获得
4.2.3 Hybrid Embedding Model
- 上两种模型都有优缺点:
- 一个具有较好的特殊性,但需要针对每个任务重新训练嵌入函数
- 一个不需要重新训练,但没有利用到新任务的特定知识
- 因此就有一种趋势,即将两种模型结合起来。混合嵌入模型通过
D
t
r
a
i
n
D_{train}
Dtrain中的特定于任务的信息来适应从先验知识中学到的通用任务不变嵌入模型,这是通过学习将
D
t
r
a
i
n
D_{train}
Dtrain提取的信息作为
g
(
.
)
g(.)
g(.)的输入并返回一个嵌入作为
f
(
.
)
f(.)
f(.)的参数
4.3 Learning with External Memory
原理:
- 从 D t r a i n D_{train} Dtrain中提取信息,并将其存储到外部存储器中(external memory)
- 每个新样本 x t e s t x_{test} xtest由内存中提取的内容的加权平均值表示——这就限制了 x t e s t x_{test} xtest只能由内存中的内容来表示,从本质上减小了假设空间 H H H的大小
- 外部存储器通常使用键值(key-value)存储器。令存储器为 M ∈ R b × m M \in R^{b \times m} M∈Rb×m,即有 b b b个存储插槽 M ( i ) ∈ R m M(i)\in R^m M(i)∈Rm,而 M ( i ) = ( M k e y ( i ) , M v a l u e ( i ) ) M(i) = (M_{key}(i),M_{value}(i)) M(i)=(Mkey(i),Mvalue(i))
具体过程:
- 首先通过嵌入函数 f ( . ) f(.) f(.)嵌入测试样本 x t e s t x_{test} xtest得到 f ( x t e s t ) f(x_{test}) f(xtest)
- 利用相似度函数 s ( . ) s(.) s(.)来计算 f ( x t e s t ) f(x_{test}) f(xtest)与每个键 M k e y ( i ) M_{key}(i) Mkey(i)的相似度,得到 s ( f ( x t e s t ) , M k e y ( i ) ) s(f(x_{test}),M_{key}(i)) s(f(xtest),Mkey(i)),以查询最相似的内存插槽们,将其组合(加权平均)作为 x t e s t x_{test} xtest的表示【The values of the most similar memory slots ( M v a l u e ( i ) ’ s M_{value}(i)’s Mvalue(i)’s) are extracted and combined to form the representation of x t e s t x_{test} xtest】
- 然后将这个表示送入到分类器中进行预测
注: 由于操纵M的成本很高,因此M通常尺寸较小。当M未满时,可以将新样本写入空闲的存储插槽;当M已满时,必须决定要更换的内存插槽
由于每个 x t e s t x_{test} xtest表示为从内存中提取的值的加权平均值,因此内存中的键值对的质量很重要。 根据存储器的功能,可以分为以下两类:
-
R
e
f
i
n
i
n
g
R
e
p
r
e
s
e
n
t
a
t
i
o
n
s
Refining\ Representations
Refining Representations:要求小心地将
D
t
r
a
i
n
D_{train}
Dtrain放入到内存中,使得存储地键值对可以精准地表示
x
t
e
s
t
x_{test}
xtest
- Memory-augmented Neural Networks (MANN):元学习嵌入函数 f ( . ) f(.) f(.),将同类的样本映射到同一个值——之后,同一类的样本在内存中可以一起细化它们的类表示【 P r o t o N e t ProtoNet ProtoNet】
- surprise-based memory module:当 M M M不能很好地表征一个 x i x_i xi时才去更新它——使 M M M更具有表征能力,并降低计算成本
- abstract memory:从包含大型机器注释数据集的固定存储器中提取相关的键值对,当进行 f e w − s h o t few-shot few−shot(图像,视频)分类时,从中选取有用的数据并写入到另一个存储器中
- lifelong memory:考虑到小样本类很小,被保存在存储器中的可能性很低,并且来自小样本的样本也可能被来自丰富类的样本所替代——想要能够保存一个新的从未见过的样本
- 网络将其写入内存,并能够在之后使用它,该网络在内存占满时不会直接清空内存而是删除最旧的槽,然后将所有存储器插槽的使用期限重置为零
- 对于一个新样本,当一个槽的值与其实际输出值(ground-truth output)相匹配,则会与当前槽的键合并,不写入内存【建议看键值对设置的内容是什么】
-
R
e
f
i
n
i
n
g
P
a
r
a
m
e
t
e
r
s
Refining \ Parameters
Refining Parameters:
- Meta Networks: 通过一个从多个数据集元学习得到的"slow"权重和一个作为 D t r a i n D_{train} Dtrain的task-specific embedding的"fast"权重来参数化分类模型
- MN-Net:使用存储器来细化Matching Nets中学习到的embeding,其结果用来参数化模型
4.4 Generative Modeling
基本原理: 借助先验知识从观测到的 x i x_i xi估计其概率分布 p ( x ) p(x) p(x),对其的估计通常涉及对 p ( x ∣ y ) p(x|y) p(x∣y)和 p ( y ) p(y) p(y)的估计
应用: 生成generation,回归recognition,重建reconstruction,图像翻转image flipping
具体原理:
- 被观测的 x x x应该服从一些分布 p ( x ; θ ) p(x;\theta) p(x;θ)
- 存在隐变量(latent variable) z z z~ p ( z ; γ ) p(z;\gamma) p(z;γ),那么 x x x~ ∫ p ( x ∣ z ; θ ) p ( z ; γ ) d z \int p(x|z;\theta)p(z;\gamma)dz ∫p(x∣z;θ)p(z;γ)dz——x通过隐变量计算得到
- p ( z ; γ ) p(z;\gamma) p(z;γ)是一个先验分布,从其他数据集学习得到——先验知识
- 有了先验知识,后验概率分布【x的分布】就得到了约束,假设空间被约束到更小的空间
根据隐变量 z z z的表征内容,可以将 F S L FSL FSL生成模型分成以下三类: D e c o m p o s a b l e C o m p o n e n t s Decomposable Components DecomposableComponents, G r o u p w i s e S h a r e d P r i o r Groupwise Shared Prior GroupwiseSharedPrior, P a r a m e t e r s o f I n f e r e n c e N e t w o r k s Parameters of Inference Networks ParametersofInferenceNetworks
4.4.1 Decomposable Components
- 在 F S L FSL FSL问题上,虽然样本确实少,但存在这些样本与来自其他任务的样本共享一些较小的可分解组件。如一张脸上的可分解小组件是眼睛、鼻子、嘴等
- 可以通过大量的样本,让模型学习这些可分解小组件,然后模型识别小组件再组合,就能确定属于哪个目标类
- 由于可分解的组件是由人选择的,因此该策略更具有可解释性
4.4.2 Groupwise Shared Prior
- 一般来说,相似的任务具有相似的先验概率,这可以用于 F S L FSL FSL,如考虑“橙猫”、“豹子”和“孟加拉虎”的三级分类。这三个物种很相似,但孟加拉虎濒临灭绝,而橙猫和豹子数量很多。因此,我们可以从“橙猫”和“豹子”中学习先验分布,并将其用作“孟加拉虎”类的先验概率,然年就可以推测当前样本的概率分布并分类
4.4.3 Parameters of Inference Networks
-
为了找到最好的 θ \theta θ,需要最大化后验:
p ( z ∣ x ; θ , γ ) = p ( x , z ; θ , γ ) p ( x ; γ ) = p ( x ∣ z ; θ ) p ( z ; γ ) ∫ p ( x ∣ z ; γ ) p ( z ; γ ) d z p(z|x;\theta,\gamma)={p(x,z;\theta,\gamma) \over p(x;\gamma)}={p(x|z;\theta)p(z;\gamma) \over \int p(x|z;\gamma)p(z;\gamma)dz} p(z∣x;θ,γ)=p(x;γ)p(x,z;θ,γ)=∫p(x∣z;γ)p(z;γ)dzp(x∣z;θ)p(z;γ) -
但由于分母中有几分,所以求解很困难,所以一般由从数据集中学到的变分分布(variational distribution) q ( z ; δ ) q(z;\delta) q(z;δ)来逼近 p ( z ∣ x ; θ , γ ) p(z|x;\theta,\gamma) p(z∣x;θ,γ)
-
目前, q ( z ; δ ) q(z;\delta) q(z;δ)是通过使用推理网络进行分期的变分推理来估计的
-
推理网络具有大量的参数,通常使用一些辅助的大规模数据集进行训练——许多经典的推理网络都适用于 F S L FSL FSL问题
4.5 Discussion and Summary
- 当存在类似的任务或辅助任务时,可以使用多任务学习来约束少量样本任务的
- 由于需要同时训练所有任务,因此当一个新的少量样本任务出现时,整个多任务模型必须再次训练,这可能既昂贵又缓慢
- 此外, D D D和 D c D_c Dc和的大小不应具有可比性,否则,少量样本的任务可能会被具有许多样本的任务淹没。
- 如果存在一个包含足够数量的各种类别样本的大规模数据集,则可以使用嵌入学习方法
- 通过将样本映射到良好的嵌入空间,在其中可以很好地分离来自不同类别的样本,因此需要较小的 H H H
- 但当少量样本任务与其他任务没有密切关系时,可能无法正常工作
- 此外,更多有关如何混合任务的不变和特定于任务的信息的探索是有帮助的。
- 当有可用的存储网络时,可以通过简单训练将其轻松用于FSL
- 当除了FSL之外还想要执行诸如生成和重构之类的任务时,可以使用生成模型
- 生成建模方法具有较高的推理成本,比确定性模型更难得到
5 ALGORITHM
目的:
- 在假设空间 H H H内搜索最佳假设(期望假设)的参数 θ \theta θ
- 在第 t t t次迭代时, θ t = θ t − 1 + Δ θ t − 1 \theta_t = \theta_{t-1} + \Delta \theta_{t-1} θt=θt−1+Δθt−1, Δ θ t − 1 \Delta \theta_{t-1} Δθt−1是更新的参数
- 在 F S L FSL FSL问题上,由于 D t r a i n D_{train} Dtrain不足够大,无法通过训练来更新 θ \theta θ
- 可以通过先验知识 (prior knowledge)来影响 θ \theta θ的获得
- 也可以通过提供一个好的初始化参数 θ 0 \theta_0 θ0或直接学习一个优化器来获得更新步长(search step)
根据先验知识如何影响搜索策略,可以将算法分成以下三类:
R
e
f
i
n
i
n
g
e
x
i
s
t
i
n
g
p
a
r
a
m
e
t
e
r
s
Refining\ existing\ parameters
Refining existing parameters,
R
e
f
i
n
i
n
g
m
e
t
a
−
l
e
a
r
n
e
d
p
a
r
a
m
e
t
e
r
s
Refining \ meta-learned\ parameters
Refining meta−learned parameters,
L
e
a
r
n
i
n
g
t
h
e
o
p
t
i
m
i
z
e
r
Learning \ the \ optimizer
Learning the optimizer
5.1 Refining Existing Parameters
pretrained + fine-tuning
基本原理:
- 初始 θ 0 \theta_0 θ0是从其他任务中学到的,然后使用 D t r a i n D_{train} Dtrain对其进行优化
- 假设 θ 0 \theta_0 θ0捕获了大规模数据的一些一般结构,因此,可以通过几次迭代将其适应于 D t r a i n D_{train} Dtrain
5.1.1 Fine-tuning Existing Parameter by Regularization
基本目的: 使用正则化(Regularization)对预训练的
θ
0
\theta_0
θ0进行微调(fine-tune)
关键点: 针对小样本的
D
t
r
a
i
n
D_{train}
Dtrain,简单地通过梯度下降(gradient descent)对
θ
0
\theta_0
θ0进行微调,可能会导致过拟合。因此如何保证
θ
0
\theta_0
θ0在不过拟合的情况下适应
D
t
r
a
i
n
D_{train}
Dtrain是设计关键点
- E a r l y − s t o p p i n g Early-stopping Early−stopping: 从 D t r a i n D_{train} Dtrain中分离一个验证集来监视训练过程,当验证集的性能没有改善时,学习就会停止
- S e l e c t i v e l y u p d a t i n g θ 0 Selectively \ updating \ \theta_0 Selectively updating θ0:只更新 θ 0 \theta_0 θ0的一部分
- U p d a t i n g r e l a t e d p a r t s o f θ 0 t o g e t h e r Updating \ related \ parts \ of \ θ_0 \ together Updating related parts of θ0 together:可以将 θ 0 \theta_0 θ0的元素(如深层神经网络中的神经元)分组,并使用相同的更新信息共同更新每个组
- U s i n g a m o d e l r e g r e s s i o n n e t w o r k Using \ a \ model \ regression \ network Using a model regression network:捕获与任务无关的转换,该转换将通过对少量样本进行训练而获得的参数值映射到将对大量样本进行训练而获得的参数值
5.1.2 Aggregating a Set of Parameters
基本目的: 有时,我们没有合适的初始
θ
0
\theta_0
θ0,但我们有许多模型是从相关任务中学到的(如在面部识别中,可能已经具有针对眼睛,鼻子和耳朵的识别模型), 因此,可以将这些模型参数汇总为合适的模型,然后直接使用它或使用
D
t
r
a
i
n
D_{train}
Dtrain对其进行微调
利用在未标记的数据集或相似数据集上预训练的模型来适应
D
t
r
a
i
n
D_{train}
Dtrain:
- U n l a b e l e d d a t a s e t Unlabeled \ data \ set Unlabeled data set: 尽管没有监督信息,但是可以将相似的样本分组在一起。因此,可以从未标记的数据中预训练功能,以很好地聚类和分离样本
- S i m i l a r d a t a s e t s Similar \ data \ sets Similar data sets: 使用先验知识(对相似样本的学习)来促进对新类的学习。从一样本中提取对已学相似类有用的特征信息,并用这些特征替换相似类中的特征,然后将学习的分类器重新使用,并且仅针对新类调整分类阈值
5.1.3 Fine-Tuning Existing Parameter with New Parameters
基本目的: 预训练的 θ 0 { θ_0} θ0可能不足以完全编码新的FSL任务。因此,使用一个附加参数 δ \delta δ来考虑 D t r a i n D_{train} Dtrain的特殊性
基本原理: 该策略将模型参数扩展为
θ
=
{
θ
0
,
δ
}
\theta= \lbrace \theta_{0}, \delta \rbrace
θ={θ0,δ},并在学习
δ
\delta
δ的同时微调
θ
0
θ_0
θ0
5.2 Refining Meta-learned Parameter
基本原理: 初始
θ
0
\theta_0
θ0是从一组与小样本任务分布相同的任务中元学习的,然后由学习器使用
D
t
r
a
i
n
D_{train}
Dtrain对其进行微调【MAML
】
5.3 Learning the Optimizer
基本原理: 5.2 中的方法需要使用梯度下降——需要调整步长 α \alpha α或找到搜索方向,但也可以直接学习一个优化器,由学习算法会自动完成上述工作,这样可以直接输出更新后的参数
5.4 Discussion and Summary
- 第一种策略是改进现有的参数可以有效减小的假设空间大小,同时降低了计算开销,但参数是从不同于当前任务的任务中学习的,这种策略可能会为了速度而牺牲精度
- 剩下的两种策略依赖元学习。然而,诸如如何跨不同粒度(如动物的粗粒度分类与犬种的细粒度分类)或不同数据源(如图像与文本)的元学习等重要问题仍然是问题。从这个角度来看,元学习和多任务是相似的,所以如何避免负迁移也是一个问题
6 FUTURE WORKS
6.1 Problem Setups
- 目前的FSL方法通常使用来自单一模态(图像,文本或视频)的先验知识。但实际任务中,有可能你这个模态的样本很少,但另一个模态下的样本却很充足。例如灭绝的动物,也许这种动物只有很少的视觉样本,但它可能存在大量的文本样本。因此,多模态下考虑FSL任务是很有价值的
- 事实上,在ZSL(zero-shot learning)中,多模态是一种很常用的方法,现在已经有不少研究者在考虑将ZSL方法迁移到FSL中,在未来,一个有希望的方向就是**考虑使用多模态信息来设计FSL方法
6.2 Techniques
- 基于元学习的FSL方法特别有趣。元学习通过跨任务学习,可以以很小的推理代价快速适应新任务。但是目前的元学习通常考虑从相关联的任务中提取信息,实际上,很多任务是否关联是完全未知或难以决定的(代价高昂)
- 目前的FSL方法往往考虑静态和固定的任务。然而,在流媒体应用中,任务是动态的,新的任务不断地到达。一个重要的问题是如何避免在动态设置中的灾难性遗忘,这意味着旧任务的信息不应该被遗忘
- 假设空间和搜索策略通常都依赖于人的设计。自动化机器学习(AutoML)通过构建任务感知的机器学习模型,在许多应用中取得了最先进的水平,所以另一个方向是将自动化特征工程、模型选择和神经结构搜索的自动化方法扩展到FSL