论文阅读笔记《Gradient-Based Meta-Learning with Learned Layerwise Metric and Subspace》
核心思想
本文提出一种基于参数优化的小样本学习算法(MT-net),基本思路还是延续了MAML两级训练的元学习思想,作者在先前的元学习算法基础上增加了一个变换矩阵,得到变换网络Transformation Networks (T-net),在变换网络的基础上增加了一个二元掩码矩阵得到掩码变换网络Mask Transformation Networks (MT-net),网络的设计思路如下图所示。
如图a所示,在初始权重值的基础上,任务学习器会根据每个任务的损失对权重值进行更新得到不同任务对应的权重值(用不同的颜色表示)。但对于MAML算法而言,当初始权重值确定了,网络结构固定了之后,所有任务的参数搜索空间也就固定了。假设网络的结构非常简单,每个参数只有三个维度,那么对于这个参数而言,他的搜索空间就是三维空间中的一个二维平面(如图b所示),两个维度参数的变化,就能决定第三个维度参数的变化(也就是说只有两个自由度)。因此在这个条件下,所有任务对应的参数只能在同一个二维平面中选取,这就限制了参数的选择范围。而本文提出在原有结构的基础上增加一个与任务相关的变换矩阵,其将参数的搜索空间投影到一个与任务相关的子空间中(如图c所示),这样每个任务的参数都能在对应的子空间中选择,这样使得任务学习对于任务的变化更加敏感。增加了变换矩阵后,就得到了变换网络T-net,模型的实现方式如下图所示
T-net的实现方法也很简单,就是在模型的参数中增加一个可学习的变换矩阵参数,模型的数学表达如下
其中表示第层网络对应的权重参数,表示第层网络对应的变换矩阵,表示**函数,则整个模型的参数可以分成两部分:和
在内层循环阶段,利用任务学习器对参数进行更新
得到每个任务对应的参数,然后在外层循环阶段对整个参数进行更新
在T-net的基础上,作者又考虑如何让权重的更新过程更接近于任务的需要,因此作者有增加了一个掩码矩阵,得到掩码变换网络MT-net,其模型的实现方式如下图所示
MT-net的模型与T-net是相似的,但是在参数更新的环节增加了一个可学习的掩码矩阵,中的每一行不是全1向量,就是全0向量,将其与损失函数得到的梯度矩阵逐元素相乘,就得到了掩码后的梯度矩阵,全1向量(如图中白色部分)对应的梯度信息得以保留,可以对权重参数进行更新得到,而全0向量(如图中蓝色部分)对应的梯度信息就被清空了,无法对该部分权重参数进行更新。这样对于每个任务,其对应权重参数的更新方式都是不同的。整个过程的数学表达如下
为了使掩码矩阵能通过梯度下降的方式进行训练,本文采用了一种可微分的近似方法实现,中的每个行向量计算过程如下
其中是一个超参数,而对于的学习就转化为了对参数的学习,则模型参数就包含三个部分, 和
同理在学习过程中,现在内层循环中训练参数,再在外层循环中对整个模型参数进行训练
实现过程
网络结构
对于分类任务采用4-Conv结构。
训练策略
T-net训练过程如下
MT-net训练过程如下
创新点
- 引入了任务相关的变换矩阵,使得每个权重参数能够在任务对应的子空间中进行学习
- 引入了任务相关的掩码矩阵,使得权重参数更新过程会根据任务需求来设计
算法评价
看起来对于小样本学习任务,任务相关(Task-specific)的方法已经得到了广泛的关注,大家不再希望找到一个泛化能力超强,模型容量超大的算法来满足所有任务的需求,因为在小样本条件下,这是很难实现的。而是通过让模型能够根据任务需求进行自适应的调整,来使其快速地在小样本训练中达到一个较优解。本文也是基于此想法,对参数的搜索空间和更新过程,增加了与任务相关的调整,使其能够快速的实现收敛。
如果大家对于深度学习与计算机视觉领域感兴趣,希望获得更多的知识分享与最新的论文解读,欢迎关注我的个人公众号“深视”。