论文部分内容阅读
单类分类算法是机器学习中一种特殊的分类算法,在仅有正类训练样本的情况下构造描述模型,将正类与未知的负类区分。单类分类算法在二十余年的研究中取得了长足进步,并且在异常检测、目标识别、图像分类等各种应用问题中取得了良好的应用效果。与此同时,集成学习经随机森林和Boosting等代表性算法的推进,已成为机器学习研究领域最重要的元方法。将单类分类算法与集成学习方法结合,在单类分类算法性能提升、理论完善和解决实际问题等方面具有重要意义。本论文围绕模块集成的集成单类分类算法、同训练集的集成单类分类算法以及用于多分类的集成单类分类算法等三种集成方式进行了深入研究,并取得了以下研究成果。1.在模块集成的集成单类分类算法方面,设计了一种自动挖掘训练数据集局部密度特征的集成单类分类算法DBM-EOC(Density Based Modular Ensemble One-class Classifier),该算法以局部密度的样本距离度量指标为基础,构成树形结构并分别使用多个基单类分类器描述不同局部区域,最终形成稳定的单类描述模型。DBM-EOC算法对正类分布中可能包含的多簇聚类分布、多密度分布、不规则形状分布和噪声样本等复杂特性有较传统单类分类算法更好的描述能力。2.在基于聚类的集成单类分类算法方面,在深入分析现有基于聚类的集成单类分类方法存在的聚类簇个数难以确定,以及计算复杂度高这两个问题的基础上,首先以聚类稳定性分析为核心设计了集成单类分类算法ECS-SVDD(Ensemble Clustering based Stable Support Vector Data Description)。聚类稳定性分析的过程能够有效确定训练样本集中包含的聚类簇个数,根据聚类稳定性分析的结果构成SVDD基单类分类模型的最大体积集集成。实验结果说明ECS-SVDD较基单类分类算法性能较优。进一步针对此类算法通常较高的计算复杂度,同时以降低对聚类簇个数确定步骤依赖为目标,设计了快速结构化集成单类分类算法FS-EOCC(Fast Structural Ensemble One-Class Classifier)。FS-EOCC使用样本个数和基单类分类器的计算复杂度预先计算聚类簇个数,虽然该聚类簇个数通常大于真实值,但FS-EOCC的两轮聚类流程有效避免了过多聚类簇导致的描述区域空隙。FS-EOCC在聚类簇确定阶段采用的近似方法有效降低了基于聚类的集成单类分类算法的计算复杂度,使其与非集成单类分类算法的复杂度处于在同一数量级。3.在经典的同训练集集成单类分类算法研究方面,提出了序列集成的单类分类算法OCCBoost(One-Class Classification Boosting)。序列集成单类分类算法的难点主要在于如何确保序列集成的迭代过程能够在理论上提升集成模型的性能,以及在缺乏负类训练样本时如何精确评估基分类模型。OCCBoost算法将单类分类模型视为后验概率估计、排序和后处理的结合,引入针对排序学习的RankBoost框架增强单类分类模型的后验概率估计和排序过程。与此同时,OCCBoost使用了一种在单一特征维度上生成人工负类样本的算法,以及对应的单一维度基分类器,解决了无真实负类样本训练时评估模型的难题。OCCBoost虽然需要较多的迭代次数才能取得较理想的性能,但基分类器本身计算复杂度与非集成单类分类算法在同一数量级。4.在集成单类分类算法的后处理研究方面,将选择性集成这一集成模型后处理方法引入集成单类分类算法中,提出了PHD-EOC(Pruned Hybrid Diverse Ensemble One-class Classifier)算法。首先证明了集成算法对单类分类器的有效性,但基分类器集合的选择决定了集成分类器的最终性能。在此基础上,分析了集成单类分类器的多样性问题,并提出了混合多样性基分类器生成方法,构成具有足够多样性的基单类分类器集合。之后通过分析和拆分损失函数得到了一种针对集成单类分类算法的选择性集成算法。实验结果说明PHD-EOC算法能够在集成单类分类器的多样性和性能之间取得良好的平衡。5.机器学习算法的价值在于解决实际问题,因此本论文针对计算机安全领域重要的恶意程序行为检测问题,提出了一种基于集成单类分类的恶意程序检测算法FENOC(Framework based on ENsemble One-Class Classification)。在数据收集步骤,FENOC使用静态反汇编分析和动态沙盒分析两种方法收集完整的行为语义信息。在特征提取步骤,FENOC使用了多种语义层次上的特征提取方法,包括本论文提出的双层行为抽象算法BLBA(Bi-Layer Behavior Abstraction),能够在尽量保持语义信息的前提下将API函数序列嵌入向量空间。在机器学习步骤,FENOC使用一对单类分类模型构成的代价敏感分类器CosTOC(Cost-sensitive Twin One-class Classifier)作为基分类器,并使用随机子空间集成和基于聚类的集成方法进一步增强。实验结果说明FENOC构建的恶意程序检测模型能够取得比传统机器学习方法明显更低的误检率,并且保持相当的恶意程序检测率。尤其在训练数据集存在类别不平衡,以及恶意程序误检代价更高时效果较好。