几篇元学习小样本论文摘要

 

元学习论文总结||小样本学习论文总结

2017-2019年计算机视觉顶会文章收录 AAAI2017-2019 CVPR2017-2019 ECCV2018 ICCV2017-2019 ICLR2017-2019 NIPS2017-2019

 


原文https://www.jianshu.com/p/d7cde7eb93c4

 

MetaGAN: An Adversarial Approach to Few-Shot Learning

归纳下本文的核心思想:采用 meta-learning + GAN 解决少样本学习问题,其中 meta-learning 部分本文没有提出新方法,只是将已有方法结合到提出的框架中,具体包括以下两种 meta-learning 方法:

  • MAML
  • Relation Network

训练时,对于每个小样本任务,本文采用了 (Salimans et al., 2016) 中将 GAN 应用到半监督学习问题上的建模方式。具体来说,判别器的损失函数定义如下:
\begin{aligned} \mathcal{L}_{D}^{\mathcal{T}} &=\mathcal{L}_{\text { supervised }}+\mathcal{L}_{\text { unsupervised }}, \\ \mathcal{L}_{\text { supervised }} &=\mathbb{E}_{\mathbf{x}, y \sim Q_{\mathcal{T}}} \log p_{D}(y | \mathbf{x}, y \leq N), \\ \mathcal{L}_{\text { unsupervised }} &=\mathbb{E}_{\mathbf{x} \sim Q_{\mathcal{T}}}^{u} \log p_{D}(y \leq N | \mathbf{x})+\mathbb{E}_{\mathbf{x} \sim p_{G}} \log p_{D}(N+1 | \mathbf{x}). \end{aligned}
生成器的损失函数定义如下:
L_{G}^{\mathcal{T}}(D)=-\mathbb{E}_{\mathbf{x} \sim p_{G}^{\tau}}\left[\log \left(p_{D}(y \leq N | \mathbf{x})\right)\right].
总的来说,MetaGAN的损失函数如下:
\begin{aligned} \mathcal{L}_{D} &=\max _{D} \mathbb{E}_{\mathcal{T} \sim P(\mathcal{T})} \mathcal{L}_{D}^{\mathcal{T}}, \\ \mathcal{L}_{G} &=\min _{G} \mathbb{E}_{\mathcal{T} \sim P(\mathcal{T})} \mathcal{L}_{G}^{\mathcal{T}}. \end{aligned}
上述所有损失函数中的 p_{D} 代表使用任意一种 meta-learning 算法训练出的模型。

为什么 MetaGAN 可以 work 呢?这里有一个直观的解释:考虑这样一种情况,训练集的任务只要求对猫和卡车进行准确分类,那么对于这个任务分类器提取出的特征就会比较粗糙,因为猫和卡车的差异很大。但是在现实任务中,我们要用这个分类器去区分猫和狗,这样提取出的粗糙特征就肯定不能很好的对这个任务进行很好的分类。MetaGAN不仅要求分类器能够正确区分猫和卡车,还要其能区分真正的猫的图片以及生成的假的猫的图片,这样就可以使得分类器提取出更加细致的特征。更正式来说,可以使得分类器的决策边界更加的紧凑:

boundary

Model-Agnostic Meta-Learning for Fast Adaptation of Deep Networks

MAML 这篇文章之前已经读过很多遍了,这次做一次回顾性的总结。MAML算法希望找到一个初始化参数,使得其不管在任何任务(服从与训练任务一样的分布)上只进行一步梯度下降,使得所有任务的损失函数下降的尽可能多,即最小化如下元损失函数:
\min _{\theta} \sum_{\mathcal{T}_{i} \sim p(\mathcal{T})} \mathcal{L}_{\mathcal{T}_{i}}\left(f_{\theta_{i}^{\prime}}\right)=\sum_{\mathcal{T}_{i} \sim p(\mathcal{T})} \mathcal{L}_{\mathcal{T}_{i}}\left(f_{\theta-\alpha \nabla_{\theta} \mathcal{L}_{\mathcal{T}_{i}}\left(f_{\theta}\right)}\right),
对于如上损失函数,我们直接采用梯度下降求解:
\theta \leftarrow \theta-\beta \nabla_{\theta} \sum_{\mathcal{T}_{i} \sim p(\mathcal{T})} \mathcal{L}_{\mathcal{T}_{i}}\left(f_{\theta_{i}^{\prime}}\right).
算法框架如下:

MAML

其结合少样本学习以及强化学习两个任务的具体算法框架如下:

MAML for few-shot learning and reinforcement learning

Siamese Neural Networks for One-shot Image Recognition

本文属于元学习中的度量学习方法,度量学习网络如下:

 

siamese network

损失函数如下:

经过度量学习之后,在进行单样本分类时,给定支撑集,通过如下方式确定测试图片的样本:

 

Matching Networks for One Shot Learning

