[论文]MetaNODE: Prototype Optimization as a Neural ODE for Few-Shot Learning——AAAI2022

原文标题:MetaNODE: Prototype Optimization as a Neural ODE for Few-Shot Learning
发表会议:AAAI 2022
原文链接https://arxiv.org/pdf/2103.14341.pdf
代码下载https://github.com/zhangbq-research/metanode
注:因本文理解视角为对当前FSL领域有一定了解,如有任何不懂,可提出,我再进行补足。

一.背景介绍

1. 元学习概念

元学习Meta Learning,含义为学会学习,即learn to learn,就是带着这种对人类这种“学习能力”的期望诞生的。Meta Learning希望使得模型获取一种“学会学习”的能力,使其可以在获取已有“知识”的基础上快速学习新的任务。

2. 什么是原型&怎么利用原型分类

图片image被映射在特征空间中,表示为一个点,对同一个类别的所有样本求中心,得到原型中心(c1、c2、c3),就可以用不同的方法计算样本(x)与原型中心之间的距离,对样本进行分类。

3.元优化器

通过梯度下降来学习怎样学习梯度下降算法。

4.存在的问题&解决思路

小样本问题由于数据稀少,基于均值的小样本原型常常是有偏的。因此,本文把减少原型中心的偏差看成一种原型优化任务去处理。

Prototype Completion with Primitive Knowledge for Few-Shot Learning
原型补全网络,是基于语义信息去补全原型,one-step的原型纠正模型

5.原型优化困难在哪?现有的方法怎么不行?

首先,现有元优化器可以解决原型优化的任务,但是它们忽略了基于均值的梯度估计在稀疏数据上也是有偏的,并不能得到较好的结果。
其次,以前的工作试图从大量的小样本任务集中学习一步原型校正函数,然而,用一步原型校正函数来表征原型偏差过于粗糙,无法获得准确的原型中心。

多步相比于一步,有更好的效果。(我思考的时候,也有偏差越来越大的可能,后续的设置比较关键)
N-ODE可以以连续的方式捕获原型修正动力学,从而更精细地减小原型偏差。

二.方法

1.预训练

预训练图片(一般是在ImageNet)在CNN网络上进行训练,使用的损失为CEloss和ROloss,得到一个特征提取器,之后就可以得到一个特征空间。

ce损失都知道,逼近原图和对应的标签
ro损失这里我查了一下相关的文献和资料,是把旋转后的图片的label设为旋转角度——但我不太理解这个损失在这篇文章中的意义

2.元训练阶段

1.元优化器
引入了meta-optimizer,设计目的,为了学习到——有关原型纠正任务无关元知识,这个知识会在后面用来得到更好的新类中心。

与以前直接在原型上进行纠正不同——可能在基类效果很好但是新类就不行了。
meta-optimizer的方法(在这个目的的阐述上来看)学到了真正的如何纠正原型的方法,也就是说,无论图片这么变,方法都是差不多的。和人识别饕餮的感觉是一样的。

2.怎么做的呢?
用episodic-learning的范式,loss为负对数似然损失,也就是使得用meta-optimizer这种方法去分类(概率log)最大.
3.概率怎么得来呢?
step1,利用特征提取器特征向量,得到类原型中心,这个中心是t=0时刻的原型中心。
step2,通过时序原型优化得到最后一个时刻的原型中心。
step3,利用原型中心进行分类就能得到对应的概率。

很巧妙的看到了原型优化过程中是有次序的,也就是伴有时序概念,那么就可以利用这个来进行预测优化。

Prototype Completion with Primitive Knowledge for Few-Shot Learning中的incomplete prototype就是t=0时刻的原型,也是最常规的protonet网络中的原型中心。

2.元测试阶段

与元训练阶段类似,去除了训练的过程而是直接得到结果,不再赘述

小结:到目前为止,与传统的原型学习相比,创新在于——可以学到元知识的meta-optimizer以及时序原型优化
接下来着重讲如何实现的,idea如何变现的

三、元优化器与时序原型优化

1.元优化器

元优化这个工作其实以及有人做过,像是MetaLSTM、ALFA等,但是它们共有问题:梯度偏差问题

梯度偏差问题
简单讲就是样本少的情况下,用均值方法求梯度是不符合实际的,有偏的

引入metaNODE,原型的梯度可以换成ODE去计算,如下公式

左侧就是ODE,右侧是GDA
由于这个发现,作者进而想到了可以把原型优化问题看成ODE初值问题(MAML就是解决这个问题),但是依然逃不开梯度的问题。
为了处理梯度偏差问题,作者采用了神经网络来估计连续的梯度流,至此,ODE变成了NeuralODE。(万物皆可神经网络,可以这么理解,用神经网络估计,避免了均值的方法)

2.MetaNODE

MetaNODE由梯度流推理网络GradNet和ODE solver组成。

1.GradNet
梯度流推理网络包含多个推理模型,这些推理模型结构一致,由梯度估计器(预测每张图片对原型梯度的贡献)和权值生成器(评估图片的重要性并且以加权平均的方式合并梯度估计)构成

  • Gradient Estimator
    为了消除向量范数的影响,增加了一个规范层(相当于一个转换矩阵,比如Ax),然后与当前时刻的原型做差分运算。

公式不好理解的话,可以把他看成y=Ax+b,A就是那个规范层,b是当前时刻原型中心

  • Weight Generator
    第一层,嵌入网络——把**当前时刻原型中心与图片(新想法)**映射成一个特征向量
    第二层,多头注意力,找出“贡献”(如果输入是图片x,那贡献就是图片对原型的作用有多大,但是这里输入是新的特征向量——不太能搞懂,大概明白,之后看代码!!)
    第三层,输出层,类似分类头的作用了,出个结果,修正维度等等作用

这里结束得到一个权值w,一个梯度d,可以计算均值和方差,就产生了一个分布。(μ,σ)

2.ODE solver
使用 Runge-Kutta (龙格-库塔)方法作为 our ODE solver

3.调整模型的稳定性
方差越大不确定性越大,作者提出把方差当成权值来合并所有时刻的梯度,以获得一个稳定可信的原型梯度。(不理解)

四、总结

文章非常有启发,有很多数学上的东西,我现在还不是特别理解
注意力这个东西,活用起来真的很有用,按照作者的思路思考别的文章,或许会发现相同的可优化点
分布——梯度——稳定的梯度,这里看不到,等我不瞌睡了再看~头痛
终于写完了,deadline7.15拖到20号…

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值