特征演化的数据流

数据流学习是近年来机器学习与数据挖掘领域的一个热门的研究方向,数据流的场景和静态数据集的场景最大的一个特点就是数据会发生演化,关于演化数据流的研究大多集中于概念漂移检测(有监督学习),概念/聚类演化分析(无监督学习),然而,人们往往忽略了一个经常出现的演化场景:特征演化。大多数研究都考虑数据流的特征空间是固定的,然而,在很多场景下这一假设并不成立:例如,当有限寿命传感器收集的数据被新的传感器替代时,这些传感器对应的特征将发生变化。

今天要分享的文章出自周志华的实验室《Learning with Feature Evolvable Streams》(NIPS 2017),它提出了一个新的场景,即在数据流中会有特征消亡也会有新特征出现。当出现新的特征空间时,我们并不直接抛弃之前学到的模型并在新的数据上重新创建模型,而是尝试恢复消失的特征来提升模型的表现。具体来说,通过从恢复的特征和新的特征空间中分别学习两个模型。为了从恢复的特征中获得提升,论文中提出了两种集成策略:第一种方法是合并两个模型的预测结果;第二种是选择最佳的预测模型。下面我们具体来理解特征演化数据流以及论文中提出的一些有趣的方法吧~

paper link:https://papers.nips.cc/paper/6740-learning-with-feature-evolvable-streams.pdf

什么是特征演化数据流?

在很多现实的任务中,数据都是源源不断收集的,关于数据流学习的研究近年来受到越来越多的关注,虽然已经有很多有效的算法针对特定的场景对数据流进行挖掘,但是它们都基于一个假设就是数据流中数据的特征空间是稳定的。不幸的是,这一假设在很多场景下都不满足。针对特征演化的场景,最直接的想法就是利用新的特征空间的数据学习一个新的模型,但是这一方法有很多问题:首先,当新的特征刚出现的时候,只有很少的数据样本来描述这些信息,训练样本并不足够去学习一个新的模型;其次,包含消失特征的旧模型被直接丢弃了,其中可能包含对当前数据有用的信息。论文中定义了一种特征演化数据流的场景:一般情况下,特征不会任意改变,而在一些重叠时期,新特征和旧特征都存在,如下图所示:

其中,T1阶段,原始特征集都是有效的,B1阶段出现了新的特征集,T2阶段原始特征集消失,只有新的特征集。

论文提出的方法是通过使用重叠(B1)阶段来发现新旧特征之间的关系,尝试学习新特征到旧特征的一个映射,这样就可以通过重构旧特征并使用旧模型对新数据进行预测

问题描述

论文中着重解决的是分类和回归任务,在每一轮学习过程中,对每一个实例进行预测,结合它的真实标签会得到一个loss(反映预测和真实标签的差异),我们将上面提到的T1+B1+T的过程称为一个周期,每个周期中只包含两个特征空间,所以,之后的研究主要关注一个周期内的模型的学习,而且,我们假设一个周期内的旧特征会同时消失。定义Ω1和Ω2分别表示两个特征空间S1和S2上的线性模型,并定义映射,定义第i维特征在第t轮的预测函数为线性模型。损失函数是凸的,最直接的方式是使用在线梯度下降来求解w,但是在数据流上不适用。

方法介绍

上文提到的基本算法的主要限制是在第1,…T1轮学习的模型在T1+1,…T1+T2时候被忽略了,这是因为T1之后数据的特征空间改变了,我们无法直接应用原来的模型。为了解决这一问题,我们假设新旧特征空间之间有一种特定的关系:,我们尝试通过重叠阶段B1来学习这种关系。学习两组特征之间的关系的方法很多,如多元回归,数据流多标签学习等。但是在当前的场景下,由于重叠阶段特别短,学习一个复杂的关系模型是不现实的。所以我们采用线性映射来近似。定义线性映射的系数矩阵为M,那么在B1阶段,M的估计可以基于如下的目标方程:

M的最优解可以解得:

然后,当我观测到S2空间得数据,就可以通过M将其转化到S1空间,并应用旧模型对其进行预测。

除了学习这个关系映射之外,我们得算法主要包括两个部分:

  1. 在T1-B1+1,…T1阶段,我们学习两个特征空间之间得关系;

  2. 在T1之后,我们使用新特征空间的数据转化后的原特征空间数据,持续更新旧模型以提升它的预测效果,然后集成两个模型进行预测。

预测结果集成

论文中提出两种集成方法,第一种是加权组合,即将两个模型的预测结果求加权平均,权重是基于exponential of the cumulative loss。

其中

这种权重的更新规则表明,如果上一轮模型的损失较大,下一轮模型的权值将以指数速度下降,这是合理的,可以得到很好的理论结果。

第二种集成方法是动态选择。

上面提到的组合的方法结合了几个模型来提升整体性能,通常来说,组合多个分类器的表现会比单分类器的效果要好,但是,这基于一个重要的假设就是每个基分类器的表现不能太差(如,在Adaboost中,基分类器的预测精度不应低于0.5)。然而在这个问题中,由于新特征空间刚出现的时候训练集较小,训练的模型不好,因此可能并不适合用组合的方法来预测,相反,用动态选择最优模型的方法反而能获得好的效果。

