Learning from Very Few Samples:小样本学习综述(三)

FSL问题背景

FSL两大模型(一)

两大模型

辨别模型

Metric Learning

度量学习的目标为学习一个相似度矩阵S(,),其中相似的样本对有较高的相似度得分,不相似的样本对分值较低。如下图7所示,基于度量学习的FSL方法使用辅助数据集DA创建相似性度量,并将其推广到任务T的新类中,用于预测。相似度矩阵可用距离、网络或其他可行的算法构建,只要能够度量两两特征间的相似度即可。
在这里插入图片描述
下表总结了几种度量学习方法:
在这里插入图片描述
孪生网络(Siamese Network):首次使用深度神经网络在FSL任务中。通过有监督的方式训练孪生网络来学习,然后重用网络所提取的特征进行 one/few-shot 学习。
在这里插入图片描述
它包括共享参数的两个孪生CNNs,训练时,通过组合的方式构造不同的成对样本,网络输入样本〖(x〗_i,x_j)进行训练,在最上层通过对样本对的距离判断它们是否属于同一类,并产生相似度得分P〖(x〗_i,x_j)。将训练好的CNNs参数固定,在预测阶段,孪生网络处理测试样本和小样本训练集之间每一个样本对,最终预测结果为概率最高的类别。

Meta Learning

元学习提倡跨任务学习,然后适应新的任务,如图所示,其目的是在任务层面上学习,而不是在样本层面上学习:学习“任务不可知的”学习系统,而不是有具体任务的模型。FSL是验证跨任务元学习方法学习能力的天然试验台,每个任务中只有几个带标记的样本,元学习方法分为元训练和元测试两个阶段。
在这里插入图片描述
在元训练阶段,通过在辅助数据集D_A上构建像许多独立的监督学习任务:T~P(T),其中P(T)定义了任务的分布。训练过程学习如何适应未来相关的任务。“相关”意味着未来的任务以及训练的任务分布上是相同的,例如所有的任务都是C-way K-shot的问题。每个训练任务都有特定的任务数据集 D T = D t r n , D t s t D_T={D_{trn},D_{tst }} DT=Dtrn,Dtst
在元测试阶段,训练好的模型在新的任务T~P(T)上进行测试,注意测试标签空间与元训练标签空间是不相交的。测试阶段的训练集和测试集又被称为支持集(supprot set)和查询集(query set)。
元学习的优化任务是找到能让所有任务的期望损失最小的模型参数θ:
在这里插入图片描述
必须强调,元学习是一种高层次的跨任务学习策略,而不是一种特定的FSL模型。通常将基于元学习的FSL方法分为:L2M、L2F、L2P、L2A和L2R。

Learn-to-Measure

L2M方法继承了度量学习的基本思想,只是与上文介绍的度量学习在实现级别上有所不同:L2M方法希望学习到可以跨任务转移的相似度矩阵。

数学语言描述:对于任务T,令 x i x_i xi D t r n D_{trn} Dtrn上的支撑样本, x i x_i xi D t s t D_{tst} Dtst上的查询样本, f ( ∗ ; θ f ) 与 g ( ∗ ; θ g ) f(*;θ_f)与g(*;θ_g) f(;θf)g(;θg)分别表示支撑样本和查询样本的embedding模型 。在不同任务上会有不同,比如在NLP任务上可以是一个word embedding,在图像任务上可以是一个CNN网络层。此外,所有L2M方法都包括一个度量模块 S ( f , g ; θ s ) S(f,g;θ_s) S(f,g;θs)用于度量支撑样本和查询样本的相似度,可能是一个无需参数的距离矩阵或可学习的网络结构。该度量模块输出的相似度作为查询样本的最终预测概率。现有的L2M方法的差异主要体现在的f,g,S设计和选择上。
在这里插入图片描述

  • Matching Nets(匹配网络)
    基于深度学习的L2M方法首次被提出是Matching Nets。
    在这里插入图片描述
    网络分为四个部分:特征提取网络,记忆网络LSTM,距离度量网络和attention分类网络。从上面的网络结构图中可以看出左边四张图像和下方的一张图像,其中四张图像便是一个support set,1张图像是测试样例,二者一个support set和一个测试样例便是一个task。模型训练的过程中会将单个support set和一个测试样例作为输入同时进行特征提取(f和g),之后通过记忆网络进一步处理,再之后通过距离度量和attention模块得到最终的预测值。
    整个模型通过度量查询样本 x j x_j xj embedding后和支持样本 x i x_i xi embedding后的余弦相似度来预测查询样本 x j x_j xj的后验概率:
    在这里插入图片描述
    在这里插入图片描述其中匹配函数c(,)可以用来计算两个embedding的相关度,它可以是任意一个距离度量方法或者相似度量方法,也可以是一个神经网络模块。
    在Matching Nets中,对embedding函数f和g做了特殊设计,文中称为fully-conditional embedding,简称维FCE,意思就是说在计算embedding 的时候也要用到支撑集S,也就是支撑集样本可以用来修改测试集样本的embedding模型。

