精华内容
下载资源
问答
  • 训练测试样本划分

    2019-06-12 15:50:00
    在离线建模环节,需要对模型进行评估,这就需要对总样本进行划分,一部分用于训练,模型从训练集...这种方法非常简单,但不能充分利用数据训练模型,而且样本划分对模型效果影响很。 a. 只利用了部分数据训练模...

    在离线建模环节,需要对模型进行评估,这就需要对总样本进行划分,一部分用于训练,模型从训练集学习规则,一部分用于测试,检验模型的泛化能力。

    下面介绍几种样本划分方法。

     

    留出法

    方法:将样本集 D 分成两个互斥的样本集合,训练集为S,测试集为T,S∩T=Ø,SUT=D

    这种方法非常简单,但不能充分利用数据训练模型,而且样本划分对模型效果影响很大。

    a. 只利用了部分数据训练模型,得到的模型很可能和全量数据D得到的模型偏差很大,训练集越小,偏差越大

    b. 如果训练集较大,测试集较小,则模型可信度降低

    c. 划分前后数据分布不同,比如总样本1500正1500负,划分后,测试样本50正950负,这显然会影响模型的效果。

    样本集划分数量会导致模型偏差,通常做法是 2/3做训练集,1/3做测试集;

    类别分布不同也会影响模型效果,可采用分层抽样的方法,特别是类别不均衡问题;

    鉴于留出法的不确定性,可进行多次留出法实验,最终取平均值

     

    适用场景:样本具有明显的时间序列因素

    如 6月需要训练模型,可拿1-4月作为训练集,5月作为测试集    

     

    交叉验证

    这是最常用的方法,老生常谈了,直接贴图片吧

    交叉验证明显比留出法更复杂,

    当k=2时,其仍不同于留出法,因为留出法是1个训练集,而交叉验证是2个训练集;

    当k=n,n为样本数,此时测试集为一个样本,这称为留一法,(Leave-One-Out,LOO)

      // 这种方法训练n个模型,每个模型基本用到全部数据,接近“真实”模型;

      // 但是n很大时,其计算量太大;故n不能太大

     

    另外,

    交叉验证在处理类别不均衡问题时,也采用了分层采样的方式,即对每个类进行 k折划分;

    由于交叉验证在划分时也带有随机性,可能产生不稳定现象,故可进行多次交叉验证;

     

    自助法

    自助法(bootstrapping) 以自主采样(bootstrap sampling)为基础,采用有放回重复抽样的方式构建训练集、测试集。

    比如D中有m个样本,每次从中随机拿一个,存入训练集,然后放回D中,下次再从D中随机拿一个,存入训练集...最终产生m个样本的训练集

    当然训练集中可能有重复的样本,有些样本被多次选中,也有些样本从未被选中,没被选中的作为测试集

    样本在m次采样中从未被选中的概率为  (1-1/m)m,取极限

    也就是说测试集大概占总样本的0.368,大概1/3,

    这种测试结果,称为“包外估计

     

    自助法在数据集较小,且难以有效划分训练/测试时很有用,而且自助法能从数据集中产生多个训练集,很适合集成学习,随机森林用的就是自助法;

    自助法产生的训练集改变了数据分布,这会引入估计偏差;

    所以在数据量足够时,优先选择 留出法和交叉验证。

     

     

    最后需要注意一点,尽管我们在模型训练时用的部分样本,但是当经过测试集调试,模型参数固定时,需要重新在整个数据集上训练该模型,这个模型才是最终需要交付的模型。【请注意】

    转载于:https://www.cnblogs.com/yanshw/p/11008828.html

    展开全文
  • 小样本学习综述

    千次阅读 2019-04-02 11:02:32
    人类非常擅长通过极少量的样本识别一个新物体,比如孩子只需要书中的一些图片就可以认识什么是“斑马”,什么是“犀牛”。在人类的快速学习能力的启发下,研究人员希望机器学习模型在学习了一定类别的大量数据后,...

    原文链接:https://mp.weixin.qq.com/s/-73CC3JqnM7wxEqIWCejWQ

     

    问题定义

     

    人类非常擅长通过极少量的样本识别一个新物体,比如小孩子只需要书中的一些图片就可以认识什么是“斑马”,什么是“犀牛”。在人类的快速学习能力的启发下,研究人员希望机器学习模型在学习了一定类别的大量数据后,对于新的类别,只需要少量的样本就能快速学习,这就是 Few-shot Learning 要解决的问题。 

     

    Few-shot Learning 是 Meta Learning 在监督学习领域的应用。Meta Learning,又称为 learning to learn,在 meta training 阶段将数据集分解为不同的 meta task,去学习类别变化的情况下模型的泛化能力,在 meta testing 阶段,面对全新的类别,不需要变动已有的模型,就可以完成分类。 

     

    形式化来说,few-shot 的训练集中包含了很多的类别,每个类别中有多个样本。在训练阶段,会在训练集中随机抽取 C 个类别,每个类别 K 个样本(总共 CK 个数据),构建一个 meta-task,作为模型的支撑集(support set)输入;再从这 C 个类中剩余的数据中抽取一批(batch)样本作为模型的预测对象(batch set)。即要求模型从 C*K 个数据中学会如何区分这 C 个类别,这样的任务被称为 C-way K-shot 问题 

     

    训练过程中,每次训练(episode)都会采样得到不同 meta-task,所以总体来看,训练包含了不同的类别组合,这种机制使得模型学会不同 meta-task 中的共性部分,比如如何提取重要特征及比较样本相似等,忘掉 meta-task 中 task 相关部分。通过这种学习机制学到的模型,在面对新的未见过的 meta-task 时,也能较好地进行分类。 

     

    图 1 展示的是一个 2-way 5-shot 的示例,可以看到 meta training 阶段构建了一系列 meta-task 来让模型学习如何根据 support set 预测 batch set 中的样本的标签;meta testing 阶段的输入数据的形式与训练阶段一致(2-way 5-shot),但是会在全新的类别上构建 support set 和 batch。

     

     图1:Few-shot Learning示例

     

    在图像领域的研究现状

     

    早期的 Few-shot Learning 算法研究多集中在图像领域,如图 2 所示,Few-shot Learning 模型大致可分为三类:Mode Based,Metric Based 和 Optimization Based。

     

     图2:Few-shot Learning模型分类

     

    其中 Model Based 方法旨在通过模型结构的设计快速在少量样本上更新参数,直接建立输入 x 和预测值 P 的映射函数;Metric Based 方法通过度量 batch 集中的样本和 support 集中样本的距离,借助最近邻的思想完成分类;Optimization Based 方法认为普通的梯度下降方法难以在 few-shot 场景下拟合,因此通过调整优化方法来完成小样本分类的任务。

     

    Model Based方法

     

    Santoro 等人 [3] 提出使用记忆增强的方法来解决 Few-shot Learning 任务。基于记忆的神经网络方法早在 2001 年被证明可以用于 meta-learning。他们通过权重更新来调节 bias,并且通过学习将表达快速缓存到记忆中来调节输出。

     

    然而,利用循环神经网络的内部记忆单元无法扩展到需要对大量新信息进行编码的新任务上。因此,需要让存储在记忆中的表达既要稳定又要是元素粒度访问的,前者是说当需要时就能可靠地访问,后者是说可选择性地访问相关的信息;另外,参数数量不能被内存的大小束缚。神经图灵机(NTMs)和记忆网络就符合这种必要条件。 

     

    文章基于神经网络图灵机(NTMs)的思想,因为 NTMs 能通过外部存储(external memory)进行短时记忆,并能通过缓慢权值更新来进行长时记忆,NTMs 可以学习将表达存入记忆的策略,并如何用这些表达来进行预测。由此,文章方法可以快速准确地预测那些只出现过一次的数据。

     

    文章基于 LSTM 等 RNN 的模型,将数据看成序列来训练,在测试时输入新的类的样本进行分类。

     

    具体地,在 t 时刻,模型输入,也就是在当前时刻预测输入样本的类别,并在下一时刻给出真实的 label,并且添加了 external memory 存储上一次的 x 输入,这使得下一次输入后进行反向传播时,可以让 y (label) 和 x 建立联系,使得之后的 x 能够通过外部记忆获取相关图像进行比对来实现更好的预测。

     

     图3:Memory Augmented Model

     

    Meta Network [12] 的快速泛化能力源自其“快速权重”的机制,在训练过程中产生的梯度被用来作为快速权重的生成。模型包含一个 meta learner 和一个 base learner,meta learner 用于学习 meta task 之间的泛化信息,并使用 memory 机制保存这种信息,base learner 用于快速适应新的 task,并和 meta learner 交互产生预测输出。

     

    Metric Based方法 

     

    如果在 Few-shot Learning 的任务中去训练普通的基于 cross-entropy 的神经网络分类器,那么几乎肯定是会过拟合,因为神经网络分类器中有数以万计的参数需要优化。

     

    相反,很多非参数化的方法(最近邻、K-近邻、Kmeans)是不需要优化参数的,因此可以在 meta-learning 的框架下构造一种可以端到端训练的 few-shot 分类器。该方法是对样本间距离分布进行建模,使得同类样本靠近,异类样本远离。下面介绍相关的方法。 

     

    如图 4 所示,孪生网络(Siamese Network)[4] 通过有监督的方式训练孪生网络来学习,然后重用网络所提取的特征进行 one/few-shot 学习。

     

     图4:Siamese Network

     

    具体的网络是一个双路的神经网络,训练时,通过组合的方式构造不同的成对样本,输入网络进行训练,在最上层通过样本对的距离判断他们是否属于同一个类,并产生对应的概率分布。在预测阶段,孪生网络处理测试样本和支撑集之间每一个样本对,最终预测结果为支撑集上概率最高的类别。

     

    相比孪生网络,匹配网络(Match Network)[2] 为支撑集和 Batch 集构建不同的编码器,最终分类器的输出是支撑集样本和 query 之间预测值的加权求和。

     

    如图 5 所示,该文章也是在不改变网络模型的前提下能对未知类别生成标签,其主要创新体现在建模过程和训练过程上。对于建模过程的创新,文章提出了基于 memory 和 attention 的 matching nets,使得可以快速学习。

     

    对于训练过程的创新,文章基于传统机器学习的一个原则,即训练和测试是要在同样条件下进行的,提出在训练的时候不断地让网络只看每一类的少量样本,这将和测试的过程是一致的。

     

    具体地,它显式的定义一个基于支撑集的分类器,对于一个新的数据,其分类概率由与支撑集 S 之间的距离度量得出:

     

     

    其中 a 是基于距离度量的 attention score:

     

     

    进一步,支撑集样本 embedding 模型 g 能继续优化,并且支撑集样本应该可以用来修改测试样本的 embedding 模型 f。

     

    这个可以通过如下两个方面来解决,即:1)基于双向 LSTM 学习训练集的 embedding,使得每个支撑样本的 embedding 是其它训练样本的函数;2)基于 attention-LSTM 来对测试样本 embedding,使得每个 Query 样本的 embedding 是支撑集 embedding 的函数。文章称其为 FCE (fully-conditional embedding)。

     

     图5:Match Network

     

    原型网络(Prototype Network)[5] 基于这样的想法:每个类别都存在一个原型表达,该类的原型是 support set 在 embedding 空间中的均值。然后,分类问题变成在 embedding 空间中的最近邻。

     

    如图 6 所示,c1、c2、c3 分别是三个类别的均值中心(称 Prototype),将测试样本 x 进行 embedding 后,与这 3 个中心进行距离计算,从而获得 x 的类别。

     

     图6:Prototype Network

     

    文章采用在 Bregman 散度下的指数族分布的混合密度估计,文章在训练时采用相对测试时更多的类别数,即训练时每个 episodes 采用 20 个类(20 way),而测试对在 5 个类(5 way)中进行,其效果相对训练时也采用 5 way 的提升了 2.5 个百分点。

     

    前面介绍的几个网络结构在最终的距离度量上都使用了固定的度量方式,如 cosine,欧式距离等,这种模型结构下所有的学习过程都发生在样本的 embedding 阶段。

     

    而 Relation Network [6] 认为度量方式也是网络中非常重要的一环,需要对其进行建模,所以该网络不满足单一且固定的距离度量方式,而是训练一个网络来学习(例如 CNN)距离的度量方式,在 loss 方面也有所改变,考虑到 relation network 更多的关注 relation score,更像一种回归,而非 0/1 分类,所以使用了 MSE 取代了 cross-entropy。

     

     

     

    图7:Relation Networks

     

    Optimization Based方法

     

    Ravi 等人 [7] 研究了在少量数据下,基于梯度的优化算法失败的原因,即无法直接用于 meta learning。

     

    首先,这些梯度优化算法包括 momentum, adagrad, adadelta, ADAM 等,无法在几步内完成优化,特别是在非凸的问题上,多种超参的选取无法保证收敛的速度。

     

    其次,不同任务分别随机初始化会影响任务收敛到好的解上。虽然 finetune 这种迁移学习能缓解这个问题,但当新数据相对原始数据偏差比较大时,迁移学习的性能会大大下降。我们需要一个系统的学习通用初始化,使得训练从一个好的点开始,它和迁移学习不同的是,它能保证该初始化能让 finetune 从一个好的点开始。 

     

    文章学习的是一个模型参数的更新函数或更新规则。它不是在多轮的 episodes 学习一个单模型,而是在每个 episode 学习特定的模型。

     

    具体地,学习基于梯度下降的参数更新算法,采用 LSTM 表达 meta learner,用其状态表达目标分类器的参数的更新,最终学会如何在新的分类任务上,对分类器网络(learner)进行初始化和参数更新。这个优化算法同时考虑一个任务的短时知识和跨多个任务的长时知识。

     

    文章设定目标为通过少量的迭代步骤捕获优化算法的泛化能力,由此 meta learner 可以训练让 learner 在每个任务上收敛到一个好的解。另外,通过捕获所有任务之前共享的基础知识,进而更好地初始化 learner。 

     

    以训练 miniImage 数据集为例,训练过程中,从训练集(64 个类,每类 600 个样本)中随机采样 5 个类,每个类 5 个样本,构成支撑集,去学习 learner;然后从训练集的样本(采出的 5 个类,每类剩下的样本)中采样构成 Batch 集,集合中每类有 15 个样本,用来获得 learner 的 loss,去学习 meta leaner。

     

    测试时的流程一样,从测试集(16 个类,每类 600 个样本)中随机采样 5 个类,每个类 5 个样本,构成支撑集 Support Set,去学习 learner;然后从测试集剩余的样本(采出的 5 个类,每类剩下的样本)中采样构成 Batch 集,集合中每类有 15 个样本,用来获得 learner 的参数,进而得到预测的类别概率。这两个过程分别如图 8 中虚线左侧和右侧。

     

     图8:Optimization as a model

     

    meta learner 的目标是在各种不同的学习任务上学出一个模型,使得可以仅用少量的样本就能解决一些新的学习任务。这种任务的挑战是模型需要结合之前的经验和当前新任务的少量样本信息,并避免在新数据上过拟合。 

     

    Finn [8] 提出的方法使得可以在小量样本上,用少量的迭代步骤就可以获得较好的泛化性能,而且模型是容易 fine-tine 的。而且这个方法无需关心模型的形式,也不需要为 meta learning 增加新的参数,直接用梯度下降来训练 learner。

     

    文章的核心思想是学习模型的初始化参数使得在一步或几步迭代后在新任务上的精度最大化。它学的不是模型参数的更新函数或是规则,它不局限于参数的规模和模型架构(比如用 RNN 或 siamese)。它本质上也是学习一个好的特征使得可以适合很多任务(包括分类、回归、增强学习),并通过 fine-tune 来获得好的效果。

     

    文章提出的方法,可以学习任意标准模型的参数,并让该模型能快速适配。他们认为,一些中间表达更加适合迁移,比如神经网络的内部特征。因此面向泛化性的表达是有益的。因为我们会基于梯度下降策略在新的任务上进行 finetune,所以目标是学习这样一个模型,它能对新的任务从之前任务上快速地进行梯度下降,而不会过拟合。事实上,是要找到一些对任务变化敏感的参数,使得当改变梯度方向,小的参数改动也会产生较大的 loss。

     

    在自然语言处理的研究现状

     

    早期的 Few-shot Learning 算法研究主要集中在小样本图像识别的任务上,以 MiniImage 和 Omnigraffle 两个数据集为代表。

     

    近年来,在自然语言处理领域也开始出现 Few-shot Learning 的数据集和模型,相比于图像,文本的语义中包含更多的变化和噪声,我们将在本节从数据集和模型两个方面介绍 Few-shot Learning 在自然语言处理领域的进展,以及我们团队基于对话工厂平台所做的探索。

     

    数据集

     

    1. FewRel 数据集 [11] 由Han等人在EMNLP 2018提出,是一个小样本关系分类数据集,包含64种关系用于训练,16种关系用于验证和20种关系用于测试,每种关系下包含700个样本。 

     

    2. ARSC 数据集 [10] 由 Yu 等人在 NAACL 2018 提出,取自亚马逊多领域情感分类数据,该数据集包含 23 种亚马逊商品的评论数据,对于每一种商品,构建三个二分类任务,将其评论按分数分为 5、4、 2 三档,每一档视为一个二分类任务,则产生 23*3=69 个 task,然后取其中 12 个 task(4*3)作为测试集,其余 57 个 task 作为训练集。 

     

    3. ODIC 数据集来自阿里巴巴对话工厂平台的线上日志,用户会向平台提交多种不同的对话任务,和多种不同的意图,但是每种意图只有极少数的标注数据,这形成了一个典型的 Few-shot Learning 任务,该数据集包含 216 个意图,其中 159 个用于训练,57 个用于测试。

     

    主要模型

     

    Gao [9] 等人提出文本与图像的一大区别在于其多样性和噪音更大,因此提出一种基于混合注意力的原型网络结构,如图 9 所示,首先使用 instance-level 的 attention 从支撑集中选出和 query 更为贴近的实例,同时降低噪声实例所带来的影响。

     

    然后 feature-level 的实例能够衡量特征空间中的哪些维度对分类更为重要,从而为每种不同的关系都生成相适应的距离度量函数,从而使模型能够有效处理特征稀疏的问题。

     

     图9:基于混合注意力的原型网络

     

    Yu [10] 等人指出在图像领域的 Few-shot Learning 任务中,比如 Omniglot 和 miniImage 数据集,所有的数据都是从同一个大的数据集采样而来,也就是说所有的 meta-task 都是来自同一个领域,所以相关性是很强的。

     

    所以之前的 Few-shot Learning 方法只需使用一个 meta model 即可解决剩余的 few-shot 任务。但是在现实场景当中,不同的 meta task 可能来自完全不同的领域,因此使用单独的度量方式不足以衡量所有的 meta task。 

     

    在这种场景下,Yu 提出使用多种度量方式融合来解跨领域的 Few-shot Learning 问题。在训练阶段,meta learner 通过任务聚类选择和结合多种度量方式来学习目标任务,不同领域的 meta task 首先通过聚类来划分,因此同一个簇内的 task 可以认为是相关的,然后在该簇中训练一个深度神经网络作为度量函数,这种机制保证了只有在同一个簇中的 task 才会共享度量函数。

     

    在测试阶段,为每个 test task 使用所有度量函数的线性组合作为任务适应的度量方式。

     

     

    在对话工厂平台的研究和应用

     

    我们团队基于目前 Metric Based 方法,提出了 Encoder-Induction-Relation 的三级框架,如图 10 所示,Encoder 模块用于获取每个样本的语义表示,可以使用典型的 CNN、LSTM、Transformer 等结构,Induction 模块用于从支撑集的样本语义中归纳出类别特征,Relation 模块用于度量 query 和类别之间的语义关系,进而完成分类。

     

     

    ▲ 图10:Encoder-Induction-Relation三级框架

     

    如表 1 所示,之前的工作往往致力于学习不同的距离度量方式,而忽视了从样本表示到类表示的建模。而在自然语言当中,由于每个人的语言习惯不同,同一个类别的不同表述往往有很多种,如果仅仅是简单加和或取平均来作为类别的表示,这些与分类无关的干扰信息就会累加,影响最终的效果。

     

    因此我们的工作显式的建模了从样本表示到类表示这一能力,在 ODIC 和 ARSC 两个数据集上,超过了之前的 state-of-the-art 的模型,实验结果如表 2 所示。

     

     表1:Metric Based方法对比

     

     表2:ODIC数据集实验结果

     

    此外,我们在 ODIC 数据集上逐渐增加训练数据的类别数,如图 11,在测试集上得到的效果会逐渐提升,这满足了平台级的语言理解所需要的可泛化、可持续学习的需求。

     

     图11:ODIC数据集变化趋势

     

    总结

     

    本文从对话工厂平台的实际问题出发,对小样本学习方法进行了系统梳理和研究,给出了 Few-shot Learning 的定义,综述了其在图像和 NLP 领域的研究现状。

     

    针对 Metric Based 系列方法,我们提出了统一的 Encode-Induction-Relation 描述框架,介绍了我们团队在使用 Few-shot Learning 解决平台级自然语言理解所做的工作,即显式建模从样本表示到类表示的归纳能力。

     

    参考文献

     

    [1] Brenden M. Lake, Ruslan Salakhutdinov, Jason Gross, and Joshua B. Tenenbaum. One shot learning of simple visual concepts. In CogSci, 2011. 

    [2] Oriol Vinyals, Charles Blundell, Tim Lillicrap, Daan Wierstra, et al. Matching networks for one shot learning. In Advances in Neural Information Processing Systems, pages 3630–3638, 2016. 

    [3] Santoro A, Bartunov S, Botvinick M, et al. One-shot learning with memory-augmented neural networks[J]. arXiv preprint arXiv:1605.06065, 2016. 

    [4] Koch, Gregory, Richard Zemel, and Ruslan Salakhutdinov. "Siamese neural networks for one-shot image recognition." ICML Deep Learning Workshop. Vol. 2. 2015. 

    [5] Snell, Jake, Kevin Swersky, and Richard Zemel. "Prototypical networks for few-shot learning." Advances in Neural Information Processing Systems. 2017. 

    [6] Sung, Flood, et al. "Learning to compare: Relation network for few-shot learning." Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2018. 

    [7] Ravi, Sachin, and Hugo Larochelle. "Optimization as a model for few-shot learning." (2016). 

    [8] Finn, Chelsea, Pieter Abbeel, and Sergey Levine. "Model-agnostic meta-learning for fast adaptation of deep networks." Proceedings of the 34th International Conference on Machine Learning-Volume 70. JMLR. org, 2017. 

    [9] Gao, Tianyu, et al. "Hybrid Attention-Based Prototypical Networks for Noisy Few-Shot Relation Classification." (2019). 

    [10] Yu, Mo, et al. "Diverse few-shot text classification with multiple metrics." arXiv preprint arXiv:1805.07513 (2018). 

    [11] Han, Xu, et al. "FewRel: A Large-Scale Supervised Few-Shot Relation Classification Dataset with State-of-the-Art Evaluation." arXiv preprint arXiv:1810.10147 (2018). 

    [12] Munkhdalai, Tsendsuren, and Hong Yu. "Meta networks." Proceedings of the 34th International Conference on Machine Learning-Volume 70. JMLR. org, 2017. 

    [13] Geng R, Li B, Li Y, et al. Few-Shot Text Classification with Induction Network[J]. arXiv preprint arXiv:1902.10482, 2019. 

    [14] https://blog.csdn.net/qq_16234613/article/details/79902085 

    [15] https://lilianweng.github.io/lil-log/2018/11/30/meta-learning.html#learner-and-meta-learner

    展开全文
  • 训练样本和测试样本

    万次阅读 2017-04-14 10:01:14
    一, 训练样本和测试样本 训练样本的目的是 数学模型的参数,经过训练之后,可以认为你的模型系统确立了下来。 建立的模型有多好,和真实事件的差距不大,既可以认为是测试样本的目的。 一般训练样本和测试...

    一, 训练样本和测试样本

    训练样本的目的是 数学模型的参数,经过训练之后,可以认为你的模型系统确立了下来。

    建立的模型有多好,和真实事件的差距大不大,既可以认为是测试样本的目的。

    一般训练样本和测试样本相互独立,使用不同的数据。


    网上有人说测试样本集和验证样本集不一样,测试样本集数据主要用于模型可靠程度的检验,验证样本集的样本数据要在同样条件下,再另外采集一些数据用来对模型的准确性进行验证。(?)
    有人采用交叉验证,交叉验证指的的训练样本集、测试样本集、验证样本集、三中数据集都组合在一起,数据的划分采用交叉取样的方法。

     

     

    二,如何选择训练集和测试集

    未完待续

    网上有人说 经常采用的是m-folder cross validation的方法,把样本分成m份,轮流把其中一份作为测试集。至于m取多少看样本数量而定,样本充足的话m=10,另外m=3也是经常被使用的

     

    至于验证集,通常并不需要。

     


    三,Clementine中如何选择节点将数据分为训练集和测试集

    前期整理好数据后,选择partition节点 连接入数据流,在里面可以设置训练集、测试集及验证集,若要平分在测试集及训练集栏位内填上50%。 
    另外可以设置标签及数值;下面的设置是对数据表中增加标志字段(区分测试集和训练集)的数值进行选择,第一个表示使用1、2、3这样的数值来表示,第二个是 使用“1_training“等来表示,第三个是使用”training“等来表示,可以通过第二个图中的value来观察。此外下面还有设置随机种子的 选项。

    ps:在分割完不同集合后,可以右击partition节点,选择cache中enable,这样随机分割完的数据就可以暂时存在缓存中,这样不同时候进行不同建模的时候就不会因为样本不同而使结构受影响!(第一次执行后会在节点的右上方出现绿色的文件件的标签)

     

     

    四,如何建立测试模型

    如果训练好模型后,把所得的模型节点从右上方拖到数据流的测试集后,建立连接后,再加个分析节点或一些结果的节点就可以了。

    展开全文
  • 小样本学习概述

    千次阅读 多人点赞 2020-12-09 16:44:05
    小样本学习(Few-Shot Learning)是近几年兴起的一个研究领域,小样本学习旨在解决在数据有限的机器学习任务。 小样本学习存在的意义? 近些年,以深度卷积神经网络为代表的深度学习方法在各类机器学习任务上...

    前言

    小样本学习(Few-Shot Learning)是近几年兴起的一个研究领域,小样本学习旨在解决在数据有限的机器学习任务。

     

    小样本学习存在的意义?

    近些年,以深度卷积神经网络为代表的深度学习方法在各类机器学习任务上取得了优异的成绩——很多任务上已经超越了人类表现。狂欢背后,危机四伏。因为这些深度学习方法work的关键之一是海量标注数据的支持。

    但是在工业界,很多时候难以获得海量的训练数据,更别提还要标注了。这里我脑洞一下:不久的将来,深度学习会沦为高科技公司和大型科研机构的专属玩具——因为小公司、小科研机构根本无法接触到高品质的、海量的数据。

    那么,有没有一种方法可以让我们只需要少量的样本,就能训练出良好的模型呢?于是,小样本学习就登上了历史舞台。

    实际上,我们人类就比较擅长小样本学习。给人几张不同角度的图片,人就可以对新的图片进行分辨——这种强大的学习能力恰恰是当前深度学习所缺乏的,也是鼓舞我们探索的动力所在。

     

    什么是小样本学习?

    这里给出小样本学习的严格定义,在介绍小样本学习之前,我们先看机器学习的定义。

    Machine Learing : A computer program is said to learn from experience E with respect to some classes of task T and performance measure P, if its performance can improve with E on T measured by P.

    然后我们引入小样本学习的定义。

    Few-Shot Learning (FSL) : A type of machine learning problems (specified by E,T and P), where E contains only a limited number of examples with supervised information for the target T.

    总结起来,机器学习就是从数据中学习,从而使完成任务的表现越来越好。小样本学习是具有有限监督数据的机器学习。类似的,其他的机器学习定义也都是在机器学习定义的基础上加上不同的限制条件衍生出来。例如,弱监督学习是强调在不完整、不准确、有噪声、数据少的数据上学习,半监督学习是强调在少量标注数据和大量非标注数据上学习,迁移学习是把充足数据上学习的知识迁移到数据匮乏的任务上。

     

    小样本学习的方法有哪些?

    如果把小样本学习比作一个黑盒子,给这个黑盒子喂少量的数据,凭什么能让它表现得好呢?显然我们需要外力来帮助,这个外力就是“先验知识”。

    小样本学习的先验知识来自三方面:数据、模型、算法,小样本学习的研究也都是从这三方面着手。因此,小样本学习方法大致可分为基于数据增强的方法、基于模型改进的方法、基于算法优化的方法。

    一、基于数据增强的方法。主要思路就是数据增强,通俗地讲就是扩充样本。想到数据增强,我们通常会想到平移、裁剪、翻转、加噪声等操作,但是这些操作可能在特定数据集表现很好,不具有普适性。而且设计这些操作需要对所处理的领域具有足够的了解。小样本学习所使用的数据增强方法主要有三个思路:1)只有小样本数据集:可以训练一个transformer学习样本之间的变化,然后使用该transformer对小样本数据集进行扩充;2)有小样本数据集+弱标注数据集:可以训练transformer从弱标注数据集中“挑选”样本来扩充小样本数据集;3)有小样本数据集+相似的数据集:可以训练一个GAN网络,通过学习给小样本数据集加上扰动来生成新样本。

    数据的三种来源

    基于数据的方法比较容易理解,但是存在的问题是:很多工作都不具备普适性,难以迁移到别的数据集。

    二、基于模型改进的方法。每个模型经过迭代都会得到近似解,而当样本有限时,在假设空间搜索解就变得困难。这类方法为了缩小假设空间,主要有四种方法:

    1.多任务学习(Multitask Learning):这种模型可以处理多个任务,因此也就兼备了模型的普适性和一般性。在处理多个任务时,模型的参数可以是共享的,也可以是相关联的;

    多任务学习共享参数(左)、关联参数(右)模型示意图

    2.嵌入学习(Embedding Learning):将样本映射到一个低维度空间,从而达到了缩小假设空间的效果,然后就可以通过少量的样本求出模型在该假设空间下的近似解。根据映射到低维空间的方法又分为三类:任务特定型(结合任务的具体特点进行映射)、通用型、结合型(结合任务和通用);

    嵌入学习模型示意图

    3.基于外部记忆的学习(Learning with External Memory):通过对小样本数据集学习得到知识,然后存储到外部,对于新样本,都使用存储在外部的知识进行表示,并根据表示来完成匹配。这种方法大大降低假设空间;

    基于外部记忆的学习模型示意图

    4.生成模型(Generative Modeling):生成模型学习小样本数据集的数据分布,并可将其用于各种任务。

    生成模型模型示意图

     

    三、基于算法优化的方法。这类方法的核心是通过改进优化算法来更快地搜索到合适解。主要方法有三种:

    1.改善已有参数。这种方法从参数初始化的角度着手,主要思路是借助已训练好的模型参数来调整小样本模型的参数,例如:在大数据集训练好模型来初始化小样本模型;聚合其他已训练好的模型到一个模型;给已训练好的模型加一些特用于小样本任务的参数;等等。

    改善模型已有参数流程示意图

    2.改善元学习参数。元学习(meta-learning)是当下很火的一个研究方向,它的思想是学习如何学习。它的结构一般是由一个底层模型和一个顶层模型组成,底层模型是model的主体,顶层模型是meta-learner。更新参数时,它除了要更新底层model,还要更新meta参数。改善策略大致有三类:1)结合不同特定任务模型参数来对新任务的参数进行初始化;2)对模型不确定性建模,以备后续提升;3)改进参数调整流程。

    改善元学习参数流程示意图

    3.学习优化器。如下图所示,optimizer每次都迭代会更新上一次的模型参数,现在通过学习小样本数据集中每个迭代的更新值,从而应用在新的测试数据上。

    学习优化器流程示意图

     

    结语

    小样本学习是机器学习领域未来很有前景的一个发展方向,它要解决的问题很有挑战性、也很有意义。小样本学习中最重要的一点就是先验知识的利用,如果我们妥善解决了先验知识的利用,能够做到很好的迁移性,想必那时我们距离通用AI也不远了。

    参考文献

    Y. Wang, J. Kwok, L. M. Ni and Q. Yao, "Generalizing from a few examples: A survey on few-shot learning", arXiv:1904.05046, 2019

    展开全文
  • 从 CVPR 2019 一览小样本学习研究进展

    千次阅读 2019-07-26 10:46:18
    随着研究者们对样本利用效率的要求日益提高,小样本学习逐渐成为了 AI 领域以及相关顶会最热门的话题之一。色列特拉维夫大学的在读博士研究生 Eli Schwarts 参加完CVPR 2019 后,针对今年CVPR 2019 的热点之一——...
  • 常用小样本数据集介绍与下载汇总

    千次阅读 2020-07-22 11:24:55
      本文整理了近些年常用的小样本数据集,提供了数据集介绍,参考文献以及下载地址。我手头有资源的都已经上传至百度云盘,其他数据集也提供了官方的下载地址(有些可能需要翻墙)。最后还对各个数据集的情况做了一...
  • 小样本分析(三)

    千次阅读 2015-10-07 19:04:34
    这篇是继前两篇概率估算的后续,很多地方没有说,建议先粗略看一下前面的,了解一下估算的思路。由于公式较多直接从word截图偷个闲。 条件极值: 【注:拉格朗日乘数法我也忘记得差不多了,在网上找到的例子也...
  • 前言 要想训练一个好的深度学习模型...这样会导致训练集测试集存在差异,所以在划分数据集的时候需要掌握一些技巧。本篇文章的主要内容来自deeplearning.ai 示例说明 问题描述 你想开发一个APP,当用户上传...
  • 小样本分割综述

    千次阅读 2020-05-19 14:35:56
    ©PaperWeekly·作者|艾超义学校|中国矿业大学本科生研究方向|小样本分割介绍深度卷积神经网络在图像分类、目标检测、语义分割等许多视觉理解任务上都取得了重大突破。一个关键的原...
  • 归纳SSL处理整个样本空间中所有给定和未知的样例,同时利用训练数据中有类标签的样本和无类标签的样例,以及未知的测试样例一起进行训练,不仅预测训练数据中无类标签的样例的类标签,更主要的是预测未知的测试样例...
  • 在做分类时,我们都是有训练样本和测试样本的。当我们选定了一套样本,想要自动分割为训练样本和测试样本时,即可以参考此方法,简单有效。(1)首先:我们要有一套样本点的shp文件。(2)将该shp文件在ArcGIS ...
  • 训练样本是用来训练学习机的,测试样本是学习机要识别的对象。比如你想让一台电脑能识别茶杯,首先你要准备一个茶杯(训练样本),然后把茶杯给计算机看(数据输入),并告诉电脑说这样的东东是茶杯(期望输出),电脑看到...
  • few shot learning-小样本学习入门

    千次阅读 2020-04-22 20:48:44
    基本概念 小样本学习(few shot learning,FSL)可以看做每个类别样本数目远远小于类别数目,也就是说每个类别仅仅只有几个样本可供训练。
  • 关系网络 1.论文参考: 《Learning to Compare Relation Network for Few-Shot Learning》论文原文请点击这里 ...2.问题定义:   首先需要了解三个数据集,training set,support settesting set。s...
  • SVM 处理高维小样本数据

    千次阅读 2017-12-28 19:40:28
    1.降维的时候 用PCA n_comments=0.99 保留99%的信息 2.SVM 分为SVC(分类)SVM(回归) 3.Leave One Out 进行训练集测试集的划分 具体代码见 https://github.com/qqxze/SVM
  • 目前推荐系统中给用户进行推荐部分都是基于CTR预估来做的,CTR预估中很重要的一环便是正负样本的选择,那么不同业务场景下我们如何定义正负样本、如何控制正负样本的比例、正负样本选择有哪些技巧?虽然这些只是...
  • 基于特征化工程进行用户特征化,结合相关的机器学习算法对业务...本章节讲解一下样本选择特征处理方面的一些方法技巧。在做样本训练前需要挑选样本,需要注意样本不平衡的问题,比如在定向广告预估点击率二元模型中,
  • 基于小样本量的水下图像识别

    千次阅读 2018-09-22 17:11:37
    然而,我们发现深度神经网络(DNNs)容易在小样本数据集中发生过拟合现象。不幸的是,水下图像采集往往需要大量的人力物力,这使得获取足够的样本图像来训练DNNs变得困难。此外,水下摄像机捕捉到的图像通常会因噪声...
  • 论文主要工作: 本文提出带间隔的小样本学习, 提升了所学习嵌入表示的质量。... 本文将带间隔的小样本学习引入到两种已有模型中,分别是原型网络匹配网络。 另外, 数据的分布往往都有内在结...
  • 解决样本类别分布不均衡的问题

    千次阅读 2018-04-12 16:12:21
    3.4 解决样本类别分布不均衡的问题转载:http://www.dataivy.cn/blog/3-4-%E8%A7%A3%E5%86%B3%E6%A0%B7%E6%9C%AC%E7%B1%BB%E5%88%AB%E5%88%86%E5%B8%83%E4%B8%8D%E5%9D%87%E8%A1%A1%E7%9A%84%E9%97%AE%E9%A2%98/说明...
  • 将日常工作中遇到的数数据冲突和样本源的方法进行总结,其中主要包括 实际业务数据冲突、样本选取问题、数据共线性 等思路,并且长期更新。 实际业务数据冲突 多业务数据源冲突是指来自多个或具有相同业务逻辑但结果...
  • 小样本学习(Few-shot Learning)综述

    万次阅读 多人点赞 2019-04-01 08:39:00
    作者丨耿瑞莹、李永彬、黎槟华单位丨阿里巴巴智能服务事业部小蜜北京团队分类非常常见,但如果每个类只有几个标注样本,怎么办呢?笔者所在的阿里巴巴小蜜北京团队就面临这个挑战。我...
  • 生成对抗样本研究笔记

    千次阅读 2019-09-14 15:45:32
    对抗样本(adversarial examples)的概念当初是goodfellow为了证明神经网络由于在高维特征空间中具有线性特性,容易在高维特征空间中被误导这一现象而提出来的[1]。对抗样本的定义比较简单,是指给输入样本细微的...
  • 数据集的划分: 在机器学习算法中,我们通常将原始数据集划分为三个部分(划分要尽可能保持数据分布的一致性): (1)Training set(训练集): 训练模型 (2)Validation set(验证集): 选择模型 (3)...
  • sklearn是很强大的机器学习的库,传统的机器学习任务从开始到建模的一般流程是:获取数据 -> 数据预处理 -> 训练建模 -&...这里具体怎么调用创建可以参考博客:https://www.cnblo...
  • 使用KS算法SPXY算法进行样本分类(MATLAB)

    千次阅读 热门讨论 2019-12-13 09:30:55
    使用KS算法SPXY算法进行样本分类 当我们进行建模分析时,在建模过程中训练集样本的选取是非常重要的,下面我将简单介绍一下其中用的较多的KS算法SPXY算法。 Kennard-Stone算法原理(KS算法) KS算法原理:把...
  • 样本不均衡的一些处理技巧

    千次阅读 2018-06-17 15:53:04
    原文(1) 数据层次的方法欠采样欠采样(undersampling)法是去除训练集内一些多数样本,...欠采样改进方法1但是我们可以更改抽样方法来改进欠抽样方法,比如把多数样本分成核心样本和非核心样本,非核心样本为对预测...
  • 作者:livan来源:数据python与算法前沿统计计算主要应用在效果评估领域。客户经过分流之后在各个试验组中产生数据,统计的作用即为查看对应组的样本量是否达到最小样本量,数据之间是否存...
  • 近似熵和样本熵都是对非稳定时间序列的复杂型的度量,其思想都是检测时间序列中的新的子序列产生概率。   近似熵和样本熵计算方法: 近似熵的计算方法 原料:具有N个均匀数据点的时间序列;需要进行切割的子片段...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 79,119
精华内容 31,647
关键字:

划分大样本和小样本的标准