有趣的灵魂在等你长按二维码识别

paper sharing :学习特征演化的数据流的更多相关文章

  1. Paper | 多任务学习的鼻祖

    目录 1. MTL的定义 2. MTL的机制 2.1. Representation Bias 2.2. Uncorrelated Tasks May Help? 3. MTL的用途 3.1. Usi ...

  2. AI学习---特征工程【特征抽取、特征预处理、特征降维】

    学习框架 特征工程(Feature Engineering) 数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已 什么是特征工程: 帮助我们使得算法性能更好发挥性能而已 sklearn主 ...

  3. [spring源码学习]单元测试演化

    1.使用main方法 最早的测试方法一般是在类中增加main方法,然后在main方法中增加对每个方法的测试代码,如果要测其中一个,就屏蔽掉其他的测试代码,执行后,根据log的打印来判断测试是否成功 2 ...

  4. [改错_19/04/01] 学习Java.IO 对象数据流时出现 Exception in thread "main" java.io.EOFException ...at cn.sxt.test.Test_DataStream.main(Test_DataStream.java:31) 错误 .

    过程描述:编译可以通过,就是每次运行时出现如下的图片,百思不得其解. 错误原因: byte[] datas=baos.toByteArray(); 放在了oos.writeInt(14);oos.fl ...

  5. SENet(Squeeze-and-Excitation Networks)算法笔记---通过学习的方式来自动获取到每个特征通道的重要程度,然后依照这个重要程度去提升有用的特征并抑制对当前任务用处不大的特征

    Momenta详解ImageNet 2017夺冠架构SENet 转自机器之心专栏 作者:胡杰 本届 CVPR 2017大会上出现了很多值得关注的精彩论文,国内自动驾驶创业公司 Momenta 联合机器 ...

  6. 特征工程(Feature Enginnering)学习记要

     最近学习特征工程(Feature Enginnering)的相关技术,主要包含两块:特征选取(Feature Selection)和特征抓取(Feature Extraction).这里记录一些要点 ...

  7. paper 53 :深度学习(转载)

    转载来源:http://blog.csdn.net/fengbingchun/article/details/50087005 这篇文章主要是为了对深度学习(DeepLearning)有个初步了解,算 ...

  8. Deep Learning 学习随记(四)自学习和非监督特征学习

    接着看讲义,接下来这章应该是Self-Taught Learning and Unsupervised Feature Learning. 含义: 从字面上不难理解其意思.这里的self-taught ...

  9. Deep Learning论文笔记之(一)K-means特征学习

    Deep Learning论文笔记之(一)K-means特征学习 zouxy09@qq.com http://blog.csdn.net/zouxy09          自己平时看了一些论文,但老感 ...

随机推荐

  1. idea迁移到其他电脑,省去重新安装破解及配置

    idea迁移到其他电脑,省去重新安装破解及配置,要求路径与之前的电脑保持相同. 1. 将idea的配置目录文件夹整个复制过去,默认路径 C:\Users\Administrator\.IntelliJ ...

  2. 8.Nginx基本概述

    io网络模型介绍 1.介绍Nginx Nginx是一个高性能的HTTP和反向代理web服务器 2.常见的Web服务器 httpd Nginx Tengine OpenResty 3.介绍Nginx应用 ...

  3. Java基础(三十二)JDBC(2)连接数据库

    一.连接数据库的过程 连接数据库的过程:加载数据库驱动程序,不过只需在第一次访问数据库时加载一次,然后在每次访问数据库时创建一个Connection实例,然后执行操作数据库的SQL语句,并返回执行结果 ...

  4. ArcGIS制作地形图【详细步骤】

    结果图: 详细步骤: 一.在ArcSence中加载带有投影坐标系的dem数据 Dem的属性设置为下图可有上面的效果. 二.提取栅格范围 找到工具[3D Analyst][转换][栅格范围]双击打开设置 ...

  5. JavaScript随机生成布尔值

    //方法一 var rand = Boolean(Math.round(Math.random())); conosole.log(rand) // 方法二: var arr = [true,fals ...

  6. 详解k8s中的liveness和readiness的原理和区别

    liveness与readiness的探针工作方式源码解析 liveness和readiness作为k8s的探针,可以对应用进行健康探测. 二者支持的探测方式相同.主要的探测方式支持http探测,执行 ...

  7. 关于RocketMQ消息消费与重平衡的一些问题探讨

    其实最好的学习方式就是互相交流,最近也有跟网友讨论了一些关于 RocketMQ 消息拉取与重平衡的问题,我姑且在这里写下我的一些总结. ## 关于 push 模式下的消息循环拉取问题 之前发表了一篇关 ...

  8. eclipse 工具翻译插件安装

    http://download.eclipse.org/technology/babel/update-site/R0.15.1/oxygen

  9. MongoDB自建和阿里云RDS备份还原

    MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.旨在为WEB应用提供可扩展的高性能数据存储解决方案. MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功 ...

  10. gym102302E_Chi's performance

    题意 给n个二元组(v,p),要求排序使得v从小到大,而且总价值最大,价值定义为相邻两个v值不同的p值之差绝对值之和. 分析 in a row原来是相邻的意思. 对于每个相同v值的块来说,有用的数只有 ...