整体流程,先用base learner嵌入,再用FCE加工嵌入的内容(f,g),再比较询问集和支持集的距离(注意力机制那里),最后线性组合给出预测结果。一个support set包含多个样本,support set中只有一个样本和测试样例同类别;一个task是一个support和一个测试样例;一个batch包含多个task;

  • Prototypical Nets(原型网络)
    一个假设: 每个类别都能在空间中对应到一个类比为「原型」的点上,该类的其他数据的表示以这个点为中心分布。
    在这里插入图片描述
    如上图所示,模型要做的事情是将 support set 中的数据映射到一个 embedding 空间中,然后对同类数据的 embedding 平均作为原型的 embedding;同时在预测的时候将输入数据也映射到这个 embedding 空间中,计算与各个原型的距离后,选择距离最小的类别作为预测结果。同样利用基于欧式距离的NCA方法预测后验概率:
    在这里插入图片描述
    其中f和g是共享权重的嵌入模型。该L2M框架是许多后续FSL方法的基础。
  • Relation Nets(关系网络)
    该方法认为度量方式也是网络中非常重要的一环,需要对其进行建模,所以该网络不满足单一且固定的距离度量方式,而是训练一个网络来学习(例如 CNN)距离的度量方式,在 loss 方面也有所改变,考虑到 relation network 更多的关注 relation score,更像一种回归,而非 0/1 分类,所以使用了 MSE 取代了 cross-entropy。
    在这里插入图片描述
    Relation Net利用一个可以学习的CNN度量相似性,输入支撑样本和查询样本的feature map的连接,输出相似度得分 r ( x i , x j ) r(x_i,x_j ) r(xi,xj)
    在这里插入图片描述
    其中f=g,并且C是feature map的连接体。
Learn-to-Finetune

