少样本学习系列(二)【Model-Based Methods】

简介: 少样本学习系列(二)【Model-Based Methods】

  上一节说了Metrics-Based Methods,主要是将输入编码到一个相同的特征空间,然后比较相似度。但是人类很多时候能够快速学习的原因是对以往知识、经验的利用。因此通过扩展一个记忆模块似乎也能做到少样本学习。这一节主要介绍通过模型结构的设计,来做few shot learning

Neural Turing Machines (NTMs)

  LSTM将记忆藏在隐藏节点(hidden state)中,这样就会存在很多问题,一个是计算的开销,另外一个就是记忆会被经常改动,并且是那种牵一发动全身地改变。

  而NTM由一个controller和一个memory矩阵构成,通过特定的寻址读写机制,对相关的memory进行修改,并且易于扩展:

  当给定一个输入时,controller负责依据输入对memory进行读写操作,实现记忆更新。

  但是通过特定的行和列来读取memory的话,我们就没办法对整个网络求梯度了,不能使用微分算法来更新。那这样肯定不行,要想一些办法。

  我们需要对外部的memory(存储器)进行选择性地读写。人的大脑工作的时候首先是聚焦注意力(记忆中很大一块,比如说你昨晚吃啥了,一般会聚焦到昨晚那一大块时间段),然后寻找到特定的记忆(比如有啥菜)。因此有了模糊读写(blurry read and write)的概念,通过不同的权重与内存中的所有元素进行交互

读:

  假设记忆矩阵M t stept tt 是一个拥有R 行和C 列的内存矩阵(C 代表记忆中每一行的大小)。执行读写操作的网络输出称为headscontroller输出一个attention向量,长度为R 也称之为weight vector( w t ),其中的每一个元素w t ( i ) memory matrixi ii行的weightweight通常都被归一化,用数学形式可表示为:


image.png

read head返回的就是记忆矩阵行的线性组合:

image.png

写:


  写的操作可以分为两步擦除(erasing)和添加(adding)。为了实现擦除操作,需要一个erase vectore t e_{t}et其值在0-1之间,擦除操作可表示为:


image.png

weight w t ( i ) e t 都为1时,memory被清空,当其中任意一个为0时,则不会有任何改变,这种方式也支持多个操作任意顺序的相互叠加。记忆矩阵可用一个长度为C 的向量a t 更新:

image.png

  • 寻址

  读写操作的关键就在于权重矩阵w ww,控制器产生权重矩阵可以分为以下四步:

  1. content-based addressinghead产生一个长度为C CCkey vectork t ,然后用余弦相似度度量k t 与记忆矩阵M t 的相似性:


image.png

 对记忆矩阵每一行都进行一样的操作再归一化可得content weight vector


image.png

image.png

  1. interpolation之后,head产生一个normalized shift weightings t s_{t}st,对权重进行旋转位移,比如当前的权重值关注于某一个locationmemory,经过此步就会扩展到其周围的location,使得模型对周围的memory也会做出少量的读和写操作,采用循环卷积


image.png

  1. 卷积操作之后会使得权重分布趋于均匀化,这将会导致本来集中于单个位置的焦点出现发散,这里采用锐化操作,head产生一个标量γ ≥ 1

image.png

 上述操作都是可微分的,因此可以使用微分算法对其进行优化。


Memory-augmented Neural Networks


  NMT中采用了content-based addressinglocation-based addressing,在MANN中只采用content-based addressing,因为只需要比较当前input是否和之前输入的input相似即可。



  MANN中的读取操作和NTM的读取操作非常类似,不同之处在于它只采取content-based addressing的方式,先产生一个归一化的权重向量image.png

image.png

其中K ( ) 表示余弦相似性,之后与NTM类似与记忆矩阵M t加权求和即可:

image.png


  这里采用了Least Recently Used Access (LRUA)的写入方式:


image.png

image.png

 其中m ( w t u , n ) m\left(w_{t}^{u},n\right)m(wtu,n)表示w t u w_{t}^{u}wtu中第n nn个最小的元素,只有当期够小才为1,否者为0

