论文部分内容阅读
增量学习旨在使用非一次性到达的数据持续地更新模型。根据到达数据的类别的变化情况,可以将增量学习区分为数据增量学习和类增量学习:数据增量学习只针对数据数量增长的情形进行设计,而类增量学习还要考虑数据类别的增长。随着大数据时代的到来,时刻都有大量的数据以数据流的形式产生。数据流具有高速到达,动态变化等特点,如何在数据流场景下进行增量学习,已经成为大数据分析领域的研究热点。数据流增量学习主要有如下两个挑战点:(1)数据流往往具有持续高速到达的特点,类增量学习一方面需要应对数据在数量和类别上的增长,另一方面需要满足有限存储以及较少数据访问次数的要求,对数据流做出快速响应。如何减少系统对历史数据的存储,同时保证类增量学习的效率和效果是具有挑战性的;(2)数据流具有动态变化的特点,随着时间的推移,在数据中可能发生概念漂移的现象,影响数据增量学习的效果。当数据中存在不平衡现象时,相应的设计将更难进行,如何在数据不平衡的条件下,及时有效地响应概念漂移并保证数据增量学习的效果是具有挑战性的。针对以上挑战点,本文对数据流类增量学习技术、数据流概念漂移处理技术进行了深入的研究。为了在数据流场景下减少历史数据存储量,同时保证类增量学习的效果与效率,本文提出一种基于矩阵近似和费舍尔判别分析的随机森林分类算法FDARF。FDARF算法由层次划分生成GHS算法和随机子树重构RRS算法组成。GHS算法通过结合费舍尔判别分析以及树的层次结构来提供对数据空间的划分,从而使模型具有良好的数据拟合能力。同时GHS算法还对历史数据存储方式进行了设计:(1)使用协方差矩阵对历史数据进行表征,防止其无限增长;(2)基于矩阵近似算法优化协方差矩阵的存储方式,减少算法对存储空间的需求。RRS算法基于层次划分和树重构调整知识间的结构关系,减少新旧类知识间的冲突。同时集成由于树的不同的调整方式产生的多样性,保证类增量学习的效果。通过GHS算法能够获得对数据空间的良好拟合,RRS算法在此基础上更新模型以适应新类知识,两者协同运作。实验结果表明,与经典的NCMF、SCMF算法相比,FDARF算法的历史数据存储量平均降低50%以上,同时准确度平均降低3%以内。为了在存在数据不平衡现象的数据流场景下,及时有效地响应数据中发生的概念漂移,保证数据增量学习的效果,本文提出基于假设检验和树重构的模型动态调整算法CDDR。CDDR算法包括双阈值概念漂移检测算法DTCDD和多粒度模型更新算法MGMU两个部分。DTCDD算法基于错误率和时间衰减函数设计适应数据非平衡场景的统计量,结合假设检验知识以双阈值为基础进行概念漂移检测;同时基于蒙特卡洛模拟预先计算阈值表,加速响应速度以适应数据流环境。MGMU算法监视树中的失效节点并以多粒度的方式训练子树以消除失效知识,同时基于树重构对漂移后的知识进行增量学习。实验中将CDDR算法与两种数据流概念漂移处理算法PMJO、RFSN进行对比,从概念漂移检测和模型更新两方面来评价CDDR算法性能。CDDR算法能够适应非平衡的数据流场景,有效及时地响应概念漂移,在多个数据集上漂移检测准确率平均提升26%;同时CDDR算法能够在概念漂移场景下,有效地完成模型更新,保证数据增量学习的效果,在多个数据集上分类准确率平均提升20%。为进一步验证研究成果,本文设计了数据流增量学习原型系统DSIL,并基于分布式流处理平台Storm进行实现。DSIL系统以随机森林分类算法FDARF和模型动态调整算法CDDR作为基础,分别设计了新类知识吸收模块和旧类知识更新模块,其中新类知识吸收模块以类增量学习的方式吸收新类数据知识;旧类知识更新模块检测概念漂移,对发生概念漂移的数据知识进行更新,二者协同工作。实验中使用真实网络流量异常检测数据集,系统对多种异常类别的分类准确率总体能够达到92%,同时概念漂移检测准确率能够达到85%。