一、论文概述
二、现有研究以及优缺点
由于变化一直存在,攻击者也在不断变强,因此需要时常更新模型,而模型更新的时机是一个重要的问题。目前为了识别该模型何时显示出老化的迹象,有两种指标:
(1)运用传统的指标(如准确率、召回率等等)
现有的模型在判断概念漂移是会采用准确率精确率来评判模型整体的性能。这些传统指标虽然有用,但它们并不直接揭示分类器在做出具体决策时的行为。也就是说,它们不能告诉我们模型为何会做出某个特定的预测,或者在预测过程中模型是如何权衡不同因素的,例如,SVM模型不关心数据点到超平面的具体距离,而只是根据数据点位于超平面的哪一侧来进行分类。
(2)运用拟合度
还有一种方法是计算测试对象在候选类别中的拟合概率。然而,由于所有类别的概率之和必须为1.0,对于不属于任何已知类别的对象,其概率可能会被不准确地分配(有可能不属于任何一种分类但是模型一定要满足概率之和0)。为了解决这个问题,研究者如Deo等人提出了基于Venn-Abers Predictors(VAP)输出概率的临时度量方法,但该方法尚不成熟,可能无法可靠地识别出那些不符合已知类别的“漂移”对象。
P.S:看看有没有相关的论文?
机器学习社区开发了一些技术,这些技术是从统计学角度而不是概率角度来看待对象。例如,Conformal Predictor(CP)通过统计证据进行预测。但是,如Fern和Dietterich所讨论的,这种方法并不适用于存在概念漂移的情况。
然而,在使用统计评估来检测概念漂移之前,仍有两个关键问题需要解决:
算法无关性:评估必须与用于构建学习模型的算法无关,因为不同的算法可能有不同的分类机制。任何评估都必须从算法中抽象出来,并识别出一种普遍的标准,将底层算法视为一个黑盒。
自动计算阈值:从抽象评估标准中自动计算识别老化模型的阈值需要在训练对象的分数中进行暴力搜索。
三、解决方案
3.1 算法无关性的实现方式
Transcend 通过将具体算法的评分函数作为一个黑箱使用,从而实现了与算法无关的目标。这里面提出了非一致性度量的概念。
非一致性度量只需要一个评分函数,它不关心这个函数的具体实现细节,只需要该函数能够返回一个度量结果。例如:
- 支持向量机(SVM):使用样本到分类超平面的距离作为评分函数。
- 决策树:使用样本在树结构中的路径信息作为评分函数。
- 神经网络:使用样本在最后一层的激活值作为评分函数。
最终得到一个P值分数:
如果用一个例子来表示的话
3.2 自动计算阈值的实现方式
这是理想的状态,而在具体情况下:
三、指标选取
在共形评估中,置信度(Confidence)和可信度(Credibility)是两个关键指标,用于评估分类算法对样本分类的置信程度和统计支持。这两个指标有不同的计算方法和意义。
3.1 可信度(Credibility)
定义:可信度表示样本与其被分类的类别在统计上的相似程度,即样本属于该类别的可信度。
在分类器选择好了类别之后,计算可信度。
解释:可信度越高,表示样本在统计上更接近被分类的类别。高可信度表明样本与分类类别中的其他样本在该算法计算下没有显著差异。
但仅仅只用这一个指标是不够的:
a. 高可信度的局限性
- 多标签高p值:有时,多个标签的 p 值可能都很高,这表明测试对象 z∗z^*z∗ 可能同时匹配多个标签。
- 忽略多标签匹配:分类算法可能忽略了这一点,仅选择其中一个标签,这会导致分类不准确。
b. 低可信度的局限性
- 差异性大:低可信度可能表示 z∗z^*z∗ 与分类器选择的类中的对象非常不同。
- 识别不良:低可信度也可能表示对象 z∗z^*z∗ 被分类器错误识别。
这些观察表明,Algorithm Credibility 单独使用并不足以进行可靠的决策评估。
3.2 置信度(Confidence)
定义:置信度表示算法对给定分类决策的确信程度,即算法认为该决策正确的程度。
解释:置信度越高,表示算法对分类决策越有信心。高置信度表明算法认为该决策相对于其他可能的决策更可靠。
四、Transcend框架检测概念漂移
Transcend通过前面几个选取的指标构建一个评估方式来检测概念漂移。
4.1 决策评估
根据前面给出的两个指标,对于一个具体对象的评估,会有四种状态:
如果一个算法的决策评估状态是出现高可信度且高置信度的,我们就认为这个算法在决策评估上目前还不错。
4.2 Alpha评估
决策评估侧重于分类决策的可靠性,通过置信度和可信度评估分类决策的质量;而Alpha评估侧重于分析数据分布和检测过拟合。
Alpha评估通过分析数据分布,了解算法在不同数据集上的表现。尤其关注算法是否过度拟合特定数据集,从而在新数据或未知数据集上表现不佳。
p值计算:对于每个对象 ,计算其在每个可能的类别上的p值。
这些p值表示对象与各个类别的相似程度。
箱线图展示:将每个决策的p值绘制成箱线图,通过按类/聚类对这些箱线图进行对齐和分组,可以直观地展示每个类别/聚类的对象相互间的相似性。
4.3 概念漂移检测
具体的检测步骤如下:
(1)设定性能水平和样本比例
选择期望的性能水平(ω)和愿意手动检查的样本比例(δ)。
这两个参数由分析人员选择,作为检测概念漂移的自由度。
(2)定义函数和阈值:
定义函数 f:B×M→Ω×Δf : B \times M \rightarrow \Omega \times \Deltaf:B×M→Ω×Δ,其中B和M分别是良性和恶性样本的阈值域,Ω和Δ分别是性能水平和接受的决策数量的域。
通过训练数据集,迭代不同的良性和恶性阈值对(t0bt_{0b}t0b 和 t0mt_{0m}t0m),并计算相应的性能水平和接受的决策数量。
检测部署中的概念漂移:
在部署时,使用预先设定的性能阈值(ω或δ),定义逆函数 f−1:Λ→B×Mf^{-1} : \Lambda \rightarrow B \times Mf−1:Λ→B×M,其中Λ是Ω和Δ的并集。
给定一个阈值(例如ω),计算出对应的良性和恶性阈值对(tbt_btb 和 tmt_mtm),以帮助Transcend决定何时接受分类器的决策。
阈值选择策略:
为了确保阈值选择的合理性,采用一种简单的启发式方法:在给定一个阈值(如ω)的情况下,找到使另一个自由度(如δ)最大的阈值对(tbt_btb 和 tmt_mtm)。
结果评估:
对模型的预测进行评估,若预测的p值高于设定的阈值,则表明该预测是可信的;反之,若p值低于阈值,则表明预测不可信,可能存在概念漂移。
示例与分析
假设我们在训练阶段得到以下数据:
良性样本的阈值 t0bt_{0b}t0b 可能为0.1到0.9之间
恶性样本的阈值 t0mt_{0m}t0m 可能为0.1到0.9之间
通过函数 fff 计算出对应的性能水平和接受的决策数量。例如,给定 t0b=0.4t_{0b} = 0.4t0b=0.4 和 t0m=0.6t_{0m} = 0.6t0m=0.6,可能得到: f(t0b,t0m)=(ω0,δ0)=(0.8,0.9)f(t_{0b}, t_{0m}) = (\omega_0, \delta_0) = (0.8, 0.9)f(t0b,t0m)=(ω0,δ0)=(0.8,0.9)
在部署阶段,若选择的性能阈值为ω=0.8,通过逆函数 f−1f^{-1}f−1 计算出对应的 tbt_btb 和 tmt_mtm: f−1(0.8)=(tb,tm)=(0.4,0.6)f^{-1}(0.8) = (t_b, t_m) = (0.4, 0.6)f−1(0.8)=(tb,tm)=(0.4,0.6)
通过这种方式,Transcend可以决定何时接受分类器的决策,从而检测出概念漂移。
概念漂移的检测通过设定性能阈值和样本比例,利用共形评估中的p值计算,评估模型预测的可信度。通过在训练阶段设定合理的阈值对,并在部署阶段应用这些阈值,Transcend框架能够有效地检测出数据分布的变化,从而识别概念漂移。
五、实验验证
5.1 二分类问题检验
5.1.1 实验数据集
(1)属性
Drebin数据集的特征可以分为8个集合,每个集合代表不同的属性,这些属性从Android应用的manifest文件和dex代码中提取。具体包括:
- 硬件组件:记录应用请求的硬件组件,例如相机、触摸屏和GPS模块。
- 请求的权限:记录应用请求的权限,如读取联系人、发送短信等。
- 应用组件:记录应用包含的组件,如活动(Activities)、服务(Services)和广播接收器(Broadcast receivers)。
- 过滤的意图:记录由应用组件触发的意图动作(Intents)。
- 受限的API调用:记录应用调用的受限API函数,如获取设备ID等。
- 使用的权限:记录应用使用的权限。
- 可疑的API调用:记录应用中使用的可疑API调用。
- 网络地址:记录应用与之通信的主机地址。
(2)数据集收集方式
Drebin数据集收集了来自多个来源的真实Android应用,包括Google Play Store、亚洲的第三方市场和恶意软件论坛。具体收集过程如下:
- 样本来源:样本从2010年8月至2012年10月期间收集,共包含131,398个应用,其中包括来自Google Play Store的96,150个应用、来自中国市场的19,545个应用、来自俄罗斯市场的2,810个应用以及来自其他来源的13,106个应用。该数据集还包括所有来自Android Malware Genome Project的样本。
- 恶意与正常样本的区分:每个应用样本都会发送到VirusTotal服务,利用十种常见的防病毒扫描器(如AntiVir、AVG、BitDefender等)的输出结果来确定恶意和正常应用。被至少两个扫描器标记为恶意的应用被认为是恶意的。
- 广告软件样本的排除:由于广告软件处于恶意软件和正常软件之间的灰色地带,最终数据集中移除了这些样本。
(3)数据集的特点
- 规模:数据集包含122,629个正常应用和6,526个恶意应用,是用于评估Android恶意软件检测方法的最大数据集之一。
- 多样性:包含20个活跃分布在应用市场中的主要恶意软件家族,总共包含1,227个恶意样本。
- 检测性能:Drebin的检测性能在各个恶意软件家族中表现均匀,平均检测率为93%,假阳性率为1%。
5.1.2 实验步骤
(1)首先通研究团队重新实现了Drebin算法,并在没有概念漂移的情况下达到了与Arp等人报告的相近结果。在66-33%的训练-测试拆分条件下,十次运行的平均结果显示:
- 对于恶意类,精度(precision)为0.95,召回率(recall)为0.92。
- 对于良性类,精度和召回率均为0.99。
(2) 接着使用前面提到的算法可信度指标对这个算法进行评估,
-
性能提升:
- 实验结果表明,通过使用p值过滤样本,可以显著提高模型在新数据集上的性能。
- 重新训练后的模型在应对概念漂移和分类决策方面表现更好,具备更高的召回率和精确率。
-
p值的重要性:
- p值在识别和过滤不可靠样本方面表现出色,有助于提高模型的鲁棒性和泛化能力。
5.1.3 和概率方法相比
数据集
- 训练集:Drebin数据集
- 测试集:Marvin数据集
实验步骤
- 训练模型:使用Drebin数据集训练SVM模型。
- 初始测试:在Marvin数据集上测试训练好的模型,计算每个测试样本的概率和p值。
- p值过滤:使用p值对测试样本进行过滤,保留高置信度和高可信度的样本。
- 重新训练:使用Drebin数据集和经过p值过滤的Marvin样本重新训练模型。
- 再次测试:在新的Marvin数据集上测试重新训练的模型。
具体数据和比较方法
初始测试结果(未过滤)
样本类别 | 预测类别 | 数量 |
---|---|---|
良性样本 | 良性 | 4498 |
良性样本 | 恶意 | 2 |
恶意样本 | 良性 | 2890 |
恶意样本 | 恶意 | 1610 |
精确率 | 良性 | 0.61 |
精确率 | 恶意 | 1.00 |
召回率 | 良性 | 1.00 |
召回率 | 恶意 | 0.36 |
p值过滤后的测试结果
样本类别 | 预测类别 | 数量 |
---|---|---|
良性样本 | 良性 | 4257 |
良性样本 | 恶意 | 2 |
恶意样本 | 良性 | 504 |
恶意样本 | 恶意 | 1610 |
精确率 | 良性 | 0.89 |
精确率 | 恶意 | 1.00 |
召回率 | 良性 | 1.00 |
召回率 | 恶意 | 0.76 |
重新训练后的测试结果
样本类别 | 预测类别 | 数量 |
---|---|---|
良性样本 | 良性 | 4413 |
良性样本 | 恶意 | 87 |
恶意样本 | 良性 | 255 |
恶意样本 | 恶意 | 4245 |
精确率 | 良性 | 0.96 |
精确率 | 恶意 | 0.98 |
召回率 | 良性 | 0.98 |
召回率 | 恶意 | 0.94 |
比较方法
使用p值进行过滤
-
p值计算:
- 对于每个测试样本,计算其非一致性度量(例如,SVM中的到决策超平面的距离)。
- 通过比较测试样本的非一致性度量与训练样本的非一致性度量,计算p值。
-
p值过滤:
- 使用设定的阈值过滤测试样本,保留高p值的样本,剔除低p值的样本。
- 高p值样本表示在统计上与训练样本没有显著差异,更可能属于预测的类别。
使用概率进行分类
-
概率计算:
- 对于每个测试样本,使用SVM决策函数输出的距离转换为概率值(通过Platt缩放)。
- 概率值直接表示样本属于某一类别的置信度。
-
直接分类:
- 使用概率值进行分类决策,没有额外的过滤步骤。
比较结果和结论
结果
- 初始测试:未经过滤的模型在恶意样本上的召回率较低(0.36),说明模型在面对新数据时性能下降。
- p值过滤后的测试:通过p值过滤,恶意样本的召回率显著提高到0.76,表明p值过滤有效提升了模型的性能。
- 重新训练后的测试:重新训练后的模型在新的测试集上表现更好,恶意样本召回率达到0.94,良性样本召回率达到0.98,整体性能大幅提升。
结论
-
p值的优势:
- 通过比较所有样本的分数计算得出的p值,能够更全面地评估样本的相对位置和分类的可靠性。
- p值方法利用了整个训练样本的信息,使得在应对概念漂移时更具鲁棒性和泛化能力。
-
概率的局限性:
- 概率方法仅依赖于测试样本的信息,缺乏对整个训练样本分布的全面考虑。
- 容易受到过拟合和数据分布变化的影响,在新数据上的表现不如p值方法。
通过这些实验和结果对比,作者证明了共形评估方法(统计方法)在应对概念漂移和提高模型性能方面的有效性。