本文同样属于元学习中的度量学习方法,度量学习网络结构如下:

match network

经过度量学习之后,在进行单样本分类时,给定支撑集,通过如下方式确定测试图片的样本:
c_{S}(\mathbf{x})=P(y | \mathbf{x}, S)=\sum_{i=1}^{k} a\left(\mathbf{x}, \mathbf{x}_{i}\right) y_{i}, \text { where } S=\left\{\left(\mathbf{x}_{i}, y_{i}\right)\right\}_{i=1}^{k}
其中
a\left(\mathbf{x}, \mathbf{x}_{i}\right)=\frac{\exp \left(\operatorname{cosine}\left(f(\mathbf{x}), g\left(\mathbf{x}_{i}\right)\right)\right.}{\sum_{j=1}^{k} \exp \left(\operatorname{cosine}\left(f(\mathbf{x}), g\left(\mathbf{x}_{j}\right)\right)\right.}
本文采用的嵌套方法称为 Full Contextual Embeddings (FCE),两个嵌套函数的具体形式为:

  • g 是一个双向LSTM网络

  • f 是一个CNN特征抽取器加上如下形式的LSTM:
    \begin{aligned} \hat{\mathbf{h}}_{t}, \mathbf{c}_{t} &=\operatorname{LSTM} \left(f^{\prime}(\mathbf{x}),\left[\mathbf{h}_{t-1}, \mathbf{r}_{t-1}\right], \mathbf{c}_{t-1}\right) \\ \mathbf{h}_{t} &=\hat{\mathbf{h}}_{t}+f^{\prime}(\mathbf{x}) \\ \mathbf{r}_{t-1} &=\sum_{i=1}^{k} a\left(\mathbf{h}_{t-1}, g\left(\mathbf{x}_{i}\right)\right) g\left(\mathbf{x}_{i}\right) \\ a\left(\mathbf{h}_{t-1}, g\left(\mathbf{x}_{i}\right)\right) &=\operatorname{softmax}\left(\mathbf{h}_{t-1}^{\top} g\left(\mathbf{x}_{i}\right)\right)=\frac{\exp \left(\mathbf{h}_{t-1}^{\top} g\left(\mathbf{x}_{i}\right)\right)}{\sum_{j=1}^{k} \exp \left(\mathbf{h}_{t-1}^{\top} g\left(\mathbf{x}_{j}\right)\right)} \end{aligned}
    最后 h_K 即为测试图片最后的嵌套向量。

Learning to Compare: Relation Network for Few-Shot Learning

本文和 siamese network 采用的方法类似,只不过度量学习时图片之间的距离不再是嵌套向量之间的 L1 距离,而是通过一个神经网络来输出,最后也不是把问题当成一个分类问题,而是一个回归问题,相同的图片回归值为 1,不同的图片回归值为 0。具体的网络框架如下:

relation network

Prototypical Networks for Few-shot Learning

本文同样属于元学习中的度量学习方法。其定义了一个原型特征向量:
\mathbf{v}_{c}=\frac{1}{\left|S_{c}\right|} \sum_{\left(\mathbf{x}_{i}, y_{i}\right) \in S_{c}} f_{\theta}\left(\mathbf{x}_{i}\right)
即一个类别里所有图片特征向量的平均。最后通过如下方式进行类别预测:
P(y=c | \mathbf{x})=\operatorname{softmax}\left(-d_{\varphi}\left(f_{\theta}(\mathbf{x}), \mathbf{v}_{c}\right)\right)=\frac{\exp \left(-d_{\varphi}\left(f_{\theta}(\mathbf{x}), \mathbf{v}_{c}\right)\right)}{\sum_{c^{\prime} \in \mathcal{C}} \exp \left(-d_{\varphi}\left(f_{\theta}(\mathbf{x}), \mathbf{v}_{c^{\prime}}\right)\right)}

prototypical network

 

Meta-Learning with Memory-Augmented Neural Networks

本文属于元学习中基于模型的方法。具体来说,其采用神经图灵机 NTM 作为其主要模型,由于 NTM 具有独立的内存机构,使得其可以保存训练中学习到的信息,从而完成元学习。NTM 的核心架构主要是读写操作,图例如下:

NTM

本文为了显式地约束训练过程使得算法在训练的过程中能够去保存中间结果,在训练中对训练数据采用一步偏移的方式处理:

mann

其读策略与 NTM 类似:
\mathbf{r}_{i}=\sum_{i=1}^{N} w_{t}^{r}(i) \mathbf{M}_{t}(i), \text { where } w_{t}^{r}(i)=\operatorname{softmax}\left(\frac{\mathbf{k}_{t} \cdot \mathbf{M}_{t}(i)}{\left\|\mathbf{k}_{t}\right\| \cdot\left\|\mathbf{M}_{t}(i)\right\|}\right)
写策略采用最近最少访问 Least Recently Used Access (LRUA) :
\begin{aligned} \mathbf{w}_{t}^{u} &=\gamma \mathbf{w}_{t-1}^{u}+\mathbf{w}_{t}^{r}+\mathbf{w}_{t}^{w} \\ \mathbf{w}_{t}^{r} &=\operatorname{softmax}\left(\operatorname{cosine}\left(\mathbf{k}_{t}, \mathbf{M}_{t}(i)\right)\right) \\ \mathbf{w}_{t}^{w} &=\sigma(\alpha) \mathbf{w}_{t-1}^{r}+(1-\sigma(\alpha)) \mathbf{w}_{t-1}^{l u} \\ \mathbf{w}_{t}^{l u} &=\mathbf{1}_{w_{t}^{u}(i) \leq m\left(\mathbf{w}_{t}^{u}, n\right)}, \text { where } m\left(\mathbf{w}_{t}^{u}, n\right) \text { is the } n \text { -th smallest element in vector } \mathbf{w}_{t}^{u} \text { . } \end{aligned}

Optimization as a Model for Few-Shot Learning

本文属于元学习中的基于优化的方法。具体来说,本文采用 LSTM 作为 meta-learner 的原因是因为梯度下降的形式
\theta_{t}=\theta_{t-1}-\alpha_{t} \nabla_{\theta_{t-1}} \mathcal{L}_{t}
可以用 LSTM 来表示(固定某些参数):
\begin{aligned} c_{t} &= f_{t} \odot c_{t-1}+i_{t} \odot \tilde{c}_{t} \\ &=\theta_{t-1}-\alpha_{t} \nabla_{\theta_{t-1}} \mathcal{L}_{t} \end{aligned}
但是随机梯度下降的形式可能不是最优的,我们可以把固定的参数变为可学的,即:
\begin{aligned} f_t &= \sigma(\mathbf{W}_f \cdot [\nabla_{\theta_{t-1}}\mathcal{L}_t, \mathcal{L}_t, \theta_{t-1}, f_{t-1}] + \mathbf{b}_f) & \scriptstyle{\text{; how much to forget the old value of parameters.}}\\ i_t &= \sigma(\mathbf{W}_i \cdot [\nabla_{\theta_{t-1}}\mathcal{L}_t, \mathcal{L}_t, \theta_{t-1}, i_{t-1}] + \mathbf{b}_i) & \scriptstyle{\text{; corresponding to the learning rate at time step t.}}\\ \tilde{\theta}_t &= -\nabla_{\theta_{t-1}}\mathcal{L}_t &\\ \theta_t &= f_t \odot \theta_{t-1} + i_t \odot \tilde{\theta}_t &\\ \end{aligned}
具体的网络结构如下:

LSTM

On First-Order Meta-Learning Algorithms

本文提出的 Reptile 算法是一个与 MAML 类似的十分有效但简单的元学习方法:

Reptile

本文假定所有任务的最优参数都分布在一个最优流形上,Reptile 的目标就是找到一个初始化参数能够与所有任务的最优流形距离最小:
\theta^{*}=\arg \min _{\theta} \mathbb{E}_{\tau \sim p(\tau)}\left[\frac{1}{2} \operatorname{dist}\left(\theta, \mathcal{W}_{\tau}^{*}\right)^{2}\right]

Optim

 

其中:
\operatorname{dist}\left(\theta, \mathcal{W}_{\tau}^{*}\right)=\operatorname{dist}\left(\theta, W_{\tau}^{*}(\theta)\right), \text { where } W_{\tau}^{*}(\theta)=\arg \min _{W \in \mathcal{W}_{\tau}^{*}} \operatorname{dist}(\theta, W)
该距离的梯度为:
\begin{aligned} \nabla_\theta[\frac{1}{2}\text{dist}(\theta, \mathcal{W}_{\tau_i}^*)^2] &= \nabla_\theta[\frac{1}{2}\text{dist}(\theta, W_{\tau_i}^*(\theta))^2] & \\ &= \nabla_\theta[\frac{1}{2}(\theta - W_{\tau_i}^*(\theta))^2] & \\ &= \theta - W_{\tau_i}^*(\theta) & \end{aligned}
采用梯度下降找到最优初始化参数:
\theta=\theta-\alpha \nabla_{\theta}\left[\frac{1}{2} \operatorname{dist}\left(\theta, \mathcal{W}_{\tau_{i}}^{*}\right)^{2}\right]=\theta-\alpha\left(\theta-W_{\tau_{i}}^{*}(\theta)\right)=(1-\alpha) \theta+\alpha W_{\tau_{i}}^{*}(\theta)
可以看到上述形式和算法框架中的一致。

Reptile 与 MAML 算法以及 MAML 算法的一阶估计算法 FOMAML 具有极其紧密的联系:

 

relationship

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值