3-2 元学习 Small Sample Learning in Big Data Era 笔记

一、基本信息

  题目:Small Sample Learning in Big Data Era
  期刊/会议:arXiv
  发表时间:2018年
  引用次数:1

二、论文总结

2.1 研究方向

  小样本学习综述

2.2 主要内容

  小样本学习主要包括两个方向:concept learningexperience learning。其中,concept learning目的是利用concept system,计算样本特征和concept的相似度,使得在新类别的样本量特别特别少的情况下,可以把模型训练好。experience learning目的在于处理样本量比较小的情况,与大数据情形相对立。
   concept learning是指学习到匹配规则,使得将样本和concept system中的concept相匹配。通常说的新类别,是指在训练集中没有出现过,但是在concept system中存在的类别。如果连concept system中也没有这种类别,则需要考虑一些方法让模型自定义一个新类别,这是一个研究难点。concept system 中的concept包括两类:intensional representation(概念、属性特征,多是文本数据)和extensional representation(实例、原型,多是图像数据)。
   experience learning的方式主要有四类做法:数据增强、模型调整、减少模型对数据量的依赖和元学习。

2.2.1 concept learning

   concept learning目的是识别训练集中未出现过的类别,当然模型并不具备自动从训练集中识别出新类别的能力,只能借助外部信息去识别新类别,外部信息包括concept system、knowledge system等等。该方法是将样本特征与concept system中的concept(类别)进行相似度计算,然后将concept(类别)赋予样本。concept system中有intensional representation也有图像数据extensional representation,样本可能是文本或图像数据,因此需要文本数据和图像数据统一到同一个空间里面,通过计算向量相似度进行匹配(matching),然后赋予样本新类别(新concept)。根据concept system中元素的类别,匹配方式包括三类:intensional matching、extensional matching和mixed matching。对此,综述里提到了很多论文,因为综述只是对各个论文进行了简洁的描述,所以很多地方没有看懂作者在说什么,如果后续需要再仔细研读综述中提到的相关论文。

2.2.2 experience learning

   目的是处理样本量小的情况,不涉及到训练集中未出现的类别,主要分为四类做法:数据增强、模型调整、减少模型对数据量的依赖和元学习
  数据增强的目的是为了增大数据量,然后用传统机器学习方法进行训练,方法主要包括:数据形式转换(对称平移等)、使用生成模型(SimGAN、DAGAN、VAE、SCAN等)生成新数据、利用伪标签思想(curriculum learning、self-paced learning、dual learning、data programming)、跨领域合成和领域自适应。
  模型调整是指利用已经在大数据上训练好的模型,在小数据集上做调整,主要方法包括fine-tuning、知识蒸馏(knowledge distillation)和模型自适应。
  减少模型对数据量依赖的方法是指融合外部信息(领域知识、常识等)让模型在小样本上能生效,方法主要包括:model-driven(white box model、memory neural networks、neural module networks)、 metric-driven(siamese neural networks、matching networks、prototypical networks、relation networks)、knowledge-driven(先验知识、领域知识、常识:causality and compositionality、attention、curiosity)、.
   元学习是为了学习出模型是如何学习的,掌握方法论,使得模型在小样本上可以迅速学习到有用信息,方向主要包括:learning to learn、learning to reinforcement learn、learning to transfer、learning to optimize。

2.3 展望

  concept learning还有两点需要继续研究:如何更好的将图像和文本统一到同一个空间里面;如何解决concept system中没有的类别。
  experience learning还有三点需要继续研究:对于一个特定的问题如何去选择合适的模型;如何更好地将知识加入到模型中;如何在小样本学习中设计更好的相似度度量标准。

三、论文中提到的一些网络

3.1 Generative Adversarial Network

  对抗生成网络,简称GAN,可以用来生成新样本。GAN由两个部分组成:生成模型和判别模型,生成模型负责由噪声(正态分布、均匀分布等)生成样本,判别模型负责判断样本是否是真实样本。当判别模型无法判断样本是真实样本还是生成样本时,训练结束。将随机数输入到生成模型即可生成新样本。
  GAN目前已经发展出了各式各样的变形,目前有人做了个集合放在GitHub上:GAN代码合集,各种GAN和VAE的tensorflow代码:GAN、VAE代码

3.2 Variational Auto-encoder

  变分自编码,简称VAE,可以用于生成新样本。VAE假设样本的隐表示都可以从正态分布中采样出来,VAE中的编码器为每个样本计算出高斯分布的均值和方差,然后从这个高斯分布中采样出来隐表示向量,解码器将此隐表示还原成样本本身。


image.png

3.3 Siamese Neural Networks

  孪生神经网络用语判断两个样本是否属于同一个类别(计算两者的相似度),该模型将样本映射成向量后,没有用softmax损失,通常采用对比损失(Contrastive Loss)、三重损失(Triple Loss)等。“孪生”的意思是下图中两个网络是共享权重的,代码实现时可以只写一个网络。所以个人感觉孪生神经网络并没有特别之处,仅仅是换了个损失函数。


image.png

3.4 Prototypical Networks

  原型网络通过神经网络学会一个映射,将各个样本投影到同一空间中,对于每种类型的样本提取他们的中心点(mean)作为原型(prototype)。使用基于布雷格曼散度的欧几里得距离作为距离度量,训练使得测试样本到自己类别原型的距离越近越好,到其他类别原型的距离越远越好。测试时,通过对到每类原型的距离做sofmax获得测试样本类别


image.png

3.5 Self-paced Learning

  自步学习,模仿人类从简单到复杂的学习过程,调整样本的输入顺序,先输入容易训练的样本(loss比较小),后输入不容易训练的样本(loss比较大)。一个写的很清晰的科普博客:
  自步学习

image.png

3.6 Dual Learning

  对偶学习,主要是处理标签特别少的对偶数据。比如机器翻译的中英互译,首先用带标签的少量数据训练中译英model-1和英译中model-2,然后对于大量无标签数据,用model-1将中文翻译成英文,然后用model-2将此英文翻译成中文,通过计算两个版本的中文的损失,采用策略梯度下降的方式进行参数更新,直至模型收敛。


image.png

3.7 Knowledge Distillation

  知识蒸馏,通过引入教师网络对学生网络进行指导,使得学生网络可以更快收敛,其中教师网络是在大数据集上训练好的网络,指导的方式是,将教师网络在小数据上的预测作为学生网络学习目标之一。由于分类任务中标签是one-hot类型,非0即1,比较极端,模型不容易学习,因此需要对教师网络的预测输出进行“软化”,方式是在softmax归一化之前除以温度参数T,表示蒸馏的程度。T越大,预测输出越均匀平滑。在模型训练初期教师指导的权重设置大一些,训练后期设置小一些。知识蒸馏的类型有很多种,有篇博客做了总结
知识蒸馏

image.png

你可能感兴趣的:(3-2 元学习 Small Sample Learning in Big Data Era 笔记)