Meta Networks

  传统的神经网络通过stochastic gradient descent方式做更新,如果batch_size1的话,更新就会很慢。如果train一个网络去预测目标任务的网络参数的话,这样的学习起来就会很快,称之为fast weights。由此我们可以知道meta network由两部分组成:

  1. meta-learner:它所要做的事情就是获取不同task的通用的知识。可以看作是一个embeddings function,判断两个不同的数据之间的差别。
  2. base-learner:期望去学一个target task,就是最常见的学习算法,比如做个分类这样。

  开始之前定义一些术语:

  • Support set:从训练集采样得到的一些数据点( x , y ) (x,y)(x,y)
  • query set:同样也是从训练集采样得到的一些数据点( x , y ) (x,y)(x,y),作为query set。
  • Embedding functionf θ f_{\theta}fθmeta-learner的一部分,与siamese network类似,用于预测两个输入是否属于同一类。
  • Base-learner modelg ϕ g_{\phi}gϕ:就是一个需要处理完整任务的学习算法。
  • θ + \theta^{+}θ+Embedding functionf θ f_{\theta}fθfast weight,由一个LSTMF w F_{w}Fw产生。
  • ϕ + \phi^{+}ϕ+Base-learner modelg ϕ g_{\phi}gϕfast weight,由一个网络G v G_{v}Gv产生。

  可以看出slow weights( θ , ϕ ) (\theta,\phi)(θ,ϕ)构成了meta-learnersbase learners。两个不同的网络F w F_{w}FwG v G_{v}Gv生成fast weight

  meta networks的网络架构如下所示:

  可以看到meta networkbase learnermeta-learner组成,meta-learner给配了一个外部memory(external memory)。

算法

  整个训练数据被分为两部分support setS = ( x i ′ , y i ′ ) query setU = ( x i , y i ) ,我们要做的事情就是学四个网络(f ( θ ) , g ( ϕ ) , F w , G v 的参数。

  1. support set随机采样K个样本对。循环将其中每个样本1-K送入embedding functionf ( θ ) f(\theta)f(θ),并计算cross-entropy lossLembeddings
  2. 计算得到的cross-entropy lossLembeddings再经过LSTM计算image.png
  3. image.png

  然后将fastslow weight合并:


image.png

20200711203527901.png


matching networksLSTM meta-learners其实是使用了相同的策略,都有利用额外的信息,一个是contextual embeddings,一个是meta information,期望抽取出一些对于整个task比较重要的信息。

参考

相关文章
|
机器学习/深度学习 开发框架 .NET
YOLOv5的Tricks | 【Trick6】学习率调整策略(One Cycle Policy、余弦退火等)
YOLOv5的Tricks | 【Trick6】学习率调整策略(One Cycle Policy、余弦退火等)
2003 0
YOLOv5的Tricks | 【Trick6】学习率调整策略(One Cycle Policy、余弦退火等)
|
20天前
|
vr&ar
R语言如何做马尔可夫转换模型markov switching model
R语言如何做马尔可夫转换模型markov switching model
|
20天前
|
vr&ar
R语言如何做马尔科夫转换模型markov switching model
R语言如何做马尔科夫转换模型markov switching model
|
10月前
|
机器学习/深度学习 数据采集 计算机视觉
少样本学习系列(一)【Metrics-Based Methods】
少样本学习系列(一)【Metrics-Based Methods】
|
10月前
|
机器学习/深度学习 算法
少样本学习系列(三)【Optimization-Based Methods】
少样本学习系列(三)【Optimization-Based Methods】
|
测试技术 计算机视觉
sklearn.model_selection.learning_curve介绍(评估多大的样本量用于训练才能达到最佳效果)
sklearn.model_selection.learning_curve介绍(评估多大的样本量用于训练才能达到最佳效果)
|
机器学习/深度学习 自然语言处理 JavaScript
R-Drop: Regularized Dropout for Neural Networks 论文笔记(介绍,模型结构介绍、代码、拓展KL散度等知识)
R-Drop: Regularized Dropout for Neural Networks 论文笔记(介绍,模型结构介绍、代码、拓展KL散度等知识)
|
机器学习/深度学习 数据采集 人工智能
论文阅读:Deep multi-view learning methods A review
论文阅读:Deep multi-view learning methods A review
479 0
论文阅读:Deep multi-view learning methods A review
|
Shell 计算机视觉
2022亚太建模A题Feature Extraction of Sequence Images and Modeling Analysis of Mold Flux Melting and Crystallization思路分析
2022 亚太建模A题序列图像的特征提取与建模分析 模具流量的熔融和结晶Feature Extraction of Sequence Images and Modeling Analysis of Mold Flux Melting and Crystallization
2022亚太建模A题Feature Extraction of Sequence Images and Modeling Analysis of Mold Flux Melting and Crystallization思路分析
|
机器学习/深度学习 自然语言处理 算法
Paper:论文解读《Adaptive Gradient Methods With Dynamic Bound Of Learning Rate》中国本科生提出AdaBound的神经网络优化算法(二)
Paper:论文解读《Adaptive Gradient Methods With Dynamic Bound Of Learning Rate》中国本科生提出AdaBound的神经网络优化算法
Paper:论文解读《Adaptive Gradient Methods With Dynamic Bound Of Learning Rate》中国本科生提出AdaBound的神经网络优化算法(二)

热门文章

最新文章