L2F(微调)方法希望利用少量的支持样本调整任务T的一个基础学习器,使得基础学习器在这些样本上快速收敛(在几个参数更新步中)。一般来说,每个L2F方法都包含一个基础学习器和一个元学习器。基础学习器针对特定的任务,输入样本后输出预测的后验概率,基础学习器通过元学习器(更高层次)进行学习。元学习器通过一系列元训练任务,最大化基础学习器在所有任务中的综合泛化能力。
令θ_b和θ_m表示基础学习器和元学习器的参数,将L2F的学习过程分为两个层次:跨任务的逐步学习,目的在于优化θ_m,促使基础学习器可以快速学习每个特定任务。

  • MAML具有很强的可解释性,对元学习和FSL领域均有深远的影响,她就是一种决定如何初始化参数的方法。默认要求了不同任务的网络模型是一样的,更确切的说,他对于所有任务的初始化参数是一样的。所以MAML是通过交替任务训练策略寻找一个好的θ_b的初始值,使得基础学习器能够使用少样本即可快速推广到新的任务中。
    具体来说,当基础学习器处理一个任务T时,其一步更新后的参数计算方式为:
    在这里插入图片描述
    其中α为学习率,L为当基础学习器参数从θ_b开始时,任务T的支持集上的损失。
    在元学习层次,MAML通过平衡更新后的基础学习器在各个任务中的损失,来更新元学习器的参数:
    在这里插入图片描述
    实际上。MAML中的元学习器就是基础学习器,即θ_b=θ_m。
    因此上面第一个公式是快速的学习过程,目的是将基础学习器的参数调整至适用于特定任务,而下面的公式是逐步学习的过程,目的是为基础学习器提供适当的参数初始化。

  • 另一个有代表性的L2F方法是Meta-Learner LSTM。
    使用基于LSTM的元学习器在少样本条件下对基础学习器进行微调。如图所示,基于LSTM的元学习器以基础学习器对每个支持样本的损失和梯度作为输入,将其隐藏状态作为更新后的基础学习器参数,用于处理下一个支持样本。
    在这里插入图片描述
    即Meta-learner在训练集D_train上计算出一系列梯度,loss,learner的参数值,使用最后一步得到的learner的参数值在测试集D_test上测试。需要注意的是,在训练集上训练时,Meta-Learner的参数是不会变的,最后使用在测试集上的loss对Meta-Learner的参数进行梯度下降的更新。
    在该框架下,普通的梯度迭代方法被LSTM取代,专门针对需要参数更新的场景学习合适的更新。

Learn-to-Parameterize

主要思想:如下图所示,类似于L2F,L2P也包含一个基学习器和一个元学习器,希望为一个新的任务参数化基学习器或基学习器的某一部分,是指能够专门化的处理该任务。与L2F的区别在于,L2P中的两个学习器是同时训练的,元学习器实际上是一个针对特定任务的参数生成器。对于一个任务,L2P方法学习如何将基学习器参数化以使其适用于特定的任务。参数化的部分可能包括:预测器部分,中间的特征提取层部分甚至整个基础学习器。
在这里插入图片描述
在这里插入图片描述

  • Siamese Learnet
    将一个Siamese Nets作为基学习器,其中一个中间的卷积层针对特定的任务进行动态学习。再将另一个单向的Siamese Nets作为元学习针对特定任务学习上述动态卷积层的权重。
    在这里插入图片描述

  • LGM-Net
    构造了一个MetaNet模块(元学习器),基于少量样本,生成TargetNet模块(基学习器)的权重。具体来说,在MetaNet模块中,输入支撑样本的平均特征,通过多元高斯采样后的编解码器生成基学习器每个卷积层的权重。
    在这里插入图片描述

Learn-to-Adjust

主要思想:L2A针对特定样本自适应调整基学习器中的计算流或计算节点,使该样本与基学习器兼容。L2A与L2P类似,都是利用元学习器调整改变基学习器,主要区别在于:(1)L2A对基学习器的改变程度较轻,只对其进行一些增量的调整,而不是对基学习器或其中某一部分进行完全的参数化干预。(2)L2A的调整是针对特定样本的,而L2P的调整是针对特定任务的,因此L2A是更细粒度的调整。
在这里插入图片描述
不同L2A方法的主要区别在于需要调整的部分以及调整的策略,如下表所示:
在这里插入图片描述

Learn-to-Remember

主要思想:为FSL任务的支持样本建立sequence模型,将FSL任务视为sequence学习任务,查询样本应当与之前看到的信息(支持样本)匹配。因此,L2R方法的基学习器通常需要使用temporal network处理支持样本的信息。
在这里插入图片描述

总结

L2M方法不受测试场景中特定设置的限制:只对样本之间的距离进行度量后进行推断,不论类别个数与样本数量的多少。
L2F方法使用少样本对每个新任务进行微调,可能会导致对每个任务准备的适应周期较长。
L2P和L2A面临的挑战是需要学习大量的参数,此外,元学习器的模型复杂度很大程度上取决于它需要生成的参数的数量,增加了训练时的难度。
由于sequence学习中存在长期依赖的上限效应,L2R方法难以推广到一个新的支持样本略多的任务中。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值